@flaunch/sdk 0.9.0 → 0.9.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.umd.js CHANGED
@@ -1,5 +1,5 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@delvtech/drift-viem")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@delvtech/drift-viem"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.driftViem)}(this,(function(e,t,n,a,i){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(a);function o(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const p="2.29.2";let y=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,u=`viem@${p}`;class l extends Error{constructor(e,t={}){const n=t.cause instanceof l?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof l&&t.cause.docsPath||t.docsPath,i=y?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...u?[`Version: ${u}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=a,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=p}walk(e){return d(this,e)}}function d(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?d(e.cause,t):t?null:e}class c extends l{constructor({max:e,min:t,signed:n,size:a,value:i}){super(`Number "${i}" is not in safe ${a?`${8*a}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class m extends l{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function T(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function f(e){return T(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function b(e,{dir:t="left"}={}){let n="string"==typeof e?e.replace("0x",""):e,a=0;for(let e=0;e<n.length-1&&"0"===n["left"===t?e:n.length-e-1].toString();e++)a++;return n="left"===t?n.slice(a):n.slice(0,n.length-a),"string"==typeof e?(1===n.length&&"right"===t&&(n=`${n}0`),`0x${n.length%2==1?`0${n}`:n}`):n}class h extends l{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class g extends l{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}function w(e,{dir:t,size:n=32}={}){return"string"==typeof e?I(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new g({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let i=0;i<n;i++){const r="right"===t;a[r?i:n-i-1]=e[r?i:e.length-i-1]}return a}(e,{dir:t,size:n})}function I(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new g({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}const v=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?P(e,t):"string"==typeof e?F(e,t):"boolean"==typeof e?k(e,t):M(e,t)}function k(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?(B(n,{size:t.size}),w(n,{size:t.size})):n}function M(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=v[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(B(a,{size:t.size}),w(a,{dir:"right",size:t.size})):a}function P(e,t={}){const{signed:n,size:a}=t,i=BigInt(e);let r;a?r=n?(1n<<8n*BigInt(a)-1n)-1n:2n**(8n*BigInt(a))-1n:"number"==typeof e&&(r=BigInt(Number.MAX_SAFE_INTEGER));const s="bigint"==typeof r&&n?-r-1n:0;if(r&&i>r||i<s){const t="bigint"==typeof e?"n":"";throw new c({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const o=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?w(o,{size:a}):o}const _=new TextEncoder;function F(e,t={}){return M(_.encode(e),t)}const A=new TextEncoder;function C(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=P(e,t);return D(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return B(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):T(e)?D(e,t):O(e,t)}const S={zero:48,nine:57,A:65,F:70,a:97,f:102};function E(e){return e>=S.zero&&e<=S.nine?e-S.zero:e>=S.A&&e<=S.F?e-(S.A-10):e>=S.a&&e<=S.f?e-(S.a-10):void 0}function D(e,t={}){let n=e;t.size&&(B(n,{size:t.size}),n=w(n,{dir:"right",size:t.size}));let a=n.slice(2);a.length%2&&(a=`0${a}`);const i=a.length/2,r=new Uint8Array(i);for(let e=0,t=0;e<i;e++){const n=E(a.charCodeAt(t++)),i=E(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new l(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function O(e,t={}){const n=A.encode(e);return"number"==typeof t.size?(B(n,{size:t.size}),w(n,{dir:"right",size:t.size})):n}function B(e,{size:t}){if(f(e)>t)throw new m({givenSize:f(e),maxSize:t})}function L(e,t={}){const{signed:n}=t;t.size&&B(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function U(e,t={}){return Number(L(e,t))}function N(e,t){return({exclude:n,format:a})=>({exclude:n,format:e=>{const i=t(e);if(n)for(const e of n)delete i[e];return{...i,...a(e)}},type:e})}const R={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function H(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?U(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?U(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?R[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=e.authorizationList.map((e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)})))),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof t.v){if(0n===t.v||27n===t.v)return 0;if(1n===t.v||28n===t.v)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),"legacy"===t.type&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),"eip2930"===t.type&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),"eip1559"===t.type&&delete t.maxFeePerBlobGas,t}const z=N("transaction",H);function q(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:H(e)));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const V=N("block",q);const K={"0x0":"reverted","0x1":"success"};function W(e){const t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map((e=>function(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}(e))):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?U(e.transactionIndex):null,status:e.status?K[e.status]:null,type:e.type?R[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const $=N("transactionReceipt",W);const G=2n**256n-1n;function Z(e){return"string"==typeof e[0]?X(e):function(e){let t=0;for(const n of e)t+=n.length;const n=new Uint8Array(t);let a=0;for(const t of e)n.set(t,a),a+=t.length;return n}(e)}function X(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class j extends l{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class Q extends l{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Y extends l{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const J={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Y({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Q({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new j({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new j({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function ee(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(J);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function te(e,t="hex"){const n=ne(e),a=ee(new Uint8Array(n.length));return n.encode(a),"hex"===t?M(a.bytes):a.bytes}function ne(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=ae(t);return{length:t<=55?1+t:1+n+t,encode(a){t<=55?a.pushByte(192+t):(a.pushByte(247+n),1===n?a.pushUint8(t):2===n?a.pushUint16(t):3===n?a.pushUint24(t):a.pushUint32(t));for(const{encode:t}of e)t(a)}}}(e.map((e=>ne(e)))):function(e){const t="string"==typeof e?D(e):e,n=ae(t.length),a=1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length;return{length:a,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function ae(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new l("Length is too large.")}const ie={ether:-9,wei:9};function re(e,t="wei"){return function(e,t){let n=e.toString();const a=n.startsWith("-");a&&(n=n.slice(1)),n=n.padStart(t,"0");let[i,r]=[n.slice(0,n.length-t),n.slice(n.length-t)];return r=r.replace(/(0+)$/,""),`${a?"-":""}${i||"0"}${r?`.${r}`:""}`}(e,ie[t])}function se(e){const t=Object.entries(e).map((([e,t])=>void 0===t||!1===t?null:[e,t])).filter(Boolean),n=t.reduce(((e,[t])=>Math.max(e,t.length)),0);return t.map((([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`)).join("\n")}class oe extends l{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class pe extends l{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",se(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class ye extends l{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function ue(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>D(e))):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map((e=>M(e)))}function le(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>D(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>D(e))):e.commitments,r=[];for(let e=0;e<a.length;e++){const n=a[e],s=i[e];r.push(Uint8Array.from(t.computeBlobKzgProof(n,s)))}return"bytes"===n?r:r.map((e=>M(e)))}function de(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ce(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function me(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Te(e,t){ce(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}const fe="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function be(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function he(e,t){return e<<32-t|e>>>t}const ge=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function we(e){for(let n=0;n<e.length;n++)e[n]=(t=e[n])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function Ie(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}function ve(e){return"string"==typeof e&&(e=Ie(e)),ce(e),e}"function"==typeof Uint8Array.from([]).toHex&&Uint8Array.fromHex;class xe{clone(){return this._cloneInto()}}function ke(e){const t=t=>e().update(ve(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Me(e=32){if(fe&&"function"==typeof fe.getRandomValues)return fe.getRandomValues(new Uint8Array(e));if(fe&&"function"==typeof fe.randomBytes)return Uint8Array.from(fe.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function Pe(e,t,n){return e&t^e&n^t&n}class _e extends xe{constructor(e,t,n,a){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=a,this.buffer=new Uint8Array(e),this.view=be(this.buffer)}update(e){me(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=ve(e)).length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s!==a)n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0);else{const t=be(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){me(this),Te(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),o=Number(n&r),p=a?4:0,y=a?0:4;e.setUint32(t+p,s,a),e.setUint32(t+y,o,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=be(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const p=o/4,y=this.get();if(p>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<p;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.length=a,e.pos=s,e.finished=i,e.destroyed=r,a%t&&e.buffer.set(n),e}}const Fe=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ae=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ce=new Uint32Array(64);class Se extends _e{constructor(e=32){super(64,e,8,!1),this.A=0|Ae[0],this.B=0|Ae[1],this.C=0|Ae[2],this.D=0|Ae[3],this.E=0|Ae[4],this.F=0|Ae[5],this.G=0|Ae[6],this.H=0|Ae[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:o}=this;return[e,t,n,a,i,r,s,o]}set(e,t,n,a,i,r,s,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)Ce[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Ce[e-15],n=Ce[e-2],a=he(t,7)^he(t,18)^t>>>3,i=he(n,17)^he(n,19)^n>>>10;Ce[e]=i+Ce[e-7]+a+Ce[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:o,G:p,H:y}=this;for(let e=0;e<64;e++){const t=y+(he(s,6)^he(s,11)^he(s,25))+((u=s)&o^~u&p)+Fe[e]+Ce[e]|0,l=(he(n,2)^he(n,13)^he(n,22))+Pe(n,a,i)|0;y=p,p=o,o=s,s=r+t|0,r=i,i=a,a=n,n=t+l|0}var u;n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,o=o+this.F|0,p=p+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,o,p,y)}roundClean(){Ce.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Ee=ke((()=>new Se));function De(e){const{commitment:t,version:n=1}=e,a=e.to??("string"==typeof t?"hex":"bytes"),i=function(e,t){const n=t||"hex",a=Ee(T(e,{strict:!1})?C(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:M(i)}const Oe=4096,Be=131072,Le=761855;class Ue extends l{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class Ne extends l{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class Re extends l{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class He extends l{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function ze(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?D(e.data):e.data,a=f(n);if(!a)throw new Ne;if(a>Le)throw new Ue({maxSize:Le,size:a});const i=[];let r=!0,s=0;for(;r;){const e=ee(new Uint8Array(Be));let t=0;for(;t<Oe;){const a=n.slice(s,s+31);if(e.pushByte(0),e.pushBytes(a),a.length<31){e.pushByte(128),r=!1;break}t++,s+=31}i.push(e)}return"bytes"===t?i.map((e=>e.bytes)):i.map((e=>M(e.bytes)))}({data:t,to:a}),r=e.commitments??ue({blobs:i,kzg:n,to:a}),s=e.proofs??le({blobs:i,commitments:r,kzg:n,to:a}),o=[];for(let e=0;e<i.length;e++)o.push({blob:i[e],commitment:r[e],proof:s[e]});return o}class qe extends l{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class Ve extends l{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Ke extends l{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Ke,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class We extends l{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${re(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(We,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class $e extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}const Ge=BigInt(2**32-1),Ze=BigInt(32);function Xe(e,t=!1){return t?{h:Number(e&Ge),l:Number(e>>Ze&Ge)}:{h:0|Number(e>>Ze&Ge),l:0|Number(e&Ge)}}function je(e,t=!1){let n=new Uint32Array(e.length),a=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:r,l:s}=Xe(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const Qe=[],Ye=[],Je=[],et=BigInt(0),tt=BigInt(1),nt=BigInt(2),at=BigInt(7),it=BigInt(256),rt=BigInt(113);for(let e=0,t=tt,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],Qe.push(2*(5*a+n)),Ye.push((e+1)*(e+2)/2%64);let i=et;for(let e=0;e<7;e++)t=(t<<tt^(t>>at)*rt)%it,t&nt&&(i^=tt<<(tt<<BigInt(e))-tt);Je.push(i)}const[st,ot]=je(Je,!0),pt=(e,t,n)=>n>32?((e,t,n)=>t<<n-32|e>>>64-n)(e,t,n):((e,t,n)=>e<<n|t>>>32-n)(e,t,n),yt=(e,t,n)=>n>32?((e,t,n)=>e<<n-32|t>>>64-n)(e,t,n):((e,t,n)=>t<<n|e>>>32-n)(e,t,n);class ut extends xe{constructor(e,t,n,a=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=a,this.rounds=i,de(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}keccak(){ge||we(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],o=pt(r,s,1)^n[a],p=yt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=o,e[t+n+1]^=p}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=Ye[n],r=pt(t,i,a),s=yt(t,i,a),o=Qe[n];t=e[o],i=e[o+1],e[o]=r,e[o+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=st[a],e[1]^=ot[a]}n.fill(0)}(this.state32,this.rounds),ge||we(this.state32),this.posOut=0,this.pos=0}update(e){me(this);const{blockLen:t,state:n}=this,a=(e=ve(e)).length;for(let i=0;i<a;){const r=Math.min(t-this.pos,a-i);for(let t=0;t<r;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:a}=this;e[n]^=t,128&t&&n===a-1&&this.keccak(),e[a-1]^=128,this.keccak()}writeInto(e){me(this,!1),ce(e),this.finish();const t=this.state,{blockLen:n}=this;for(let a=0,i=e.length;a<i;){this.posOut>=n&&this.keccak();const r=Math.min(n-this.posOut,i-a);e.set(t.subarray(this.posOut,this.posOut+r),a),this.posOut+=r,a+=r}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return de(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Te(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new ut(t,n,a,r,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=a,e.enableXOF=r,e.destroyed=this.destroyed,e}}const lt=((e,t,n)=>ke((()=>new ut(t,e,n))))(1,136,32);function dt(e,t){const n=t||"hex",a=lt(T(e,{strict:!1})?C(e):e);return"bytes"===n?a:x(a)}const ct=new $e(8192);function mt(e,t){if(ct.has(`${e}.${t}`))return ct.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=dt(O(n),"bytes"),i=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)a[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(15&a[e>>1])>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());const r=`0x${i.join("")}`;return ct.set(`${e}.${t}`,r),r}const Tt=/^0x[a-fA-F0-9]{40}$/,ft=new $e(8192);function bt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(ft.has(a))return ft.get(a);const i=!(!Tt.test(e)||e.toLowerCase()!==e&&n&&mt(e)!==e);return ft.set(a,i),i}function ht(e,t,n,{strict:a}={}){return T(e,{strict:!1})?function(e,t,n,{strict:a}={}){gt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&wt(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){gt(e,t);const i=e.slice(t,n);a&&wt(i,t,n);return i}(e,t,n,{strict:a})}function gt(e,t){if("number"==typeof t&&t>0&&t>f(e)-1)throw new h({offset:t,position:"start",size:f(e)})}function wt(e,t,n){if("number"==typeof t&&"number"==typeof n&&f(e)!==n-t)throw new h({offset:n,position:"end",size:f(e)})}function It(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new Ve({chainId:t});if(i&&!bt(i))throw new qe({address:i});if(a&&a>G)throw new Ke({maxFeePerGas:a});if(n&&a&&n>a)throw new We({maxFeePerGas:a,maxPriorityFeePerGas:n})}function vt(e){if(!e||0===e.length)return[];const t=[];for(let n=0;n<e.length;n++){const{address:a,storageKeys:i}=e[n];for(let e=0;e<i.length;e++)if(i[e].length-2!=64)throw new ye({storageKey:i[e]});if(!bt(a,{strict:!1}))throw new qe({address:a});t.push([a,i])}return t}function xt(e,t){const n=function(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new pe({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:o,maxPriorityFeePerGas:p,accessList:y,data:u}=e;It(e);const l=vt(y),d=[x(n),i?x(i):"0x",p?x(p):"0x",o?x(o):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",u??"0x",l,...kt(e,t)];return X(["0x02",te(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:o,accessList:p,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Ve({chainId:t});if(r&&!bt(r))throw new qe({address:r});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>G)throw new Ke({maxFeePerGas:a})}(e);const u=vt(p),d=[x(n),r?x(r):"0x",y?x(y):"0x",a?x(a):"0x",s??"0x",o?x(o):"0x",i??"0x",u,...kt(e,t)];return X(["0x01",te(d)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new Ne;for(const e of t){const t=f(e),n=U(ht(e,0,1));if(32!==t)throw new Re({hash:e,size:t});if(1!==n)throw new He({hash:e,version:n})}}It(e)}(e);let d=e.blobVersionedHashes,c=e.sidecars;if(e.blobs&&(void 0===d||void 0===c)){const t="string"==typeof e.blobs[0]?e.blobs:e.blobs.map((e=>M(e))),n=e.kzg,a=ue({blobs:t,kzg:n});if(void 0===d&&(d=function(e){const{commitments:t,version:n}=e,a=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(De({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=ze({blobs:t,commitments:a,proofs:le({blobs:t,commitments:a,kzg:n})})}}const m=vt(u),T=[x(n),i?x(i):"0x",y?x(y):"0x",p?x(p):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",l??"0x",m,o?x(o):"0x",d??[],...kt(e,t)],b=[],h=[],g=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];b.push(t),h.push(n),g.push(a)}return X(["0x03",te(c?[T,b,h,g]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{chainId:t}=e,n=e.address;if(!bt(n))throw new qe({address:n});if(t<0)throw new Ve({chainId:t})}It(e)}(e);const d=vt(u),c=function(e){if(!e||0===e.length)return[];const t=[];for(const n of e){const{chainId:e,nonce:a,...i}=n,r=n.address;t.push([e?x(e):"0x",r,a?x(a):"0x",...kt({},i)])}return t}(n);return X(["0x04",te([x(a),r?x(r):"0x",y?x(y):"0x",p?x(p):"0x",i?x(i):"0x",s??"0x",o?x(o):"0x",l??"0x",d,c,...kt(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:o,gasPrice:p}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!bt(r))throw new qe({address:r});if(void 0!==t&&t<=0)throw new Ve({chainId:t});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>G)throw new Ke({maxFeePerGas:a})}(e);let y=[r?x(r):"0x",p?x(p):"0x",a?x(a):"0x",s??"0x",o?x(o):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new oe({v:t.v});return e})(),a=b(t.r),i=b(t.s);y=[...y,x(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,x(n),"0x","0x"]);return te(y)}(e,t)}function kt(e,t){const n=t??e,{v:a,yParity:i}=n;if(void 0===n.r)return[];if(void 0===n.s)return[];if(void 0===a&&void 0===i)return[];const r=b(n.r),s=b(n.s);return["number"==typeof i?i?x(1):"0x":0n===a?"0x":1n===a?x(1):27n===a?"0x":x(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const Mt={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function Pt(e,t){return function(e){return"deposit"===e.type||void 0!==e.sourceHash}(e)?function(e){!function(e){const{from:t,to:n}=e;if(t&&!bt(t))throw new qe({address:t});if(n&&!bt(n))throw new qe({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:o,value:p}=e;return X(["0x7e",te([t,a,o??"0x",s?x(s):"0x",p?x(p):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):xt(e,t)}const _t={contracts:Mt,formatters:{block:V({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=H(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?L(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}));return{transactions:t,stateRoot:e.stateRoot}}}),transaction:z({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?L(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:$({format:e=>({l1GasPrice:e.l1GasPrice?L(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?L(e.l1GasUsed):null,l1Fee:e.l1Fee?L(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:Pt}},Ft=1,At=o({..._t,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{..._t.contracts,disputeGameFactory:{[Ft]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Ft]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Ft]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Ft]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),Ct=11155111,St=o({..._t,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{..._t.contracts,disputeGameFactory:{[Ct]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[Ct]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[Ct]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[Ct]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:Ct});o({id:53456,name:"BirdLayer",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.birdlayer.xyz","https://rpc1.birdlayer.xyz"],webSocket:["wss://rpc.birdlayer.xyz/ws"]}},blockExplorers:{default:{name:"BirdLayer Explorer",url:"https://scan.birdlayer.xyz"}}});const Et=1;o({..._t,id:60808,name:"BOB",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.gobob.xyz"],webSocket:["wss://rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Explorer",url:"https://explorer.gobob.xyz"}},contracts:{..._t.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[Et]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[Et]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Dt=11155111;o({..._t,id:808813,name:"BOB Sepolia",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://bob-sepolia.rpc.gobob.xyz"],webSocket:["wss://bob-sepolia.rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Sepolia Explorer",url:"https://bob-sepolia.explorer.gobob.xyz"}},contracts:{..._t.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Dt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Dt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Dt});o({id:44,name:"Crab Network",nativeCurrency:{decimals:18,name:"Crab Network Native Token",symbol:"CRAB"},rpcUrls:{default:{http:["https://crab-rpc.darwinia.network"],webSocket:["wss://crab-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://crab-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:3032593}}}),o({id:66665,name:"Creator",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.creatorchain.io"]}},blockExplorers:{default:{name:"Explorer",url:"https://explorer.creatorchain.io"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11"}},testnet:!0}),o({id:53457,name:"DODOchain Testnet",nativeCurrency:{decimals:18,name:"DODO",symbol:"DODO"},rpcUrls:{default:{http:["https://dodochain-testnet.alt.technology"],webSocket:["wss://dodochain-testnet.alt.technology/ws"]}},blockExplorers:{default:{name:"DODOchain Testnet (Sepolia) Explorer",url:"https://testnet-scan.dodochain.com"}},testnet:!0});o({..._t,id:3397901,network:"funkiSepolia",name:"Funki Sepolia Sandbox",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://funki-testnet.alt.technology"]}},blockExplorers:{default:{name:"Funki Sepolia Sandbox Explorer",url:"https://sepolia-sandbox.funkichain.com/"}},testnet:!0,contracts:{..._t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const Ot=17e3;o({..._t,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:Ot,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.garnetchain.com"],webSocket:["wss://rpc.garnetchain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.garnetchain.com"}},contracts:{..._t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Ot]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[Ot]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[Ot]:{address:"0x09bcDd311FE398F80a78BE37E489f5D440DB95DE",blockCreated:1274684}}}});o({id:701,name:"Koi Network",nativeCurrency:{decimals:18,name:"Koi Network Native Token",symbol:"KRING"},rpcUrls:{default:{http:["https://koi-rpc.darwinia.network"],webSocket:["wss://koi-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://koi-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:180001}},testnet:!0});class Bt extends l{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join("\n"),{name:"AbiEncodingArrayLengthMismatchError"})}}class Lt extends l{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${f(t)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class Ut extends l{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join("\n"),{name:"AbiEncodingLengthMismatchError"})}}class Nt extends l{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:"BytesSizeMismatchError"})}}class Rt extends l{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiEncodingType"})}}class Ht extends l{constructor(e){super([`Value "${e}" is not a valid array.`].join("\n"),{name:"InvalidArrayError"})}}const zt=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,qt=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function Vt(e,t){if(e.length!==t.length)throw new Ut({expectedLength:e.length,givenLength:t.length});const n=function({params:e,values:t}){const n=[];for(let a=0;a<e.length;a++)n.push(Kt({param:e[a],value:t[a]}));return n}({params:e,values:t}),a=Wt(n);return 0===a.length?"0x":a}function Kt({param:e,value:t}){const n=function(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}(e.type);if(n){const[a,i]=n;return function(e,{length:t,param:n}){const a=null===t;if(!Array.isArray(e))throw new Ht(e);if(!a&&e.length!==t)throw new Bt({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let i=!1;const r=[];for(let t=0;t<e.length;t++){const a=Kt({param:n,value:e[t]});a.dynamic&&(i=!0),r.push(a)}if(a||i){const e=Wt(r);if(a){const t=P(r.length,{size:32});return{dynamic:!0,encoded:r.length>0?Z([t,e]):t}}if(i)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Z(r.map((({encoded:e})=>e)))}}(t,{length:a,param:{...e,type:i}})}if("tuple"===e.type)return function(e,{param:t}){let n=!1;const a=[];for(let i=0;i<t.components.length;i++){const r=t.components[i],s=Kt({param:r,value:e[Array.isArray(e)?i:r.name]});a.push(s),s.dynamic&&(n=!0)}return{dynamic:n,encoded:n?Wt(a):Z(a.map((({encoded:e})=>e)))}}(t,{param:e});if("address"===e.type)return function(e){if(!bt(e))throw new qe({address:e});return{dynamic:!1,encoded:I(e.toLowerCase())}}(t);if("bool"===e.type)return function(e){if("boolean"!=typeof e)throw new l(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:I(k(e))}}(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const n=e.type.startsWith("int"),[,,a="256"]=qt.exec(e.type)??[];return function(e,{signed:t,size:n=256}){if("number"==typeof n){const a=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-a-1n:0n;if(e>a||e<i)throw new c({max:a.toString(),min:i.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:P(e,{size:32,signed:t})}}(t,{signed:n,size:Number(a)})}if(e.type.startsWith("bytes"))return function(e,{param:t}){const[,n]=t.type.split("bytes"),a=f(e);if(!n){let t=e;return a%32!=0&&(t=I(t,{dir:"right",size:32*Math.ceil((e.length-2)/2/32)})),{dynamic:!0,encoded:Z([I(P(a,{size:32})),t])}}if(a!==Number.parseInt(n))throw new Lt({expectedSize:Number.parseInt(n),value:e});return{dynamic:!1,encoded:I(e,{dir:"right"})}}(t,{param:e});if("string"===e.type)return function(e){const t=F(e),n=Math.ceil(f(t)/32),a=[];for(let e=0;e<n;e++)a.push(I(ht(t,32*e,32*(e+1)),{dir:"right"}));return{dynamic:!0,encoded:Z([I(P(f(t),{size:32})),...a])}}(t);throw new Rt(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Wt(e){let t=0;for(let n=0;n<e.length;n++){const{dynamic:a,encoded:i}=e[n];t+=a?32:f(i)}const n=[],a=[];let i=0;for(let r=0;r<e.length;r++){const{dynamic:s,encoded:o}=e[r];s?(n.push(P(t+i,{size:32})),a.push(o),i+=f(o)):n.push(o)}return Z([...n,...a])}const $t=11155111;o({..._t,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:$t,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.pyropechain.com"],webSocket:["wss://rpc.pyropechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://pyrope.blockscout.com"}},contracts:{..._t.contracts,l1StandardBridge:{[$t]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const Gt=1;o({..._t,name:"Redstone",id:690,sourceId:1,nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.redstonechain.com"],webSocket:["wss://rpc.redstonechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.redstone.xyz"}},contracts:{..._t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Gt]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[Gt]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[Gt]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const Zt={[At.id]:"0xe52dE1801C10cF709cc8e62d43D783AFe984b510",[St.id]:"0xf0Fd8Bb98c050607d999D6fFF9C617edD6673b75"},Xt={[At.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[St.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},jt={[At.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[St.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},Qt={[At.id]:"0x23321f11a6d44fd1ab790044fdfde5758c902fdc",[St.id]:"0x4e7cb1e6800a7b297b38bddcecaf9ca5b6616fdc"},Yt={[At.id]:"0x8DC3b85e1dc1C846ebf3971179a751896842e5dC",[St.id]:"0xB4A535B9D35851972736495CC52FBfDaCF32e5dc"},Jt={[At.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[St.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},en={[At.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[St.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},tn={[At.id]:"0x516af52d0c629b5e378da4dc64ecb0744ce10109",[St.id]:"0xe2ef58a54ee79dac0D4A130ea58b340124DF9438"},nn={[At.id]:"0xc5B2E8F197407263F4B62a35C71bFc394ecF95D5",[St.id]:"0x67Ee6C83956a75f67bD3Fc8Ca4080D95a145c7C9"},an={[At.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[St.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},rn={[At.id]:"0x4dc442403e8c758425b93C59Dc737da522f32640",[St.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},sn={[At.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[St.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},on={[At.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[St.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},pn={[At.id]:"0x2154c604df568A5285284D1c4918DC98C39240df",[St.id]:"0xcfF222eA42E43F46A98755db237E4c9C2CA9B772"},yn={[At.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[St.id]:"0xD2F3C6185e06925dCBE794C6574315b2202E9CcD"},un={[At.id]:"0x712fa8ddc7347b4b6b029aa21710f365cd02d898",[St.id]:"0x17E02501dE3e420347e7C5fCAe3AD787C5aea690"},ln={[At.id]:"0x6baa4ec493a9698dc7388c0f290e29ea3d149f99",[St.id]:"0xf72dcdee692c188de6b14c6213e849982e04069b"},dn={[At.id]:"0xB5dD2Fbca9b746a56cF9e5e2ADaBf8BEF0BAdBEA",[St.id]:"0x8Ea4074c38cA7a596C740DD9E9D7122ea8E78c3c"},cn={[At.id]:"0xb47af90ae61bc916ea4b4bacffae4570e7435842",[St.id]:"0xb4955a396ef07c124a59164c30d63e96a103a98b"},mn={[At.id]:"0xf6ddfcb093be0cd0c015590cb6c5127d9ff2a20b",[St.id]:"0x2874f9a30348acaaad55d74b0bec9c18f04b471a"},Tn={[At.id]:"0xedd66b080b8e9425c39d349a3fb69f480580f993",[St.id]:"0x6428b5C4da36ecB070aBdcB5E1939244A3cC7fb5"},fn={[At.id]:"0x06a089fa231aca48d2aa77365123ad9aca43d3a4",[St.id]:"0x6582d2bc6a7eba3b40bdf46b3868fc7ec2ff96ec"},bn={[At.id]:"0x7a04367563a65db574d6b7d084fdbcf4a570c5a6",[St.id]:"0xfde5b79e3e2814edd5f91e8694ae400954d9cfaa"},hn={[At.id]:"0x656047fd43d2c3a121f2ef859d7171d7dd59f8b9",[St.id]:"0x05a5763e9199b88bb591c6b112d0424b2cd7a99e"},gn={[At.id]:"0x4dfc76A31A2a0110739611683a8b6C5201480fa1",[St.id]:"0x551aeD820CAfaca2f9cD1C637AAc076D05a03AC2"},wn={[At.id]:"0x828B58B2B2df8ff3221Fbe2b07e75a56a84493Cc",[St.id]:"0xe8691E8f576A98c41EBB5E984207d4F51386621f"},In={[At.id]:"0x72e6f7948b1B1A343B477F39aAbd2E35E6D27dde",[St.id]:"0x73E27908b7d35A9251a54799A8ef4C17e4ED9FF9"},vn={[At.id]:"0xBD39c7Be6D98BD1a3e4Ad482baF99d738947fE55",[St.id]:"0xd3d9047CaBE3346C70b510435866565176e8CE12"},xn={[At.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[St.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},kn={[At.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[St.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Mn={[At.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[St.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},Pn={[At.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[St.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},_n={[At.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[St.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},Fn={[At.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[St.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},An={[At.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[St.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Cn={[At.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[St.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},Sn={[At.id]:"0x7C5f5A4bBd8fD63184577525326123B519429bDc",[St.id]:"0x4B2C77d209D3405F41a037Ec6c77F7F5b8e2ca80"},En={[At.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[St.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},Dn=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"premineInfo",outputs:[{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],On=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let Bn=0;const Ln=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=On[Bn];return Bn=(Bn+1)%On.length,`${n}${t}`}return e},Un=async e=>{try{const t={pinataOptions:{cidVersion:1},pinataMetadata:{name:e.name||null,keyvalues:e.metadata||{}},pinataContent:e.json},n=await s.default.post("https://api.pinata.cloud/pinning/pinJSONToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"application/json"}});return{IpfsHash:n.data.IpfsHash,PinSize:n.data.PinSize,Timestamp:n.data.Timestamp,isDuplicate:n.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload JSON to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Nn=async e=>{try{const t=new FormData,n=e.base64Image.split(",")[1]||e.base64Image,a=atob(n),i=[];for(let e=0;e<a.length;e+=1024){const t=a.slice(e,e+1024),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const r=new Uint8Array(n);i.push(r)}let r="image/png";e.base64Image.startsWith("data:")&&(r=e.base64Image.split(";")[0].split(":")[1]);const o=new Blob(i,{type:r}),p=e.name||`image.${r.split("/")[1]}`,y=new File([o],p,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:d.data.IpfsHash,PinSize:d.data.PinSize,Timestamp:d.data.Timestamp,isDuplicate:d.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Rn=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-image",{base64Image:e},{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},Hn=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-metadata",e,{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload metadata to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},zn=async(e,t,n)=>{let a,i;if(n.pinataConfig){a=(await Nn({pinataConfig:n.pinataConfig,base64Image:n.metadata.base64Image})).IpfsHash;const t={name:e,description:n.metadata.description,image:`ipfs://${a}`,external_link:n.metadata.websiteUrl||"",collaborators:[],discordUrl:n.metadata.discordUrl||"",twitterUrl:n.metadata.twitterUrl||"",telegramUrl:n.metadata.telegramUrl||""};i=(await Un({pinataConfig:n.pinataConfig,json:t})).IpfsHash}else{a=(await Rn(n.metadata.base64Image)).ipfsHash;const r={name:e,symbol:t,description:n.metadata.description,imageIpfs:a,websiteUrl:n.metadata.websiteUrl,discordUrl:n.metadata.discordUrl,twitterUrl:n.metadata.twitterUrl,telegramUrl:n.metadata.telegramUrl};i=(await Hn(r)).ipfsHash}return`ipfs://${i}`},qn=[{inputs:[{components:[{internalType:"address",name:"permit2",type:"address"},{internalType:"address",name:"weth9",type:"address"},{internalType:"address",name:"v2Factory",type:"address"},{internalType:"address",name:"v3Factory",type:"address"},{internalType:"bytes32",name:"pairInitCodeHash",type:"bytes32"},{internalType:"bytes32",name:"poolInitCodeHash",type:"bytes32"},{internalType:"address",name:"v4PoolManager",type:"address"},{internalType:"address",name:"v3NFTPositionManager",type:"address"},{internalType:"address",name:"v4PositionManager",type:"address"}],internalType:"struct RouterParameters",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BalanceTooLow",type:"error"},{inputs:[],name:"ContractLocked",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotNegative",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotPositive",type:"error"},{inputs:[],name:"ETHNotAccepted",type:"error"},{inputs:[{internalType:"uint256",name:"commandIndex",type:"uint256"},{internalType:"bytes",name:"message",type:"bytes"}],name:"ExecutionFailed",type:"error"},{inputs:[],name:"FromAddressIsNotOwner",type:"error"},{inputs:[],name:"InputLengthMismatch",type:"error"},{inputs:[],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InsufficientETH",type:"error"},{inputs:[],name:"InsufficientToken",type:"error"},{inputs:[{internalType:"bytes4",name:"action",type:"bytes4"}],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidBips",type:"error"},{inputs:[{internalType:"uint256",name:"commandType",type:"uint256"}],name:"InvalidCommandType",type:"error"},{inputs:[],name:"InvalidEthSender",type:"error"},{inputs:[],name:"InvalidPath",type:"error"},{inputs:[],name:"InvalidReserves",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"NotAuthorizedForToken",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"OnlyMintAllowed",type:"error"},{inputs:[],name:"SliceOutOfBounds",type:"error"},{inputs:[],name:"TransactionDeadlinePassed",type:"error"},{inputs:[],name:"UnsafeCast",type:"error"},{inputs:[{internalType:"uint256",name:"action",type:"uint256"}],name:"UnsupportedAction",type:"error"},{inputs:[],name:"V2InvalidPath",type:"error"},{inputs:[],name:"V2TooLittleReceived",type:"error"},{inputs:[],name:"V2TooMuchRequested",type:"error"},{inputs:[],name:"V3InvalidAmountOut",type:"error"},{inputs:[],name:"V3InvalidCaller",type:"error"},{inputs:[],name:"V3InvalidSwap",type:"error"},{inputs:[],name:"V3TooLittleReceived",type:"error"},{inputs:[],name:"V3TooMuchRequested",type:"error"},{inputs:[{internalType:"uint256",name:"minAmountOutReceived",type:"uint256"},{internalType:"uint256",name:"amountReceived",type:"uint256"}],name:"V4TooLittleReceived",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmountInRequested",type:"uint256"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"V4TooMuchRequested",type:"error"},{inputs:[],name:"V3_POSITION_MANAGER",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"V4_POSITION_MANAGER",outputs:[{internalType:"contract IPositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"msgSender",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",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:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],Vn=[{type:"tuple",components:[{type:"address",name:"currencyIn"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountIn"},{type:"uint128",name:"amountOutMinimum"}]}],Kn=[{type:"tuple",components:[{type:"address",name:"currencyOut"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountOut"},{type:"uint128",name:"amountInMaximum"}]}],Wn="07",$n="09",Gn="0c",Zn="0f",Xn="10",jn="04",Qn="0a",Yn=({amount:e,slippage:t,swapType:a})=>{if(null==e)return 0n;return(e<0n?-e:e)*("EXACT_IN"===a?BigInt(1e18)-n.parseEther(t):BigInt(1e18)+n.parseEther(t))/BigInt(1e18)},Jn=n.zeroAddress,ea=e=>{const t=xn[e.chainId],a=kn[e.chainId],i=e.positionManagerAddress,r="0x"+("EXACT_IN"===e.swapType?Wn:$n)+Gn+Zn;let s;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==Jn&&e.intermediatePoolKey.currency1!==Jn)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=e.intermediatePoolKey?e.intermediatePoolKey.currency0===Jn?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:Jn;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");const r=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(Vn,[{currencyIn:o,path:e.intermediatePoolKey?[{intermediateCurrency:Jn,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData},...r]:r,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");const r=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:Jn},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(Kn,[{currencyOut:e.memecoin,path:e.intermediatePoolKey?[{fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hookData:e.intermediatePoolKey.hookData,hooks:e.intermediatePoolKey.hooks,intermediateCurrency:o},...r]:r,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[o,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,y]]);if(e.intermediatePoolKey&&e.signature&&e.permitSingle){const t="0x"+Qn+Xn,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),u];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const t="0x"+Xn+jn,a=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[Jn,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}},ta=e=>{const t=xn[e.chainId],a=kn[e.chainId],i=e.positionManagerAddress,r="0x"+Wn+Gn+Zn;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==Jn&&e.intermediatePoolKey.currency1!==Jn)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const s=e.intermediatePoolKey?e.intermediatePoolKey.currency0===Jn?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:Jn,o=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:Jn,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],p=n.encodeAbiParameters(Vn,[{currencyIn:e.memecoin,path:e.intermediatePoolKey?[...o,{intermediateCurrency:s,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData}]:o,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),u=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[s,e.amountOutMin]),l=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[p,y,u]]);if(e.signature&&e.permitSingle){const t="0x"+Qn+Xn,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),l];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+Xn,t=[l];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}},na=[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}],aa={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:na},ia=({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Cn[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:_n[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:aa,message:s},permitSingle:s}};function ra(e,t){const{flAmount0:n,flAmount1:a,flFee0:i,flFee1:r,ispAmount0:s,ispAmount1:o,ispFee0:p,ispFee1:y,uniAmount0:u,uniAmount1:l,uniFee0:d,uniFee1:c}=e,m=n+s+u,T=a+o+l,f=i+p+d,b=r+y+c;let h,g;t?(g=m<0?"BUY":"SELL",h=f<0):(g=T<0?"BUY":"SELL",h=b<0);const w=m<0?-m:m,I=T<0?-T:T,v=f<0?-f:f,x=b<0?-b:b,k={isInFLETH:h,amount:t?h?v:x:h?x:v};return"BUY"===g?{type:g,delta:{coinsBought:t?I-(k.isInFLETH?0n:k.amount):w-(k.isInFLETH?0n:k.amount),flETHSold:t?w-(k.isInFLETH?k.amount:0n):I-(k.isInFLETH?k.amount:0n),fees:k}}:{type:g,delta:{coinsSold:t?I-(k.isInFLETH?0n:k.amount):w-(k.isInFLETH?0n:k.amount),flETHBought:t?w-(k.isInFLETH?k.amount:0n):I-(k.isInFLETH?k.amount:0n),fees:k}}}const sa=[{inputs:[{internalType:"address",name:"_protocolOwner",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_ethToken",type:"address"},{internalType:"address",name:"_usdcToken",type:"address"},{internalType:"address",name:"_flaunchFeeExemption",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[{internalType:"uint256",name:"_usdcMarketCap",type:"uint256"},{internalType:"uint256",name:"_usdcMarketCapMinimum",type:"uint256"}],name:"MarketCapTooSmall",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_flaunchFeeThreshold",type:"uint256"}],name:"FlaunchFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"MINIMUM_USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"ethToken",outputs:[{internalType:"Currency",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunchFeeExemption",outputs:[{internalType:"contract FlaunchFeeExemption",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunchFeeThreshold",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bool",name:"_flipped",type:"bool"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getSqrtPriceX96",outputs:[{internalType:"uint160",name:"sqrtPriceX96_",type:"uint160"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_flaunchFeeThreshold",type:"uint256"}],name:"setFlaunchFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"setPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"usdcToken",outputs:[{internalType:"Currency",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"usdcToken0",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class oa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:sa,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}getSqrtPriceX96(e){return this.contract.read("getSqrtPriceX96",{_flipped:!e.isFLETHZero,_initialPriceParams:e.initialPriceParams,0:n.zeroAddress})}}class pa{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Dn,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}creatorBalance(e){return this.contract.read("balances",{_recipient:e})}async getFlaunchingFee(e){const t=new oa(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class ya extends pa{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,initialMarketCapUSD:r,creator:s,creatorFeeAllocationPercent:o,flaunchAt:p}){const y=n.parseUnits(r.toString(),6),u=n.encodeAbiParameters([{type:"uint256"}],[y]),l=BigInt(100*i),d=100*o;let c=n.zeroAddress;this.drift.adapter.getSignerAddress&&(c=await this.drift.adapter.getSignerAddress());const m=await this.getFlaunchingFee({sender:c,initialPriceParams:u,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*l/10000n,premineAmount:0n,creator:s,creatorFeeAllocation:d,flaunchAt:p??0n,initialPriceParams:u,feeCalculatorParams:"0x"}},{value:m,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s,metadata:o,pinataConfig:p}){const y=await zn(e,t,{metadata:o,pinataConfig:p});return this.flaunch({name:e,symbol:t,tokenUri:y,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s})}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const ua=e=>n.hexToBigInt(e),la=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),da=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyUnlocked",type:"error"},{inputs:[{internalType:"address",name:"currency0",type:"address"},{internalType:"address",name:"currency1",type:"address"}],name:"CurrenciesOutOfOrderOrEqual",type:"error"},{inputs:[],name:"CurrencyNotSettled",type:"error"},{inputs:[],name:"DelegateCallNotAllowed",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"ManagerLocked",type:"error"},{inputs:[],name:"MustClearExactPositiveDelta",type:"error"},{inputs:[],name:"NonzeroNativeValue",type:"error"},{inputs:[],name:"PoolNotInitialized",type:"error"},{inputs:[],name:"ProtocolFeeCurrencySynced",type:"error"},{inputs:[{internalType:"uint24",name:"fee",type:"uint24"}],name:"ProtocolFeeTooLarge",type:"error"},{inputs:[],name:"SwapAmountCannotBeZero",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooLarge",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooSmall",type:"error"},{inputs:[],name:"UnauthorizedDynamicLPFeeUpdate",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Donate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"Currency",name:"currency0",type:"address"},{indexed:!0,internalType:"Currency",name:"currency1",type:"address"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"},{indexed:!1,internalType:"int24",name:"tickSpacing",type:"int24"},{indexed:!1,internalType:"contract IHooks",name:"hooks",type:"address"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"int256",name:"liquidityDelta",type:"int256"},{indexed:!1,internalType:"bytes32",name:"salt",type:"bytes32"}],name:"ModifyLiquidity",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:"OperatorSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"protocolFeeController",type:"address"}],name:"ProtocolFeeControllerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"protocolFee",type:"uint24"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"}],name:"Swap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"caller",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"allowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"clear",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"collectProtocolFees",outputs:[{internalType:"uint256",name:"amountCollected",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"donate",outputs:[{internalType:"BalanceDelta",name:"delta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"extsload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"startSlot",type:"bytes32"},{internalType:"uint256",name:"nSlots",type:"uint256"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"exttload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"exttload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[{internalType:"int24",name:"tick",type:"int24"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isOperator",outputs:[{internalType:"bool",name:"isOperator",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"modifyLiquidity",outputs:[{internalType:"BalanceDelta",name:"callerDelta",type:"int256"},{internalType:"BalanceDelta",name:"feesAccrued",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeController",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"protocolFeesAccrued",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setOperator",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newProtocolFee",type:"uint24"}],name:"setProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"controller",type:"address"}],name:"setProtocolFeeController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"settle",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"}],name:"settleFor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"swap",outputs:[{internalType:"BalanceDelta",name:"swapDelta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"sync",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"take",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlock",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newDynamicLPFee",type:"uint24"}],name:"updateDynamicLPFee",outputs:[],stateMutability:"nonpayable",type:"function"}];class ca{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:da,address:e})}poolStateSlot({poolId:e}){const t=la(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,o=BigInt("0xFFFFFF"),p=Number(s&o),y=p>8388607?p-16777216:p,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),o=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),p=this.poolStateSlot({poolId:e}),y=la(ua(p)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[o,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const ma=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getFeeGrowthGlobals",outputs:[{internalType:"uint256",name:"feeGrowthGlobal0",type:"uint256"},{internalType:"uint256",name:"feeGrowthGlobal1",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"getFeeGrowthInside",outputs:[{internalType:"uint256",name:"feeGrowthInside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"bytes32",name:"salt",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getSlot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint24",name:"protocolFee",type:"uint24"},{internalType:"uint24",name:"lpFee",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int16",name:"tick",type:"int16"}],name:"getTickBitmap",outputs:[{internalType:"uint256",name:"tickBitmap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickFeeGrowthOutside",outputs:[{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickInfo",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"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickLiquidity",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Ta{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ma,address:e})}poolSlot0({poolId:e}){return this.contract.read("getSlot0",{poolId:e})}positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"});return this.contract.read("getPositionInfo",{poolId:e,owner:t,tickLower:a,tickUpper:i,salt:s})}getTickLiquidity({poolId:e,tick:t}){return this.contract.read("getTickLiquidity",{poolId:e,tick:t})}}const fa=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",type:"event"},{inputs:[],name:"FAIR_LAUNCH_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];class ba{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:fa,address:e})}fairLaunchDuration({poolId:e}){return 1800}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const ha=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ga{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ha,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const wa=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"StaleTimeWindowUpdated",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"checkStalePosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",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:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"lastPoolTransaction",outputs:[{internalType:"uint256",name:"_timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"setStaleTimeWindow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"staleTimeWindow",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Ia{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:wa,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const va=[{type:"constructor",inputs:[{name:"_positionManager",type:"address",internalType:"contract PositionManager"},{name:"_flaunchContract",type:"address",internalType:"contract Flaunch"},{name:"_flETH",type:"address",internalType:"contract IFLETH"},{name:"_poolSwap",type:"address",internalType:"contract PoolSwap"},{name:"_treasuryManagerFactory",type:"address",internalType:"contract ITreasuryManagerFactory"},{name:"_merkleAirdrop",type:"address",internalType:"contract IMerkleAirdrop"},{name:"_whitelistFairLaunch",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"calculateFee",inputs:[{name:"_premineAmount",type:"uint256",internalType:"uint256"},{name:"_slippage",type:"uint256",internalType:"uint256"},{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"ethRequired_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"},{name:"_permissions",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"flETH",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFLETH"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"},{name:"_whitelistParams",type:"tuple",internalType:"struct FlaunchZap.WhitelistParams",components:[{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"},{name:"maxTokens",type:"uint256",internalType:"uint256"}]},{name:"_airdropParams",type:"tuple",internalType:"struct FlaunchZap.AirdropParams",components:[{name:"airdropIndex",type:"uint256",internalType:"uint256"},{name:"airdropAmount",type:"uint256",internalType:"uint256"},{name:"airdropEndTime",type:"uint256",internalType:"uint256"},{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"}]},{name:"_treasuryManagerParams",type:"tuple",internalType:"struct FlaunchZap.TreasuryManagerParams",components:[{name:"manager",type:"address",internalType:"address"},{name:"permissions",type:"address",internalType:"address"},{name:"initializeData",type:"bytes",internalType:"bytes"},{name:"depositData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"deployedManager_",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunchContract",inputs:[],outputs:[{name:"",type:"address",internalType:"contract Flaunch"}],stateMutability:"view"},{type:"function",name:"merkleAirdrop",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMerkleAirdrop"}],stateMutability:"view"},{type:"function",name:"poolSwap",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PoolSwap"}],stateMutability:"view"},{type:"function",name:"positionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PositionManager"}],stateMutability:"view"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITreasuryManagerFactory"}],stateMutability:"view"},{type:"function",name:"whitelistFairLaunch",inputs:[],outputs:[{name:"",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"view"},{type:"error",name:"CreatorCannotBeZero",inputs:[]},{type:"error",name:"InsufficientMemecoinsForAirdrop",inputs:[]}];var xa,ka,Ma,Pa;function _a(t,a){switch(t){case e.Permissions.CLOSED:return gn[a];case e.Permissions.WHITELISTED:return wn[a];case e.Permissions.OPEN:default:return n.zeroAddress}}e.FlaunchVersion=void 0,(xa=e.FlaunchVersion||(e.FlaunchVersion={})).V1="V1",xa.V1_1="V1_1",xa.V1_2="V1_2",xa.ANY="ANY",e.Verifier=void 0,(ka=e.Verifier||(e.Verifier={})).CLANKER="clanker",ka.DOPPLER="doppler",ka.VIRTUALS="virtuals",ka.WHITELIST="whitelist",ka.ZORA="zora",e.LiquidityMode=void 0,(Ma=e.LiquidityMode||(e.LiquidityMode={})).FULL_RANGE="full-range",Ma.CONCENTRATED="concentrated",e.Permissions=void 0,(Pa=e.Permissions||(e.Permissions={})).OPEN="open",Pa.CLOSED="closed",Pa.WHITELISTED="whitelisted";const Fa=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"contract BidWall",name:"bidWall",type:"address"},{internalType:"contract FairLaunch",name:"fairLaunch",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_unsoldSupply",type:"uint256"}],name:"FairLaunchBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"BURN_ADDRESS",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Aa{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Fa,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new oa(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}class Ca extends Aa{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:o,creatorFeeAllocationPercent:p,flaunchAt:y}){const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*p;let m=n.zeroAddress;this.drift.adapter.getSignerAddress&&(m=await this.drift.adapter.getSignerAddress());const T=await this.getFlaunchingFee({sender:m,initialPriceParams:l,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*d/10000n,fairLaunchDuration:r,premineAmount:0n,creator:o,creatorFeeAllocation:c,flaunchAt:y??0n,initialPriceParams:l,feeCalculatorParams:"0x"}},{value:T,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o,metadata:p,pinataConfig:y}){const u=await zn(e,t,{metadata:p,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o})}}class Sa{constructor(e,n,a=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.chainId=e,this.drift=a,!n)throw new Error("Address is required");this.contract=a.contract({abi:va,address:n}),this.readPositionManagerV1_1=new Aa(jt[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return Yn({amount:t,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async getFlaunchingFee(e){const t=new oa(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}ethRequiredToFlaunch(e){return this.contract.read("calculateFee",{_premineAmount:e.premineAmount??0n,_slippage:e.slippagePercent?BigInt(100*e.slippagePercent):0n,_initialPriceParams:e.initialPriceParams})}}class Ea extends Sa{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(t){const a=n.parseUnits(t.initialMarketCapUSD.toString(),6),i=n.encodeAbiParameters([{type:"uint256"}],[a]),r=BigInt(100*t.fairLaunchPercent),s=100*t.creatorFeeAllocationPercent,o=await this.ethRequiredToFlaunch({premineAmount:t.premineAmount??0n,initialPriceParams:i,slippagePercent:5}),p=t.treasuryManagerParams?{manager:t.treasuryManagerParams.manager??n.zeroAddress,permissions:t.treasuryManagerParams.permissions??e.Permissions.OPEN,initializeData:t.treasuryManagerParams.initializeData??"0x",depositData:t.treasuryManagerParams.depositData??"0x"}:{manager:n.zeroAddress,permissions:e.Permissions.OPEN,initializeData:"0x",depositData:"0x"},y=t.trustedSignerSettings?n.encodeAbiParameters([{type:"bool",name:"enabled"},{type:"uint256",name:"walletCap"},{type:"uint256",name:"txCap"}],[t.trustedSignerSettings.enabled,t.trustedSignerSettings.walletCap??0n,t.trustedSignerSettings.txCap??0n]):"0x",u=t.trustedSignerSettings?.enabled?n.encodeAbiParameters([{type:"address",name:"referrer"},{type:"tuple",components:[{type:"uint256",name:"deadline"},{type:"bytes",name:"signature"}]}],[n.zeroAddress,{deadline:BigInt(t.trustedSignerSettings.premineSignedMessage?.deadline??0),signature:t.trustedSignerSettings.premineSignedMessage?.signature??"0x"}]):"0x";return this.contract.write("flaunch",{_flaunchParams:{name:t.name,symbol:t.symbol,tokenUri:t.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*r/10000n,fairLaunchDuration:BigInt(t.fairLaunchDuration),premineAmount:t.premineAmount??0n,creator:t.creator,creatorFeeAllocation:s,flaunchAt:t.flaunchAt??0n,initialPriceParams:i,feeCalculatorParams:y},_trustedFeeSigner:t.trustedSignerSettings?.trustedFeeSigner??n.zeroAddress,_premineSwapHookData:u,_treasuryManagerParams:{...p,permissions:_a(p.permissions,this.chainId)},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:o})}async flaunchIPFS(e){const t=await zn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(t){return this.flaunch({...t,treasuryManagerParams:{manager:t.revenueManagerInstanceAddress,permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:"0x",depositData:"0x"}})}async flaunchIPFSWithRevenueManager(e){const t=await zn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}async flaunchWithSplitManager(t){const a=10000000n;let i=BigInt(t.creatorSplitPercent)*a/100n;const r=t.splitReceivers.map((e=>({recipient:e.address,share:BigInt(e.percent)*a/100n}))),s=r.reduce(((e,t)=>e+t.share),0n);i+=a-s;const o=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:i,recipientShares:r}]);return this.flaunch({...t,treasuryManagerParams:{manager:ln[this.chainId],permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:o,depositData:"0x"}})}async flaunchIPFSWithSplitManager(e){const t=await zn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithSplitManager({...e,tokenUri:t})}deployRevenueManager(t){const a=_a(t.permissions??e.Permissions.OPEN,this.chainId);return this.contract.write("deployAndInitializeManager",{_managerImplementation:un[this.chainId],_owner:t.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:t.protocolRecipient,protocolFee:BigInt(100*t.protocolFeePercent)}]),_permissions:a})}deployStakingManager(t){const a=_a(t.permissions??e.Permissions.OPEN,this.chainId),i=10000000n,r=dn[this.chainId];if(r===n.zeroAddress)throw new Error(`StakingManager not deployed on chainId: ${this.chainId}`);return this.contract.write("deployAndInitializeManager",{_managerImplementation:r,_owner:t.managerOwner,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"stakingToken"},{type:"uint256",name:"minEscrowDuration"},{type:"uint256",name:"minStakeDuration"},{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"}]}],[{stakingToken:t.stakingToken,minEscrowDuration:t.minEscrowDuration,minStakeDuration:t.minStakeDuration,creatorShare:BigInt(t.creatorSharePercent)*i/100n,ownerShare:BigInt(t.ownerSharePercent)*i/100n}]),_permissions:a})}}const Da=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",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:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",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:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",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:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Oa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Da,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}memecoin(e){return this.contract.read("memecoin",{_tokenId:e})}}const Ba=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotFlaunch",type:"error"},{inputs:[],name:"MintAddressIsZero",type:"error"},{inputs:[],name:"Permit2AllowanceIsFixedAtInfinity",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainMint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateVotesChanged",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_name",type:"string"},{indexed:!1,internalType:"string",name:"_symbol",type:"string"}],name:"MetadataUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"CLOCK_MODE",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"burnFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint32",name:"pos",type:"uint32"}],name:"checkpoints",outputs:[{components:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint224",name:"votes",type:"uint224"}],internalType:"struct ERC20VotesUpgradeable.Checkpoint",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"clock",outputs:[{internalType:"uint48",name:"",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[],name:"creator",outputs:[{internalType:"address",name:"creator_",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainBurn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"}],name:"delegate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",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:"delegateBySig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunch",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"getVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"string",name:"tokenUri_",type:"string"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"numCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",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:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"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:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];class La{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ba,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}decimals(){return this.contract.read("decimals")}totalSupply(){return this.contract.read("totalSupply")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}allowance(e,t){return this.contract.read("allowance",{owner:e,spender:t})}}class Ua extends La{constructor(e,n=t.createDrift()){super(e,n)}approve(e,t){return this.contract.write("approve",{spender:e,amount:t})}}const Na=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"NotEnoughLiquidity",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"QuoteSwap",type:"error"},{inputs:[],name:"UnexpectedCallSuccess",type:"error"},{inputs:[{internalType:"bytes",name:"revertData",type:"bytes"}],name:"UnexpectedRevertBytes",type:"error"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactInput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactInputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactOutput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactOutputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"}];class Ra{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:Na,address:n})}async getSellQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const r=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:n.zeroAddress},{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:r}]}})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:o,path:[{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:n.zeroAddress},{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}async getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:o,fee:i.fee,tickSpacing:i.tickSpacing,hookData:i.hookData,hooks:i.hooks},{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId]},{intermediateCurrency:xn[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId]},{intermediateCurrency:xn[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:En[this.chainId].fee,tickSpacing:En[this.chainId].tickSpacing,hooks:En[this.chainId].hooks,hookData:"0x",intermediateCurrency:En[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const Ha=[{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"AllowanceExpired",type:"error"},{inputs:[],name:"ExcessiveInvalidation",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InsufficientAllowance",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"signatureDeadline",type:"uint256"}],name:"SignatureExpired",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"address",name:"spender",type:"address"}],name:"Lockdown",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint48",name:"newNonce",type:"uint48"},{indexed:!1,internalType:"uint48",name:"oldNonce",type:"uint48"}],name:"NonceInvalidation",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"},{indexed:!1,internalType:"uint48",name:"nonce",type:"uint48"}],name:"Permit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"uint256",name:"word",type:"uint256"},{indexed:!1,internalType:"uint256",name:"mask",type:"uint256"}],name:"UnorderedNonceInvalidation",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint48",name:"newNonce",type:"uint48"}],name:"invalidateNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"wordPos",type:"uint256"},{internalType:"uint256",name:"mask",type:"uint256"}],name:"invalidateUnorderedNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"}],internalType:"struct IAllowanceTransfer.TokenSpenderPair[]",name:"approvals",type:"tuple[]"}],name:"lockdown",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"nonceBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails[]",name:"details",type:"tuple[]"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitBatch",name:"permitBatch",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails",name:"details",type:"tuple"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitSingle",name:"permitSingle",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],internalType:"struct IAllowanceTransfer.AllowanceTransferDetails[]",name:"transferDetails",type:"tuple[]"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];class za{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ha,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class qa extends za{constructor(e,n=t.createDrift()){super(e,n)}approve(e){return this.contract.write("approve",e)}}const Va=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"contract BidWall",name:"bidWall",type:"address"},{internalType:"contract FairLaunch",name:"fairLaunch",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_unsoldSupply",type:"uint256"}],name:"FairLaunchBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"BURN_ADDRESS",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Ka{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Va,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new oa(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}const Wa=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"address",name:"bidWall",type:"address"}],internalType:"struct AnyPositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyFlaunched",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotApprovedCreator",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_creator",type:"address"},{indexed:!1,internalType:"bool",name:"_isApproved",type:"bool"}],name:"CreatorApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"},{internalType:"bool",name:"_isApproved",type:"bool"}],name:"approveCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"approvedMemecoinCreator",outputs:[{internalType:"bool",name:"isApproved",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IAnyFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class $a{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Wa,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}async getFlaunchingFee(e){return 0n}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class Ga extends $a{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({memecoin:e,initialMarketCapUSD:t,creator:a,creatorFeeAllocationPercent:i}){const r=n.parseUnits(t.toString(),6),s=n.encodeAbiParameters([{type:"uint256"},{type:"address"}],[r,e]),o=100*i;return this.contract.write("flaunch",{_params:{memecoin:e,creator:a,creatorFeeAllocation:o,initialPriceParams:s,feeCalculatorParams:"0x"}},{onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}}const Za=[{type:"constructor",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"anyPositionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract AnyPositionManager"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"getAllVerifiers",inputs:[],outputs:[{name:"verifiers_",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"},{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"removeVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setAnyPositionManager",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"verifyMemecoin",inputs:[{name:"_memecoin",type:"address",internalType:"address"}],outputs:[{name:"verifier_",type:"address",internalType:"address"}],stateMutability:"view"},{type:"event",name:"AnyPositionManagerSet",inputs:[{name:"_anyPositionManager",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"TokenImported",inputs:[{name:"_memecoin",type:"address",indexed:!0,internalType:"address"},{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierAdded",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierRemoved",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"InvalidMemecoin",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"VerifierAlreadyAdded",inputs:[]},{type:"error",name:"VerifierNotAdded",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}];class Xa{constructor(e,n,a=t.createDrift()){this.chainId=e,this.drift=a,this.contract=a.contract({abi:Za,address:n})}async verifyMemecoin(e){const t=await this.contract.read("verifyMemecoin",{_memecoin:e});return{isValid:t!==n.zeroAddress,verifier:t}}verifierAddress(t){switch(t){case e.Verifier.CLANKER:return mn[this.chainId];case e.Verifier.DOPPLER:return Tn[this.chainId];case e.Verifier.VIRTUALS:return fn[this.chainId];case e.Verifier.WHITELIST:return bn[this.chainId];case e.Verifier.ZORA:return hn[this.chainId];default:throw new Error(`Unknown verifier: ${t}`)}}}class ja extends Xa{constructor(e,n,a=t.createDrift()){super(e,n,a)}async initialize(e){return this.contract.write("initialize",await this.getInitializeParams(e))}async getInitializeParams(e){let t;if("initialMarketCapUSD"in e)t=e.initialMarketCapUSD;else{const a=new La(e.coinAddress,this.drift),i=await a.totalSupply(),r=await a.decimals(),s=parseFloat(n.formatUnits(i,r));t=e.initialPriceUSD*s}const a=n.parseUnits(t.toString(),6),i=100*e.creatorFeeAllocationPercent;let r=e.verifier?this.verifierAddress(e.verifier):await this.contract.read("verifyMemecoin",{_memecoin:e.coinAddress});return{_memecoin:e.coinAddress,_creatorFeeAllocation:i,_initialMarketCap:a,_verifier:r}}}const Qa=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_indexer",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"InvalidRecipient",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"PoolIdNotIndexed",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_recipient",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"allocateFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"indexer",outputs:[{internalType:"contract IndexerSubscriber",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_indexer",type:"address"}],name:"setIndexer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"totalFeesAllocated",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Ya{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Qa,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}}class Ja extends Ya{constructor(e,n=t.createDrift()){super(e,n)}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const ei=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"MismatchedTokensAndLimits",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensAssigned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenIn",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_ethOut",type:"uint256"}],name:"TokensSwapped",type:"event"},{inputs:[{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"}],name:"allocations",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"assignTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"uint160[]",name:"_sqrtPriceX96Limits",type:"uint160[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimAndSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_poolSwap",type:"address"}],name:"setPoolSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];class ti{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ei,address:e})}allocations(e,t){return this.contract.read("allocations",{_user:e,_token:t})}}class ni extends ti{constructor(e,n=t.createDrift()){super(e,n)}claimTokens(e,t){return this.contract.write("claimTokens",{_tokens:e,_recipient:t})}}const ai=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"StaleTimeWindowUpdated",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"checkStalePosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",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:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"lastPoolTransaction",outputs:[{internalType:"uint256",name:"_timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"setStaleTimeWindow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"staleTimeWindow",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ii{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ai,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const ri=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",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"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"_fairLaunchDuration",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{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:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",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"}];class si{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ri,address:e})}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async fairLaunchDuration({poolId:e}){const{startsAt:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return n-t}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const oi=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",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:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",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:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",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:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class pi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:oi,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const yi=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyBridging",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",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:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_newBaseURI",type:"string"}],name:"BaseURIUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinTreasuryImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",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:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_BRIDGING_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingFinalized",outputs:[{internalType:"bool",name:"_finalized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStarted",outputs:[{internalType:"uint256",name:"_startedAt",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"}],name:"setMemecoinImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"setMemecoinTreasuryImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",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:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ui{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:yi,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const li=[{type:"constructor",inputs:[{name:"_protocolOwner",type:"address",internalType:"address"},{name:"_feeEscrow",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"approveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"approvedManagerImplementation",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"_approved",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"deployManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"feeEscrow",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrow"}],stateMutability:"view"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"managerImplementation",inputs:[{name:"_manager",type:"address",internalType:"address"}],outputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"unapproveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"ManagerDeployed",inputs:[{name:"_manager",type:"address",indexed:!0,internalType:"address"},{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationApproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationUnapproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnknownManagerImplemention",inputs:[]}],di={[At.id]:At,[St.id]:St};class ci{constructor(e,n,a=t.createDrift()){if(!n)throw new Error("Address is required");this.contract=a.contract({abi:li,address:n}),this.chainId=e}async getManagerDeployedAddressFromTx(e){const t=n.createPublicClient({chain:di[this.chainId],transport:n.http()}),a=await t.waitForTransactionReceipt({hash:e}),i=n.parseEventLogs({abi:li,eventName:"ManagerDeployed",logs:a.logs}).find((e=>e.address.toLowerCase()===this.contract.address.toLowerCase()));if(!i)throw new Error("ManagerDeployed event not found in transaction logs");return i.args._manager}}class mi extends ci{constructor(e,n,a=t.createDrift()){super(e,n,a)}}const Ti=[{inputs:[{internalType:"address",name:"_treasuryManagerFactory",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"FailedToClaim",type:"error"},{inputs:[],name:"FlaunchContractNotValid",type:"error"},{inputs:[],name:"InvalidClaimer",type:"error"},{inputs:[],name:"InvalidCreatorAddress",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"NotInitialized",type:"error"},{inputs:[],name:"NotManagerOwner",type:"error"},{inputs:[{internalType:"uint256",name:"_unlockedAt",type:"uint256"}],name:"TokenTimelocked",type:"error"},{inputs:[],name:"UnknownFlaunchToken",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_creator",type:"address"}],name:"CreatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_owner",type:"address"},{components:[{internalType:"address payable",name:"protocolRecipient",type:"address"},{internalType:"uint256",name:"protocolFee",type:"uint256"}],indexed:!1,internalType:"struct RevenueManager.InitializeParams",name:"_params",type:"tuple"}],name:"ManagerInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"ManagerOwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_protocolFee",type:"uint256"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_protocolRecipient",type:"address"}],name:"ProtocolRecipientUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ProtocolRevenueClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"RevenueClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_owner",type:"address"},{indexed:!1,internalType:"address",name:"_sender",type:"address"}],name:"TreasuryEscrowed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"}],name:"TreasuryReclaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_unlockedAt",type:"uint256"}],name:"TreasuryTimelocked",type:"event"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"balance_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"claim",outputs:[{internalType:"uint256",name:"amount_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken[]",name:"_flaunchToken",type:"tuple[]"}],name:"claim",outputs:[{internalType:"uint256",name:"amount_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"creator",outputs:[{internalType:"address",name:"_creator",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"creatorTotalClaimed",outputs:[{internalType:"uint256",name:"_claimed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address",name:"_creator",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"flaunchTokenInternalIds",outputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"}],name:"getPoolId",outputs:[{internalType:"PoolId",name:"poolId_",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],name:"getProtocolFee",outputs:[{internalType:"uint256",name:"protocolFee_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],name:"internalIds",outputs:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"managerOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextInternalId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolRecipient",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolTotalClaimed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address",name:"_recipient",type:"address"}],name:"rescue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address payable",name:"_creator",type:"address"}],name:"setCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_protocolRecipient",type:"address"}],name:"setProtocolRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],name:"tokenPoolId",outputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenTimelock",outputs:[{internalType:"uint256",name:"_unlockedAt",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenTotalClaimed",outputs:[{internalType:"uint256",name:"_claimed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"tokens",outputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken[]",name:"flaunchTokens_",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_newManagerOwner",type:"address"}],name:"transferManagerOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract TreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],fi=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3[]",name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3Value[]",name:"calls",type:"tuple[]"}],name:"aggregate3Value",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"getBasefee",outputs:[{internalType:"uint256",name:"basefee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getChainId",outputs:[{internalType:"uint256",name:"chainid",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{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:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"}];class bi{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:fi,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map((e=>({target:e.target,allowFailure:!0,callData:e.callData})))})}}class hi{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:Ti,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}protocolRecipient(){return this.contract.read("protocolRecipient")}async tokensCount(){return await this.contract.read("nextInternalId")-1n}async allTokensByCreator(e,t=!1){const n=await this.contract.read("tokens",{_creator:e});return t?[...n].reverse():n}async allTokensInManager(e=!1){const t=await this.tokensCount(),n=new bi(this.drift);let a=Array.from({length:Number(t)},((e,t)=>this.contract.encodeFunctionData("internalIds",{_internalId:BigInt(t+1)})));e&&(a=a.reverse());return(await n.aggregate3(a.map((e=>({target:this.contract.address,callData:e}))))).map((e=>this.contract.decodeFunctionReturn("internalIds",e.returnData)))}}class gi extends hi{constructor(e,n=t.createDrift()){super(e,n)}protocolClaim(){return this.contract.write("claim",{})}creatorClaim(){return this.contract.write("claim",{})}creatorClaimForTokens(e){return this.contract.write("claim",{_flaunchToken:e})}}const wi=[{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"}];class Ii{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:wi,address:e})}permissions(){return this.contract.read("permissions")}managerOwner(){return this.contract.read("managerOwner")}}class vi extends Ii{constructor(e,n=t.createDrift()){super(e,n)}deposit(e,t,n){return this.contract.write("deposit",{_flaunchToken:e,_creator:t,_data:n})}setPermissions(e){return this.contract.write("setPermissions",{_permissions:e})}transferManagerOwnership(e){return this.contract.write("transferManagerOwnership",{_newManagerOwner:e})}}const xi={MIN_TICK:-887220,MAX_TICK:887220},ki=2n**96n,Mi=2n**192n,Pi=60,_i=e=>{const t=n.concat([n.pad(e.currency0,{size:32}),n.pad(e.currency1,{size:32}),n.pad(n.toHex(e.fee),{size:32}),n.pad(n.toHex(e.tickSpacing),{size:32}),n.pad(e.hooks,{size:32})]);return n.keccak256(t)},Fi=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},Ai=({tick:e,tickSpacing:t,roundDown:n=!0})=>{if(e%t==0)return e;let a=Math.trunc(e/t)*t;return e<0&&e%t!=0&&(a-=t),n||(a+=t),a},Ci=({tick:e,tickSpacing:t})=>{const n=Math.round(e/t)*t;return Math.max(xi.MIN_TICK,Math.min(xi.MAX_TICK,n))},Si=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},Ei=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},Di=e=>{const t=e<0?BigInt(-e):BigInt(e);if(t>xi.MAX_TICK)throw new Error("Tick out of range");let n=0n!==(1n&t)?0xfffcb933bd6fad37aa2d162d1a594001n:0x100000000000000000000000000000000n;0n!==(2n&t)&&(n=0xfff97272373d413259a46990580e213an*n>>128n),0n!==(4n&t)&&(n=0xfff2e50f5f656932ef12357cf3c7fdccn*n>>128n),0n!==(8n&t)&&(n=0xffe5caca7e10e4e61c3624eaa0941cd0n*n>>128n),0n!==(16n&t)&&(n=0xffcb9843d60f6159c9db58835c926644n*n>>128n),0n!==(32n&t)&&(n=0xff973b41fa98c081472e6896dfb254c0n*n>>128n),0n!==(64n&t)&&(n=0xff2ea16466c96a3843ec78b326b52861n*n>>128n),0n!==(128n&t)&&(n=0xfe5dee046a99a2a811c461f1969c3053n*n>>128n),0n!==(256n&t)&&(n=0xfcbe86c7900a88aedcffc83b479aa3a4n*n>>128n),0n!==(512n&t)&&(n=0xf987a7253ac413176f2b074cf7815e54n*n>>128n),0n!==(1024n&t)&&(n=0xf3392b0822b70005940c7a398e4b70f3n*n>>128n),0n!==(2048n&t)&&(n=0xe7159475a2c29b7443b29c7fa6e889d9n*n>>128n),0n!==(4096n&t)&&(n=0xd097f3bdfd2022b8845ad8f792aa5825n*n>>128n),0n!==(8192n&t)&&(n=0xa9f746462d870fdf8a65dc1f90e061e5n*n>>128n),0n!==(16384n&t)&&(n=0x70d869a156d2a1b890bb3df62baf32f7n*n>>128n),0n!==(32768n&t)&&(n=0x31be135f97d08fd981231505542fcfa6n*n>>128n),0n!==(65536n&t)&&(n=0x9aa508b5b7a84e1c677de54f3e99bc9n*n>>128n),0n!==(131072n&t)&&(n=0x5d6af8dedb81196699c329225ee604n*n>>128n),0n!==(262144n&t)&&(n=0x2216e584f5fa1ea926041bedfe98n*n>>128n),0n!==(524288n&t)&&(n=0x48a170391f7dc42444e8fa2n*n>>128n),e>0&&(n=(2n**256n-1n)/n);const a=n>>32n;return n%(1n<<32n)===0n?a:a+1n},Oi=(e,t,n,a)=>{const i=Di(a),r=Di(t),s=Di(n);let o=0n,p=0n;return i<=r?o=Si(r,s,e):i<s?(o=Si(i,s,e),p=Ei(r,i,e)):p=Ei(r,s,e),{amount0:o,amount1:p}},Bi=({priceInput:e,isDirection1Per0:t,decimals0:n,decimals1:a,spacing:i,shouldGetNearestUsableTick:r=!0})=>{if(!e||isNaN(Number(e)))return 0;const s=Number(e);try{let e;e=t?s/Math.pow(10,n-a):1/s/Math.pow(10,n-a);const o=Math.log(e)/Math.log(1.0001);return r?Ai({tick:Math.round(o),tickSpacing:i}):Math.round(o)}catch(e){console.error("Error converting price to tick:",e);const t=Math.floor(Math.log(s)/Math.log(1.0001));return r?Ai({tick:t,tickSpacing:i}):t}},Li=e=>{const t=Di(e.currentTick);let n=Di(e.tickLower),a=Di(e.tickUpper);if(n>a&&([n,a]=[a,n]),t<=n)return Ui(n,a,e.amount0);if(t<a){const i=Ui(t,a,e.amount0),r=Ni(n,t,e.amount1);return i<r?i:r}return Ni(n,a,e.amount1)};function Ui(e,t,n){e>t&&([e,t]=[t,e]);return n*e*t/(2n**96n*(t-e))}function Ni(e,t,n){e>t&&([e,t]=[t,e]);return n*2n**96n/(t-e)}const Ri=e=>{if(0n===e.liquidity)return{amount0:0n,amount1:0n};const t=Di(e.currentTick);let n=Di(e.tickLower),a=Di(e.tickUpper);n>a&&([n,a]=[a,n]);let i=0n,r=0n;return t<=n?i=Si(n,a,e.liquidity):t<a?(i=Si(t,a,e.liquidity),r=Ei(n,t,e.liquidity)):r=Ei(n,a,e.liquidity),{amount0:i,amount1:r}},Hi=[{inputs:[{internalType:"uint256",name:"wethAmount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}],zi=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerNotPositionManager",type:"error"},{inputs:[{internalType:"uint256",name:"_deadline",type:"uint256"}],name:"DeadlineExpired",type:"error"},{inputs:[],name:"InvalidPoolKey",type:"error"},{inputs:[{internalType:"address",name:"_invalidSigner",type:"address"}],name:"InvalidSigner",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Reentrancy",type:"error"},{inputs:[],name:"SignatureAlreadyUsed",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerAlreadyAdded",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerDoesNotExist",type:"error"},{inputs:[{internalType:"uint256",name:"_requestedAmount",type:"uint256"},{internalType:"uint256",name:"_maxTokensOut",type:"uint256"}],name:"TransactionCapExceeded",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],indexed:!1,internalType:"struct TrustedSignerFeeCalculator.FairLaunchSettings",name:"_settings",type:"tuple"}],name:"PoolKeyFairLaunchSettingsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"PoolKeySignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_signer",type:"address"},{indexed:!1,internalType:"bool",name:"_isTrusted",type:"bool"}],name:"TrustedSignerUpdated",type:"event"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"addTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"",type:"tuple"},{internalType:"uint24",name:"_baseFee",type:"uint24"}],name:"determineSwapFee",outputs:[{internalType:"uint24",name:"swapFee_",type:"uint24"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchSettings",outputs:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"isTrustedSigner",outputs:[{internalType:"bool",name:"valid_",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_origin",type:"address"}],name:"maxTokensOut",outputs:[{internalType:"bool",name:"hasCap_",type:"bool"},{internalType:"uint256",name:"maxTokensOut_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"removeTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"bytes",name:"_params",type:"bytes"}],name:"setFlaunchParams",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"address",name:"_signer",type:"address"}],name:"setTrustedPoolKeySigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"trackSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"trustedPoolKeySigner",outputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_wallet",type:"address"}],name:"walletPurchasedAmount",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"}];class qi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:zi,address:e})}trustedPoolKeySigner({poolId:e}){return this.contract.read("trustedPoolKeySigner",{_poolId:e})}}class Vi{constructor(e,n=t.createDrift()){this.TICK_SPACING=Pi,this.chainId=e,this.drift=n,this.resolveIPFS=Ln,this.readPositionManager=new pa(Xt[this.chainId],n),this.readPositionManagerV1_1=new Aa(jt[this.chainId],n),this.readPositionManagerV1_2=new Ka(Qt[this.chainId],n),this.readAnyPositionManager=new $a(Yt[this.chainId],n),this.readTokenImporter=new Xa(this.chainId,cn[this.chainId],n),this.readFeeEscrow=new Ya(In[this.chainId],n),this.readReferralEscrow=new ti(vn[this.chainId],n),this.readFlaunchZap=new Sa(this.chainId,Zt[this.chainId],n),this.readPoolManager=new ca(Pn[this.chainId],n),this.readStateView=new Ta(An[this.chainId],n),this.readFairLaunch=new ba(an[this.chainId],n),this.readFairLaunchV1_1=new si(rn[this.chainId],n),this.readBidWall=new ga(sn[this.chainId],n),this.readBidWallV1_1=new ii(on[this.chainId],n),this.readAnyBidWall=new Ia(pn[this.chainId],n),this.readFlaunch=new Oa(Jt[this.chainId],n),this.readFlaunchV1_1=new pi(en[this.chainId],n),this.readFlaunchV1_2=new ui(tn[this.chainId],n),this.readQuoter=new Ra(this.chainId,Fn[this.chainId],n),this.readPermit2=new za(Cn[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_2.isValidCoin(e)||await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)||await this.readAnyPositionManager.isValidCoin(e)}async getCoinVersion(t){if(await this.readPositionManagerV1_2.isValidCoin(t))return e.FlaunchVersion.V1_2;if(await this.readPositionManagerV1_1.isValidCoin(t))return e.FlaunchVersion.V1_1;if(await this.readPositionManager.isValidCoin(t))return e.FlaunchVersion.V1;if(await this.readAnyPositionManager.isValidCoin(t))return e.FlaunchVersion.ANY;throw new Error(`Unknown coin version for address: ${t}`)}getPositionManager(t){switch(t){case e.FlaunchVersion.V1:return this.readPositionManager;case e.FlaunchVersion.V1_1:return this.readPositionManagerV1_1;case e.FlaunchVersion.V1_2:return this.readPositionManagerV1_2;case e.FlaunchVersion.ANY:return this.readAnyPositionManager;default:return this.readPositionManagerV1_2}}getFairLaunch(t){switch(t){case e.FlaunchVersion.V1:return this.readFairLaunch;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:case e.FlaunchVersion.ANY:default:return this.readFairLaunchV1_1}}getBidWall(t){switch(t){case e.FlaunchVersion.V1:return this.readBidWall;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:return this.readBidWallV1_1;case e.FlaunchVersion.ANY:return this.readAnyBidWall;default:return this.readBidWallV1_1}}getFlaunchAddress(t){switch(t){case e.FlaunchVersion.V1:return this.readFlaunch.contract.address;case e.FlaunchVersion.V1_1:return this.readFlaunchV1_1.contract.address;case e.FlaunchVersion.V1_2:return this.readFlaunchV1_2.contract.address;case e.FlaunchVersion.ANY:default:return this.readFlaunchV1_1.contract.address}}getPositionManagerAddress(e){return this.getPositionManager(e).contract.address}getFairLaunchAddress(e){return this.getFairLaunch(e).contract.address}getBidWallAddress(e){return this.getBidWall(e).contract.address}async getCoinMetadata(e){const t=new La(e,this.drift),n=await t.name(),a=await t.symbol(),i=await t.tokenURI(),r=(await s.default.get(this.resolveIPFS(i))).data;return{name:n,symbol:a,description:r.description??"",image:r.image?this.resolveIPFS(r.image):"",external_link:r.websiteUrl??"",collaborators:r.collaborators??[],discordUrl:r.discordUrl??"",twitterUrl:r.twitterUrl??"",telegramUrl:r.telegramUrl??""}}async getCoinMetadataFromTokenId(e,t){const n=new Oa(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new bi(this.drift),i=e.map((e=>this.readFlaunch.contract.encodeFunctionData("memecoin",{_tokenId:e.tokenId}))),r=(await a.aggregate3(i.map(((t,n)=>({target:e[n].flaunch,callData:t}))))).map((e=>this.readFlaunch.contract.decodeFunctionReturn("memecoin",e.returnData))),o=[];r.forEach((()=>{o.push(this.drift.adapter.encodeFunctionData({abi:Ba,fn:"name"})),o.push(this.drift.adapter.encodeFunctionData({abi:Ba,fn:"symbol"})),o.push(this.drift.adapter.encodeFunctionData({abi:Ba,fn:"tokenURI"}))}));const p=await a.aggregate3(o.map(((e,t)=>({target:r[Math.floor(t/3)],callData:e})))),y=[];for(let e=0;e<r.length;e++){const t=this.drift.adapter.decodeFunctionReturn({abi:Ba,fn:"name",data:p[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:Ba,fn:"symbol",data:p[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:Ba,fn:"tokenURI",data:p[3*e+2].returnData});y.push({name:t,symbol:n,tokenURI:a,coinAddress:r[e]})}const u=[];for(let e=0;e<y.length;e+=t){const a=y.slice(e,e+t),i=await Promise.all(a.map((async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=(await s.default.get(this.resolveIPFS(n))).data;return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?this.resolveIPFS(i.image):"",external_link:i.websiteUrl??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??"",telegramUrl:i.telegramUrl??""}})));u.push(...i),e+t<y.length&&await new Promise((e=>setTimeout(e,n)))}return u}watchPoolCreated(t,n=e.FlaunchVersion.V1_1){return n===e.FlaunchVersion.V1?this.readPositionManager.watchPoolCreated(t):this.readPositionManagerV1_1.watchPoolCreated(t)}pollPoolCreatedNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolCreatedNow;if(n)return n()}async watchPoolSwap(t,n=e.FlaunchVersion.V1_1){return(n===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).watchPoolSwap({...t,filterByPoolId:t.filterByCoin?await this.poolId(t.filterByCoin,n):void 0,flETHIsCurrencyZero:t.filterByCoin?this.flETHIsCurrencyZero(t.filterByCoin):void 0})}pollPoolSwapNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolSwapNow;if(n)return n()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return(await this.readStateView.poolSlot0({poolId:a})).tick}async coinPriceInETH(e,t){const n=t||await this.getCoinVersion(e),a=this.flETHIsCurrencyZero(e),i=await this.currentTick(e,n),r=Math.pow(1.0001,i);let s=0;return s=a?1/r:r,s.toFixed(18)}async coinPriceInUSD({coinAddress:e,version:t,drift:n}){const a=t||await this.getCoinVersion(e),i=await this.coinPriceInETH(e,a),r=await this.getETHUSDCPrice(n);return(parseFloat(i)*r).toFixed(18)}async coinMarketCapInUSD({coinAddress:e,version:t,drift:n}){const a=await this.coinPriceInUSD({coinAddress:e,version:t,drift:n});return(1e11*parseFloat(a)).toFixed(2)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new Ra(t,Fn[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async initialSqrtPriceX96(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=this.flETHIsCurrencyZero(e.coinAddress);return new oa(await this.readPositionManagerV1_1.initialPrice(),this.drift).getSqrtPriceX96({isFLETHZero:i,initialPriceParams:a})}async fairLaunchInfo(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchInfo({poolId:a})}async isFairLaunchActive(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).isFairLaunchActive({poolId:a})}async trustedPoolKeySignerStatus(t,a){const i=a||await this.getCoinVersion(t);if(i===e.FlaunchVersion.ANY)throw new Error("AnyPositionManager is not supported for TrustedSigner");const r=await this.fairLaunchInfo(t,i);let s;r.closed&&(s=!1),(new Date).getTime()/1e3>r.endsAt&&(s=!1),s=!0;const o={isFairLaunchActive:s,fairLaunchStartsAt:Number(r.startsAt),fairLaunchEndsAt:Number(r.endsAt)},p=await this.getPositionManager(i).getFeeCalculator({forFairLaunch:!0});try{const e=new qi(p,this.drift),n=await this.poolId(t,i),a=await e.trustedPoolKeySigner({poolId:n});return{isCurrentlyEnabled:a.enabled&&s,trustedSignerEnabled:a.enabled,signer:a.signer,...o}}catch{return{isCurrentlyEnabled:!1,trustedSignerEnabled:!1,signer:n.zeroAddress,...o}}}async fairLaunchDuration(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchDuration({poolId:a})}async initialTick(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return(await this.getFairLaunch(n).fairLaunchInfo({poolId:a})).initialTick}async fairLaunchETHOnlyPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=Ai({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=o+this.TICK_SPACING):(p=Ai({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),o=p-this.TICK_SPACING);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Oi(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=xi.MIN_TICK,p=Ai({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(o=Ai({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=xi.MAX_TICK);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Oi(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async bidWallPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=this.flETHIsCurrencyZero(e),{amount0_:r,amount1_:s,pendingEth_:o}=await this.getBidWall(n).position({poolId:a}),{tickLower:p,tickUpper:y}=await this.getBidWall(n).poolInfo({poolId:a}),[u,l]=i?[r,s]:[s,r];return{flETHAmount:u,coinAmount:l,pendingEth:o,tickLower:p,tickUpper:y}}creatorRevenue(e,t){return t?this.readPositionManager.creatorBalance(e):this.readFeeEscrow.balances(e)}referralBalance(e,t){return this.readReferralEscrow.allocations(e,t)}revenueManagerBalance(e){return new hi(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new hi(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new hi(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new hi(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new hi(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async treasuryManagerInfo(e){const t=new Ii(e,this.drift),[n,a]=await Promise.all([t.managerOwner(),t.permissions()]);return{managerOwner:n,permissions:a}}async poolId(e,t){let n;if(t)n=this.getPositionManagerAddress(t);else{const t=await this.getCoinVersion(e);n=this.getPositionManagerAddress(t)}return _i(Fi({currency0:xn[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:n}))}getFlaunchingFee(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readPositionManagerV1_1.getFlaunchingFee({sender:e.sender,initialPriceParams:a,slippagePercent:e.slippagePercent})}ethRequiredToFlaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readFlaunchZap.ethRequiredToFlaunch({premineAmount:e.premineAmount,initialPriceParams:a,slippagePercent:e.slippagePercent})}async getSellQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a}){const i=t||await this.getCoinVersion(e);return this.readQuoter.getSellQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(i),intermediatePoolKey:a})}async getBuyQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=t||await this.getCoinVersion(e);return this.readQuoter.getBuyQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}async getBuyQuoteExactOutput({coinAddress:e,amountOut:t,version:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=n||await this.getCoinVersion(e);return this.readQuoter.getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}flETHIsCurrencyZero(e){return e>xn[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}async parseSwapTx(e){return this.getPositionManager(e.version).parseSwapTx(e.txHash,e.flETHIsCurrencyZero)}tokenImporterVerifyMemecoin(e){return this.readTokenImporter.verifyMemecoin(e)}async getCoinInfo(e){const t=new La(e,this.drift),[n,a]=await Promise.all([t.totalSupply(),t.decimals()]);return{totalSupply:n,decimals:a}}async getMarketContext(e,t){const n=await this.getETHUSDCPrice(),a=this.flETHIsCurrencyZero(e);return{ethUsdPrice:n,isFlethZero:a,decimals0:a?18:t,decimals1:a?t:18}}marketCapToTokenPriceEth(e,t,n){return e/t/n}convertPriceToTick(e,t,n,a){return Bi({priceInput:e.toString(),isDirection1Per0:!t,decimals0:n,decimals1:a,spacing:Pi})}calculateCurrentTickFromMarketCap(e,t,n){if(!e)return;const a=parseFloat(e),i=this.marketCapToTokenPriceEth(a,t,n.ethUsdPrice);return this.convertPriceToTick(i,n.isFlethZero,n.decimals0,n.decimals1)}async calculateAddLiquidityTicks({coinAddress:t,liquidityMode:a,minMarketCap:i,maxMarketCap:r,currentMarketCap:s}){const{totalSupply:o,decimals:p}=await this.getCoinInfo(t),y=parseFloat(n.formatEther(o));if(a===e.LiquidityMode.FULL_RANGE){let e;if(s){const n=await this.getMarketContext(t,p);e=this.calculateCurrentTickFromMarketCap(s,y,n)}return{tickLower:Ci({tick:xi.MIN_TICK,tickSpacing:Pi}),tickUpper:Ci({tick:xi.MAX_TICK,tickSpacing:Pi}),currentTick:e,coinTotalSupply:o,coinDecimals:p}}{const e=await this.getMarketContext(t,p),n=parseFloat(i),a=parseFloat(r);if(n<=0||a<=0||n>=a)throw new Error("[ReadFlaunchSDK.addLiquidityCalculateTicks]: Invalid market cap range");const u=this.marketCapToTokenPriceEth(n,y,e.ethUsdPrice),l=this.marketCapToTokenPriceEth(a,y,e.ethUsdPrice),d=this.convertPriceToTick(u,e.isFlethZero,e.decimals0,e.decimals1),c=this.convertPriceToTick(l,e.isFlethZero,e.decimals0,e.decimals1),m=this.calculateCurrentTickFromMarketCap(s,y,e);return{tickLower:Math.min(d,c),tickUpper:Math.max(d,c),currentTick:m,coinTotalSupply:o,coinDecimals:p}}}async checkSingleSidedAddLiquidity(t){const{coinAddress:a,liquidityMode:i}=t;let r,s,o;if("minMarketCap"in t)r=t.minMarketCap,s=t.maxMarketCap,o=t.currentMarketCap;else{const{totalSupply:e,decimals:i}=await this.getCoinInfo(a),p=parseFloat(n.formatUnits(e,i));r=(parseFloat(t.minPriceUSD)*p).toString(),s=(parseFloat(t.maxPriceUSD)*p).toString(),t.currentPriceUSD&&(o=(t.currentPriceUSD*p).toString())}let{tickLower:p,tickUpper:y,currentTick:u}=await this.calculateAddLiquidityTicks({coinAddress:a,liquidityMode:i,minMarketCap:r,maxMarketCap:s,currentMarketCap:o});if(!u){let n=t.version;if(!n)try{n=await this.getCoinVersion(a)}catch{n=e.FlaunchVersion.ANY}u=(await this.readStateView.poolSlot0({poolId:_i(Fi({currency0:a,currency1:xn[this.chainId],fee:0,tickSpacing:Pi,hooks:this.getPositionManagerAddress(n)}))})).tick}const l=this.flETHIsCurrencyZero(a);if(!(u<=p||u>=y))return{isSingleSided:!1,shouldHideCoinInput:!1,shouldHideETHInput:!1};let d=!1,c=!1;return u<=p?l?d=!0:c=!0:u>=y&&(l?c=!0:d=!0),{isSingleSided:!0,shouldHideCoinInput:d,shouldHideETHInput:c}}async calculateAddLiquidityAmounts(t){const{coinAddress:a,liquidityMode:i,inputToken:r,coinOrEthInputAmount:s}=t;let o,p,y;if("minMarketCap"in t)o=t.minMarketCap,p=t.maxMarketCap,y=t.currentMarketCap;else{const{totalSupply:e,decimals:i}=await this.getCoinInfo(a),r=parseFloat(n.formatUnits(e,i));o=(parseFloat(t.minPriceUSD)*r).toString(),p=(parseFloat(t.maxPriceUSD)*r).toString(),t.currentPriceUSD&&(y=(t.currentPriceUSD*r).toString())}let{tickLower:u,tickUpper:l,currentTick:d}=await this.calculateAddLiquidityTicks({coinAddress:a,liquidityMode:i,minMarketCap:o,maxMarketCap:p,currentMarketCap:y});if(!d){let n=t.version;if(!n)try{n=await this.getCoinVersion(a)}catch{n=e.FlaunchVersion.ANY}d=(await this.readStateView.poolSlot0({poolId:_i(Fi({currency0:a,currency1:xn[this.chainId],fee:0,tickSpacing:Pi,hooks:this.getPositionManagerAddress(n)}))})).tick}const c=this.flETHIsCurrencyZero(a);try{const e=Di(d);let t,n,a=Di(u),i=Di(l);a>i&&([a,i]=[i,a]);const o="coin"===r;if(o&&!c||!o&&c)if(t=s,e<=a)n=0n;else if(e>=i){n=s*(i*i/ki)/ki}else{const t=Mi*(i-e)/ki;n=t>0n?s*(i*e*(e-a)/ki)/t:0n}else if(n=s,e<=a){t=s*ki/(a*a/ki)}else if(e>=i)t=0n;else{const n=i*e*(e-a)/ki;t=n>0n?s*(Mi*(i-e)/ki)/n:0n}let[p,y]=c?[t,n]:[n,t];return(d<=u||d>=l)&&(d<=u?c?y=0n:p=0n:d>=l&&(c?p=0n:y=0n)),{coinAmount:y,ethAmount:p,tickLower:u,tickUpper:l,currentTick:d}}catch(e){throw console.error("Error calculating liquidity amounts:",e),e}}async isMemecoinImported(e){const t=Fi({currency0:e,currency1:xn[this.chainId],fee:0,tickSpacing:Pi,hooks:Yt[this.chainId]});return 0n!==(await this.readStateView.poolSlot0({poolId:_i(t)})).sqrtPriceX96}async isFlaunchTokenApprovedForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.read({abi:n.erc721Abi,address:i,fn:"isApprovedForAll",args:{owner:t,operator:a}})}}class Ki extends Vi{constructor(e,n=t.createDrift()){super(e,n),this.readWritePositionManager=new ya(Xt[this.chainId],n),this.readWritePositionManagerV1_1=new Ca(jt[this.chainId],n),this.readWriteAnyPositionManager=new Ga(Yt[this.chainId],n),this.readWriteTokenImporter=new ja(this.chainId,cn[this.chainId],n),this.readWriteFeeEscrow=new Ja(In[this.chainId],n),this.readWriteReferralEscrow=new ni(vn[this.chainId],n),this.readWriteFlaunchZap=new Ea(this.chainId,Zt[this.chainId],n),this.readWriteTreasuryManagerFactory=new mi(this.chainId,yn[this.chainId],n),this.readWritePermit2=new qa(Cn[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteFlaunchZap.deployRevenueManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}async deployStakingManager(e){const t=await this.readWriteFlaunchZap.deployStakingManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}flaunchWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchWithRevenueManager(e)}async flaunchIPFSWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchIPFSWithRevenueManager(e)}flaunchWithSplitManager(e){return this.readWriteFlaunchZap.flaunchWithSplitManager(e)}flaunchIPFSWithSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithSplitManager(e)}anyFlaunch(e){return this.readWriteAnyPositionManager.flaunch(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new La(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){const n=t||await this.getCoinVersion(e.coinAddress),a=await this.drift.getSignerAddress();let i,r,s,o;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?Yn({amount:await this.readQuoter.getBuyQuoteExactInput({coinAddress:e.coinAddress,amountIn:i,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountOutMin):(s=e.amountOut,o=void 0===e.amountInMax?Yn({amount:await this.readQuoter.getBuyQuoteExactOutput({coinAddress:e.coinAddress,coinOut:s,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountInMax);const{commands:p,inputs:y}=ea({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer??null,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:o,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,permitSingle:e.permitSingle,signature:e.signature,hookData:e.hookData});return this.drift.adapter.write({abi:qn,address:_n[this.chainId],fn:"execute",args:{commands:p,inputs:y},value:e.intermediatePoolKey?0n:"EXACT_IN"===e.swapType?i:o})}async sellCoin(e,t){const n=t||await this.getCoinVersion(e.coinAddress);let a;await this.readQuoter.contract.cache.clear(),a=void 0===e.amountOutMin?Yn({amount:await this.readQuoter.getSellQuoteExactInput({coinAddress:e.coinAddress,amountIn:e.amountIn,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:"EXACT_IN"}):e.amountOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=ta({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,amountOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer??null,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey});return this.drift.write({abi:qn,address:_n[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:n}=await this.getPermit2AllowanceAndNonce(e),a=BigInt(Math.floor(Date.now()/1e3)+31536e4);return ia({chainId:this.chainId,coinAddress:e,nonce:n,deadline:void 0!==t?t:a})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,_n[this.chainId]);return{allowance:t,nonce:n}}async getERC20AllowanceToPermit2(e){return new La(e,this.drift).allowance(await this.drift.getSignerAddress(),Cn[this.chainId])}async setERC20AllowanceToPermit2(e,t){return new Ua(e,this.drift).approve(Cn[this.chainId],t)}async withdrawCreatorRevenue(e){const t=e.recipient??await this.drift.getSignerAddress();return e.isV1?this.readWritePositionManager.withdrawFees(t):this.readWriteFeeEscrow.withdrawFees(t)}claimReferralBalance(e,t){return this.readWriteReferralEscrow.claimTokens(e,t)}revenueManagerProtocolClaim(e){return new gi(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new gi(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new gi(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}treasuryManagerSetPermissions(e,t){const n=new vi(e,this.drift),a=_a(t,this.chainId);return n.setPermissions(a)}treasuryManagerTransferOwnership(e,t){return new vi(e,this.drift).transferManagerOwnership(t)}async setFlaunchTokenApprovalForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.write({abi:n.erc721Abi,address:i,fn:"setApprovalForAll",args:{operator:t,approved:a}})}async addToTreasuryManager(e,t,n,a,i="0x"){const r=new vi(e,this.drift),s={flaunch:this.getFlaunchAddress(t),tokenId:n},o=a??await this.drift.getSignerAddress();return r.deposit(s,o,i)}importMemecoin(e){return this.readWriteTokenImporter.initialize(e)}async getAddLiquidityCalls(t){const{coinAddress:a}=t,i=xn[this.chainId];let r,s,o,p,y,u=t.version;if(!u)try{u=await this.getCoinVersion(a)}catch{u=e.FlaunchVersion.ANY}const l=Fi({currency0:a,currency1:i,fee:0,tickSpacing:this.TICK_SPACING,hooks:this.getPositionManagerAddress(u)});if("tickLower"in t)if(r=t.coinAmount,s=t.flethAmount,o=t.tickLower,p=t.tickUpper,t.currentTick)y=t.currentTick;else{y=(await this.readStateView.poolSlot0({poolId:_i(l)})).tick}else{let e,i,l;if("minMarketCap"in t)e=t.minMarketCap,i=t.maxMarketCap,l=t.initialMarketCapUSD;else{const{totalSupply:r,decimals:s}=await this.getCoinInfo(a),o=parseFloat(n.formatUnits(r,s));e=(parseFloat(t.minPriceUSD)*o).toString(),i=(parseFloat(t.maxPriceUSD)*o).toString(),t.initialPriceUSD&&(l=t.initialPriceUSD*o)}const d=await this.calculateAddLiquidityAmounts({coinAddress:a,liquidityMode:t.liquidityMode,coinOrEthInputAmount:t.coinOrEthInputAmount,inputToken:t.inputToken,minMarketCap:e,maxMarketCap:i,currentMarketCap:l?.toString(),version:u});r=d.coinAmount,s=d.ethAmount,o=d.tickLower,p=d.tickUpper,y=d.currentTick}const d=await this.drift.getSignerAddress(),c=Cn[this.chainId],m=await this.drift.multicall({calls:[{address:a,abi:n.erc20Abi,fn:"allowance",args:{owner:d,spender:c}},{address:i,abi:n.erc20Abi,fn:"allowance",args:{owner:d,spender:c}},{address:c,abi:Ha,fn:"allowance",args:{0:d,1:a,2:Sn[this.chainId]}},{address:c,abi:Ha,fn:"allowance",args:{0:d,1:i,2:Sn[this.chainId]}},{address:a,abi:n.erc20Abi,fn:"symbol"}]}),T=m[0].value,f=m[1].value,b=m[2].value,h=m[3].value,g=m[4].value,w=T<r,I=f<s,v=Math.floor(Date.now()/1e3),x=b.amount<r||b.expiration<=v,k=s>0n&&(h.amount<s||h.expiration<=v),M=[];w&&M.push({to:a,description:`Approve ${g} for Permit2`,data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[c,r]})}),I&&M.push({to:i,description:"Approve flETH for Permit2",data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[c,s]})});const P=Math.floor(Date.now()/1e3)+3600;x&&M.push({to:c,description:`Permit2 approval for ${g} to UniV4PositionManager`,data:n.encodeFunctionData({abi:Ha,functionName:"approve",args:[a,Sn[this.chainId],r,P]})}),k&&M.push({to:c,description:"Permit2 approval for flETH to UniV4PositionManager",data:n.encodeFunctionData({abi:Ha,functionName:"approve",args:[i,Sn[this.chainId],s,P]})}),s>0n&&M.push({to:i,description:"Wrap ETH to flETH",data:n.encodeFunctionData({abi:Hi,functionName:"deposit",args:[0n]}),value:s});const _=l.currency0===a?r:s,F=l.currency0===a?s:r,A=Li({currentTick:y,tickLower:o,tickUpper:p,amount0:_,amount1:F}),C=Ri({currentTick:y,tickLower:o,tickUpper:p,liquidity:A});let S=A,E=C.amount0,D=C.amount1;if(C.amount0>_||C.amount1>F){console.log("Actual amounts exceed user input, constraining...");const e=Li({currentTick:y,tickLower:o,tickUpper:p,amount0:_,amount1:0n}),t=Li({currentTick:y,tickLower:o,tickUpper:p,amount0:0n,amount1:F});S=e<t?e:t;const n=Ri({currentTick:y,tickLower:o,tickUpper:p,liquidity:S});E=n.amount0,D=n.amount1}const O=S/2000n;void 0!==y&&(S=S-(O>1n?O:1n)),E=_,D=F;const B="0x"+"02"+"0d",L=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"}]},{type:"int24",name:"tickLower"},{type:"int24",name:"tickUpper"},{type:"uint256",name:"liquidity"},{type:"uint128",name:"amount0Max"},{type:"uint128",name:"amount1Max"},{type:"address",name:"owner"},{type:"bytes",name:"hookData"}],[l,o,p,S,E,D,d,"0x"]),U=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"}]}],[{currency0:l.currency0,currency1:l.currency1}]);return M.push({to:Sn[this.chainId],data:n.encodeFunctionData({abi:[{inputs:[{internalType:"bytes",name:"unlockData",type:"bytes"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"modifyLiquidities",outputs:[],stateMutability:"payable",type:"function"}],functionName:"modifyLiquidities",args:[n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[B,[L,U]]),BigInt(Math.floor(Date.now()/1e3)+3600)]}),value:0n,description:"Add Liquidity"}),M}async getImportAndAddLiquidityCalls(t){const n=await this.readWriteTokenImporter.getInitializeParams({coinAddress:t.coinAddress,creatorFeeAllocationPercent:t.creatorFeeAllocationPercent,initialMarketCapUSD:t.initialMarketCapUSD,verifier:t.verifier}),a=await this.getAddLiquidityCalls({...t,version:e.FlaunchVersion.ANY});return[{to:this.readWriteTokenImporter.contract.address,data:this.readWriteTokenImporter.contract.encodeFunctionData("initialize",n),description:"Import Memecoin to Flaunch"},...a]}}function Wi(e){const{publicClient:n,walletClient:a}=e;if(!n.chain)throw new Error("publicClient must be configured with a chain");return a?t.createDrift({adapter:i.viemAdapter({publicClient:n,walletClient:a})}):t.createDrift({adapter:i.viemAdapter({publicClient:n})})}const $i=n.parseAbi(["function call(address to, uint256 value, bytes data)"]);function Gi(e,t){if(!e.chain)throw new Error("publicClient must be configured with a chain");return n.createWalletClient({chain:e.chain,transport:n.http()}).extend((e=>({get account(){return{address:t,type:"json-rpc"}},getAddresses:async()=>[t],requestAddresses:async()=>[t],async writeContract(e){const t=e.address,a=e.value??0n,i=n.encodeFunctionData({abi:e.abi,functionName:e.functionName,args:e.args});return n.encodeFunctionData({abi:$i,functionName:"call",args:[t,a,i]})},async sendTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:$i,functionName:"call",args:[t,a,i]})},async signTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:$i,functionName:"call",args:[t,a,i]})}})))}function Zi(e){const t=n.decodeFunctionData({abi:$i,data:e});return{to:t.args[0],value:t.args[1],data:t.args[2]}}class Xi extends xe{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");de(e.outputLen),de(e.blockLen)}(e);const n=ve(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const a=this.blockLen,i=new Uint8Array(a);i.set(n.length>a?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return me(this),this.iHash.update(e),this}digestInto(e){me(this),ce(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:a,destroyed:i,blockLen:r,outputLen:s}=this;return e.finished=a,e.destroyed=i,e.blockLen=r,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ji=(e,t,n)=>new Xi(e,t).update(n).digest();ji.create=(e,t)=>new Xi(e,t);const Qi=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Yi=new Uint8Array(new Array(16).fill(0).map(((e,t)=>t)));let Ji=[Yi],er=[Yi.map((e=>(9*e+5)%16))];for(let e=0;e<4;e++)for(let t of[Ji,er])t.push(t[e].map((e=>Qi[e])));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@delvtech/drift-viem")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@delvtech/drift-viem"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.driftViem)}(this,(function(e,t,n,a,i){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(a);function o(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const p="2.29.2";let y=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,u=`viem@${p}`;class l extends Error{constructor(e,t={}){const n=t.cause instanceof l?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof l&&t.cause.docsPath||t.docsPath,i=y?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...u?[`Version: ${u}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=a,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=p}walk(e){return d(this,e)}}function d(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?d(e.cause,t):t?null:e}class c extends l{constructor({max:e,min:t,signed:n,size:a,value:i}){super(`Number "${i}" is not in safe ${a?`${8*a}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class m extends l{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function T(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function f(e){return T(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function b(e,{dir:t="left"}={}){let n="string"==typeof e?e.replace("0x",""):e,a=0;for(let e=0;e<n.length-1&&"0"===n["left"===t?e:n.length-e-1].toString();e++)a++;return n="left"===t?n.slice(a):n.slice(0,n.length-a),"string"==typeof e?(1===n.length&&"right"===t&&(n=`${n}0`),`0x${n.length%2==1?`0${n}`:n}`):n}class h extends l{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class g extends l{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}function w(e,{dir:t,size:n=32}={}){return"string"==typeof e?I(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new g({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let i=0;i<n;i++){const r="right"===t;a[r?i:n-i-1]=e[r?i:e.length-i-1]}return a}(e,{dir:t,size:n})}function I(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new g({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}const v=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?P(e,t):"string"==typeof e?F(e,t):"boolean"==typeof e?k(e,t):M(e,t)}function k(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?(B(n,{size:t.size}),w(n,{size:t.size})):n}function M(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=v[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(B(a,{size:t.size}),w(a,{dir:"right",size:t.size})):a}function P(e,t={}){const{signed:n,size:a}=t,i=BigInt(e);let r;a?r=n?(1n<<8n*BigInt(a)-1n)-1n:2n**(8n*BigInt(a))-1n:"number"==typeof e&&(r=BigInt(Number.MAX_SAFE_INTEGER));const s="bigint"==typeof r&&n?-r-1n:0;if(r&&i>r||i<s){const t="bigint"==typeof e?"n":"";throw new c({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const o=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?w(o,{size:a}):o}const _=new TextEncoder;function F(e,t={}){return M(_.encode(e),t)}const A=new TextEncoder;function C(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=P(e,t);return D(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return B(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):T(e)?D(e,t):O(e,t)}const S={zero:48,nine:57,A:65,F:70,a:97,f:102};function E(e){return e>=S.zero&&e<=S.nine?e-S.zero:e>=S.A&&e<=S.F?e-(S.A-10):e>=S.a&&e<=S.f?e-(S.a-10):void 0}function D(e,t={}){let n=e;t.size&&(B(n,{size:t.size}),n=w(n,{dir:"right",size:t.size}));let a=n.slice(2);a.length%2&&(a=`0${a}`);const i=a.length/2,r=new Uint8Array(i);for(let e=0,t=0;e<i;e++){const n=E(a.charCodeAt(t++)),i=E(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new l(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function O(e,t={}){const n=A.encode(e);return"number"==typeof t.size?(B(n,{size:t.size}),w(n,{dir:"right",size:t.size})):n}function B(e,{size:t}){if(f(e)>t)throw new m({givenSize:f(e),maxSize:t})}function L(e,t={}){const{signed:n}=t;t.size&&B(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function U(e,t={}){return Number(L(e,t))}function N(e,t){return({exclude:n,format:a})=>({exclude:n,format:e=>{const i=t(e);if(n)for(const e of n)delete i[e];return{...i,...a(e)}},type:e})}const R={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function H(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?U(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?U(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?R[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=e.authorizationList.map((e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)})))),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof t.v){if(0n===t.v||27n===t.v)return 0;if(1n===t.v||28n===t.v)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),"legacy"===t.type&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),"eip2930"===t.type&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),"eip1559"===t.type&&delete t.maxFeePerBlobGas,t}const z=N("transaction",H);function q(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:H(e)));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const V=N("block",q);const K={"0x0":"reverted","0x1":"success"};function W(e){const t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map((e=>function(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}(e))):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?U(e.transactionIndex):null,status:e.status?K[e.status]:null,type:e.type?R[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const $=N("transactionReceipt",W);const G=2n**256n-1n;function Z(e){return"string"==typeof e[0]?X(e):function(e){let t=0;for(const n of e)t+=n.length;const n=new Uint8Array(t);let a=0;for(const t of e)n.set(t,a),a+=t.length;return n}(e)}function X(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class j extends l{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class Q extends l{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Y extends l{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const J={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Y({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Q({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new j({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new j({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function ee(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(J);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function te(e,t="hex"){const n=ne(e),a=ee(new Uint8Array(n.length));return n.encode(a),"hex"===t?M(a.bytes):a.bytes}function ne(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=ae(t);return{length:t<=55?1+t:1+n+t,encode(a){t<=55?a.pushByte(192+t):(a.pushByte(247+n),1===n?a.pushUint8(t):2===n?a.pushUint16(t):3===n?a.pushUint24(t):a.pushUint32(t));for(const{encode:t}of e)t(a)}}}(e.map((e=>ne(e)))):function(e){const t="string"==typeof e?D(e):e,n=ae(t.length),a=1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length;return{length:a,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function ae(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new l("Length is too large.")}const ie={ether:-9,wei:9};function re(e,t="wei"){return function(e,t){let n=e.toString();const a=n.startsWith("-");a&&(n=n.slice(1)),n=n.padStart(t,"0");let[i,r]=[n.slice(0,n.length-t),n.slice(n.length-t)];return r=r.replace(/(0+)$/,""),`${a?"-":""}${i||"0"}${r?`.${r}`:""}`}(e,ie[t])}function se(e){const t=Object.entries(e).map((([e,t])=>void 0===t||!1===t?null:[e,t])).filter(Boolean),n=t.reduce(((e,[t])=>Math.max(e,t.length)),0);return t.map((([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`)).join("\n")}class oe extends l{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class pe extends l{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",se(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class ye extends l{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function ue(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>D(e))):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map((e=>M(e)))}function le(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>D(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>D(e))):e.commitments,r=[];for(let e=0;e<a.length;e++){const n=a[e],s=i[e];r.push(Uint8Array.from(t.computeBlobKzgProof(n,s)))}return"bytes"===n?r:r.map((e=>M(e)))}function de(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ce(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function me(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Te(e,t){ce(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}const fe="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function be(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function he(e,t){return e<<32-t|e>>>t}const ge=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function we(e){for(let n=0;n<e.length;n++)e[n]=(t=e[n])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function Ie(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}function ve(e){return"string"==typeof e&&(e=Ie(e)),ce(e),e}"function"==typeof Uint8Array.from([]).toHex&&Uint8Array.fromHex;class xe{clone(){return this._cloneInto()}}function ke(e){const t=t=>e().update(ve(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Me(e=32){if(fe&&"function"==typeof fe.getRandomValues)return fe.getRandomValues(new Uint8Array(e));if(fe&&"function"==typeof fe.randomBytes)return Uint8Array.from(fe.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function Pe(e,t,n){return e&t^e&n^t&n}class _e extends xe{constructor(e,t,n,a){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=a,this.buffer=new Uint8Array(e),this.view=be(this.buffer)}update(e){me(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=ve(e)).length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s!==a)n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0);else{const t=be(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){me(this),Te(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),o=Number(n&r),p=a?4:0,y=a?0:4;e.setUint32(t+p,s,a),e.setUint32(t+y,o,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=be(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const p=o/4,y=this.get();if(p>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<p;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.length=a,e.pos=s,e.finished=i,e.destroyed=r,a%t&&e.buffer.set(n),e}}const Fe=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ae=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ce=new Uint32Array(64);class Se extends _e{constructor(e=32){super(64,e,8,!1),this.A=0|Ae[0],this.B=0|Ae[1],this.C=0|Ae[2],this.D=0|Ae[3],this.E=0|Ae[4],this.F=0|Ae[5],this.G=0|Ae[6],this.H=0|Ae[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:o}=this;return[e,t,n,a,i,r,s,o]}set(e,t,n,a,i,r,s,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)Ce[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Ce[e-15],n=Ce[e-2],a=he(t,7)^he(t,18)^t>>>3,i=he(n,17)^he(n,19)^n>>>10;Ce[e]=i+Ce[e-7]+a+Ce[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:o,G:p,H:y}=this;for(let e=0;e<64;e++){const t=y+(he(s,6)^he(s,11)^he(s,25))+((u=s)&o^~u&p)+Fe[e]+Ce[e]|0,l=(he(n,2)^he(n,13)^he(n,22))+Pe(n,a,i)|0;y=p,p=o,o=s,s=r+t|0,r=i,i=a,a=n,n=t+l|0}var u;n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,o=o+this.F|0,p=p+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,o,p,y)}roundClean(){Ce.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Ee=ke((()=>new Se));function De(e){const{commitment:t,version:n=1}=e,a=e.to??("string"==typeof t?"hex":"bytes"),i=function(e,t){const n=t||"hex",a=Ee(T(e,{strict:!1})?C(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:M(i)}const Oe=4096,Be=131072,Le=761855;class Ue extends l{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class Ne extends l{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class Re extends l{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class He extends l{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function ze(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?D(e.data):e.data,a=f(n);if(!a)throw new Ne;if(a>Le)throw new Ue({maxSize:Le,size:a});const i=[];let r=!0,s=0;for(;r;){const e=ee(new Uint8Array(Be));let t=0;for(;t<Oe;){const a=n.slice(s,s+31);if(e.pushByte(0),e.pushBytes(a),a.length<31){e.pushByte(128),r=!1;break}t++,s+=31}i.push(e)}return"bytes"===t?i.map((e=>e.bytes)):i.map((e=>M(e.bytes)))}({data:t,to:a}),r=e.commitments??ue({blobs:i,kzg:n,to:a}),s=e.proofs??le({blobs:i,commitments:r,kzg:n,to:a}),o=[];for(let e=0;e<i.length;e++)o.push({blob:i[e],commitment:r[e],proof:s[e]});return o}class qe extends l{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class Ve extends l{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Ke extends l{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Ke,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class We extends l{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${re(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(We,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class $e extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}const Ge=BigInt(2**32-1),Ze=BigInt(32);function Xe(e,t=!1){return t?{h:Number(e&Ge),l:Number(e>>Ze&Ge)}:{h:0|Number(e>>Ze&Ge),l:0|Number(e&Ge)}}function je(e,t=!1){let n=new Uint32Array(e.length),a=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:r,l:s}=Xe(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const Qe=[],Ye=[],Je=[],et=BigInt(0),tt=BigInt(1),nt=BigInt(2),at=BigInt(7),it=BigInt(256),rt=BigInt(113);for(let e=0,t=tt,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],Qe.push(2*(5*a+n)),Ye.push((e+1)*(e+2)/2%64);let i=et;for(let e=0;e<7;e++)t=(t<<tt^(t>>at)*rt)%it,t&nt&&(i^=tt<<(tt<<BigInt(e))-tt);Je.push(i)}const[st,ot]=je(Je,!0),pt=(e,t,n)=>n>32?((e,t,n)=>t<<n-32|e>>>64-n)(e,t,n):((e,t,n)=>e<<n|t>>>32-n)(e,t,n),yt=(e,t,n)=>n>32?((e,t,n)=>e<<n-32|t>>>64-n)(e,t,n):((e,t,n)=>t<<n|e>>>32-n)(e,t,n);class ut extends xe{constructor(e,t,n,a=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=a,this.rounds=i,de(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}keccak(){ge||we(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],o=pt(r,s,1)^n[a],p=yt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=o,e[t+n+1]^=p}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=Ye[n],r=pt(t,i,a),s=yt(t,i,a),o=Qe[n];t=e[o],i=e[o+1],e[o]=r,e[o+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=st[a],e[1]^=ot[a]}n.fill(0)}(this.state32,this.rounds),ge||we(this.state32),this.posOut=0,this.pos=0}update(e){me(this);const{blockLen:t,state:n}=this,a=(e=ve(e)).length;for(let i=0;i<a;){const r=Math.min(t-this.pos,a-i);for(let t=0;t<r;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:a}=this;e[n]^=t,128&t&&n===a-1&&this.keccak(),e[a-1]^=128,this.keccak()}writeInto(e){me(this,!1),ce(e),this.finish();const t=this.state,{blockLen:n}=this;for(let a=0,i=e.length;a<i;){this.posOut>=n&&this.keccak();const r=Math.min(n-this.posOut,i-a);e.set(t.subarray(this.posOut,this.posOut+r),a),this.posOut+=r,a+=r}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return de(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Te(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new ut(t,n,a,r,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=a,e.enableXOF=r,e.destroyed=this.destroyed,e}}const lt=((e,t,n)=>ke((()=>new ut(t,e,n))))(1,136,32);function dt(e,t){const n=t||"hex",a=lt(T(e,{strict:!1})?C(e):e);return"bytes"===n?a:x(a)}const ct=new $e(8192);function mt(e,t){if(ct.has(`${e}.${t}`))return ct.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=dt(O(n),"bytes"),i=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)a[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(15&a[e>>1])>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());const r=`0x${i.join("")}`;return ct.set(`${e}.${t}`,r),r}const Tt=/^0x[a-fA-F0-9]{40}$/,ft=new $e(8192);function bt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(ft.has(a))return ft.get(a);const i=!(!Tt.test(e)||e.toLowerCase()!==e&&n&&mt(e)!==e);return ft.set(a,i),i}function ht(e,t,n,{strict:a}={}){return T(e,{strict:!1})?function(e,t,n,{strict:a}={}){gt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&wt(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){gt(e,t);const i=e.slice(t,n);a&&wt(i,t,n);return i}(e,t,n,{strict:a})}function gt(e,t){if("number"==typeof t&&t>0&&t>f(e)-1)throw new h({offset:t,position:"start",size:f(e)})}function wt(e,t,n){if("number"==typeof t&&"number"==typeof n&&f(e)!==n-t)throw new h({offset:n,position:"end",size:f(e)})}function It(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new Ve({chainId:t});if(i&&!bt(i))throw new qe({address:i});if(a&&a>G)throw new Ke({maxFeePerGas:a});if(n&&a&&n>a)throw new We({maxFeePerGas:a,maxPriorityFeePerGas:n})}function vt(e){if(!e||0===e.length)return[];const t=[];for(let n=0;n<e.length;n++){const{address:a,storageKeys:i}=e[n];for(let e=0;e<i.length;e++)if(i[e].length-2!=64)throw new ye({storageKey:i[e]});if(!bt(a,{strict:!1}))throw new qe({address:a});t.push([a,i])}return t}function xt(e,t){const n=function(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new pe({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:o,maxPriorityFeePerGas:p,accessList:y,data:u}=e;It(e);const l=vt(y),d=[x(n),i?x(i):"0x",p?x(p):"0x",o?x(o):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",u??"0x",l,...kt(e,t)];return X(["0x02",te(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:o,accessList:p,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Ve({chainId:t});if(r&&!bt(r))throw new qe({address:r});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>G)throw new Ke({maxFeePerGas:a})}(e);const u=vt(p),d=[x(n),r?x(r):"0x",y?x(y):"0x",a?x(a):"0x",s??"0x",o?x(o):"0x",i??"0x",u,...kt(e,t)];return X(["0x01",te(d)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new Ne;for(const e of t){const t=f(e),n=U(ht(e,0,1));if(32!==t)throw new Re({hash:e,size:t});if(1!==n)throw new He({hash:e,version:n})}}It(e)}(e);let d=e.blobVersionedHashes,c=e.sidecars;if(e.blobs&&(void 0===d||void 0===c)){const t="string"==typeof e.blobs[0]?e.blobs:e.blobs.map((e=>M(e))),n=e.kzg,a=ue({blobs:t,kzg:n});if(void 0===d&&(d=function(e){const{commitments:t,version:n}=e,a=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(De({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=ze({blobs:t,commitments:a,proofs:le({blobs:t,commitments:a,kzg:n})})}}const m=vt(u),T=[x(n),i?x(i):"0x",y?x(y):"0x",p?x(p):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",l??"0x",m,o?x(o):"0x",d??[],...kt(e,t)],b=[],h=[],g=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];b.push(t),h.push(n),g.push(a)}return X(["0x03",te(c?[T,b,h,g]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{chainId:t}=e,n=e.address;if(!bt(n))throw new qe({address:n});if(t<0)throw new Ve({chainId:t})}It(e)}(e);const d=vt(u),c=function(e){if(!e||0===e.length)return[];const t=[];for(const n of e){const{chainId:e,nonce:a,...i}=n,r=n.address;t.push([e?x(e):"0x",r,a?x(a):"0x",...kt({},i)])}return t}(n);return X(["0x04",te([x(a),r?x(r):"0x",y?x(y):"0x",p?x(p):"0x",i?x(i):"0x",s??"0x",o?x(o):"0x",l??"0x",d,c,...kt(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:o,gasPrice:p}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!bt(r))throw new qe({address:r});if(void 0!==t&&t<=0)throw new Ve({chainId:t});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>G)throw new Ke({maxFeePerGas:a})}(e);let y=[r?x(r):"0x",p?x(p):"0x",a?x(a):"0x",s??"0x",o?x(o):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new oe({v:t.v});return e})(),a=b(t.r),i=b(t.s);y=[...y,x(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,x(n),"0x","0x"]);return te(y)}(e,t)}function kt(e,t){const n=t??e,{v:a,yParity:i}=n;if(void 0===n.r)return[];if(void 0===n.s)return[];if(void 0===a&&void 0===i)return[];const r=b(n.r),s=b(n.s);return["number"==typeof i?i?x(1):"0x":0n===a?"0x":1n===a?x(1):27n===a?"0x":x(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const Mt={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function Pt(e,t){return function(e){return"deposit"===e.type||void 0!==e.sourceHash}(e)?function(e){!function(e){const{from:t,to:n}=e;if(t&&!bt(t))throw new qe({address:t});if(n&&!bt(n))throw new qe({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:o,value:p}=e;return X(["0x7e",te([t,a,o??"0x",s?x(s):"0x",p?x(p):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):xt(e,t)}const _t={contracts:Mt,formatters:{block:V({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=H(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?L(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}));return{transactions:t,stateRoot:e.stateRoot}}}),transaction:z({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?L(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:$({format:e=>({l1GasPrice:e.l1GasPrice?L(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?L(e.l1GasUsed):null,l1Fee:e.l1Fee?L(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:Pt}},Ft=1,At=o({..._t,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{..._t.contracts,disputeGameFactory:{[Ft]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Ft]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Ft]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Ft]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),Ct=11155111,St=o({..._t,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{..._t.contracts,disputeGameFactory:{[Ct]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[Ct]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[Ct]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[Ct]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:Ct});o({id:53456,name:"BirdLayer",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.birdlayer.xyz","https://rpc1.birdlayer.xyz"],webSocket:["wss://rpc.birdlayer.xyz/ws"]}},blockExplorers:{default:{name:"BirdLayer Explorer",url:"https://scan.birdlayer.xyz"}}});const Et=1;o({..._t,id:60808,name:"BOB",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.gobob.xyz"],webSocket:["wss://rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Explorer",url:"https://explorer.gobob.xyz"}},contracts:{..._t.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[Et]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[Et]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Dt=11155111;o({..._t,id:808813,name:"BOB Sepolia",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://bob-sepolia.rpc.gobob.xyz"],webSocket:["wss://bob-sepolia.rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Sepolia Explorer",url:"https://bob-sepolia.explorer.gobob.xyz"}},contracts:{..._t.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Dt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Dt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Dt});o({id:44,name:"Crab Network",nativeCurrency:{decimals:18,name:"Crab Network Native Token",symbol:"CRAB"},rpcUrls:{default:{http:["https://crab-rpc.darwinia.network"],webSocket:["wss://crab-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://crab-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:3032593}}}),o({id:66665,name:"Creator",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.creatorchain.io"]}},blockExplorers:{default:{name:"Explorer",url:"https://explorer.creatorchain.io"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11"}},testnet:!0}),o({id:53457,name:"DODOchain Testnet",nativeCurrency:{decimals:18,name:"DODO",symbol:"DODO"},rpcUrls:{default:{http:["https://dodochain-testnet.alt.technology"],webSocket:["wss://dodochain-testnet.alt.technology/ws"]}},blockExplorers:{default:{name:"DODOchain Testnet (Sepolia) Explorer",url:"https://testnet-scan.dodochain.com"}},testnet:!0});o({..._t,id:3397901,network:"funkiSepolia",name:"Funki Sepolia Sandbox",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://funki-testnet.alt.technology"]}},blockExplorers:{default:{name:"Funki Sepolia Sandbox Explorer",url:"https://sepolia-sandbox.funkichain.com/"}},testnet:!0,contracts:{..._t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const Ot=17e3;o({..._t,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:Ot,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.garnetchain.com"],webSocket:["wss://rpc.garnetchain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.garnetchain.com"}},contracts:{..._t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Ot]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[Ot]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[Ot]:{address:"0x09bcDd311FE398F80a78BE37E489f5D440DB95DE",blockCreated:1274684}}}});o({id:701,name:"Koi Network",nativeCurrency:{decimals:18,name:"Koi Network Native Token",symbol:"KRING"},rpcUrls:{default:{http:["https://koi-rpc.darwinia.network"],webSocket:["wss://koi-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://koi-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:180001}},testnet:!0});class Bt extends l{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join("\n"),{name:"AbiEncodingArrayLengthMismatchError"})}}class Lt extends l{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${f(t)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class Ut extends l{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join("\n"),{name:"AbiEncodingLengthMismatchError"})}}class Nt extends l{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:"BytesSizeMismatchError"})}}class Rt extends l{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiEncodingType"})}}class Ht extends l{constructor(e){super([`Value "${e}" is not a valid array.`].join("\n"),{name:"InvalidArrayError"})}}const zt=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,qt=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function Vt(e,t){if(e.length!==t.length)throw new Ut({expectedLength:e.length,givenLength:t.length});const n=function({params:e,values:t}){const n=[];for(let a=0;a<e.length;a++)n.push(Kt({param:e[a],value:t[a]}));return n}({params:e,values:t}),a=Wt(n);return 0===a.length?"0x":a}function Kt({param:e,value:t}){const n=function(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}(e.type);if(n){const[a,i]=n;return function(e,{length:t,param:n}){const a=null===t;if(!Array.isArray(e))throw new Ht(e);if(!a&&e.length!==t)throw new Bt({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let i=!1;const r=[];for(let t=0;t<e.length;t++){const a=Kt({param:n,value:e[t]});a.dynamic&&(i=!0),r.push(a)}if(a||i){const e=Wt(r);if(a){const t=P(r.length,{size:32});return{dynamic:!0,encoded:r.length>0?Z([t,e]):t}}if(i)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Z(r.map((({encoded:e})=>e)))}}(t,{length:a,param:{...e,type:i}})}if("tuple"===e.type)return function(e,{param:t}){let n=!1;const a=[];for(let i=0;i<t.components.length;i++){const r=t.components[i],s=Kt({param:r,value:e[Array.isArray(e)?i:r.name]});a.push(s),s.dynamic&&(n=!0)}return{dynamic:n,encoded:n?Wt(a):Z(a.map((({encoded:e})=>e)))}}(t,{param:e});if("address"===e.type)return function(e){if(!bt(e))throw new qe({address:e});return{dynamic:!1,encoded:I(e.toLowerCase())}}(t);if("bool"===e.type)return function(e){if("boolean"!=typeof e)throw new l(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:I(k(e))}}(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const n=e.type.startsWith("int"),[,,a="256"]=qt.exec(e.type)??[];return function(e,{signed:t,size:n=256}){if("number"==typeof n){const a=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-a-1n:0n;if(e>a||e<i)throw new c({max:a.toString(),min:i.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:P(e,{size:32,signed:t})}}(t,{signed:n,size:Number(a)})}if(e.type.startsWith("bytes"))return function(e,{param:t}){const[,n]=t.type.split("bytes"),a=f(e);if(!n){let t=e;return a%32!=0&&(t=I(t,{dir:"right",size:32*Math.ceil((e.length-2)/2/32)})),{dynamic:!0,encoded:Z([I(P(a,{size:32})),t])}}if(a!==Number.parseInt(n))throw new Lt({expectedSize:Number.parseInt(n),value:e});return{dynamic:!1,encoded:I(e,{dir:"right"})}}(t,{param:e});if("string"===e.type)return function(e){const t=F(e),n=Math.ceil(f(t)/32),a=[];for(let e=0;e<n;e++)a.push(I(ht(t,32*e,32*(e+1)),{dir:"right"}));return{dynamic:!0,encoded:Z([I(P(f(t),{size:32})),...a])}}(t);throw new Rt(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Wt(e){let t=0;for(let n=0;n<e.length;n++){const{dynamic:a,encoded:i}=e[n];t+=a?32:f(i)}const n=[],a=[];let i=0;for(let r=0;r<e.length;r++){const{dynamic:s,encoded:o}=e[r];s?(n.push(P(t+i,{size:32})),a.push(o),i+=f(o)):n.push(o)}return Z([...n,...a])}const $t=11155111;o({..._t,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:$t,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.pyropechain.com"],webSocket:["wss://rpc.pyropechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://pyrope.blockscout.com"}},contracts:{..._t.contracts,l1StandardBridge:{[$t]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const Gt=1;o({..._t,name:"Redstone",id:690,sourceId:1,nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.redstonechain.com"],webSocket:["wss://rpc.redstonechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.redstone.xyz"}},contracts:{..._t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Gt]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[Gt]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[Gt]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const Zt={[At.id]:"0xe52dE1801C10cF709cc8e62d43D783AFe984b510",[St.id]:"0xf0Fd8Bb98c050607d999D6fFF9C617edD6673b75"},Xt={[At.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[St.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},jt={[At.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[St.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},Qt={[At.id]:"0x23321f11a6d44fd1ab790044fdfde5758c902fdc",[St.id]:"0x4e7cb1e6800a7b297b38bddcecaf9ca5b6616fdc"},Yt={[At.id]:"0x8DC3b85e1dc1C846ebf3971179a751896842e5dC",[St.id]:"0xB4A535B9D35851972736495CC52FBfDaCF32e5dc"},Jt={[At.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[St.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},en={[At.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[St.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},tn={[At.id]:"0x516af52d0c629b5e378da4dc64ecb0744ce10109",[St.id]:"0xe2ef58a54ee79dac0D4A130ea58b340124DF9438"},nn={[At.id]:"0xc5B2E8F197407263F4B62a35C71bFc394ecF95D5",[St.id]:"0x67Ee6C83956a75f67bD3Fc8Ca4080D95a145c7C9"},an={[At.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[St.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},rn={[At.id]:"0x4dc442403e8c758425b93C59Dc737da522f32640",[St.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},sn={[At.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[St.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},on={[At.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[St.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},pn={[At.id]:"0x2154c604df568A5285284D1c4918DC98C39240df",[St.id]:"0xcfF222eA42E43F46A98755db237E4c9C2CA9B772"},yn={[At.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[St.id]:"0xD2F3C6185e06925dCBE794C6574315b2202E9CcD"},un={[At.id]:"0x4Fb9dE6bbe970A49C19fB967F937351728C01b8f",[St.id]:"0x34077816CC8EAb21FF8E87FDC35b95F1602A2221"},ln={[At.id]:"0xC3F4E72DE4D37988F12C101b0766Fd8462F6Faf9",[St.id]:"0x487583E8543ac9D68f11824ED611645Ca088c07F"},dn={[At.id]:"0x3C3BC8e63DF9CCd5cdaa01F6833B2e4dCdB40bF0",[St.id]:"0x9ebBe3f8b72494aB00144a8844dbeA8B8817c323"},cn={[At.id]:"0xb47af90ae61bc916ea4b4bacffae4570e7435842",[St.id]:"0xb4955a396ef07c124a59164c30d63e96a103a98b"},mn={[At.id]:"0xf6ddfcb093be0cd0c015590cb6c5127d9ff2a20b",[St.id]:"0x2874f9a30348acaaad55d74b0bec9c18f04b471a"},Tn={[At.id]:"0xedd66b080b8e9425c39d349a3fb69f480580f993",[St.id]:"0x6428b5C4da36ecB070aBdcB5E1939244A3cC7fb5"},fn={[At.id]:"0x06a089fa231aca48d2aa77365123ad9aca43d3a4",[St.id]:"0x6582d2bc6a7eba3b40bdf46b3868fc7ec2ff96ec"},bn={[At.id]:"0x7a04367563a65db574d6b7d084fdbcf4a570c5a6",[St.id]:"0xfde5b79e3e2814edd5f91e8694ae400954d9cfaa"},hn={[At.id]:"0x656047fd43d2c3a121f2ef859d7171d7dd59f8b9",[St.id]:"0x05a5763e9199b88bb591c6b112d0424b2cd7a99e"},gn={[At.id]:"0x4dfc76A31A2a0110739611683a8b6C5201480fa1",[St.id]:"0x551aeD820CAfaca2f9cD1C637AAc076D05a03AC2"},wn={[At.id]:"0x828B58B2B2df8ff3221Fbe2b07e75a56a84493Cc",[St.id]:"0xe8691E8f576A98c41EBB5E984207d4F51386621f"},In={[At.id]:"0x72e6f7948b1B1A343B477F39aAbd2E35E6D27dde",[St.id]:"0x73E27908b7d35A9251a54799A8ef4C17e4ED9FF9"},vn={[At.id]:"0xBD39c7Be6D98BD1a3e4Ad482baF99d738947fE55",[St.id]:"0xd3d9047CaBE3346C70b510435866565176e8CE12"},xn={[At.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[St.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},kn={[At.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[St.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Mn={[At.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[St.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},Pn={[At.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[St.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},_n={[At.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[St.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},Fn={[At.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[St.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},An={[At.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[St.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Cn={[At.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[St.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},Sn={[At.id]:"0x7C5f5A4bBd8fD63184577525326123B519429bDc",[St.id]:"0x4B2C77d209D3405F41a037Ec6c77F7F5b8e2ca80"},En={[At.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[St.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},Dn=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"premineInfo",outputs:[{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],On=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let Bn=0;const Ln=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=On[Bn];return Bn=(Bn+1)%On.length,`${n}${t}`}return e},Un=async e=>{try{const t={pinataOptions:{cidVersion:1},pinataMetadata:{name:e.name||null,keyvalues:e.metadata||{}},pinataContent:e.json},n=await s.default.post("https://api.pinata.cloud/pinning/pinJSONToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"application/json"}});return{IpfsHash:n.data.IpfsHash,PinSize:n.data.PinSize,Timestamp:n.data.Timestamp,isDuplicate:n.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload JSON to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Nn=async e=>{try{const t=new FormData,n=e.base64Image.split(",")[1]||e.base64Image,a=atob(n),i=[];for(let e=0;e<a.length;e+=1024){const t=a.slice(e,e+1024),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const r=new Uint8Array(n);i.push(r)}let r="image/png";e.base64Image.startsWith("data:")&&(r=e.base64Image.split(";")[0].split(":")[1]);const o=new Blob(i,{type:r}),p=e.name||`image.${r.split("/")[1]}`,y=new File([o],p,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:d.data.IpfsHash,PinSize:d.data.PinSize,Timestamp:d.data.Timestamp,isDuplicate:d.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Rn=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-image",{base64Image:e},{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},Hn=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-metadata",e,{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload metadata to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},zn=async(e,t,n)=>{let a,i;if(n.pinataConfig){a=(await Nn({pinataConfig:n.pinataConfig,base64Image:n.metadata.base64Image})).IpfsHash;const t={name:e,description:n.metadata.description,image:`ipfs://${a}`,external_link:n.metadata.websiteUrl||"",collaborators:[],discordUrl:n.metadata.discordUrl||"",twitterUrl:n.metadata.twitterUrl||"",telegramUrl:n.metadata.telegramUrl||""};i=(await Un({pinataConfig:n.pinataConfig,json:t})).IpfsHash}else{a=(await Rn(n.metadata.base64Image)).ipfsHash;const r={name:e,symbol:t,description:n.metadata.description,imageIpfs:a,websiteUrl:n.metadata.websiteUrl,discordUrl:n.metadata.discordUrl,twitterUrl:n.metadata.twitterUrl,telegramUrl:n.metadata.telegramUrl};i=(await Hn(r)).ipfsHash}return`ipfs://${i}`},qn=[{inputs:[{components:[{internalType:"address",name:"permit2",type:"address"},{internalType:"address",name:"weth9",type:"address"},{internalType:"address",name:"v2Factory",type:"address"},{internalType:"address",name:"v3Factory",type:"address"},{internalType:"bytes32",name:"pairInitCodeHash",type:"bytes32"},{internalType:"bytes32",name:"poolInitCodeHash",type:"bytes32"},{internalType:"address",name:"v4PoolManager",type:"address"},{internalType:"address",name:"v3NFTPositionManager",type:"address"},{internalType:"address",name:"v4PositionManager",type:"address"}],internalType:"struct RouterParameters",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BalanceTooLow",type:"error"},{inputs:[],name:"ContractLocked",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotNegative",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotPositive",type:"error"},{inputs:[],name:"ETHNotAccepted",type:"error"},{inputs:[{internalType:"uint256",name:"commandIndex",type:"uint256"},{internalType:"bytes",name:"message",type:"bytes"}],name:"ExecutionFailed",type:"error"},{inputs:[],name:"FromAddressIsNotOwner",type:"error"},{inputs:[],name:"InputLengthMismatch",type:"error"},{inputs:[],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InsufficientETH",type:"error"},{inputs:[],name:"InsufficientToken",type:"error"},{inputs:[{internalType:"bytes4",name:"action",type:"bytes4"}],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidBips",type:"error"},{inputs:[{internalType:"uint256",name:"commandType",type:"uint256"}],name:"InvalidCommandType",type:"error"},{inputs:[],name:"InvalidEthSender",type:"error"},{inputs:[],name:"InvalidPath",type:"error"},{inputs:[],name:"InvalidReserves",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"NotAuthorizedForToken",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"OnlyMintAllowed",type:"error"},{inputs:[],name:"SliceOutOfBounds",type:"error"},{inputs:[],name:"TransactionDeadlinePassed",type:"error"},{inputs:[],name:"UnsafeCast",type:"error"},{inputs:[{internalType:"uint256",name:"action",type:"uint256"}],name:"UnsupportedAction",type:"error"},{inputs:[],name:"V2InvalidPath",type:"error"},{inputs:[],name:"V2TooLittleReceived",type:"error"},{inputs:[],name:"V2TooMuchRequested",type:"error"},{inputs:[],name:"V3InvalidAmountOut",type:"error"},{inputs:[],name:"V3InvalidCaller",type:"error"},{inputs:[],name:"V3InvalidSwap",type:"error"},{inputs:[],name:"V3TooLittleReceived",type:"error"},{inputs:[],name:"V3TooMuchRequested",type:"error"},{inputs:[{internalType:"uint256",name:"minAmountOutReceived",type:"uint256"},{internalType:"uint256",name:"amountReceived",type:"uint256"}],name:"V4TooLittleReceived",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmountInRequested",type:"uint256"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"V4TooMuchRequested",type:"error"},{inputs:[],name:"V3_POSITION_MANAGER",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"V4_POSITION_MANAGER",outputs:[{internalType:"contract IPositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"msgSender",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",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:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],Vn=[{type:"tuple",components:[{type:"address",name:"currencyIn"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountIn"},{type:"uint128",name:"amountOutMinimum"}]}],Kn=[{type:"tuple",components:[{type:"address",name:"currencyOut"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountOut"},{type:"uint128",name:"amountInMaximum"}]}],Wn="07",$n="09",Gn="0c",Zn="0f",Xn="10",jn="04",Qn="0a",Yn=({amount:e,slippage:t,swapType:a})=>{if(null==e)return 0n;return(e<0n?-e:e)*("EXACT_IN"===a?BigInt(1e18)-n.parseEther(t):BigInt(1e18)+n.parseEther(t))/BigInt(1e18)},Jn=n.zeroAddress,ea=e=>{const t=xn[e.chainId],a=kn[e.chainId],i=e.positionManagerAddress,r="0x"+("EXACT_IN"===e.swapType?Wn:$n)+Gn+Zn;let s;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==Jn&&e.intermediatePoolKey.currency1!==Jn)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=e.intermediatePoolKey?e.intermediatePoolKey.currency0===Jn?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:Jn;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");const r=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(Vn,[{currencyIn:o,path:e.intermediatePoolKey?[{intermediateCurrency:Jn,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData},...r]:r,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");const r=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:Jn},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(Kn,[{currencyOut:e.memecoin,path:e.intermediatePoolKey?[{fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hookData:e.intermediatePoolKey.hookData,hooks:e.intermediatePoolKey.hooks,intermediateCurrency:o},...r]:r,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[o,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,y]]);if(e.intermediatePoolKey&&e.signature&&e.permitSingle){const t="0x"+Qn+Xn,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),u];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const t="0x"+Xn+jn,a=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[Jn,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}},ta=e=>{const t=xn[e.chainId],a=kn[e.chainId],i=e.positionManagerAddress,r="0x"+Wn+Gn+Zn;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==Jn&&e.intermediatePoolKey.currency1!==Jn)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const s=e.intermediatePoolKey?e.intermediatePoolKey.currency0===Jn?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:Jn,o=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:Jn,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],p=n.encodeAbiParameters(Vn,[{currencyIn:e.memecoin,path:e.intermediatePoolKey?[...o,{intermediateCurrency:s,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData}]:o,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),u=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[s,e.amountOutMin]),l=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[p,y,u]]);if(e.signature&&e.permitSingle){const t="0x"+Qn+Xn,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),l];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+Xn,t=[l];return{calldata:n.encodeFunctionData({abi:qn,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}},na=[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}],aa={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:na},ia=({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Cn[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:_n[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:aa,message:s},permitSingle:s}};function ra(e,t){const{flAmount0:n,flAmount1:a,flFee0:i,flFee1:r,ispAmount0:s,ispAmount1:o,ispFee0:p,ispFee1:y,uniAmount0:u,uniAmount1:l,uniFee0:d,uniFee1:c}=e,m=n+s+u,T=a+o+l,f=i+p+d,b=r+y+c;let h,g;t?(g=m<0?"BUY":"SELL",h=f<0):(g=T<0?"BUY":"SELL",h=b<0);const w=m<0?-m:m,I=T<0?-T:T,v=f<0?-f:f,x=b<0?-b:b,k={isInFLETH:h,amount:t?h?v:x:h?x:v};return"BUY"===g?{type:g,delta:{coinsBought:t?I-(k.isInFLETH?0n:k.amount):w-(k.isInFLETH?0n:k.amount),flETHSold:t?w-(k.isInFLETH?k.amount:0n):I-(k.isInFLETH?k.amount:0n),fees:k}}:{type:g,delta:{coinsSold:t?I-(k.isInFLETH?0n:k.amount):w-(k.isInFLETH?0n:k.amount),flETHBought:t?w-(k.isInFLETH?k.amount:0n):I-(k.isInFLETH?k.amount:0n),fees:k}}}const sa=[{inputs:[{internalType:"address",name:"_protocolOwner",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_ethToken",type:"address"},{internalType:"address",name:"_usdcToken",type:"address"},{internalType:"address",name:"_flaunchFeeExemption",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[{internalType:"uint256",name:"_usdcMarketCap",type:"uint256"},{internalType:"uint256",name:"_usdcMarketCapMinimum",type:"uint256"}],name:"MarketCapTooSmall",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_flaunchFeeThreshold",type:"uint256"}],name:"FlaunchFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"MINIMUM_USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"ethToken",outputs:[{internalType:"Currency",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunchFeeExemption",outputs:[{internalType:"contract FlaunchFeeExemption",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunchFeeThreshold",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bool",name:"_flipped",type:"bool"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getSqrtPriceX96",outputs:[{internalType:"uint160",name:"sqrtPriceX96_",type:"uint160"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_flaunchFeeThreshold",type:"uint256"}],name:"setFlaunchFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"setPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"usdcToken",outputs:[{internalType:"Currency",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"usdcToken0",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class oa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:sa,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}getSqrtPriceX96(e){return this.contract.read("getSqrtPriceX96",{_flipped:!e.isFLETHZero,_initialPriceParams:e.initialPriceParams,0:n.zeroAddress})}}class pa{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Dn,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}creatorBalance(e){return this.contract.read("balances",{_recipient:e})}async getFlaunchingFee(e){const t=new oa(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class ya extends pa{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,initialMarketCapUSD:r,creator:s,creatorFeeAllocationPercent:o,flaunchAt:p}){const y=n.parseUnits(r.toString(),6),u=n.encodeAbiParameters([{type:"uint256"}],[y]),l=BigInt(100*i),d=100*o;let c=n.zeroAddress;this.drift.adapter.getSignerAddress&&(c=await this.drift.adapter.getSignerAddress());const m=await this.getFlaunchingFee({sender:c,initialPriceParams:u,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*l/10000n,premineAmount:0n,creator:s,creatorFeeAllocation:d,flaunchAt:p??0n,initialPriceParams:u,feeCalculatorParams:"0x"}},{value:m,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s,metadata:o,pinataConfig:p}){const y=await zn(e,t,{metadata:o,pinataConfig:p});return this.flaunch({name:e,symbol:t,tokenUri:y,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s})}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const ua=e=>n.hexToBigInt(e),la=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),da=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyUnlocked",type:"error"},{inputs:[{internalType:"address",name:"currency0",type:"address"},{internalType:"address",name:"currency1",type:"address"}],name:"CurrenciesOutOfOrderOrEqual",type:"error"},{inputs:[],name:"CurrencyNotSettled",type:"error"},{inputs:[],name:"DelegateCallNotAllowed",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"ManagerLocked",type:"error"},{inputs:[],name:"MustClearExactPositiveDelta",type:"error"},{inputs:[],name:"NonzeroNativeValue",type:"error"},{inputs:[],name:"PoolNotInitialized",type:"error"},{inputs:[],name:"ProtocolFeeCurrencySynced",type:"error"},{inputs:[{internalType:"uint24",name:"fee",type:"uint24"}],name:"ProtocolFeeTooLarge",type:"error"},{inputs:[],name:"SwapAmountCannotBeZero",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooLarge",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooSmall",type:"error"},{inputs:[],name:"UnauthorizedDynamicLPFeeUpdate",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Donate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"Currency",name:"currency0",type:"address"},{indexed:!0,internalType:"Currency",name:"currency1",type:"address"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"},{indexed:!1,internalType:"int24",name:"tickSpacing",type:"int24"},{indexed:!1,internalType:"contract IHooks",name:"hooks",type:"address"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"int256",name:"liquidityDelta",type:"int256"},{indexed:!1,internalType:"bytes32",name:"salt",type:"bytes32"}],name:"ModifyLiquidity",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:"OperatorSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"protocolFeeController",type:"address"}],name:"ProtocolFeeControllerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"protocolFee",type:"uint24"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"}],name:"Swap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"caller",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"allowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"clear",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"collectProtocolFees",outputs:[{internalType:"uint256",name:"amountCollected",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"donate",outputs:[{internalType:"BalanceDelta",name:"delta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"extsload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"startSlot",type:"bytes32"},{internalType:"uint256",name:"nSlots",type:"uint256"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"exttload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"exttload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[{internalType:"int24",name:"tick",type:"int24"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isOperator",outputs:[{internalType:"bool",name:"isOperator",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"modifyLiquidity",outputs:[{internalType:"BalanceDelta",name:"callerDelta",type:"int256"},{internalType:"BalanceDelta",name:"feesAccrued",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeController",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"protocolFeesAccrued",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setOperator",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newProtocolFee",type:"uint24"}],name:"setProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"controller",type:"address"}],name:"setProtocolFeeController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"settle",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"}],name:"settleFor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"swap",outputs:[{internalType:"BalanceDelta",name:"swapDelta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"sync",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"take",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlock",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newDynamicLPFee",type:"uint24"}],name:"updateDynamicLPFee",outputs:[],stateMutability:"nonpayable",type:"function"}];class ca{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:da,address:e})}poolStateSlot({poolId:e}){const t=la(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,o=BigInt("0xFFFFFF"),p=Number(s&o),y=p>8388607?p-16777216:p,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),o=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),p=this.poolStateSlot({poolId:e}),y=la(ua(p)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[o,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const ma=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getFeeGrowthGlobals",outputs:[{internalType:"uint256",name:"feeGrowthGlobal0",type:"uint256"},{internalType:"uint256",name:"feeGrowthGlobal1",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"getFeeGrowthInside",outputs:[{internalType:"uint256",name:"feeGrowthInside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"bytes32",name:"salt",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getSlot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint24",name:"protocolFee",type:"uint24"},{internalType:"uint24",name:"lpFee",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int16",name:"tick",type:"int16"}],name:"getTickBitmap",outputs:[{internalType:"uint256",name:"tickBitmap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickFeeGrowthOutside",outputs:[{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickInfo",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"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickLiquidity",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Ta{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ma,address:e})}poolSlot0({poolId:e}){return this.contract.read("getSlot0",{poolId:e})}positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"});return this.contract.read("getPositionInfo",{poolId:e,owner:t,tickLower:a,tickUpper:i,salt:s})}getTickLiquidity({poolId:e,tick:t}){return this.contract.read("getTickLiquidity",{poolId:e,tick:t})}}const fa=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",type:"event"},{inputs:[],name:"FAIR_LAUNCH_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];class ba{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:fa,address:e})}fairLaunchDuration({poolId:e}){return 1800}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const ha=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ga{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ha,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const wa=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"StaleTimeWindowUpdated",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"checkStalePosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",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:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"lastPoolTransaction",outputs:[{internalType:"uint256",name:"_timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"setStaleTimeWindow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"staleTimeWindow",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Ia{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:wa,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const va=[{type:"constructor",inputs:[{name:"_positionManager",type:"address",internalType:"contract PositionManager"},{name:"_flaunchContract",type:"address",internalType:"contract Flaunch"},{name:"_flETH",type:"address",internalType:"contract IFLETH"},{name:"_poolSwap",type:"address",internalType:"contract PoolSwap"},{name:"_treasuryManagerFactory",type:"address",internalType:"contract ITreasuryManagerFactory"},{name:"_merkleAirdrop",type:"address",internalType:"contract IMerkleAirdrop"},{name:"_whitelistFairLaunch",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"calculateFee",inputs:[{name:"_premineAmount",type:"uint256",internalType:"uint256"},{name:"_slippage",type:"uint256",internalType:"uint256"},{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"ethRequired_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"},{name:"_permissions",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"flETH",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFLETH"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"},{name:"_whitelistParams",type:"tuple",internalType:"struct FlaunchZap.WhitelistParams",components:[{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"},{name:"maxTokens",type:"uint256",internalType:"uint256"}]},{name:"_airdropParams",type:"tuple",internalType:"struct FlaunchZap.AirdropParams",components:[{name:"airdropIndex",type:"uint256",internalType:"uint256"},{name:"airdropAmount",type:"uint256",internalType:"uint256"},{name:"airdropEndTime",type:"uint256",internalType:"uint256"},{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"}]},{name:"_treasuryManagerParams",type:"tuple",internalType:"struct FlaunchZap.TreasuryManagerParams",components:[{name:"manager",type:"address",internalType:"address"},{name:"permissions",type:"address",internalType:"address"},{name:"initializeData",type:"bytes",internalType:"bytes"},{name:"depositData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"deployedManager_",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunchContract",inputs:[],outputs:[{name:"",type:"address",internalType:"contract Flaunch"}],stateMutability:"view"},{type:"function",name:"merkleAirdrop",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMerkleAirdrop"}],stateMutability:"view"},{type:"function",name:"poolSwap",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PoolSwap"}],stateMutability:"view"},{type:"function",name:"positionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PositionManager"}],stateMutability:"view"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITreasuryManagerFactory"}],stateMutability:"view"},{type:"function",name:"whitelistFairLaunch",inputs:[],outputs:[{name:"",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"view"},{type:"error",name:"CreatorCannotBeZero",inputs:[]},{type:"error",name:"InsufficientMemecoinsForAirdrop",inputs:[]}];var xa,ka,Ma,Pa;function _a(t,a){switch(t){case e.Permissions.CLOSED:return gn[a];case e.Permissions.WHITELISTED:return wn[a];case e.Permissions.OPEN:default:return n.zeroAddress}}e.FlaunchVersion=void 0,(xa=e.FlaunchVersion||(e.FlaunchVersion={})).V1="V1",xa.V1_1="V1_1",xa.V1_2="V1_2",xa.ANY="ANY",e.Verifier=void 0,(ka=e.Verifier||(e.Verifier={})).CLANKER="clanker",ka.DOPPLER="doppler",ka.VIRTUALS="virtuals",ka.WHITELIST="whitelist",ka.ZORA="zora",e.LiquidityMode=void 0,(Ma=e.LiquidityMode||(e.LiquidityMode={})).FULL_RANGE="full-range",Ma.CONCENTRATED="concentrated",e.Permissions=void 0,(Pa=e.Permissions||(e.Permissions={})).OPEN="open",Pa.CLOSED="closed",Pa.WHITELISTED="whitelisted";const Fa=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"contract BidWall",name:"bidWall",type:"address"},{internalType:"contract FairLaunch",name:"fairLaunch",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_unsoldSupply",type:"uint256"}],name:"FairLaunchBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"BURN_ADDRESS",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Aa{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Fa,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new oa(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}class Ca extends Aa{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:o,creatorFeeAllocationPercent:p,flaunchAt:y}){const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*p;let m=n.zeroAddress;this.drift.adapter.getSignerAddress&&(m=await this.drift.adapter.getSignerAddress());const T=await this.getFlaunchingFee({sender:m,initialPriceParams:l,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*d/10000n,fairLaunchDuration:r,premineAmount:0n,creator:o,creatorFeeAllocation:c,flaunchAt:y??0n,initialPriceParams:l,feeCalculatorParams:"0x"}},{value:T,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o,metadata:p,pinataConfig:y}){const u=await zn(e,t,{metadata:p,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o})}}class Sa{constructor(e,n,a=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.chainId=e,this.drift=a,!n)throw new Error("Address is required");this.contract=a.contract({abi:va,address:n}),this.readPositionManagerV1_1=new Aa(jt[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return Yn({amount:t,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async getFlaunchingFee(e){const t=new oa(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}ethRequiredToFlaunch(e){return this.contract.read("calculateFee",{_premineAmount:e.premineAmount??0n,_slippage:e.slippagePercent?BigInt(100*e.slippagePercent):0n,_initialPriceParams:e.initialPriceParams})}}class Ea extends Sa{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(t){const a=n.parseUnits(t.initialMarketCapUSD.toString(),6),i=n.encodeAbiParameters([{type:"uint256"}],[a]),r=BigInt(100*t.fairLaunchPercent),s=100*t.creatorFeeAllocationPercent,o=await this.ethRequiredToFlaunch({premineAmount:t.premineAmount??0n,initialPriceParams:i,slippagePercent:5}),p=t.treasuryManagerParams?{manager:t.treasuryManagerParams.manager??n.zeroAddress,permissions:t.treasuryManagerParams.permissions??e.Permissions.OPEN,initializeData:t.treasuryManagerParams.initializeData??"0x",depositData:t.treasuryManagerParams.depositData??"0x"}:{manager:n.zeroAddress,permissions:e.Permissions.OPEN,initializeData:"0x",depositData:"0x"},y=t.trustedSignerSettings?n.encodeAbiParameters([{type:"bool",name:"enabled"},{type:"uint256",name:"walletCap"},{type:"uint256",name:"txCap"}],[t.trustedSignerSettings.enabled,t.trustedSignerSettings.walletCap??0n,t.trustedSignerSettings.txCap??0n]):"0x",u=t.trustedSignerSettings?.enabled?n.encodeAbiParameters([{type:"address",name:"referrer"},{type:"tuple",components:[{type:"uint256",name:"deadline"},{type:"bytes",name:"signature"}]}],[n.zeroAddress,{deadline:BigInt(t.trustedSignerSettings.premineSignedMessage?.deadline??0),signature:t.trustedSignerSettings.premineSignedMessage?.signature??"0x"}]):"0x";return this.contract.write("flaunch",{_flaunchParams:{name:t.name,symbol:t.symbol,tokenUri:t.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*r/10000n,fairLaunchDuration:BigInt(t.fairLaunchDuration),premineAmount:t.premineAmount??0n,creator:t.creator,creatorFeeAllocation:s,flaunchAt:t.flaunchAt??0n,initialPriceParams:i,feeCalculatorParams:y},_trustedFeeSigner:t.trustedSignerSettings?.trustedFeeSigner??n.zeroAddress,_premineSwapHookData:u,_treasuryManagerParams:{...p,permissions:_a(p.permissions,this.chainId)},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:o})}async flaunchIPFS(e){const t=await zn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(t){return this.flaunch({...t,treasuryManagerParams:{manager:t.revenueManagerInstanceAddress,permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:"0x",depositData:"0x"}})}async flaunchIPFSWithRevenueManager(e){const t=await zn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}async flaunchWithSplitManager(t){const a=10000000n;let i=BigInt(t.creatorSplitPercent)*a/100n;const r=t.splitReceivers.map((e=>({recipient:e.address,share:BigInt(e.percent)*a/100n}))),s=r.reduce(((e,t)=>e+t.share),0n);i+=a-s;const o=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:i,recipientShares:r}]);return this.flaunch({...t,treasuryManagerParams:{manager:ln[this.chainId],permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:o,depositData:"0x"}})}async flaunchIPFSWithSplitManager(e){const t=await zn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithSplitManager({...e,tokenUri:t})}deployRevenueManager(t){const a=_a(t.permissions??e.Permissions.OPEN,this.chainId);return this.contract.write("deployAndInitializeManager",{_managerImplementation:un[this.chainId],_owner:t.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:t.protocolRecipient,protocolFee:BigInt(100*t.protocolFeePercent)}]),_permissions:a})}deployStakingManager(t){const a=_a(t.permissions??e.Permissions.OPEN,this.chainId),i=10000000n,r=dn[this.chainId];if(r===n.zeroAddress)throw new Error(`StakingManager not deployed on chainId: ${this.chainId}`);return this.contract.write("deployAndInitializeManager",{_managerImplementation:r,_owner:t.managerOwner,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"stakingToken"},{type:"uint256",name:"minEscrowDuration"},{type:"uint256",name:"minStakeDuration"},{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"}]}],[{stakingToken:t.stakingToken,minEscrowDuration:t.minEscrowDuration,minStakeDuration:t.minStakeDuration,creatorShare:BigInt(t.creatorSharePercent)*i/100n,ownerShare:BigInt(t.ownerSharePercent)*i/100n}]),_permissions:a})}}const Da=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",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:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",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:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",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:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Oa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Da,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}memecoin(e){return this.contract.read("memecoin",{_tokenId:e})}}const Ba=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotFlaunch",type:"error"},{inputs:[],name:"MintAddressIsZero",type:"error"},{inputs:[],name:"Permit2AllowanceIsFixedAtInfinity",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainMint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateVotesChanged",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_name",type:"string"},{indexed:!1,internalType:"string",name:"_symbol",type:"string"}],name:"MetadataUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"CLOCK_MODE",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"burnFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint32",name:"pos",type:"uint32"}],name:"checkpoints",outputs:[{components:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint224",name:"votes",type:"uint224"}],internalType:"struct ERC20VotesUpgradeable.Checkpoint",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"clock",outputs:[{internalType:"uint48",name:"",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[],name:"creator",outputs:[{internalType:"address",name:"creator_",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainBurn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"}],name:"delegate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",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:"delegateBySig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunch",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"getVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"string",name:"tokenUri_",type:"string"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"numCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",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:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"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:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];class La{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ba,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}decimals(){return this.contract.read("decimals")}totalSupply(){return this.contract.read("totalSupply")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}allowance(e,t){return this.contract.read("allowance",{owner:e,spender:t})}}class Ua extends La{constructor(e,n=t.createDrift()){super(e,n)}approve(e,t){return this.contract.write("approve",{spender:e,amount:t})}}const Na=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"NotEnoughLiquidity",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"QuoteSwap",type:"error"},{inputs:[],name:"UnexpectedCallSuccess",type:"error"},{inputs:[{internalType:"bytes",name:"revertData",type:"bytes"}],name:"UnexpectedRevertBytes",type:"error"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactInput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactInputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactOutput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactOutputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"}];class Ra{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:Na,address:n})}async getSellQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const r=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:n.zeroAddress},{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:r}]}})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:o,path:[{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:n.zeroAddress},{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId],intermediateCurrency:xn[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}async getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:o,fee:i.fee,tickSpacing:i.tickSpacing,hookData:i.hookData,hooks:i.hooks},{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId]},{intermediateCurrency:xn[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:kn[this.chainId]},{intermediateCurrency:xn[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:En[this.chainId].fee,tickSpacing:En[this.chainId].tickSpacing,hooks:En[this.chainId].hooks,hookData:"0x",intermediateCurrency:En[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const Ha=[{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"AllowanceExpired",type:"error"},{inputs:[],name:"ExcessiveInvalidation",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InsufficientAllowance",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"signatureDeadline",type:"uint256"}],name:"SignatureExpired",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"address",name:"spender",type:"address"}],name:"Lockdown",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint48",name:"newNonce",type:"uint48"},{indexed:!1,internalType:"uint48",name:"oldNonce",type:"uint48"}],name:"NonceInvalidation",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"},{indexed:!1,internalType:"uint48",name:"nonce",type:"uint48"}],name:"Permit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"uint256",name:"word",type:"uint256"},{indexed:!1,internalType:"uint256",name:"mask",type:"uint256"}],name:"UnorderedNonceInvalidation",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint48",name:"newNonce",type:"uint48"}],name:"invalidateNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"wordPos",type:"uint256"},{internalType:"uint256",name:"mask",type:"uint256"}],name:"invalidateUnorderedNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"}],internalType:"struct IAllowanceTransfer.TokenSpenderPair[]",name:"approvals",type:"tuple[]"}],name:"lockdown",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"nonceBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails[]",name:"details",type:"tuple[]"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitBatch",name:"permitBatch",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails",name:"details",type:"tuple"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitSingle",name:"permitSingle",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],internalType:"struct IAllowanceTransfer.AllowanceTransferDetails[]",name:"transferDetails",type:"tuple[]"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];class za{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ha,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class qa extends za{constructor(e,n=t.createDrift()){super(e,n)}approve(e){return this.contract.write("approve",e)}}const Va=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"contract BidWall",name:"bidWall",type:"address"},{internalType:"contract FairLaunch",name:"fairLaunch",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_unsoldSupply",type:"uint256"}],name:"FairLaunchBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"BURN_ADDRESS",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Ka{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Va,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new oa(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Yn({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}const Wa=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"address",name:"bidWall",type:"address"}],internalType:"struct AnyPositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyFlaunched",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotApprovedCreator",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_creator",type:"address"},{indexed:!1,internalType:"bool",name:"_isApproved",type:"bool"}],name:"CreatorApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"},{internalType:"bool",name:"_isApproved",type:"bool"}],name:"approveCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"approvedMemecoinCreator",outputs:[{internalType:"bool",name:"isApproved",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IAnyFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class $a{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Wa,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}async getFlaunchingFee(e){return 0n}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find((t=>t.transactionHash===e));if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=ra(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=ra(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class Ga extends $a{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({memecoin:e,initialMarketCapUSD:t,creator:a,creatorFeeAllocationPercent:i}){const r=n.parseUnits(t.toString(),6),s=n.encodeAbiParameters([{type:"uint256"},{type:"address"}],[r,e]),o=100*i;return this.contract.write("flaunch",{_params:{memecoin:e,creator:a,creatorFeeAllocation:o,initialPriceParams:s,feeCalculatorParams:"0x"}},{onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}}const Za=[{type:"constructor",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"anyPositionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract AnyPositionManager"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"getAllVerifiers",inputs:[],outputs:[{name:"verifiers_",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"},{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"removeVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setAnyPositionManager",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"verifyMemecoin",inputs:[{name:"_memecoin",type:"address",internalType:"address"}],outputs:[{name:"verifier_",type:"address",internalType:"address"}],stateMutability:"view"},{type:"event",name:"AnyPositionManagerSet",inputs:[{name:"_anyPositionManager",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"TokenImported",inputs:[{name:"_memecoin",type:"address",indexed:!0,internalType:"address"},{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierAdded",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierRemoved",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"InvalidMemecoin",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"VerifierAlreadyAdded",inputs:[]},{type:"error",name:"VerifierNotAdded",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}];class Xa{constructor(e,n,a=t.createDrift()){this.chainId=e,this.drift=a,this.contract=a.contract({abi:Za,address:n})}async verifyMemecoin(e){const t=await this.contract.read("verifyMemecoin",{_memecoin:e});return{isValid:t!==n.zeroAddress,verifier:t}}verifierAddress(t){switch(t){case e.Verifier.CLANKER:return mn[this.chainId];case e.Verifier.DOPPLER:return Tn[this.chainId];case e.Verifier.VIRTUALS:return fn[this.chainId];case e.Verifier.WHITELIST:return bn[this.chainId];case e.Verifier.ZORA:return hn[this.chainId];default:throw new Error(`Unknown verifier: ${t}`)}}}class ja extends Xa{constructor(e,n,a=t.createDrift()){super(e,n,a)}async initialize(e){return this.contract.write("initialize",await this.getInitializeParams(e))}async getInitializeParams(e){let t;if("initialMarketCapUSD"in e)t=e.initialMarketCapUSD;else{const a=new La(e.coinAddress,this.drift),i=await a.totalSupply(),r=await a.decimals(),s=parseFloat(n.formatUnits(i,r));t=e.initialPriceUSD*s}const a=n.parseUnits(t.toString(),6),i=100*e.creatorFeeAllocationPercent;let r=e.verifier?this.verifierAddress(e.verifier):await this.contract.read("verifyMemecoin",{_memecoin:e.coinAddress});return{_memecoin:e.coinAddress,_creatorFeeAllocation:i,_initialMarketCap:a,_verifier:r}}}const Qa=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_indexer",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"InvalidRecipient",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"PoolIdNotIndexed",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_recipient",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"allocateFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"indexer",outputs:[{internalType:"contract IndexerSubscriber",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_indexer",type:"address"}],name:"setIndexer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"totalFeesAllocated",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Ya{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Qa,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}}class Ja extends Ya{constructor(e,n=t.createDrift()){super(e,n)}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const ei=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"MismatchedTokensAndLimits",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensAssigned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenIn",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_ethOut",type:"uint256"}],name:"TokensSwapped",type:"event"},{inputs:[{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"}],name:"allocations",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"assignTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"uint160[]",name:"_sqrtPriceX96Limits",type:"uint160[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimAndSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_poolSwap",type:"address"}],name:"setPoolSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];class ti{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ei,address:e})}allocations(e,t){return this.contract.read("allocations",{_user:e,_token:t})}}class ni extends ti{constructor(e,n=t.createDrift()){super(e,n)}claimTokens(e,t){return this.contract.write("claimTokens",{_tokens:e,_recipient:t})}}const ai=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"StaleTimeWindowUpdated",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"checkStalePosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",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:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"lastPoolTransaction",outputs:[{internalType:"uint256",name:"_timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"setStaleTimeWindow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"staleTimeWindow",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ii{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ai,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const ri=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",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"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"_fairLaunchDuration",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{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:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",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"}];class si{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ri,address:e})}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async fairLaunchDuration({poolId:e}){const{startsAt:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return n-t}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const oi=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",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:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",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:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",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:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class pi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:oi,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const yi=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyBridging",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",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:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_newBaseURI",type:"string"}],name:"BaseURIUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinTreasuryImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",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:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_BRIDGING_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingFinalized",outputs:[{internalType:"bool",name:"_finalized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStarted",outputs:[{internalType:"uint256",name:"_startedAt",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"}],name:"setMemecoinImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"setMemecoinTreasuryImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",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:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ui{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:yi,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const li=[{type:"constructor",inputs:[{name:"_protocolOwner",type:"address",internalType:"address"},{name:"_feeEscrow",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"approveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"approvedManagerImplementation",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"_approved",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"deployManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"feeEscrow",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrow"}],stateMutability:"view"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"managerImplementation",inputs:[{name:"_manager",type:"address",internalType:"address"}],outputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"unapproveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"ManagerDeployed",inputs:[{name:"_manager",type:"address",indexed:!0,internalType:"address"},{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationApproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationUnapproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnknownManagerImplemention",inputs:[]}];class di{constructor(e,n,a=t.createDrift(),i){if(!n)throw new Error("Address is required");this.contract=a.contract({abi:li,address:n}),this.chainId=e,this.publicClient=i}async getManagerDeployedAddressFromTx(e){if(!this.publicClient)throw new Error("Public client is required");const t=await this.publicClient.waitForTransactionReceipt({hash:e}),a=n.parseEventLogs({abi:li,eventName:"ManagerDeployed",logs:t.logs}).find((e=>e.address.toLowerCase()===this.contract.address.toLowerCase()));if(!a)throw new Error("ManagerDeployed event not found in transaction logs");return a.args._manager}}class ci extends di{constructor(e,n,a=t.createDrift(),i){super(e,n,a,i)}}const mi=[{inputs:[{internalType:"address",name:"_treasuryManagerFactory",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"FailedToClaim",type:"error"},{inputs:[],name:"FlaunchContractNotValid",type:"error"},{inputs:[],name:"InvalidClaimer",type:"error"},{inputs:[],name:"InvalidCreatorAddress",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"NotInitialized",type:"error"},{inputs:[],name:"NotManagerOwner",type:"error"},{inputs:[{internalType:"uint256",name:"_unlockedAt",type:"uint256"}],name:"TokenTimelocked",type:"error"},{inputs:[],name:"UnknownFlaunchToken",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_creator",type:"address"}],name:"CreatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_owner",type:"address"},{components:[{internalType:"address payable",name:"protocolRecipient",type:"address"},{internalType:"uint256",name:"protocolFee",type:"uint256"}],indexed:!1,internalType:"struct RevenueManager.InitializeParams",name:"_params",type:"tuple"}],name:"ManagerInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"ManagerOwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_protocolFee",type:"uint256"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_protocolRecipient",type:"address"}],name:"ProtocolRecipientUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ProtocolRevenueClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"RevenueClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_owner",type:"address"},{indexed:!1,internalType:"address",name:"_sender",type:"address"}],name:"TreasuryEscrowed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"}],name:"TreasuryReclaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_unlockedAt",type:"uint256"}],name:"TreasuryTimelocked",type:"event"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"balance_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"claim",outputs:[{internalType:"uint256",name:"amount_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken[]",name:"_flaunchToken",type:"tuple[]"}],name:"claim",outputs:[{internalType:"uint256",name:"amount_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"creator",outputs:[{internalType:"address",name:"_creator",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"creatorTotalClaimed",outputs:[{internalType:"uint256",name:"_claimed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address",name:"_creator",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"flaunchTokenInternalIds",outputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"}],name:"getPoolId",outputs:[{internalType:"PoolId",name:"poolId_",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],name:"getProtocolFee",outputs:[{internalType:"uint256",name:"protocolFee_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],name:"internalIds",outputs:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"managerOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextInternalId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolRecipient",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolTotalClaimed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address",name:"_recipient",type:"address"}],name:"rescue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address payable",name:"_creator",type:"address"}],name:"setCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_protocolRecipient",type:"address"}],name:"setProtocolRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],name:"tokenPoolId",outputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenTimelock",outputs:[{internalType:"uint256",name:"_unlockedAt",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenTotalClaimed",outputs:[{internalType:"uint256",name:"_claimed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"tokens",outputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken[]",name:"flaunchTokens_",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_newManagerOwner",type:"address"}],name:"transferManagerOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract TreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],Ti=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3[]",name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3Value[]",name:"calls",type:"tuple[]"}],name:"aggregate3Value",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"getBasefee",outputs:[{internalType:"uint256",name:"basefee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getChainId",outputs:[{internalType:"uint256",name:"chainid",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{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:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"}];class fi{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:Ti,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map((e=>({target:e.target,allowFailure:!0,callData:e.callData})))})}}class bi{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:mi,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}protocolRecipient(){return this.contract.read("protocolRecipient")}async tokensCount(){return await this.contract.read("nextInternalId")-1n}async allTokensByCreator(e,t=!1){const n=await this.contract.read("tokens",{_creator:e});return t?[...n].reverse():n}async allTokensInManager(e=!1){const t=await this.tokensCount(),n=new fi(this.drift);let a=Array.from({length:Number(t)},((e,t)=>this.contract.encodeFunctionData("internalIds",{_internalId:BigInt(t+1)})));e&&(a=a.reverse());return(await n.aggregate3(a.map((e=>({target:this.contract.address,callData:e}))))).map((e=>this.contract.decodeFunctionReturn("internalIds",e.returnData)))}}class hi extends bi{constructor(e,n=t.createDrift()){super(e,n)}protocolClaim(){return this.contract.write("claim",{})}creatorClaim(){return this.contract.write("claim",{})}creatorClaimForTokens(e){return this.contract.write("claim",{_flaunchToken:e})}}const gi=[{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"}];class wi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:gi,address:e})}permissions(){return this.contract.read("permissions")}managerOwner(){return this.contract.read("managerOwner")}}class Ii extends wi{constructor(e,n=t.createDrift()){super(e,n)}deposit(e,t,n){return this.contract.write("deposit",{_flaunchToken:e,_creator:t,_data:n})}setPermissions(e){return this.contract.write("setPermissions",{_permissions:e})}transferManagerOwnership(e){return this.contract.write("transferManagerOwnership",{_newManagerOwner:e})}}const vi={MIN_TICK:-887220,MAX_TICK:887220},xi=2n**96n,ki=2n**192n,Mi=60,Pi=e=>{const t=n.concat([n.pad(e.currency0,{size:32}),n.pad(e.currency1,{size:32}),n.pad(n.toHex(e.fee),{size:32}),n.pad(n.toHex(e.tickSpacing),{size:32}),n.pad(e.hooks,{size:32})]);return n.keccak256(t)},_i=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},Fi=({tick:e,tickSpacing:t,roundDown:n=!0})=>{if(e%t==0)return e;let a=Math.trunc(e/t)*t;return e<0&&e%t!=0&&(a-=t),n||(a+=t),a},Ai=({tick:e,tickSpacing:t})=>{const n=Math.round(e/t)*t;return Math.max(vi.MIN_TICK,Math.min(vi.MAX_TICK,n))},Ci=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},Si=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},Ei=e=>{const t=e<0?BigInt(-e):BigInt(e);if(t>vi.MAX_TICK)throw new Error("Tick out of range");let n=0n!==(1n&t)?0xfffcb933bd6fad37aa2d162d1a594001n:0x100000000000000000000000000000000n;0n!==(2n&t)&&(n=0xfff97272373d413259a46990580e213an*n>>128n),0n!==(4n&t)&&(n=0xfff2e50f5f656932ef12357cf3c7fdccn*n>>128n),0n!==(8n&t)&&(n=0xffe5caca7e10e4e61c3624eaa0941cd0n*n>>128n),0n!==(16n&t)&&(n=0xffcb9843d60f6159c9db58835c926644n*n>>128n),0n!==(32n&t)&&(n=0xff973b41fa98c081472e6896dfb254c0n*n>>128n),0n!==(64n&t)&&(n=0xff2ea16466c96a3843ec78b326b52861n*n>>128n),0n!==(128n&t)&&(n=0xfe5dee046a99a2a811c461f1969c3053n*n>>128n),0n!==(256n&t)&&(n=0xfcbe86c7900a88aedcffc83b479aa3a4n*n>>128n),0n!==(512n&t)&&(n=0xf987a7253ac413176f2b074cf7815e54n*n>>128n),0n!==(1024n&t)&&(n=0xf3392b0822b70005940c7a398e4b70f3n*n>>128n),0n!==(2048n&t)&&(n=0xe7159475a2c29b7443b29c7fa6e889d9n*n>>128n),0n!==(4096n&t)&&(n=0xd097f3bdfd2022b8845ad8f792aa5825n*n>>128n),0n!==(8192n&t)&&(n=0xa9f746462d870fdf8a65dc1f90e061e5n*n>>128n),0n!==(16384n&t)&&(n=0x70d869a156d2a1b890bb3df62baf32f7n*n>>128n),0n!==(32768n&t)&&(n=0x31be135f97d08fd981231505542fcfa6n*n>>128n),0n!==(65536n&t)&&(n=0x9aa508b5b7a84e1c677de54f3e99bc9n*n>>128n),0n!==(131072n&t)&&(n=0x5d6af8dedb81196699c329225ee604n*n>>128n),0n!==(262144n&t)&&(n=0x2216e584f5fa1ea926041bedfe98n*n>>128n),0n!==(524288n&t)&&(n=0x48a170391f7dc42444e8fa2n*n>>128n),e>0&&(n=(2n**256n-1n)/n);const a=n>>32n;return n%(1n<<32n)===0n?a:a+1n},Di=(e,t,n,a)=>{const i=Ei(a),r=Ei(t),s=Ei(n);let o=0n,p=0n;return i<=r?o=Ci(r,s,e):i<s?(o=Ci(i,s,e),p=Si(r,i,e)):p=Si(r,s,e),{amount0:o,amount1:p}},Oi=({priceInput:e,isDirection1Per0:t,decimals0:n,decimals1:a,spacing:i,shouldGetNearestUsableTick:r=!0})=>{if(!e||isNaN(Number(e)))return 0;const s=Number(e);try{let e;e=t?s/Math.pow(10,n-a):1/s/Math.pow(10,n-a);const o=Math.log(e)/Math.log(1.0001);return r?Fi({tick:Math.round(o),tickSpacing:i}):Math.round(o)}catch(e){console.error("Error converting price to tick:",e);const t=Math.floor(Math.log(s)/Math.log(1.0001));return r?Fi({tick:t,tickSpacing:i}):t}},Bi=e=>{const t=Ei(e.currentTick);let n=Ei(e.tickLower),a=Ei(e.tickUpper);if(n>a&&([n,a]=[a,n]),t<=n)return Li(n,a,e.amount0);if(t<a){const i=Li(t,a,e.amount0),r=Ui(n,t,e.amount1);return i<r?i:r}return Ui(n,a,e.amount1)};function Li(e,t,n){e>t&&([e,t]=[t,e]);return n*e*t/(2n**96n*(t-e))}function Ui(e,t,n){e>t&&([e,t]=[t,e]);return n*2n**96n/(t-e)}const Ni=e=>{if(0n===e.liquidity)return{amount0:0n,amount1:0n};const t=Ei(e.currentTick);let n=Ei(e.tickLower),a=Ei(e.tickUpper);n>a&&([n,a]=[a,n]);let i=0n,r=0n;return t<=n?i=Ci(n,a,e.liquidity):t<a?(i=Ci(t,a,e.liquidity),r=Si(n,t,e.liquidity)):r=Si(n,a,e.liquidity),{amount0:i,amount1:r}},Ri={[At.id]:At,[St.id]:St},Hi=[{inputs:[{internalType:"uint256",name:"wethAmount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}],zi=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerNotPositionManager",type:"error"},{inputs:[{internalType:"uint256",name:"_deadline",type:"uint256"}],name:"DeadlineExpired",type:"error"},{inputs:[],name:"InvalidPoolKey",type:"error"},{inputs:[{internalType:"address",name:"_invalidSigner",type:"address"}],name:"InvalidSigner",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Reentrancy",type:"error"},{inputs:[],name:"SignatureAlreadyUsed",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerAlreadyAdded",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerDoesNotExist",type:"error"},{inputs:[{internalType:"uint256",name:"_requestedAmount",type:"uint256"},{internalType:"uint256",name:"_maxTokensOut",type:"uint256"}],name:"TransactionCapExceeded",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],indexed:!1,internalType:"struct TrustedSignerFeeCalculator.FairLaunchSettings",name:"_settings",type:"tuple"}],name:"PoolKeyFairLaunchSettingsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"PoolKeySignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_signer",type:"address"},{indexed:!1,internalType:"bool",name:"_isTrusted",type:"bool"}],name:"TrustedSignerUpdated",type:"event"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"addTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"",type:"tuple"},{internalType:"uint24",name:"_baseFee",type:"uint24"}],name:"determineSwapFee",outputs:[{internalType:"uint24",name:"swapFee_",type:"uint24"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchSettings",outputs:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"isTrustedSigner",outputs:[{internalType:"bool",name:"valid_",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_origin",type:"address"}],name:"maxTokensOut",outputs:[{internalType:"bool",name:"hasCap_",type:"bool"},{internalType:"uint256",name:"maxTokensOut_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"removeTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"bytes",name:"_params",type:"bytes"}],name:"setFlaunchParams",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"address",name:"_signer",type:"address"}],name:"setTrustedPoolKeySigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"trackSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"trustedPoolKeySigner",outputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_wallet",type:"address"}],name:"walletPurchasedAmount",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"}];class qi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:zi,address:e})}trustedPoolKeySigner({poolId:e}){return this.contract.read("trustedPoolKeySigner",{_poolId:e})}}class Vi{constructor(e,n=t.createDrift(),a){this.TICK_SPACING=Mi,this.chainId=e,this.drift=n,this.publicClient=a,this.resolveIPFS=Ln,this.readPositionManager=new pa(Xt[this.chainId],n),this.readPositionManagerV1_1=new Aa(jt[this.chainId],n),this.readPositionManagerV1_2=new Ka(Qt[this.chainId],n),this.readAnyPositionManager=new $a(Yt[this.chainId],n),this.readTokenImporter=new Xa(this.chainId,cn[this.chainId],n),this.readFeeEscrow=new Ya(In[this.chainId],n),this.readReferralEscrow=new ti(vn[this.chainId],n),this.readFlaunchZap=new Sa(this.chainId,Zt[this.chainId],n),this.readPoolManager=new ca(Pn[this.chainId],n),this.readStateView=new Ta(An[this.chainId],n),this.readFairLaunch=new ba(an[this.chainId],n),this.readFairLaunchV1_1=new si(rn[this.chainId],n),this.readBidWall=new ga(sn[this.chainId],n),this.readBidWallV1_1=new ii(on[this.chainId],n),this.readAnyBidWall=new Ia(pn[this.chainId],n),this.readFlaunch=new Oa(Jt[this.chainId],n),this.readFlaunchV1_1=new pi(en[this.chainId],n),this.readFlaunchV1_2=new ui(tn[this.chainId],n),this.readQuoter=new Ra(this.chainId,Fn[this.chainId],n),this.readPermit2=new za(Cn[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_2.isValidCoin(e)||await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)||await this.readAnyPositionManager.isValidCoin(e)}async getCoinVersion(t){if(await this.readPositionManagerV1_2.isValidCoin(t))return e.FlaunchVersion.V1_2;if(await this.readPositionManagerV1_1.isValidCoin(t))return e.FlaunchVersion.V1_1;if(await this.readPositionManager.isValidCoin(t))return e.FlaunchVersion.V1;if(await this.readAnyPositionManager.isValidCoin(t))return e.FlaunchVersion.ANY;throw new Error(`Unknown coin version for address: ${t}`)}getPositionManager(t){switch(t){case e.FlaunchVersion.V1:return this.readPositionManager;case e.FlaunchVersion.V1_1:return this.readPositionManagerV1_1;case e.FlaunchVersion.V1_2:return this.readPositionManagerV1_2;case e.FlaunchVersion.ANY:return this.readAnyPositionManager;default:return this.readPositionManagerV1_2}}getFairLaunch(t){switch(t){case e.FlaunchVersion.V1:return this.readFairLaunch;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:case e.FlaunchVersion.ANY:default:return this.readFairLaunchV1_1}}getBidWall(t){switch(t){case e.FlaunchVersion.V1:return this.readBidWall;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:return this.readBidWallV1_1;case e.FlaunchVersion.ANY:return this.readAnyBidWall;default:return this.readBidWallV1_1}}getFlaunchAddress(t){switch(t){case e.FlaunchVersion.V1:return this.readFlaunch.contract.address;case e.FlaunchVersion.V1_1:return this.readFlaunchV1_1.contract.address;case e.FlaunchVersion.V1_2:return this.readFlaunchV1_2.contract.address;case e.FlaunchVersion.ANY:default:return this.readFlaunchV1_1.contract.address}}getPositionManagerAddress(e){return this.getPositionManager(e).contract.address}getFairLaunchAddress(e){return this.getFairLaunch(e).contract.address}getBidWallAddress(e){return this.getBidWall(e).contract.address}async getCoinMetadata(e){const t=new La(e,this.drift),n=await t.name(),a=await t.symbol(),i=await t.tokenURI(),r=(await s.default.get(this.resolveIPFS(i))).data;return{name:n,symbol:a,description:r.description??"",image:r.image?this.resolveIPFS(r.image):"",external_link:r.websiteUrl??"",collaborators:r.collaborators??[],discordUrl:r.discordUrl??"",twitterUrl:r.twitterUrl??"",telegramUrl:r.telegramUrl??""}}async getCoinMetadataFromTokenId(e,t){const n=new Oa(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new fi(this.drift),i=e.map((e=>this.readFlaunch.contract.encodeFunctionData("memecoin",{_tokenId:e.tokenId}))),r=(await a.aggregate3(i.map(((t,n)=>({target:e[n].flaunch,callData:t}))))).map((e=>this.readFlaunch.contract.decodeFunctionReturn("memecoin",e.returnData))),o=[];r.forEach((()=>{o.push(this.drift.adapter.encodeFunctionData({abi:Ba,fn:"name"})),o.push(this.drift.adapter.encodeFunctionData({abi:Ba,fn:"symbol"})),o.push(this.drift.adapter.encodeFunctionData({abi:Ba,fn:"tokenURI"}))}));const p=await a.aggregate3(o.map(((e,t)=>({target:r[Math.floor(t/3)],callData:e})))),y=[];for(let e=0;e<r.length;e++){const t=this.drift.adapter.decodeFunctionReturn({abi:Ba,fn:"name",data:p[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:Ba,fn:"symbol",data:p[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:Ba,fn:"tokenURI",data:p[3*e+2].returnData});y.push({name:t,symbol:n,tokenURI:a,coinAddress:r[e]})}const u=[];for(let e=0;e<y.length;e+=t){const a=y.slice(e,e+t),i=await Promise.all(a.map((async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=(await s.default.get(this.resolveIPFS(n))).data;return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?this.resolveIPFS(i.image):"",external_link:i.websiteUrl??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??"",telegramUrl:i.telegramUrl??""}})));u.push(...i),e+t<y.length&&await new Promise((e=>setTimeout(e,n)))}return u}watchPoolCreated(t,n=e.FlaunchVersion.V1_1){return n===e.FlaunchVersion.V1?this.readPositionManager.watchPoolCreated(t):this.readPositionManagerV1_1.watchPoolCreated(t)}pollPoolCreatedNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolCreatedNow;if(n)return n()}async watchPoolSwap(t,n=e.FlaunchVersion.V1_1){return(n===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).watchPoolSwap({...t,filterByPoolId:t.filterByCoin?await this.poolId(t.filterByCoin,n):void 0,flETHIsCurrencyZero:t.filterByCoin?this.flETHIsCurrencyZero(t.filterByCoin):void 0})}pollPoolSwapNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolSwapNow;if(n)return n()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return(await this.readStateView.poolSlot0({poolId:a})).tick}async coinPriceInETH(e,t){const n=t||await this.getCoinVersion(e),a=this.flETHIsCurrencyZero(e),i=await this.currentTick(e,n),r=Math.pow(1.0001,i);let s=0;return s=a?1/r:r,s.toFixed(18)}async coinPriceInUSD({coinAddress:e,version:t,drift:n}){const a=t||await this.getCoinVersion(e),i=await this.coinPriceInETH(e,a),r=await this.getETHUSDCPrice(n);return(parseFloat(i)*r).toFixed(18)}async coinMarketCapInUSD({coinAddress:e,version:t,drift:n}){const a=await this.coinPriceInUSD({coinAddress:e,version:t,drift:n});return(1e11*parseFloat(a)).toFixed(2)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new Ra(t,Fn[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async initialSqrtPriceX96(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=this.flETHIsCurrencyZero(e.coinAddress);return new oa(await this.readPositionManagerV1_1.initialPrice(),this.drift).getSqrtPriceX96({isFLETHZero:i,initialPriceParams:a})}async fairLaunchInfo(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchInfo({poolId:a})}async isFairLaunchActive(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).isFairLaunchActive({poolId:a})}async trustedPoolKeySignerStatus(t,a){const i=a||await this.getCoinVersion(t);if(i===e.FlaunchVersion.ANY)throw new Error("AnyPositionManager is not supported for TrustedSigner");const r=await this.fairLaunchInfo(t,i);let s;r.closed&&(s=!1),(new Date).getTime()/1e3>r.endsAt&&(s=!1),s=!0;const o={isFairLaunchActive:s,fairLaunchStartsAt:Number(r.startsAt),fairLaunchEndsAt:Number(r.endsAt)},p=await this.getPositionManager(i).getFeeCalculator({forFairLaunch:!0});try{const e=new qi(p,this.drift),n=await this.poolId(t,i),a=await e.trustedPoolKeySigner({poolId:n});return{isCurrentlyEnabled:a.enabled&&s,trustedSignerEnabled:a.enabled,signer:a.signer,...o}}catch{return{isCurrentlyEnabled:!1,trustedSignerEnabled:!1,signer:n.zeroAddress,...o}}}async fairLaunchDuration(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchDuration({poolId:a})}async initialTick(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return(await this.getFairLaunch(n).fairLaunchInfo({poolId:a})).initialTick}async fairLaunchETHOnlyPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=Fi({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=o+this.TICK_SPACING):(p=Fi({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),o=p-this.TICK_SPACING);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Di(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=vi.MIN_TICK,p=Fi({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(o=Fi({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=vi.MAX_TICK);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Di(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async bidWallPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=this.flETHIsCurrencyZero(e),{amount0_:r,amount1_:s,pendingEth_:o}=await this.getBidWall(n).position({poolId:a}),{tickLower:p,tickUpper:y}=await this.getBidWall(n).poolInfo({poolId:a}),[u,l]=i?[r,s]:[s,r];return{flETHAmount:u,coinAmount:l,pendingEth:o,tickLower:p,tickUpper:y}}creatorRevenue(e,t){return t?this.readPositionManager.creatorBalance(e):this.readFeeEscrow.balances(e)}referralBalance(e,t){return this.readReferralEscrow.allocations(e,t)}revenueManagerBalance(e){return new bi(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new bi(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new bi(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new bi(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new bi(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async treasuryManagerInfo(e){const t=new wi(e,this.drift),[n,a]=await Promise.all([t.managerOwner(),t.permissions()]);return{managerOwner:n,permissions:a}}async poolId(e,t){let n;if(t)n=this.getPositionManagerAddress(t);else{const t=await this.getCoinVersion(e);n=this.getPositionManagerAddress(t)}return Pi(_i({currency0:xn[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:n}))}getFlaunchingFee(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readPositionManagerV1_1.getFlaunchingFee({sender:e.sender,initialPriceParams:a,slippagePercent:e.slippagePercent})}ethRequiredToFlaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readFlaunchZap.ethRequiredToFlaunch({premineAmount:e.premineAmount,initialPriceParams:a,slippagePercent:e.slippagePercent})}async getSellQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a}){const i=t||await this.getCoinVersion(e);return this.readQuoter.getSellQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(i),intermediatePoolKey:a})}async getBuyQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=t||await this.getCoinVersion(e);return this.readQuoter.getBuyQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}async getBuyQuoteExactOutput({coinAddress:e,amountOut:t,version:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=n||await this.getCoinVersion(e);return this.readQuoter.getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}flETHIsCurrencyZero(e){return e>xn[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}async parseSwapTx(e){return this.getPositionManager(e.version).parseSwapTx(e.txHash,e.flETHIsCurrencyZero)}tokenImporterVerifyMemecoin(e){return this.readTokenImporter.verifyMemecoin(e)}async getCoinInfo(e){const t=new La(e,this.drift),[n,a]=await Promise.all([t.totalSupply(),t.decimals()]);return{totalSupply:n,decimals:a}}async getMarketContext(e,t){const n=await this.getETHUSDCPrice(),a=this.flETHIsCurrencyZero(e);return{ethUsdPrice:n,isFlethZero:a,decimals0:a?18:t,decimals1:a?t:18}}marketCapToTokenPriceEth(e,t,n){return e/t/n}convertPriceToTick(e,t,n,a){return Oi({priceInput:e.toString(),isDirection1Per0:!t,decimals0:n,decimals1:a,spacing:Mi})}calculateCurrentTickFromMarketCap(e,t,n){if(!e)return;const a=parseFloat(e),i=this.marketCapToTokenPriceEth(a,t,n.ethUsdPrice);return this.convertPriceToTick(i,n.isFlethZero,n.decimals0,n.decimals1)}async calculateAddLiquidityTicks({coinAddress:t,liquidityMode:a,minMarketCap:i,maxMarketCap:r,currentMarketCap:s}){const{totalSupply:o,decimals:p}=await this.getCoinInfo(t),y=parseFloat(n.formatEther(o));if(a===e.LiquidityMode.FULL_RANGE){let e;if(s){const n=await this.getMarketContext(t,p);e=this.calculateCurrentTickFromMarketCap(s,y,n)}return{tickLower:Ai({tick:vi.MIN_TICK,tickSpacing:Mi}),tickUpper:Ai({tick:vi.MAX_TICK,tickSpacing:Mi}),currentTick:e,coinTotalSupply:o,coinDecimals:p}}{const e=await this.getMarketContext(t,p),n=parseFloat(i),a=parseFloat(r);if(n<=0||a<=0||n>=a)throw new Error("[ReadFlaunchSDK.addLiquidityCalculateTicks]: Invalid market cap range");const u=this.marketCapToTokenPriceEth(n,y,e.ethUsdPrice),l=this.marketCapToTokenPriceEth(a,y,e.ethUsdPrice),d=this.convertPriceToTick(u,e.isFlethZero,e.decimals0,e.decimals1),c=this.convertPriceToTick(l,e.isFlethZero,e.decimals0,e.decimals1),m=this.calculateCurrentTickFromMarketCap(s,y,e);return{tickLower:Math.min(d,c),tickUpper:Math.max(d,c),currentTick:m,coinTotalSupply:o,coinDecimals:p}}}async checkSingleSidedAddLiquidity(t){const{coinAddress:a,liquidityMode:i}=t;let r,s,o;if("minMarketCap"in t)r=t.minMarketCap,s=t.maxMarketCap,o=t.currentMarketCap;else{const{totalSupply:e,decimals:i}=await this.getCoinInfo(a),p=parseFloat(n.formatUnits(e,i));r=(parseFloat(t.minPriceUSD)*p).toString(),s=(parseFloat(t.maxPriceUSD)*p).toString(),t.currentPriceUSD&&(o=(t.currentPriceUSD*p).toString())}let{tickLower:p,tickUpper:y,currentTick:u}=await this.calculateAddLiquidityTicks({coinAddress:a,liquidityMode:i,minMarketCap:r,maxMarketCap:s,currentMarketCap:o});if(!u){let n=t.version;if(!n)try{n=await this.getCoinVersion(a)}catch{n=e.FlaunchVersion.ANY}u=(await this.readStateView.poolSlot0({poolId:Pi(_i({currency0:a,currency1:xn[this.chainId],fee:0,tickSpacing:Mi,hooks:this.getPositionManagerAddress(n)}))})).tick}const l=this.flETHIsCurrencyZero(a);if(!(u<=p||u>=y))return{isSingleSided:!1,shouldHideCoinInput:!1,shouldHideETHInput:!1};let d=!1,c=!1;return u<=p?l?d=!0:c=!0:u>=y&&(l?c=!0:d=!0),{isSingleSided:!0,shouldHideCoinInput:d,shouldHideETHInput:c}}async calculateAddLiquidityAmounts(t){const{coinAddress:a,liquidityMode:i,inputToken:r,coinOrEthInputAmount:s}=t;let o,p,y;if("minMarketCap"in t)o=t.minMarketCap,p=t.maxMarketCap,y=t.currentMarketCap;else{const{totalSupply:e,decimals:i}=await this.getCoinInfo(a),r=parseFloat(n.formatUnits(e,i));o=(parseFloat(t.minPriceUSD)*r).toString(),p=(parseFloat(t.maxPriceUSD)*r).toString(),t.currentPriceUSD&&(y=(t.currentPriceUSD*r).toString())}let{tickLower:u,tickUpper:l,currentTick:d}=await this.calculateAddLiquidityTicks({coinAddress:a,liquidityMode:i,minMarketCap:o,maxMarketCap:p,currentMarketCap:y});if(!d){let n=t.version;if(!n)try{n=await this.getCoinVersion(a)}catch{n=e.FlaunchVersion.ANY}d=(await this.readStateView.poolSlot0({poolId:Pi(_i({currency0:a,currency1:xn[this.chainId],fee:0,tickSpacing:Mi,hooks:this.getPositionManagerAddress(n)}))})).tick}const c=this.flETHIsCurrencyZero(a);try{const e=Ei(d);let t,n,a=Ei(u),i=Ei(l);a>i&&([a,i]=[i,a]);const o="coin"===r;if(o&&!c||!o&&c)if(t=s,e<=a)n=0n;else if(e>=i){n=s*(i*i/xi)/xi}else{const t=ki*(i-e)/xi;n=t>0n?s*(i*e*(e-a)/xi)/t:0n}else if(n=s,e<=a){t=s*xi/(a*a/xi)}else if(e>=i)t=0n;else{const n=i*e*(e-a)/xi;t=n>0n?s*(ki*(i-e)/xi)/n:0n}let[p,y]=c?[t,n]:[n,t];return(d<=u||d>=l)&&(d<=u?c?y=0n:p=0n:d>=l&&(c?p=0n:y=0n)),{coinAmount:y,ethAmount:p,tickLower:u,tickUpper:l,currentTick:d}}catch(e){throw console.error("Error calculating liquidity amounts:",e),e}}async isMemecoinImported(e){const t=_i({currency0:e,currency1:xn[this.chainId],fee:0,tickSpacing:Mi,hooks:Yt[this.chainId]});return 0n!==(await this.readStateView.poolSlot0({poolId:Pi(t)})).sqrtPriceX96}async isFlaunchTokenApprovedForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.read({abi:n.erc721Abi,address:i,fn:"isApprovedForAll",args:{owner:t,operator:a}})}}class Ki extends Vi{constructor(e,n=t.createDrift(),a){super(e,n,a),this.readWritePositionManager=new ya(Xt[this.chainId],n),this.readWritePositionManagerV1_1=new Ca(jt[this.chainId],n),this.readWriteAnyPositionManager=new Ga(Yt[this.chainId],n),this.readWriteTokenImporter=new ja(this.chainId,cn[this.chainId],n),this.readWriteFeeEscrow=new Ja(In[this.chainId],n),this.readWriteReferralEscrow=new ni(vn[this.chainId],n),this.readWriteFlaunchZap=new Ea(this.chainId,Zt[this.chainId],n),this.readWriteTreasuryManagerFactory=new ci(this.chainId,yn[this.chainId],n,this.publicClient),this.readWritePermit2=new qa(Cn[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteFlaunchZap.deployRevenueManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}async deployStakingManager(e){const t=await this.readWriteFlaunchZap.deployStakingManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}flaunchWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchWithRevenueManager(e)}async flaunchIPFSWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchIPFSWithRevenueManager(e)}flaunchWithSplitManager(e){return this.readWriteFlaunchZap.flaunchWithSplitManager(e)}flaunchIPFSWithSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithSplitManager(e)}anyFlaunch(e){return this.readWriteAnyPositionManager.flaunch(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new La(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){const n=t||await this.getCoinVersion(e.coinAddress),a=await this.drift.getSignerAddress();let i,r,s,o;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?Yn({amount:await this.readQuoter.getBuyQuoteExactInput({coinAddress:e.coinAddress,amountIn:i,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountOutMin):(s=e.amountOut,o=void 0===e.amountInMax?Yn({amount:await this.readQuoter.getBuyQuoteExactOutput({coinAddress:e.coinAddress,coinOut:s,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountInMax);const{commands:p,inputs:y}=ea({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer??null,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:o,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,permitSingle:e.permitSingle,signature:e.signature,hookData:e.hookData});return this.drift.adapter.write({abi:qn,address:_n[this.chainId],fn:"execute",args:{commands:p,inputs:y},value:e.intermediatePoolKey?0n:"EXACT_IN"===e.swapType?i:o})}async sellCoin(e,t){const n=t||await this.getCoinVersion(e.coinAddress);let a;await this.readQuoter.contract.cache.clear(),a=void 0===e.amountOutMin?Yn({amount:await this.readQuoter.getSellQuoteExactInput({coinAddress:e.coinAddress,amountIn:e.amountIn,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:"EXACT_IN"}):e.amountOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=ta({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,amountOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer??null,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey});return this.drift.write({abi:qn,address:_n[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:n}=await this.getPermit2AllowanceAndNonce(e),a=BigInt(Math.floor(Date.now()/1e3)+31536e4);return ia({chainId:this.chainId,coinAddress:e,nonce:n,deadline:void 0!==t?t:a})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,_n[this.chainId]);return{allowance:t,nonce:n}}async getERC20AllowanceToPermit2(e){return new La(e,this.drift).allowance(await this.drift.getSignerAddress(),Cn[this.chainId])}async setERC20AllowanceToPermit2(e,t){return new Ua(e,this.drift).approve(Cn[this.chainId],t)}async withdrawCreatorRevenue(e){const t=e.recipient??await this.drift.getSignerAddress();return e.isV1?this.readWritePositionManager.withdrawFees(t):this.readWriteFeeEscrow.withdrawFees(t)}claimReferralBalance(e,t){return this.readWriteReferralEscrow.claimTokens(e,t)}revenueManagerProtocolClaim(e){return new hi(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new hi(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new hi(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}treasuryManagerSetPermissions(e,t){const n=new Ii(e,this.drift),a=_a(t,this.chainId);return n.setPermissions(a)}treasuryManagerTransferOwnership(e,t){return new Ii(e,this.drift).transferManagerOwnership(t)}async setFlaunchTokenApprovalForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.write({abi:n.erc721Abi,address:i,fn:"setApprovalForAll",args:{operator:t,approved:a}})}async addToTreasuryManager(e,t,n,a,i="0x"){const r=new Ii(e,this.drift),s={flaunch:this.getFlaunchAddress(t),tokenId:n},o=a??await this.drift.getSignerAddress();return r.deposit(s,o,i)}importMemecoin(e){return this.readWriteTokenImporter.initialize(e)}async getAddLiquidityCalls(t){const{coinAddress:a}=t,i=xn[this.chainId];let r,s,o,p,y,u=t.version;if(!u)try{u=await this.getCoinVersion(a)}catch{u=e.FlaunchVersion.ANY}const l=_i({currency0:a,currency1:i,fee:0,tickSpacing:this.TICK_SPACING,hooks:this.getPositionManagerAddress(u)});if("tickLower"in t)if(r=t.coinAmount,s=t.flethAmount,o=t.tickLower,p=t.tickUpper,t.currentTick)y=t.currentTick;else{y=(await this.readStateView.poolSlot0({poolId:Pi(l)})).tick}else{let e,i,l;if("minMarketCap"in t)e=t.minMarketCap,i=t.maxMarketCap,l=t.initialMarketCapUSD;else{const{totalSupply:r,decimals:s}=await this.getCoinInfo(a),o=parseFloat(n.formatUnits(r,s));e=(parseFloat(t.minPriceUSD)*o).toString(),i=(parseFloat(t.maxPriceUSD)*o).toString(),t.initialPriceUSD&&(l=t.initialPriceUSD*o)}const d=await this.calculateAddLiquidityAmounts({coinAddress:a,liquidityMode:t.liquidityMode,coinOrEthInputAmount:t.coinOrEthInputAmount,inputToken:t.inputToken,minMarketCap:e,maxMarketCap:i,currentMarketCap:l?.toString(),version:u});r=d.coinAmount,s=d.ethAmount,o=d.tickLower,p=d.tickUpper,y=d.currentTick}const d=await this.drift.getSignerAddress(),c=Cn[this.chainId],m=await this.drift.multicall({calls:[{address:a,abi:n.erc20Abi,fn:"allowance",args:{owner:d,spender:c}},{address:i,abi:n.erc20Abi,fn:"allowance",args:{owner:d,spender:c}},{address:c,abi:Ha,fn:"allowance",args:{0:d,1:a,2:Sn[this.chainId]}},{address:c,abi:Ha,fn:"allowance",args:{0:d,1:i,2:Sn[this.chainId]}},{address:a,abi:n.erc20Abi,fn:"symbol"}]}),T=m[0].value,f=m[1].value,b=m[2].value,h=m[3].value,g=m[4].value,w=T<r,I=f<s,v=Math.floor(Date.now()/1e3),x=b.amount<r||b.expiration<=v,k=s>0n&&(h.amount<s||h.expiration<=v),M=[];w&&M.push({to:a,description:`Approve ${g} for Permit2`,data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[c,r]})}),I&&M.push({to:i,description:"Approve flETH for Permit2",data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[c,s]})});const P=Math.floor(Date.now()/1e3)+3600;x&&M.push({to:c,description:`Permit2 approval for ${g} to UniV4PositionManager`,data:n.encodeFunctionData({abi:Ha,functionName:"approve",args:[a,Sn[this.chainId],r,P]})}),k&&M.push({to:c,description:"Permit2 approval for flETH to UniV4PositionManager",data:n.encodeFunctionData({abi:Ha,functionName:"approve",args:[i,Sn[this.chainId],s,P]})}),s>0n&&M.push({to:i,description:"Wrap ETH to flETH",data:n.encodeFunctionData({abi:Hi,functionName:"deposit",args:[0n]}),value:s});const _=l.currency0===a?r:s,F=l.currency0===a?s:r,A=Bi({currentTick:y,tickLower:o,tickUpper:p,amount0:_,amount1:F}),C=Ni({currentTick:y,tickLower:o,tickUpper:p,liquidity:A});let S=A,E=C.amount0,D=C.amount1;if(C.amount0>_||C.amount1>F){console.log("Actual amounts exceed user input, constraining...");const e=Bi({currentTick:y,tickLower:o,tickUpper:p,amount0:_,amount1:0n}),t=Bi({currentTick:y,tickLower:o,tickUpper:p,amount0:0n,amount1:F});S=e<t?e:t;const n=Ni({currentTick:y,tickLower:o,tickUpper:p,liquidity:S});E=n.amount0,D=n.amount1}const O=S/2000n;void 0!==y&&(S=S-(O>1n?O:1n)),E=_,D=F;const B="0x"+"02"+"0d",L=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"}]},{type:"int24",name:"tickLower"},{type:"int24",name:"tickUpper"},{type:"uint256",name:"liquidity"},{type:"uint128",name:"amount0Max"},{type:"uint128",name:"amount1Max"},{type:"address",name:"owner"},{type:"bytes",name:"hookData"}],[l,o,p,S,E,D,d,"0x"]),U=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"}]}],[{currency0:l.currency0,currency1:l.currency1}]);return M.push({to:Sn[this.chainId],data:n.encodeFunctionData({abi:[{inputs:[{internalType:"bytes",name:"unlockData",type:"bytes"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"modifyLiquidities",outputs:[],stateMutability:"payable",type:"function"}],functionName:"modifyLiquidities",args:[n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[B,[L,U]]),BigInt(Math.floor(Date.now()/1e3)+3600)]}),value:0n,description:"Add Liquidity"}),M}async getImportAndAddLiquidityCalls(t){const n=await this.readWriteTokenImporter.getInitializeParams({coinAddress:t.coinAddress,creatorFeeAllocationPercent:t.creatorFeeAllocationPercent,initialMarketCapUSD:t.initialMarketCapUSD,verifier:t.verifier}),a=await this.getAddLiquidityCalls({...t,version:e.FlaunchVersion.ANY});return[{to:this.readWriteTokenImporter.contract.address,data:this.readWriteTokenImporter.contract.encodeFunctionData("initialize",n),description:"Import Memecoin to Flaunch"},...a]}}function Wi(e){const{publicClient:n,walletClient:a}=e;if(!n.chain)throw new Error("publicClient must be configured with a chain");return a?t.createDrift({adapter:i.viemAdapter({publicClient:n,walletClient:a})}):t.createDrift({adapter:i.viemAdapter({publicClient:n})})}const $i=n.parseAbi(["function call(address to, uint256 value, bytes data)"]);function Gi(e,t){if(!e.chain)throw new Error("publicClient must be configured with a chain");return n.createWalletClient({chain:e.chain,transport:n.http()}).extend((e=>({get account(){return{address:t,type:"json-rpc"}},getAddresses:async()=>[t],requestAddresses:async()=>[t],async writeContract(e){const t=e.address,a=e.value??0n,i=n.encodeFunctionData({abi:e.abi,functionName:e.functionName,args:e.args});return n.encodeFunctionData({abi:$i,functionName:"call",args:[t,a,i]})},async sendTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:$i,functionName:"call",args:[t,a,i]})},async signTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:$i,functionName:"call",args:[t,a,i]})}})))}function Zi(e){const t=n.decodeFunctionData({abi:$i,data:e});return{to:t.args[0],value:t.args[1],data:t.args[2]}}class Xi extends xe{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");de(e.outputLen),de(e.blockLen)}(e);const n=ve(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const a=this.blockLen,i=new Uint8Array(a);i.set(n.length>a?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return me(this),this.iHash.update(e),this}digestInto(e){me(this),ce(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:a,destroyed:i,blockLen:r,outputLen:s}=this;return e.finished=a,e.destroyed=i,e.blockLen=r,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ji=(e,t,n)=>new Xi(e,t).update(n).digest();ji.create=(e,t)=>new Xi(e,t);const Qi=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Yi=new Uint8Array(new Array(16).fill(0).map(((e,t)=>t)));let Ji=[Yi],er=[Yi.map((e=>(9*e+5)%16))];for(let e=0;e<4;e++)for(let t of[Ji,er])t.push(t[e].map((e=>Qi[e])));
2
2
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const tr=BigInt(0),nr=BigInt(1);function ar(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function ir(e){if(!ar(e))throw new Error("Uint8Array expected")}function rr(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function sr(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function or(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?tr:BigInt("0x"+e)}const pr="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,yr=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function ur(e){if(ir(e),pr)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=yr[e[n]];return t}const lr=48,dr=57,cr=65,mr=70,Tr=97,fr=102;function br(e){return e>=lr&&e<=dr?e-lr:e>=cr&&e<=mr?e-(cr-10):e>=Tr&&e<=fr?e-(Tr-10):void 0}function hr(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(pr)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const a=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){const n=br(e.charCodeAt(i)),r=br(e.charCodeAt(i+1));if(void 0===n||void 0===r){const t=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+i)}a[t]=16*n+r}return a}function gr(e){return or(ur(e))}function wr(e){return ir(e),or(ur(Uint8Array.from(e).reverse()))}function Ir(e,t){return hr(e.toString(16).padStart(2*t,"0"))}function vr(e,t){return Ir(e,t).reverse()}function xr(e,t,n){let a;if("string"==typeof t)try{a=hr(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!ar(t))throw new Error(e+" must be hex string or Uint8Array");a=Uint8Array.from(t)}const i=a.length;if("number"==typeof n&&i!==n)throw new Error(e+" of length "+n+" expected, got "+i);return a}function kr(...e){let t=0;for(let n=0;n<e.length;n++){const a=e[n];ir(a),t+=a.length}const n=new Uint8Array(t);for(let t=0,a=0;t<e.length;t++){const i=e[t];n.set(i,a),a+=i.length}return n}const Mr=e=>"bigint"==typeof e&&tr<=e;function Pr(e,t,n){return Mr(e)&&Mr(t)&&Mr(n)&&t<=e&&e<n}function _r(e,t,n,a){if(!Pr(t,n,a))throw new Error("expected valid "+e+": "+n+" <= n < "+a+", got "+t)}const Fr=e=>(nr<<BigInt(e))-nr,Ar=e=>new Uint8Array(e),Cr=e=>Uint8Array.from(e);const Sr={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||ar(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Er(e,t,n={}){const a=(t,n,a)=>{const i=Sr[n];if("function"!=typeof i)throw new Error("invalid validator function");const r=e[t];if(!(a&&void 0===r||i(r,e)))throw new Error("param "+String(t)+" is invalid. Expected "+n+", got "+r)};for(const[e,n]of Object.entries(t))a(e,n,!1);for(const[e,t]of Object.entries(n))a(e,t,!0);return e}function Dr(e){const t=new WeakMap;return(n,...a)=>{const i=t.get(n);if(void 0!==i)return i;const r=e(n,...a);return t.set(n,r),r}}const Or=BigInt(0),Br=BigInt(1),Lr=BigInt(2),Ur=BigInt(3),Nr=BigInt(4),Rr=BigInt(5),Hr=BigInt(8);function zr(e,t){const n=e%t;return n>=Or?n:t+n}function qr(e,t,n){if(t<Or)throw new Error("invalid exponent, negatives unsupported");if(n<=Or)throw new Error("invalid modulus");if(n===Br)return Or;let a=Br;for(;t>Or;)t&Br&&(a=a*e%n),e=e*e%n,t>>=Br;return a}function Vr(e,t,n){let a=e;for(;t-- >Or;)a*=a,a%=n;return a}function Kr(e,t){if(e===Or)throw new Error("invert: expected non-zero number");if(t<=Or)throw new Error("invert: expected positive modulus, got "+t);let n=zr(e,t),a=t,i=Or,r=Br;for(;n!==Or;){const e=a%n,t=i-r*(a/n);a=n,n=e,i=r,r=t}if(a!==Br)throw new Error("invert: does not exist");return zr(i,t)}function Wr(e){if(e%Nr===Ur){const t=(e+Br)/Nr;return function(e,n){const a=e.pow(n,t);if(!e.eql(e.sqr(a),n))throw new Error("Cannot find square root");return a}}if(e%Hr===Rr){const t=(e-Rr)/Hr;return function(e,n){const a=e.mul(n,Lr),i=e.pow(a,t),r=e.mul(n,i),s=e.mul(e.mul(r,Lr),i),o=e.mul(r,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),n))throw new Error("Cannot find square root");return o}}return function(e){const t=(e-Br)/Lr;let n,a,i;for(n=e-Br,a=0;n%Lr===Or;n/=Lr,a++);for(i=Lr;i<e&&qr(i,t,e)!==e-Br;i++)if(i>1e3)throw new Error("Cannot find square root: likely non-prime P");if(1===a){const t=(e+Br)/Nr;return function(e,n){const a=e.pow(n,t);if(!e.eql(e.sqr(a),n))throw new Error("Cannot find square root");return a}}const r=(n+Br)/Lr;return function(e,s){if(e.pow(s,t)===e.neg(e.ONE))throw new Error("Cannot find square root");let o=a,p=e.pow(e.mul(e.ONE,i),n),y=e.pow(s,r),u=e.pow(s,n);for(;!e.eql(u,e.ONE);){if(e.eql(u,e.ZERO))return e.ZERO;let t=1;for(let n=e.sqr(u);t<o&&!e.eql(n,e.ONE);t++)n=e.sqr(n);const n=e.pow(p,Br<<BigInt(o-t-1));p=e.sqr(n),y=e.mul(y,n),u=e.mul(u,p),o=t}return y}}(e)}const $r=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Gr(e,t){const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Zr(e,t,n=!1,a={}){if(e<=Or)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:r}=Gr(e,t);if(r>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let s;const o=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:r,MASK:Fr(i),ZERO:Or,ONE:Br,create:t=>zr(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return Or<=t&&t<e},is0:e=>e===Or,isOdd:e=>(e&Br)===Br,neg:t=>zr(-t,e),eql:(e,t)=>e===t,sqr:t=>zr(t*t,e),add:(t,n)=>zr(t+n,e),sub:(t,n)=>zr(t-n,e),mul:(t,n)=>zr(t*n,e),pow:(e,t)=>function(e,t,n){if(n<Or)throw new Error("invalid exponent, negatives unsupported");if(n===Or)return e.ONE;if(n===Br)return t;let a=e.ONE,i=t;for(;n>Or;)n&Br&&(a=e.mul(a,i)),i=e.sqr(i),n>>=Br;return a}(o,e,t),div:(t,n)=>zr(t*Kr(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Kr(t,e),sqrt:a.sqrt||(t=>(s||(s=Wr(e)),s(o,t))),invertBatch:e=>function(e,t){const n=new Array(t.length),a=t.reduce(((t,a,i)=>e.is0(a)?t:(n[i]=t,e.mul(t,a))),e.ONE),i=e.inv(a);return t.reduceRight(((t,a,i)=>e.is0(a)?t:(n[i]=e.mul(t,n[i]),e.mul(t,a))),i),n}(o,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?vr(e,r):Ir(e,r),fromBytes:e=>{if(e.length!==r)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+e.length);return n?wr(e):gr(e)}});return Object.freeze(o)}function Xr(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function jr(e){const t=Xr(e);return t+Math.ceil(t/2)}const Qr=BigInt(0),Yr=BigInt(1);function Jr(e,t){const n=t.negate();return e?n:t}function es(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function ts(e,t){es(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:Fr(e),maxNumber:n,shiftBy:BigInt(e)}}function ns(e,t,n){const{windowSize:a,mask:i,maxNumber:r,shiftBy:s}=n;let o=Number(e&i),p=e>>s;o>a&&(o-=r,p+=Yr);const y=t*a;return{nextN:p,offset:y+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:y}}const as=new WeakMap,is=new WeakMap;function rs(e){return is.get(e)||1}function ss(e,t,n,a){if(function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach(((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)}))}(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach(((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)}))}(a,t),n.length!==a.length)throw new Error("arrays of points and scalars must have equal length");const i=e.ZERO,r=function(e){let t;for(t=0;e>tr;e>>=nr,t+=1);return t}(BigInt(n.length)),s=r>12?r-3:r>4?r-2:r?2:1,o=Fr(s),p=new Array(Number(o)+1).fill(i);let y=i;for(let e=Math.floor((t.BITS-1)/s)*s;e>=0;e-=s){p.fill(i);for(let t=0;t<a.length;t++){const i=a[t],r=Number(i>>BigInt(e)&o);p[r]=p[r].add(n[t])}let t=i;for(let e=p.length-1,n=i;e>0;e--)n=n.add(p[e]),t=t.add(n);if(y=y.add(t),0!==e)for(let e=0;e<s;e++)y=y.double()}return y}function os(e){return Er(e.Fp,$r.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Er(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Gr(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}function ps(e){void 0!==e.lowS&&rr("lowS",e.lowS),void 0!==e.prehash&&rr("prehash",e.prehash)}class ys extends Error{constructor(e=""){super(e)}}const us={Err:ys,_tlv:{encode:(e,t)=>{const{Err:n}=us;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const a=t.length/2,i=sr(a);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const r=a>127?sr(i.length/2|128):"";return sr(e)+r+i+t},decode(e,t){const{Err:n}=us;let a=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[a++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[a++];let r=0;if(!!(128&i)){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const s=t.subarray(a,a+e);if(s.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===s[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of s)r=r<<8|e;if(a+=e,r<128)throw new n("tlv.decode(long): not minimal encoding")}else r=i;const s=t.subarray(a,a+r);if(s.length!==r)throw new n("tlv.decode: wrong value length");return{v:s,l:t.subarray(a+r)}}},_int:{encode(e){const{Err:t}=us;if(e<ls)throw new t("integer: negative integers are not allowed");let n=sr(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=us;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return gr(e)}},toSig(e){const{Err:t,_int:n,_tlv:a}=us,i=xr("signature",e),{v:r,l:s}=a.decode(48,i);if(s.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:p}=a.decode(2,r),{v:y,l:u}=a.decode(2,p);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(o),s:n.decode(y)}},hexFromSig(e){const{_tlv:t,_int:n}=us,a=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,a)}},ls=BigInt(0),ds=BigInt(1);BigInt(2);const cs=BigInt(3);function ms(e){const t=function(e){const t=os(e);Er(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:a,a:i}=t;if(n){if(!a.eql(i,a.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:n}=t,a=Zr(t.n,t.nBitLength),i=t.toBytes||((e,t,a)=>{const i=t.toAffine();return kr(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),r=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function s(e){const{a:a,b:i}=t,r=n.sqr(e),s=n.mul(r,e);return n.add(n.add(s,n.mul(e,a)),i)}if(!n.eql(n.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(e){const{allowedPrivateKeyLengths:n,nByteLength:a,wrapPrivateKey:i,n:r}=t;if(n&&"bigint"!=typeof e){if(ar(e)&&(e=ur(e)),"string"!=typeof e||!n.includes(e.length))throw new Error("invalid private key");e=e.padStart(2*a,"0")}let s;try{s="bigint"==typeof e?e:gr(xr("private key",e,a))}catch(t){throw new Error("invalid private key, expected hex or "+a+" bytes, got "+typeof e)}return i&&(s=zr(s,r)),_r("private key",s,ds,r),s}function p(e){if(!(e instanceof l))throw new Error("ProjectivePoint expected")}const y=Dr(((e,t)=>{const{px:a,py:i,pz:r}=e;if(n.eql(r,n.ONE))return{x:a,y:i};const s=e.is0();null==t&&(t=s?n.ONE:n.inv(r));const o=n.mul(a,t),p=n.mul(i,t),y=n.mul(r,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(y,n.ONE))throw new Error("invZ was invalid");return{x:o,y:p}})),u=Dr((e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:a,y:i}=e.toAffine();if(!n.isValid(a)||!n.isValid(i))throw new Error("bad point: x or y not FE");const r=n.sqr(i),o=s(a);if(!n.eql(r,o))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0}));class l{constructor(e,t,a){if(null==e||!n.isValid(e))throw new Error("x required");if(null==t||!n.isValid(t))throw new Error("y required");if(null==a||!n.isValid(a))throw new Error("z required");this.px=e,this.py=t,this.pz=a,Object.freeze(this)}static fromAffine(e){const{x:t,y:a}=e||{};if(!e||!n.isValid(t)||!n.isValid(a))throw new Error("invalid affine point");if(e instanceof l)throw new Error("projective point not allowed");const i=e=>n.eql(e,n.ZERO);return i(t)&&i(a)?l.ZERO:new l(t,a,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=n.invertBatch(e.map((e=>e.pz)));return e.map(((e,n)=>e.toAffine(t[n]))).map(l.fromAffine)}static fromHex(e){const t=l.fromAffine(r(xr("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return l.BASE.multiply(o(e))}static msm(e,t){return ss(l,a,e,t)}_setWindowSize(e){c.setWindowSize(this,e)}assertValidity(){u(this)}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){p(e);const{px:t,py:a,pz:i}=this,{px:r,py:s,pz:o}=e,y=n.eql(n.mul(t,o),n.mul(r,i)),u=n.eql(n.mul(a,o),n.mul(s,i));return y&&u}negate(){return new l(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:a}=t,i=n.mul(a,cs),{px:r,py:s,pz:o}=this;let p=n.ZERO,y=n.ZERO,u=n.ZERO,d=n.mul(r,r),c=n.mul(s,s),m=n.mul(o,o),T=n.mul(r,s);return T=n.add(T,T),u=n.mul(r,o),u=n.add(u,u),p=n.mul(e,u),y=n.mul(i,m),y=n.add(p,y),p=n.sub(c,y),y=n.add(c,y),y=n.mul(p,y),p=n.mul(T,p),u=n.mul(i,u),m=n.mul(e,m),T=n.sub(d,m),T=n.mul(e,T),T=n.add(T,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,m),d=n.mul(d,T),y=n.add(y,d),m=n.mul(s,o),m=n.add(m,m),d=n.mul(m,T),p=n.sub(p,d),u=n.mul(m,c),u=n.add(u,u),u=n.add(u,u),new l(p,y,u)}add(e){p(e);const{px:a,py:i,pz:r}=this,{px:s,py:o,pz:y}=e;let u=n.ZERO,d=n.ZERO,c=n.ZERO;const m=t.a,T=n.mul(t.b,cs);let f=n.mul(a,s),b=n.mul(i,o),h=n.mul(r,y),g=n.add(a,i),w=n.add(s,o);g=n.mul(g,w),w=n.add(f,b),g=n.sub(g,w),w=n.add(a,r);let I=n.add(s,y);return w=n.mul(w,I),I=n.add(f,h),w=n.sub(w,I),I=n.add(i,r),u=n.add(o,y),I=n.mul(I,u),u=n.add(b,h),I=n.sub(I,u),c=n.mul(m,w),u=n.mul(T,h),c=n.add(u,c),u=n.sub(b,c),c=n.add(b,c),d=n.mul(u,c),b=n.add(f,f),b=n.add(b,f),h=n.mul(m,h),w=n.mul(T,w),b=n.add(b,h),h=n.sub(f,h),h=n.mul(m,h),w=n.add(w,h),f=n.mul(b,w),d=n.add(d,f),f=n.mul(I,w),u=n.mul(g,u),u=n.sub(u,f),f=n.mul(g,b),c=n.mul(I,c),c=n.add(c,f),new l(u,d,c)}subtract(e){return this.add(e.negate())}is0(){return this.equals(l.ZERO)}wNAF(e){return c.wNAFCached(this,e,l.normalizeZ)}multiplyUnsafe(e){const{endo:a,n:i}=t;_r("scalar",e,ls,i);const r=l.ZERO;if(e===ls)return r;if(this.is0()||e===ds)return this;if(!a||c.hasPrecomputes(this))return c.wNAFCachedUnsafe(this,e,l.normalizeZ);let{k1neg:s,k1:o,k2neg:p,k2:y}=a.splitScalar(e),u=r,d=r,m=this;for(;o>ls||y>ls;)o&ds&&(u=u.add(m)),y&ds&&(d=d.add(m)),m=m.double(),o>>=ds,y>>=ds;return s&&(u=u.negate()),p&&(d=d.negate()),d=new l(n.mul(d.px,a.beta),d.py,d.pz),u.add(d)}multiply(e){const{endo:a,n:i}=t;let r,s;if(_r("scalar",e,ds,i),a){const{k1neg:t,k1:i,k2neg:o,k2:p}=a.splitScalar(e);let{p:y,f:u}=this.wNAF(i),{p:d,f:m}=this.wNAF(p);y=c.constTimeNegate(t,y),d=c.constTimeNegate(o,d),d=new l(n.mul(d.px,a.beta),d.py,d.pz),r=y.add(d),s=u.add(m)}else{const{p:t,f:n}=this.wNAF(e);r=t,s=n}return l.normalizeZ([r,s])[0]}multiplyAndAddUnsafe(e,t,n){const a=l.BASE,i=(e,t)=>t!==ls&&t!==ds&&e.equals(a)?e.multiply(t):e.multiplyUnsafe(t),r=i(this,t).add(i(e,n));return r.is0()?void 0:r}toAffine(e){return y(this,e)}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===ds)return!0;if(n)return n(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===ds?this:n?n(l,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return rr("isCompressed",e),this.assertValidity(),i(l,this,e)}toHex(e=!0){return rr("isCompressed",e),ur(this.toRawBytes(e))}}l.BASE=new l(t.Gx,t.Gy,n.ONE),l.ZERO=new l(n.ZERO,n.ONE,n.ZERO);const d=t.nBitLength,c=(m=l,T=t.endo?Math.ceil(d/2):d,{constTimeNegate:Jr,hasPrecomputes:e=>1!==rs(e),unsafeLadder(e,t,n=m.ZERO){let a=e;for(;t>Qr;)t&Yr&&(n=n.add(a)),a=a.double(),t>>=Yr;return n},precomputeWindow(e,t){const{windows:n,windowSize:a}=ts(t,T),i=[];let r=e,s=r;for(let e=0;e<n;e++){s=r,i.push(s);for(let e=1;e<a;e++)s=s.add(r),i.push(s);r=s.double()}return i},wNAF(e,t,n){let a=m.ZERO,i=m.BASE;const r=ts(e,T);for(let e=0;e<r.windows;e++){const{nextN:s,offset:o,isZero:p,isNeg:y,isNegF:u,offsetF:l}=ns(n,e,r);n=s,p?i=i.add(Jr(u,t[l])):a=a.add(Jr(y,t[o]))}return{p:a,f:i}},wNAFUnsafe(e,t,n,a=m.ZERO){const i=ts(e,T);for(let e=0;e<i.windows&&n!==Qr;e++){const{nextN:r,offset:s,isZero:o,isNeg:p}=ns(n,e,i);if(n=r,!o){const e=t[s];a=a.add(p?e.negate():e)}}return a},getPrecomputes(e,t,n){let a=as.get(t);return a||(a=this.precomputeWindow(t,e),1!==e&&as.set(t,n(a))),a},wNAFCached(e,t,n){const a=rs(e);return this.wNAF(a,this.getPrecomputes(a,e,n),t)},wNAFCachedUnsafe(e,t,n,a){const i=rs(e);return 1===i?this.unsafeLadder(e,t,a):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,a)},setWindowSize(e,t){es(t,T),is.set(e,t),as.delete(e)}});var m,T;return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:o,weierstrassEquation:s,isWithinCurveOrder:function(e){return Pr(e,ds,t.n)}}}function Ts(e){const t=function(e){const t=os(e);return Er(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:a}=t,i=n.BYTES+1,r=2*n.BYTES+1;function s(e){return zr(e,a)}function o(e){return Kr(e,a)}const{ProjectivePoint:p,normPrivateKeyToScalar:y,weierstrassEquation:u,isWithinCurveOrder:l}=ms({...t,toBytes(e,t,a){const i=t.toAffine(),r=n.toBytes(i.x),s=kr;return rr("isCompressed",a),a?s(Uint8Array.from([t.hasEvenY()?2:3]),r):s(Uint8Array.from([4]),r,n.toBytes(i.y))},fromBytes(e){const t=e.length,a=e[0],s=e.subarray(1);if(t!==i||2!==a&&3!==a){if(t===r&&4===a){return{x:n.fromBytes(s.subarray(0,n.BYTES)),y:n.fromBytes(s.subarray(n.BYTES,2*n.BYTES))}}throw new Error("invalid Point, expected length of "+i+", or uncompressed "+r+", got "+t)}{const e=gr(s);if(!Pr(e,ds,n.ORDER))throw new Error("Point is not on curve");const t=u(e);let i;try{i=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("Point is not on curve"+t)}return!(1&~a)!==((i&ds)===ds)&&(i=n.neg(i)),{x:e,y:i}}}}),d=e=>ur(Ir(e,t.nByteLength));function c(e){return e>a>>ds}const m=(e,t,n)=>gr(e.slice(t,n));class T{constructor(e,t,n){_r("r",e,ds,a),_r("s",t,ds,a),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){const n=t.nByteLength;return e=xr("compactSignature",e,2*n),new T(m(e,0,n),m(e,n,2*n))}static fromDER(e){const{r:t,s:n}=us.toSig(xr("DER",e));return new T(t,n)}assertValidity(){}addRecoveryBit(e){return new T(this.r,this.s,e)}recoverPublicKey(e){const{r:a,s:i,recovery:r}=this,y=g(xr("msgHash",e));if(null==r||![0,1,2,3].includes(r))throw new Error("recovery id invalid");const u=2===r||3===r?a+t.n:a;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const l=1&r?"03":"02",c=p.fromHex(l+d(u)),m=o(u),T=s(-y*m),f=s(i*m),b=p.BASE.multiplyAndAddUnsafe(c,T,f);if(!b)throw new Error("point at infinify");return b.assertValidity(),b}hasHighS(){return c(this.s)}normalizeS(){return this.hasHighS()?new T(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return hr(this.toDERHex())}toDERHex(){return us.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return hr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const f={isValidPrivateKey(e){try{return y(e),!0}catch(e){return!1}},normPrivateKeyToScalar:y,randomPrivateKey:()=>{const e=jr(t.n);return function(e,t,n=!1){const a=e.length,i=Xr(t),r=jr(t);if(a<16||a<r||a>1024)throw new Error("expected "+r+"-1024 bytes of input, got "+a);const s=zr(n?wr(e):gr(e),t-Br)+Br;return n?vr(s,i):Ir(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=p.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function b(e){const t=ar(e),n="string"==typeof e,a=(t||n)&&e.length;return t?a===i||a===r:n?a===2*i||a===2*r:e instanceof p}const h=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const n=gr(e),a=8*e.length-t.nBitLength;return a>0?n>>BigInt(a):n},g=t.bits2int_modN||function(e){return s(h(e))},w=Fr(t.nBitLength);function I(e){return _r("num < 2^"+t.nBitLength,e,ls,w),Ir(e,t.nByteLength)}function v(e,a,i=x){if(["recovered","canonical"].some((e=>e in i)))throw new Error("sign() legacy options not supported");const{hash:r,randomBytes:u}=t;let{lowS:d,prehash:m,extraEntropy:f}=i;null==d&&(d=!0),e=xr("msgHash",e),ps(i),m&&(e=xr("prehashed msgHash",r(e)));const b=g(e),w=y(a),v=[I(w),I(b)];if(null!=f&&!1!==f){const e=!0===f?u(n.BYTES):f;v.push(xr("extraEntropy",e))}const k=kr(...v),M=b;return{seed:k,k2sig:function(e){const t=h(e);if(!l(t))return;const n=o(t),a=p.BASE.multiply(t).toAffine(),i=s(a.x);if(i===ls)return;const r=s(n*s(M+i*w));if(r===ls)return;let y=(a.x===i?0:2)|Number(a.y&ds),u=r;return d&&c(r)&&(u=function(e){return c(e)?s(-e):e}(r),y^=1),new T(i,u,y)}}}const x={lowS:t.lowS,prehash:!1},k={lowS:t.lowS,prehash:!1};return p.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return p.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(b(e))throw new Error("first arg must be private key");if(!b(t))throw new Error("second arg must be public key");return p.fromHex(t).multiply(y(e)).toRawBytes(n)},sign:function(e,n,a=x){const{seed:i,k2sig:r}=v(e,n,a),s=t,o=function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let a=Ar(e),i=Ar(e),r=0;const s=()=>{a.fill(1),i.fill(0),r=0},o=(...e)=>n(i,a,...e),p=(e=Ar(0))=>{i=o(Cr([0]),e),a=o(),0!==e.length&&(i=o(Cr([1]),e),a=o())},y=()=>{if(r++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){a=o();const t=a.slice();n.push(t),e+=a.length}return kr(...n)};return(e,t)=>{let n;for(s(),p(e);!(n=t(y()));)p();return s(),n}}(s.hash.outputLen,s.nByteLength,s.hmac);return o(i,r)},verify:function(e,n,a,i=k){const r=e;n=xr("msgHash",n),a=xr("publicKey",a);const{lowS:y,prehash:u,format:l}=i;if(ps(i),"strict"in i)throw new Error("options.strict was renamed to lowS");if(void 0!==l&&"compact"!==l&&"der"!==l)throw new Error("format must be compact or der");const d="string"==typeof r||ar(r),c=!d&&!l&&"object"==typeof r&&null!==r&&"bigint"==typeof r.r&&"bigint"==typeof r.s;if(!d&&!c)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let m,f;try{if(c&&(m=new T(r.r,r.s)),d){try{"compact"!==l&&(m=T.fromDER(r))}catch(e){if(!(e instanceof us.Err))throw e}m||"der"===l||(m=T.fromCompact(r))}f=p.fromHex(a)}catch(e){return!1}if(!m)return!1;if(y&&m.hasHighS())return!1;u&&(n=t.hash(n));const{r:b,s:h}=m,w=g(n),I=o(h),v=s(w*I),x=s(b*I),M=p.BASE.multiplyAndAddUnsafe(f,v,x)?.toAffine();return!!M&&s(M.x)===b},ProjectivePoint:p,Signature:T,utils:f}}function fs(e){return{hash:e,hmac:(t,...n)=>ji(e,t,function(...e){let t=0;for(let n=0;n<e.length;n++){const a=e[n];ce(a),t+=a.length}const n=new Uint8Array(t);for(let t=0,a=0;t<e.length;t++){const i=e[t];n.set(i,a),a+=i.length}return n}(...n)),randomBytes:Me}}BigInt(4);const bs=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),hs=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),gs=BigInt(1),ws=BigInt(2),Is=(e,t)=>(e+t/ws)/t;const vs=Zr(bs,void 0,void 0,{sqrt:function(e){const t=bs,n=BigInt(3),a=BigInt(6),i=BigInt(11),r=BigInt(22),s=BigInt(23),o=BigInt(44),p=BigInt(88),y=e*e*e%t,u=y*y*e%t,l=Vr(u,n,t)*u%t,d=Vr(l,n,t)*u%t,c=Vr(d,ws,t)*y%t,m=Vr(c,i,t)*c%t,T=Vr(m,r,t)*m%t,f=Vr(T,o,t)*T%t,b=Vr(f,p,t)*f%t,h=Vr(b,o,t)*T%t,g=Vr(h,n,t)*u%t,w=Vr(g,s,t)*m%t,I=Vr(w,a,t)*y%t,v=Vr(I,ws,t);if(!vs.eql(vs.sqr(v),e))throw new Error("Cannot find square root");return v}}),xs=function(e,t){const n=t=>Ts({...e,...fs(t)});return{...n(t),create:n}}({a:BigInt(0),b:BigInt(7),Fp:vs,n:hs,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=hs,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),a=-gs*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),r=n,s=BigInt("0x100000000000000000000000000000000"),o=Is(r*e,t),p=Is(-a*e,t);let y=zr(e-o*n-p*i,t),u=zr(-o*a-p*r,t);const l=y>s,d=u>s;if(l&&(y=t-y),d&&(u=t-u),y>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:y,k2neg:d,k2:u}}}},Ee);
3
3
  /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
4
- function ks(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Ms(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every((e=>"string"==typeof e)):t.every((e=>Number.isSafeInteger(e)))))}function Ps(e){if("function"!=typeof e)throw new Error("function expected");return!0}function _s(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function Fs(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function As(e){if(!Array.isArray(e))throw new Error("array expected")}function Cs(e,t){if(!Ms(!0,t))throw new Error(`${e}: array of strings expected`)}function Ss(e,t){if(!Ms(!1,t))throw new Error(`${e}: array of numbers expected`)}function Es(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map((e=>e.encode)).reduceRight(n,t),decode:e.map((e=>e.decode)).reduce(n,t)}}function Ds(e){const t="string"==typeof e?e.split(""):e,n=t.length;Cs("alphabet",t);const a=new Map(t.map(((e,t)=>[e,t])));return{encode:a=>(As(a),a.map((a=>{if(!Number.isSafeInteger(a)||a<0||a>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${a}". Allowed: ${e}`);return t[a]}))),decode:t=>(As(t),t.map((t=>{_s("alphabet.decode",t);const n=a.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})))}}function Os(e=""){return _s("join",e),{encode:t=>(Cs("join.decode",t),t.join(e)),decode:t=>(_s("join.decode",t),t.split(e))}}function Bs(e,t="="){return Fs(e),_s("padding",t),{encode(n){for(Cs("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){Cs("padding.decode",n);let a=n.length;if(a*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;a>0&&n[a-1]===t;a--){if((a-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,a)}}}function Ls(e){return Ps(e),{encode:e=>e,decode:t=>e(t)}}function Us(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(As(e),!e.length)return[];let a=0;const i=[],r=Array.from(e,(e=>{if(Fs(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e})),s=r.length;for(;;){let e=0,o=!0;for(let i=a;i<s;i++){const s=r[i],p=t*e,y=p+s;if(!Number.isSafeInteger(y)||p/t!==e||y-s!==p)throw new Error("convertRadix: carry overflow");const u=y/n;e=y%n;const l=Math.floor(u);if(r[i]=l,!Number.isSafeInteger(l)||l*n+e!==y)throw new Error("convertRadix: carry overflow");o&&(l?o=!1:a=i)}if(i.push(e),o)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}BigInt(0),xs.ProjectivePoint;const Ns=(e,t)=>0===t?e:Ns(t,e%t),Rs=(e,t)=>e+(t-Ns(e,t)),Hs=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function zs(e,t,n,a){if(As(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Rs(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Rs(t,n)}`);let i=0,r=0;const s=Hs[t],o=Hs[n]-1,p=[];for(const a of e){if(Fs(a),a>=s)throw new Error(`convertRadix2: invalid data word=${a} from=${t}`);if(i=i<<t|a,r+t>32)throw new Error(`convertRadix2: carry overflow pos=${r} from=${t}`);for(r+=t;r>=n;r-=n)p.push((i>>r-n&o)>>>0);const e=Hs[r];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<<n-r&o,!a&&r>=t)throw new Error("Excess padding");if(!a&&i>0)throw new Error(`Non-zero padding: ${i}`);return a&&r>0&&p.push(i>>>0),p}function qs(e,t=!1){if(Fs(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Rs(8,e)>32||Rs(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!ks(n))throw new Error("radix2.encode input should be Uint8Array");return zs(Array.from(n),8,e,!t)},decode:n=>(Ss("radix2.decode",n),Uint8Array.from(zs(n,e,8,t)))}}function Vs(e){return Ps(e),function(...t){try{return e.apply(null,t)}catch(e){}}}Es(qs(4),Ds("0123456789ABCDEF"),Os("")),Es(qs(5),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Bs(5),Os("")),Es(qs(5),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Os("")),Es(qs(5),Ds("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Bs(5),Os("")),Es(qs(5),Ds("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Os("")),Es(qs(5),Ds("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Os(""),Ls((e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))));const Ks=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();Ks||Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Bs(6),Os("")),Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Os("")),Ks||Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Bs(6),Os("")),Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Os(""));const Ws=e=>{return Es((Fs(t=58),{encode:e=>{if(!ks(e))throw new Error("radix.encode input should be Uint8Array");return Us(Array.from(e),256,t)},decode:e=>(Ss("radix.decode",e),Uint8Array.from(Us(e,t,256)))}),Ds(e),Os(""));var t},$s=Ws("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");Ws("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),Ws("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const Gs=Es(Ds("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Os("")),Zs=[996825010,642813549,513874426,1027748829,705979059];function Xs(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<Zs.length;e++)1==(t>>e&1)&&(n^=Zs[e]);return n}function js(e,t,n=1){const a=e.length;let i=1;for(let t=0;t<a;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=Xs(i)^n>>5}i=Xs(i);for(let t=0;t<a;t++)i=Xs(i)^31&e.charCodeAt(t);for(let e of t)i=Xs(i)^e;for(let e=0;e<6;e++)i=Xs(i);return i^=n,Gs.encode(zs([i%Hs[30]],30,5,!1))}function Qs(e){const t="bech32"===e?1:734539939,n=qs(5),a=n.decode,i=n.encode,r=Vs(a);function s(e,n,a=90){_s("bech32.encode prefix",e),ks(n)&&(n=Array.from(n)),Ss("bech32.encode",n);const i=e.length;if(0===i)throw new TypeError(`Invalid prefix length ${i}`);const r=i+7+n.length;if(!1!==a&&r>a)throw new TypeError(`Length ${r} exceeds limit ${a}`);const s=e.toLowerCase(),o=js(s,n,t);return`${s}1${Gs.encode(n)}${o}`}function o(e,n=90){_s("bech32.decode input",e);const a=e.length;if(a<8||!1!==n&&a>n)throw new TypeError(`invalid string length: ${a} (${e}). Expected (8..${n})`);const i=e.toLowerCase();if(e!==i&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const r=i.lastIndexOf("1");if(0===r||-1===r)throw new Error('Letter "1" must be present between prefix and data only');const s=i.slice(0,r),o=i.slice(r+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const p=Gs.decode(o).slice(0,-6),y=js(s,p,t);if(!o.endsWith(y))throw new Error(`Invalid checksum in ${e}: expected "${y}"`);return{prefix:s,words:p}}return{encode:s,decode:o,encodeFromBytes:function(e,t){return s(e,i(t))},decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:a(n)}},decodeUnsafe:Vs(o),fromWords:a,fromWordsUnsafe:r,toWords:i}}Qs("bech32"),Qs("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Es(qs(4),Ds("0123456789abcdef"),Os(""),Ls((e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}))),xs.ProjectivePoint,(e=>{return Es((n=t=>e(e(t)),Fs(t=4),Ps(n),{encode(e){if(!ks(e))throw new Error("checksum.encode: input should be Uint8Array");const a=n(e).slice(0,t),i=new Uint8Array(e.length+t);return i.set(e),i.set(a,e.length),i},decode(e){if(!ks(e))throw new Error("checksum.decode: input should be Uint8Array");const a=e.slice(0,-t),i=e.slice(-t),r=n(a).slice(0,t);for(let e=0;e<t;e++)if(r[e]!==i[e])throw new Error("Invalid checksum");return a}}),$s);var t,n})(Ee),Ie("Bitcoin seed");async function Ys({hash:e,privateKey:t,to:n="object"}){const{r:a,s:i,recovery:r}=xs.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:false}),s={r:P(a,{size:32}),s:P(i,{size:32}),v:r?28n:27n,yParity:r};return"bytes"===n||"hex"===n?function({r:e,s:t,to:n="hex",v:a,yParity:i}){const r=(()=>{if(0===i||1===i)return i;if(a&&(27n===a||28n===a||a>=35n))return a%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),s=`0x${new xs.Signature(L(e),L(t)).toCompactHex()}${0===r?"1b":"1c"}`;return"hex"===n?s:D(s)}({...s,to:n}):s}function Js(e){const{chainId:t,nonce:n,to:a}=e,i=e.contractAddress??e.address,r=dt(X(["0x05",te([t?P(t):"0x",i,n?P(n):"0x"])]));return"bytes"===a?D(r):r}function eo(e,t){return dt(function(e){const t="string"==typeof e?F(e):"string"==typeof e.raw?e.raw:M(e.raw);return Z([F(`Ethereum Signed Message:\n${f(t)}`),t])}(e),t)}class to extends l{constructor({domain:e}){var t,n,a;super(`Invalid domain "${t=e,JSON.stringify(t,((e,t)=>{const a="bigint"==typeof t?t.toString():t;return"function"==typeof n?n(e,a):a}),a)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class no extends l{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class ao extends l{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function io({domain:e}){return["string"==typeof e?.name&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},("number"==typeof e?.chainId||"bigint"==typeof e?.chainId)&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function ro(e){if("address"===e||"bool"===e||"string"===e||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new ao({type:e})}function so(e){const{domain:t={},message:n,primaryType:a}=e,i={EIP712Domain:io({domain:t}),...e.types};!function(e){const{domain:t,message:n,primaryType:a,types:i}=e,r=(e,t)=>{for(const n of e){const{name:e,type:a}=n,s=t[e],o=a.match(qt);if(o&&("number"==typeof s||"bigint"==typeof s)){const[e,t,n]=o;P(s,{signed:"int"===t,size:Number.parseInt(n)/8})}if("address"===a&&"string"==typeof s&&!bt(s))throw new qe({address:s});const p=a.match(zt);if(p){const[e,t]=p;if(t&&f(s)!==Number.parseInt(t))throw new Nt({expectedSize:Number.parseInt(t),givenSize:f(s)})}const y=i[a];y&&(ro(a),r(y,s))}};if(i.EIP712Domain&&t){if("object"!=typeof t)throw new to({domain:t});r(i.EIP712Domain,t)}if("EIP712Domain"!==a){if(!i[a])throw new no({primaryType:a,types:i});r(i[a],n)}}({domain:t,message:n,primaryType:a,types:i});const r=["0x1901"];return t&&r.push(function({domain:e,types:t}){return oo({data:e,primaryType:"EIP712Domain",types:t})}({domain:t,types:i})),"EIP712Domain"!==a&&r.push(oo({data:n,primaryType:a,types:i})),dt(Z(r))}function oo({data:e,primaryType:t,types:n}){return dt(po({data:e,primaryType:t,types:n}))}function po({data:e,primaryType:t,types:n}){const a=[{type:"bytes32"}],i=[yo({primaryType:t,types:n})];for(const r of n[t]){const[t,s]=lo({types:n,name:r.name,type:r.type,value:e[r.name]});a.push(t),i.push(s)}return Vt(a,i)}function yo({primaryType:e,types:t}){const n=x(function({primaryType:e,types:t}){let n="";const a=uo({primaryType:e,types:t});a.delete(e);const i=[e,...Array.from(a).sort()];for(const e of i)n+=`${e}(${t[e].map((({name:e,type:t})=>`${t} ${e}`)).join(",")})`;return n}({primaryType:e,types:t}));return dt(n)}function uo({primaryType:e,types:t},n=new Set){const a=e.match(/^\w*/u),i=a?.[0];if(n.has(i)||void 0===t[i])return n;n.add(i);for(const e of t[i])uo({primaryType:e.type,types:t},n);return n}function lo({types:e,name:t,type:n,value:a}){if(void 0!==e[n])return[{type:"bytes32"},dt(po({data:a,primaryType:n,types:e}))];if("bytes"===n){return[{type:"bytes32"},dt(a=`0x${(a.length%2?"0":"")+a.slice(2)}`)]}if("string"===n)return[{type:"bytes32"},dt(x(a))];if(n.lastIndexOf("]")===n.length-1){const i=n.slice(0,n.lastIndexOf("[")),r=a.map((n=>lo({name:t,type:i,types:e,value:n})));return[{type:"bytes32"},dt(Vt(r.map((([e])=>e)),r.map((([,e])=>e))))]}return[{type:n},a]}function co(e,t={}){const{nonceManager:n}=t,a=x(xs.getPublicKey(e.slice(2),!1)),i=function(e){return mt(`0x${dt(`0x${e.substring(4)}`).substring(26)}`)}(a),r=function(e){if("string"==typeof e){if(!bt(e,{strict:!1}))throw new qe({address:e});return{address:e,type:"json-rpc"}}if(!bt(e.address,{strict:!1}))throw new qe({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}({address:i,nonceManager:n,sign:async({hash:t})=>Ys({hash:t,privateKey:e,to:"hex"}),signAuthorization:async t=>async function(e){const{chainId:t,nonce:n,privateKey:a,to:i="object"}=e,r=e.contractAddress??e.address,s=await Ys({hash:Js({address:r,chainId:t,nonce:n}),privateKey:a,to:i});return"object"===i?{address:r,chainId:t,nonce:n,...s}:s}({...t,privateKey:e}),signMessage:async({message:t})=>async function({message:e,privateKey:t}){return await Ys({hash:eo(e),privateKey:t,to:"hex"})}({message:t,privateKey:e}),signTransaction:async(t,{serializer:n}={})=>async function(e){const{privateKey:t,transaction:n,serializer:a=xt}=e,i="eip4844"===n.type?{...n,sidecars:!1}:n,r=await Ys({hash:dt(a(i)),privateKey:t});return a(n,r)}({privateKey:e,transaction:t,serializer:n}),signTypedData:async t=>async function(e){const{privateKey:t,...n}=e;return await Ys({hash:so(n),privateKey:t,to:"hex"})}({...t,privateKey:e})});return{...r,publicKey:a,source:"privateKey"}}const mo=async({userWallet:e,poolId:t,deadline:a,privateKey:i})=>{const r=n.keccak256(n.encodePacked(["address","bytes32","uint256"],[e,t,a])),s=n.keccak256(n.encodePacked(["string","bytes32"],["Ethereum Signed Message:\n32",r])),o=co(i);return await o.sign({hash:s})},To={ReadFlaunchSDK:Vi,ReadWriteFlaunchSDK:Ki};e.AddressFeeSplitManagerAddress=ln,e.AnyBidWallAddress=pn,e.AnyFlaunchAddress=nn,e.AnyPositionManagerAbi=Wa,e.AnyPositionManagerAddress=Yt,e.BidWallAddress=sn,e.BidWallV1_1Abi=ai,e.BidWallV1_1Address=on,e.BidwallAbi=ha,e.ClankerWorldVerifierAddress=mn,e.ClosedPermissionsAddress=gn,e.DopplerVerifierAddress=Tn,e.FLETHAddress=xn,e.FLETHHooksAddress=kn,e.FairLaunchAbi=fa,e.FairLaunchAddress=an,e.FairLaunchV1_1Abi=ri,e.FairLaunchV1_1Address=rn,e.FastFlaunchZapAbi=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CREATOR_FEE_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"FAIR_LAUNCH_SUPPLY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"address",name:"creator",type:"address"}],internalType:"struct FastFlaunchZap.FastFlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"}],e.FastFlaunchZapAddress=Mn,e.FeeEscrowAbi=Qa,e.FeeEscrowAddress=In,e.FlaunchAbi=Da,e.FlaunchAddress=Jt,e.FlaunchBackend=class{constructor(e,t){this.signerPrivateKey=e,this.chainId=t}async generateHookDataWithSignature({userWallet:e,coinAddress:t,deadlineFromNowInSeconds:a,version:i,referrer:r}){const s=_i(Fi({currency0:xn[this.chainId],currency1:t,fee:0,tickSpacing:Pi,hooks:this.getPositionManagerAddress(i)})),o=Math.floor(Date.now()/1e3),p=BigInt(o+a),y=await mo({userWallet:e,poolId:s,deadline:p,privateKey:this.signerPrivateKey});r||(r=n.zeroAddress);return{hookData:n.encodeAbiParameters([{name:"referrer",type:"address"},{name:"signedMessage",type:"tuple",components:[{name:"poolId",type:"bytes32"},{name:"deadline",type:"uint256"},{name:"signature",type:"bytes"}]}],[r,{poolId:s,deadline:p,signature:y}]),deadline:Number(p),signature:y}}getPositionManagerAddress(t){const n=Qt[this.chainId];if(!t)return n;switch(t){case e.FlaunchVersion.V1:return Xt[this.chainId];case e.FlaunchVersion.V1_1:return jt[this.chainId];case e.FlaunchVersion.V1_2:return Qt[this.chainId];case e.FlaunchVersion.ANY:throw Error("AnyPositionManager is not supported for TrustedSigner");default:return n}}},e.FlaunchPositionManagerAbi=Dn,e.FlaunchPositionManagerAddress=Xt,e.FlaunchPositionManagerV1_1Abi=Fa,e.FlaunchPositionManagerV1_1Address=jt,e.FlaunchPositionManagerV1_2Address=Qt,e.FlaunchSDK=To,e.FlaunchV1_1Abi=oi,e.FlaunchV1_1Address=en,e.FlaunchV1_2Address=tn,e.FlaunchZapAbi=va,e.FlaunchZapAddress=Zt,e.InitialPriceAbi=sa,e.MemecoinAbi=Ba,e.MulticallAbi=fi,e.PERMIT_DETAILS=na,e.PERMIT_TYPES=aa,e.Permit2Abi=Ha,e.Permit2Address=Cn,e.PoolManagerAbi=da,e.PoolManagerAddress=Pn,e.Q192=Mi,e.Q96=ki,e.QuoterAbi=Na,e.QuoterAddress=Fn,e.ReadFlaunchSDK=Vi,e.ReadWriteFlaunchSDK=Ki,e.ReferralEscrowAbi=ei,e.ReferralEscrowAddress=vn,e.RevenueManagerAbi=Ti,e.RevenueManagerAddress=un,e.StakingManagerAddress=dn,e.StateViewAbi=ma,e.StateViewAddress=An,e.TICK_SPACING=Pi,e.TickFinder=xi,e.TokenImporterAddress=cn,e.TreasuryManagerFactoryAbi=li,e.TreasuryManagerFactoryAddress=yn,e.USDCETHPoolKeys=En,e.UniV4PositionManagerAddress=Sn,e.UniversalRouterAbi=qn,e.UniversalRouterAddress=_n,e.VirtualsVerifierAddress=fn,e.WhitelistVerifierAddress=bn,e.WhitelistedPermissionsAddress=wn,e.ZoraVerifierAddress=hn,e.buyMemecoin=ea,e.bytes32ToUint256=ua,e.calculateUnderlyingTokenBalances=Oi,e.chainIdToChain=di,e.createCallDataWalletClient=Gi,e.createDrift=Wi,e.createFlaunch=function(e){const{publicClient:t,walletClient:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;return n?new Ki(a,Wi({publicClient:t,walletClient:n})):new Vi(a,Wi({publicClient:t}))},e.createFlaunchCalldata=function(e){const{publicClient:t,walletAddress:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;if(n){const e=Wi({publicClient:t,walletClient:Gi(t,n)});return new Ki(a,e)}{const e=Wi({publicClient:t});return new Vi(a,e)}},e.decodeCallData=Zi,e.encodedCallAbi=$i,e.generateTokenUri=zn,e.getAmountWithSlippage=Yn,e.getAmountsForLiquidity=Ri,e.getLiquidityFromAmounts=Li,e.getNearestUsableTick=Ci,e.getPermissionsAddress=_a,e.getPermit2TypedData=ia,e.getPoolId=_i,e.getSqrtPriceX96FromTick=Di,e.getValidTick=Ai,e.maxLiquidityForAmount0Precise=Ui,e.maxLiquidityForAmount1=Ni,e.orderPoolKey=Fi,e.parseCall=async function(e){return Zi(await e())},e.parseSwapData=ra,e.priceRatioToTick=Bi,e.resolveIPFS=Ln,e.sellMemecoinWithPermit2=ta,e.uint256ToBytes32=la,e.uploadFileToIPFS=async e=>{try{const t=new FormData;t.append("file",e.file);const n={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(n));const a={cidVersion:1};t.append("pinataOptions",JSON.stringify(a));const i=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:i.data.IpfsHash,PinSize:i.data.PinSize,Timestamp:i.data.Timestamp,isDuplicate:i.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToFlaunchAPI=Rn,e.uploadImageToIPFS=Nn,e.uploadJsonToIPFS=Un,e.uploadMetadataToFlaunchAPI=Hn,Object.defineProperty(e,"__esModule",{value:!0})}));
4
+ function ks(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Ms(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every((e=>"string"==typeof e)):t.every((e=>Number.isSafeInteger(e)))))}function Ps(e){if("function"!=typeof e)throw new Error("function expected");return!0}function _s(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function Fs(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function As(e){if(!Array.isArray(e))throw new Error("array expected")}function Cs(e,t){if(!Ms(!0,t))throw new Error(`${e}: array of strings expected`)}function Ss(e,t){if(!Ms(!1,t))throw new Error(`${e}: array of numbers expected`)}function Es(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map((e=>e.encode)).reduceRight(n,t),decode:e.map((e=>e.decode)).reduce(n,t)}}function Ds(e){const t="string"==typeof e?e.split(""):e,n=t.length;Cs("alphabet",t);const a=new Map(t.map(((e,t)=>[e,t])));return{encode:a=>(As(a),a.map((a=>{if(!Number.isSafeInteger(a)||a<0||a>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${a}". Allowed: ${e}`);return t[a]}))),decode:t=>(As(t),t.map((t=>{_s("alphabet.decode",t);const n=a.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})))}}function Os(e=""){return _s("join",e),{encode:t=>(Cs("join.decode",t),t.join(e)),decode:t=>(_s("join.decode",t),t.split(e))}}function Bs(e,t="="){return Fs(e),_s("padding",t),{encode(n){for(Cs("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){Cs("padding.decode",n);let a=n.length;if(a*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;a>0&&n[a-1]===t;a--){if((a-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,a)}}}function Ls(e){return Ps(e),{encode:e=>e,decode:t=>e(t)}}function Us(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(As(e),!e.length)return[];let a=0;const i=[],r=Array.from(e,(e=>{if(Fs(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e})),s=r.length;for(;;){let e=0,o=!0;for(let i=a;i<s;i++){const s=r[i],p=t*e,y=p+s;if(!Number.isSafeInteger(y)||p/t!==e||y-s!==p)throw new Error("convertRadix: carry overflow");const u=y/n;e=y%n;const l=Math.floor(u);if(r[i]=l,!Number.isSafeInteger(l)||l*n+e!==y)throw new Error("convertRadix: carry overflow");o&&(l?o=!1:a=i)}if(i.push(e),o)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}BigInt(0),xs.ProjectivePoint;const Ns=(e,t)=>0===t?e:Ns(t,e%t),Rs=(e,t)=>e+(t-Ns(e,t)),Hs=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function zs(e,t,n,a){if(As(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Rs(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Rs(t,n)}`);let i=0,r=0;const s=Hs[t],o=Hs[n]-1,p=[];for(const a of e){if(Fs(a),a>=s)throw new Error(`convertRadix2: invalid data word=${a} from=${t}`);if(i=i<<t|a,r+t>32)throw new Error(`convertRadix2: carry overflow pos=${r} from=${t}`);for(r+=t;r>=n;r-=n)p.push((i>>r-n&o)>>>0);const e=Hs[r];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<<n-r&o,!a&&r>=t)throw new Error("Excess padding");if(!a&&i>0)throw new Error(`Non-zero padding: ${i}`);return a&&r>0&&p.push(i>>>0),p}function qs(e,t=!1){if(Fs(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Rs(8,e)>32||Rs(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!ks(n))throw new Error("radix2.encode input should be Uint8Array");return zs(Array.from(n),8,e,!t)},decode:n=>(Ss("radix2.decode",n),Uint8Array.from(zs(n,e,8,t)))}}function Vs(e){return Ps(e),function(...t){try{return e.apply(null,t)}catch(e){}}}Es(qs(4),Ds("0123456789ABCDEF"),Os("")),Es(qs(5),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Bs(5),Os("")),Es(qs(5),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Os("")),Es(qs(5),Ds("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Bs(5),Os("")),Es(qs(5),Ds("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Os("")),Es(qs(5),Ds("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Os(""),Ls((e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))));const Ks=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();Ks||Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Bs(6),Os("")),Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Os("")),Ks||Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Bs(6),Os("")),Es(qs(6),Ds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Os(""));const Ws=e=>{return Es((Fs(t=58),{encode:e=>{if(!ks(e))throw new Error("radix.encode input should be Uint8Array");return Us(Array.from(e),256,t)},decode:e=>(Ss("radix.decode",e),Uint8Array.from(Us(e,t,256)))}),Ds(e),Os(""));var t},$s=Ws("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");Ws("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),Ws("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const Gs=Es(Ds("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Os("")),Zs=[996825010,642813549,513874426,1027748829,705979059];function Xs(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<Zs.length;e++)1==(t>>e&1)&&(n^=Zs[e]);return n}function js(e,t,n=1){const a=e.length;let i=1;for(let t=0;t<a;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=Xs(i)^n>>5}i=Xs(i);for(let t=0;t<a;t++)i=Xs(i)^31&e.charCodeAt(t);for(let e of t)i=Xs(i)^e;for(let e=0;e<6;e++)i=Xs(i);return i^=n,Gs.encode(zs([i%Hs[30]],30,5,!1))}function Qs(e){const t="bech32"===e?1:734539939,n=qs(5),a=n.decode,i=n.encode,r=Vs(a);function s(e,n,a=90){_s("bech32.encode prefix",e),ks(n)&&(n=Array.from(n)),Ss("bech32.encode",n);const i=e.length;if(0===i)throw new TypeError(`Invalid prefix length ${i}`);const r=i+7+n.length;if(!1!==a&&r>a)throw new TypeError(`Length ${r} exceeds limit ${a}`);const s=e.toLowerCase(),o=js(s,n,t);return`${s}1${Gs.encode(n)}${o}`}function o(e,n=90){_s("bech32.decode input",e);const a=e.length;if(a<8||!1!==n&&a>n)throw new TypeError(`invalid string length: ${a} (${e}). Expected (8..${n})`);const i=e.toLowerCase();if(e!==i&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const r=i.lastIndexOf("1");if(0===r||-1===r)throw new Error('Letter "1" must be present between prefix and data only');const s=i.slice(0,r),o=i.slice(r+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const p=Gs.decode(o).slice(0,-6),y=js(s,p,t);if(!o.endsWith(y))throw new Error(`Invalid checksum in ${e}: expected "${y}"`);return{prefix:s,words:p}}return{encode:s,decode:o,encodeFromBytes:function(e,t){return s(e,i(t))},decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:a(n)}},decodeUnsafe:Vs(o),fromWords:a,fromWordsUnsafe:r,toWords:i}}Qs("bech32"),Qs("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Es(qs(4),Ds("0123456789abcdef"),Os(""),Ls((e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}))),xs.ProjectivePoint,(e=>{return Es((n=t=>e(e(t)),Fs(t=4),Ps(n),{encode(e){if(!ks(e))throw new Error("checksum.encode: input should be Uint8Array");const a=n(e).slice(0,t),i=new Uint8Array(e.length+t);return i.set(e),i.set(a,e.length),i},decode(e){if(!ks(e))throw new Error("checksum.decode: input should be Uint8Array");const a=e.slice(0,-t),i=e.slice(-t),r=n(a).slice(0,t);for(let e=0;e<t;e++)if(r[e]!==i[e])throw new Error("Invalid checksum");return a}}),$s);var t,n})(Ee),Ie("Bitcoin seed");async function Ys({hash:e,privateKey:t,to:n="object"}){const{r:a,s:i,recovery:r}=xs.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:false}),s={r:P(a,{size:32}),s:P(i,{size:32}),v:r?28n:27n,yParity:r};return"bytes"===n||"hex"===n?function({r:e,s:t,to:n="hex",v:a,yParity:i}){const r=(()=>{if(0===i||1===i)return i;if(a&&(27n===a||28n===a||a>=35n))return a%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),s=`0x${new xs.Signature(L(e),L(t)).toCompactHex()}${0===r?"1b":"1c"}`;return"hex"===n?s:D(s)}({...s,to:n}):s}function Js(e){const{chainId:t,nonce:n,to:a}=e,i=e.contractAddress??e.address,r=dt(X(["0x05",te([t?P(t):"0x",i,n?P(n):"0x"])]));return"bytes"===a?D(r):r}function eo(e,t){return dt(function(e){const t="string"==typeof e?F(e):"string"==typeof e.raw?e.raw:M(e.raw);return Z([F(`Ethereum Signed Message:\n${f(t)}`),t])}(e),t)}class to extends l{constructor({domain:e}){var t,n,a;super(`Invalid domain "${t=e,JSON.stringify(t,((e,t)=>{const a="bigint"==typeof t?t.toString():t;return"function"==typeof n?n(e,a):a}),a)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class no extends l{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class ao extends l{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function io({domain:e}){return["string"==typeof e?.name&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},("number"==typeof e?.chainId||"bigint"==typeof e?.chainId)&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function ro(e){if("address"===e||"bool"===e||"string"===e||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new ao({type:e})}function so(e){const{domain:t={},message:n,primaryType:a}=e,i={EIP712Domain:io({domain:t}),...e.types};!function(e){const{domain:t,message:n,primaryType:a,types:i}=e,r=(e,t)=>{for(const n of e){const{name:e,type:a}=n,s=t[e],o=a.match(qt);if(o&&("number"==typeof s||"bigint"==typeof s)){const[e,t,n]=o;P(s,{signed:"int"===t,size:Number.parseInt(n)/8})}if("address"===a&&"string"==typeof s&&!bt(s))throw new qe({address:s});const p=a.match(zt);if(p){const[e,t]=p;if(t&&f(s)!==Number.parseInt(t))throw new Nt({expectedSize:Number.parseInt(t),givenSize:f(s)})}const y=i[a];y&&(ro(a),r(y,s))}};if(i.EIP712Domain&&t){if("object"!=typeof t)throw new to({domain:t});r(i.EIP712Domain,t)}if("EIP712Domain"!==a){if(!i[a])throw new no({primaryType:a,types:i});r(i[a],n)}}({domain:t,message:n,primaryType:a,types:i});const r=["0x1901"];return t&&r.push(function({domain:e,types:t}){return oo({data:e,primaryType:"EIP712Domain",types:t})}({domain:t,types:i})),"EIP712Domain"!==a&&r.push(oo({data:n,primaryType:a,types:i})),dt(Z(r))}function oo({data:e,primaryType:t,types:n}){return dt(po({data:e,primaryType:t,types:n}))}function po({data:e,primaryType:t,types:n}){const a=[{type:"bytes32"}],i=[yo({primaryType:t,types:n})];for(const r of n[t]){const[t,s]=lo({types:n,name:r.name,type:r.type,value:e[r.name]});a.push(t),i.push(s)}return Vt(a,i)}function yo({primaryType:e,types:t}){const n=x(function({primaryType:e,types:t}){let n="";const a=uo({primaryType:e,types:t});a.delete(e);const i=[e,...Array.from(a).sort()];for(const e of i)n+=`${e}(${t[e].map((({name:e,type:t})=>`${t} ${e}`)).join(",")})`;return n}({primaryType:e,types:t}));return dt(n)}function uo({primaryType:e,types:t},n=new Set){const a=e.match(/^\w*/u),i=a?.[0];if(n.has(i)||void 0===t[i])return n;n.add(i);for(const e of t[i])uo({primaryType:e.type,types:t},n);return n}function lo({types:e,name:t,type:n,value:a}){if(void 0!==e[n])return[{type:"bytes32"},dt(po({data:a,primaryType:n,types:e}))];if("bytes"===n){return[{type:"bytes32"},dt(a=`0x${(a.length%2?"0":"")+a.slice(2)}`)]}if("string"===n)return[{type:"bytes32"},dt(x(a))];if(n.lastIndexOf("]")===n.length-1){const i=n.slice(0,n.lastIndexOf("[")),r=a.map((n=>lo({name:t,type:i,types:e,value:n})));return[{type:"bytes32"},dt(Vt(r.map((([e])=>e)),r.map((([,e])=>e))))]}return[{type:n},a]}function co(e,t={}){const{nonceManager:n}=t,a=x(xs.getPublicKey(e.slice(2),!1)),i=function(e){return mt(`0x${dt(`0x${e.substring(4)}`).substring(26)}`)}(a),r=function(e){if("string"==typeof e){if(!bt(e,{strict:!1}))throw new qe({address:e});return{address:e,type:"json-rpc"}}if(!bt(e.address,{strict:!1}))throw new qe({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}({address:i,nonceManager:n,sign:async({hash:t})=>Ys({hash:t,privateKey:e,to:"hex"}),signAuthorization:async t=>async function(e){const{chainId:t,nonce:n,privateKey:a,to:i="object"}=e,r=e.contractAddress??e.address,s=await Ys({hash:Js({address:r,chainId:t,nonce:n}),privateKey:a,to:i});return"object"===i?{address:r,chainId:t,nonce:n,...s}:s}({...t,privateKey:e}),signMessage:async({message:t})=>async function({message:e,privateKey:t}){return await Ys({hash:eo(e),privateKey:t,to:"hex"})}({message:t,privateKey:e}),signTransaction:async(t,{serializer:n}={})=>async function(e){const{privateKey:t,transaction:n,serializer:a=xt}=e,i="eip4844"===n.type?{...n,sidecars:!1}:n,r=await Ys({hash:dt(a(i)),privateKey:t});return a(n,r)}({privateKey:e,transaction:t,serializer:n}),signTypedData:async t=>async function(e){const{privateKey:t,...n}=e;return await Ys({hash:so(n),privateKey:t,to:"hex"})}({...t,privateKey:e})});return{...r,publicKey:a,source:"privateKey"}}const mo=async({userWallet:e,poolId:t,deadline:a,privateKey:i})=>{const r=n.keccak256(n.encodePacked(["address","bytes32","uint256"],[e,t,a])),s=n.keccak256(n.encodePacked(["string","bytes32"],["Ethereum Signed Message:\n32",r])),o=co(i);return await o.sign({hash:s})},To={ReadFlaunchSDK:Vi,ReadWriteFlaunchSDK:Ki};e.AddressFeeSplitManagerAddress=ln,e.AnyBidWallAddress=pn,e.AnyFlaunchAddress=nn,e.AnyPositionManagerAbi=Wa,e.AnyPositionManagerAddress=Yt,e.BidWallAddress=sn,e.BidWallV1_1Abi=ai,e.BidWallV1_1Address=on,e.BidwallAbi=ha,e.ClankerWorldVerifierAddress=mn,e.ClosedPermissionsAddress=gn,e.DopplerVerifierAddress=Tn,e.FLETHAddress=xn,e.FLETHHooksAddress=kn,e.FairLaunchAbi=fa,e.FairLaunchAddress=an,e.FairLaunchV1_1Abi=ri,e.FairLaunchV1_1Address=rn,e.FastFlaunchZapAbi=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CREATOR_FEE_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"FAIR_LAUNCH_SUPPLY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"address",name:"creator",type:"address"}],internalType:"struct FastFlaunchZap.FastFlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"}],e.FastFlaunchZapAddress=Mn,e.FeeEscrowAbi=Qa,e.FeeEscrowAddress=In,e.FlaunchAbi=Da,e.FlaunchAddress=Jt,e.FlaunchBackend=class{constructor(e,t){this.signerPrivateKey=e,this.chainId=t}async generateHookDataWithSignature({userWallet:e,coinAddress:t,deadlineFromNowInSeconds:a,version:i,referrer:r}){const s=Pi(_i({currency0:xn[this.chainId],currency1:t,fee:0,tickSpacing:Mi,hooks:this.getPositionManagerAddress(i)})),o=Math.floor(Date.now()/1e3),p=BigInt(o+a),y=await mo({userWallet:e,poolId:s,deadline:p,privateKey:this.signerPrivateKey});r||(r=n.zeroAddress);return{hookData:n.encodeAbiParameters([{name:"referrer",type:"address"},{name:"signedMessage",type:"tuple",components:[{name:"poolId",type:"bytes32"},{name:"deadline",type:"uint256"},{name:"signature",type:"bytes"}]}],[r,{poolId:s,deadline:p,signature:y}]),deadline:Number(p),signature:y}}getPositionManagerAddress(t){const n=Qt[this.chainId];if(!t)return n;switch(t){case e.FlaunchVersion.V1:return Xt[this.chainId];case e.FlaunchVersion.V1_1:return jt[this.chainId];case e.FlaunchVersion.V1_2:return Qt[this.chainId];case e.FlaunchVersion.ANY:throw Error("AnyPositionManager is not supported for TrustedSigner");default:return n}}},e.FlaunchPositionManagerAbi=Dn,e.FlaunchPositionManagerAddress=Xt,e.FlaunchPositionManagerV1_1Abi=Fa,e.FlaunchPositionManagerV1_1Address=jt,e.FlaunchPositionManagerV1_2Address=Qt,e.FlaunchSDK=To,e.FlaunchV1_1Abi=oi,e.FlaunchV1_1Address=en,e.FlaunchV1_2Address=tn,e.FlaunchZapAbi=va,e.FlaunchZapAddress=Zt,e.InitialPriceAbi=sa,e.MemecoinAbi=Ba,e.MulticallAbi=Ti,e.PERMIT_DETAILS=na,e.PERMIT_TYPES=aa,e.Permit2Abi=Ha,e.Permit2Address=Cn,e.PoolManagerAbi=da,e.PoolManagerAddress=Pn,e.Q192=ki,e.Q96=xi,e.QuoterAbi=Na,e.QuoterAddress=Fn,e.ReadFlaunchSDK=Vi,e.ReadWriteFlaunchSDK=Ki,e.ReferralEscrowAbi=ei,e.ReferralEscrowAddress=vn,e.RevenueManagerAbi=mi,e.RevenueManagerAddress=un,e.StakingManagerAddress=dn,e.StateViewAbi=ma,e.StateViewAddress=An,e.TICK_SPACING=Mi,e.TickFinder=vi,e.TokenImporterAddress=cn,e.TreasuryManagerFactoryAbi=li,e.TreasuryManagerFactoryAddress=yn,e.USDCETHPoolKeys=En,e.UniV4PositionManagerAddress=Sn,e.UniversalRouterAbi=qn,e.UniversalRouterAddress=_n,e.VirtualsVerifierAddress=fn,e.WhitelistVerifierAddress=bn,e.WhitelistedPermissionsAddress=wn,e.ZoraVerifierAddress=hn,e.buyMemecoin=ea,e.bytes32ToUint256=ua,e.calculateUnderlyingTokenBalances=Di,e.chainIdToChain=Ri,e.createCallDataWalletClient=Gi,e.createDrift=Wi,e.createFlaunch=function(e){const{publicClient:t,walletClient:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;return n?new Ki(a,Wi({publicClient:t,walletClient:n}),t):new Vi(a,Wi({publicClient:t}),t)},e.createFlaunchCalldata=function(e){const{publicClient:t,walletAddress:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;if(n){const e=Wi({publicClient:t,walletClient:Gi(t,n)});return new Ki(a,e)}{const e=Wi({publicClient:t});return new Vi(a,e)}},e.decodeCallData=Zi,e.encodedCallAbi=$i,e.generateTokenUri=zn,e.getAmountWithSlippage=Yn,e.getAmountsForLiquidity=Ni,e.getLiquidityFromAmounts=Bi,e.getNearestUsableTick=Ai,e.getPermissionsAddress=_a,e.getPermit2TypedData=ia,e.getPoolId=Pi,e.getSqrtPriceX96FromTick=Ei,e.getValidTick=Fi,e.maxLiquidityForAmount0Precise=Li,e.maxLiquidityForAmount1=Ui,e.orderPoolKey=_i,e.parseCall=async function(e){return Zi(await e())},e.parseSwapData=ra,e.priceRatioToTick=Oi,e.resolveIPFS=Ln,e.sellMemecoinWithPermit2=ta,e.uint256ToBytes32=la,e.uploadFileToIPFS=async e=>{try{const t=new FormData;t.append("file",e.file);const n={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(n));const a={cidVersion:1};t.append("pinataOptions",JSON.stringify(a));const i=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:i.data.IpfsHash,PinSize:i.data.PinSize,Timestamp:i.data.Timestamp,isDuplicate:i.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToFlaunchAPI=Rn,e.uploadImageToIPFS=Nn,e.uploadJsonToIPFS=Un,e.uploadMetadataToFlaunchAPI=Hn,Object.defineProperty(e,"__esModule",{value:!0})}));
5
5
  //# sourceMappingURL=index.umd.js.map