@flaunch/sdk 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@uniswap/v3-sdk")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@uniswap/v3-sdk"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.v3Sdk)}(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 p(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const o="2.28.3";let y=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,u=`viem@${o}`;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=o}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 b(e){return T(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function f(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?function(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")}`}(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})}const I=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?k(e,t):"string"==typeof e?function(e,t={}){const n=M.encode(e);return v(n,t)}(e,t):"boolean"==typeof e?function(e,t={}){const n=`0x${Number(e)}`;if("number"==typeof t.size)return D(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):v(e,t)}function v(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=I[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(D(a,{size:t.size}),w(a,{dir:"right",size:t.size})):a}function k(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 p=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?w(p,{size:a}):p}const M=new TextEncoder;const P=new TextEncoder;function F(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=k(e,t);return C(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return D(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):T(e)?C(e,t):S(e,t)}const _={zero:48,nine:57,A:65,F:70,a:97,f:102};function A(e){return e>=_.zero&&e<=_.nine?e-_.zero:e>=_.A&&e<=_.F?e-(_.A-10):e>=_.a&&e<=_.f?e-(_.a-10):void 0}function C(e,t={}){let n=e;t.size&&(D(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=A(a.charCodeAt(t++)),i=A(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 S(e,t={}){const n=P.encode(e);return"number"==typeof t.size?(D(n,{size:t.size}),w(n,{dir:"right",size:t.size})):n}function D(e,{size:t}){if(b(e)>t)throw new m({givenSize:b(e),maxSize:t})}function E(e,t={}){const{signed:n}=t;t.size&&D(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 L(e,t={}){return Number(E(e,t))}function B(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 O={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function U(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?L(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?L(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?O[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 R=B("transaction",U);function H(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:U(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 N=B("block",H);const z={"0x0":"reverted","0x1":"success"};function q(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?L(e.transactionIndex):null,status:e.status?z[e.status]:null,type:e.type?O[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const G=B("transactionReceipt",q);const V=2n**256n-1n;function $(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class K extends l{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class W extends l{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Z extends l{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const X={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 Z({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new W({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new K({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 K({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 Q(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(X);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function j(e,t="hex"){const n=Y(e),a=Q(new Uint8Array(n.length));return n.encode(a),"hex"===t?v(a.bytes):a.bytes}function Y(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=J(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=>Y(e)))):function(e){const t="string"==typeof e?C(e):e,n=J(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 J(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 ee={ether:-9,wei:9};function te(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,ee[t])}function ne(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 ae extends l{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class ie extends l{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",ne(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 re 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 se(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=>C(e))):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map((e=>v(e)))}function pe(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=>C(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>C(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=>v(e)))}function oe(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ye(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 ue(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 le(e,t){ye(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function de(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ce(e,t){return e<<32-t|e>>>t}const me=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function Te(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 be(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),ye(e),e}"function"==typeof Uint8Array.from([]).toHex&&Uint8Array.fromHex;class fe{clone(){return this._cloneInto()}}function he(e){const t=t=>e().update(be(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ge(e,t,n){return e&t^e&n^t&n}class we extends fe{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=de(this.buffer)}update(e){ue(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=be(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=de(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){ue(this),le(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),p=Number(n&r),o=a?4:0,y=a?0:4;e.setUint32(t+o,s,a),e.setUint32(t+y,p,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=de(e),p=this.outputLen;if(p%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const o=p/4,y=this.get();if(o>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<o;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 Ie=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]),xe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ve=new Uint32Array(64);class ke extends we{constructor(e=32){super(64,e,8,!1),this.A=0|xe[0],this.B=0|xe[1],this.C=0|xe[2],this.D=0|xe[3],this.E=0|xe[4],this.F=0|xe[5],this.G=0|xe[6],this.H=0|xe[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:p}=this;return[e,t,n,a,i,r,s,p]}set(e,t,n,a,i,r,s,p){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|p}process(e,t){for(let n=0;n<16;n++,t+=4)ve[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=ve[e-15],n=ve[e-2],a=ce(t,7)^ce(t,18)^t>>>3,i=ce(n,17)^ce(n,19)^n>>>10;ve[e]=i+ve[e-7]+a+ve[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:p,G:o,H:y}=this;for(let e=0;e<64;e++){const t=y+(ce(s,6)^ce(s,11)^ce(s,25))+((u=s)&p^~u&o)+Ie[e]+ve[e]|0,l=(ce(n,2)^ce(n,13)^ce(n,22))+ge(n,a,i)|0;y=o,o=p,p=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,p=p+this.F|0,o=o+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,p,o,y)}roundClean(){ve.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Me=he((()=>new ke));function Pe(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=Me(T(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:v(i)}const Fe=4096,_e=131072,Ae=761855;class Ce extends l{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class Se extends l{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class De extends l{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class Ee extends l{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function Le(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?C(e.data):e.data,a=b(n);if(!a)throw new Se;if(a>Ae)throw new Ce({maxSize:Ae,size:a});const i=[];let r=!0,s=0;for(;r;){const e=Q(new Uint8Array(_e));let t=0;for(;t<Fe;){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=>v(e.bytes)))}({data:t,to:a}),r=e.commitments??se({blobs:i,kzg:n,to:a}),s=e.proofs??pe({blobs:i,commitments:r,kzg:n,to:a}),p=[];for(let e=0;e<i.length;e++)p.push({blob:i[e],commitment:r[e],proof:s[e]});return p}class Be 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 Oe extends l{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Ue extends l{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${te(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Ue,"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 Re extends l{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${te(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${te(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(Re,"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 He 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 Ne=BigInt(2**32-1),ze=BigInt(32);function qe(e,t=!1){return t?{h:Number(e&Ne),l:Number(e>>ze&Ne)}:{h:0|Number(e>>ze&Ne),l:0|Number(e&Ne)}}function Ge(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}=qe(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const Ve=[],$e=[],Ke=[],We=BigInt(0),Ze=BigInt(1),Xe=BigInt(2),Qe=BigInt(7),je=BigInt(256),Ye=BigInt(113);for(let e=0,t=Ze,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],Ve.push(2*(5*a+n)),$e.push((e+1)*(e+2)/2%64);let i=We;for(let e=0;e<7;e++)t=(t<<Ze^(t>>Qe)*Ye)%je,t&Xe&&(i^=Ze<<(Ze<<BigInt(e))-Ze);Ke.push(i)}const[Je,et]=Ge(Ke,!0),tt=(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),nt=(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 at extends fe{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,oe(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(){me||Te(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],p=tt(r,s,1)^n[a],o=nt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=p,e[t+n+1]^=o}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=$e[n],r=tt(t,i,a),s=nt(t,i,a),p=Ve[n];t=e[p],i=e[p+1],e[p]=r,e[p+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]^=Je[a],e[1]^=et[a]}n.fill(0)}(this.state32,this.rounds),me||Te(this.state32),this.posOut=0,this.pos=0}update(e){ue(this);const{blockLen:t,state:n}=this,a=(e=be(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){ue(this,!1),ye(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 oe(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(le(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 at(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 it=((e,t,n)=>he((()=>new at(t,e,n))))(1,136,32);const rt=new He(8192);function st(e,t){if(rt.has(`${e}.${t}`))return rt.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=function(e,t){const n=t||"hex",a=it(T(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(S(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 rt.set(`${e}.${t}`,r),r}const pt=/^0x[a-fA-F0-9]{40}$/,ot=new He(8192);function yt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(ot.has(a))return ot.get(a);const i=!(!pt.test(e)||e.toLowerCase()!==e&&n&&st(e)!==e);return ot.set(a,i),i}function ut(e,t,n,{strict:a}={}){return T(e,{strict:!1})?function(e,t,n,{strict:a}={}){lt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&dt(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){lt(e,t);const i=e.slice(t,n);a&&dt(i,t,n);return i}(e,t,n,{strict:a})}function lt(e,t){if("number"==typeof t&&t>0&&t>b(e)-1)throw new h({offset:t,position:"start",size:b(e)})}function dt(e,t,n){if("number"==typeof t&&"number"==typeof n&&b(e)!==n-t)throw new h({offset:n,position:"end",size:b(e)})}function ct(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new Oe({chainId:t});if(i&&!yt(i))throw new Be({address:i});if(a&&a>V)throw new Ue({maxFeePerGas:a});if(n&&a&&n>a)throw new Re({maxFeePerGas:a,maxPriorityFeePerGas:n})}function mt(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 re({storageKey:i[e]});if(!yt(a,{strict:!1}))throw new Be({address:a});t.push([a,i])}return t}function Tt(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 ie({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:p,maxPriorityFeePerGas:o,accessList:y,data:u}=e;ct(e);const l=mt(y),d=[x(n),i?x(i):"0x",o?x(o):"0x",p?x(p):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",u??"0x",l,...bt(e,t)];return $(["0x02",j(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:p,accessList:o,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Oe({chainId:t});if(r&&!yt(r))throw new Be({address:r});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>V)throw new Ue({maxFeePerGas:a})}(e);const u=mt(o),d=[x(n),r?x(r):"0x",y?x(y):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x",u,...bt(e,t)];return $(["0x01",j(d)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new Se;for(const e of t){const t=b(e),n=L(ut(e,0,1));if(32!==t)throw new De({hash:e,size:t});if(1!==n)throw new Ee({hash:e,version:n})}}ct(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=>v(e))),n=e.kzg,a=se({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(Pe({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=Le({blobs:t,commitments:a,proofs:pe({blobs:t,commitments:a,kzg:n})})}}const m=mt(u),T=[x(n),i?x(i):"0x",y?x(y):"0x",o?x(o):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",l??"0x",m,p?x(p):"0x",d??[],...bt(e,t)],f=[],h=[],g=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];f.push(t),h.push(n),g.push(a)}return $(["0x03",j(c?[T,f,h,g]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:p,maxFeePerGas:o,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(!yt(n))throw new Be({address:n});if(t<0)throw new Oe({chainId:t})}ct(e)}(e);const d=mt(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",...bt({},i)])}return t}(n);return $(["0x04",j([x(a),r?x(r):"0x",y?x(y):"0x",o?x(o):"0x",i?x(i):"0x",s??"0x",p?x(p):"0x",l??"0x",d,c,...bt(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:p,gasPrice:o}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!yt(r))throw new Be({address:r});if(void 0!==t&&t<=0)throw new Oe({chainId:t});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>V)throw new Ue({maxFeePerGas:a})}(e);let y=[r?x(r):"0x",o?x(o):"0x",a?x(a):"0x",s??"0x",p?x(p):"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 ae({v:t.v});return e})(),a=f(t.r),i=f(t.s);y=[...y,x(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,x(n),"0x","0x"]);return j(y)}(e,t)}function bt(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=f(n.r),s=f(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 ft={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function ht(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&&!yt(t))throw new Be({address:t});if(n&&!yt(n))throw new Be({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:p,value:o}=e;return $(["0x7e",j([t,a,p??"0x",s?x(s):"0x",o?x(o):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):Tt(e,t)}const gt={contracts:ft,formatters:{block:N({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=U(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?E(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}));return{transactions:t,stateRoot:e.stateRoot}}}),transaction:R({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?E(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:G({format:e=>({l1GasPrice:e.l1GasPrice?E(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?E(e.l1GasUsed):null,l1Fee:e.l1Fee?E(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:ht}},wt=1,It=p({...gt,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:{...gt.contracts,disputeGameFactory:{[wt]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[wt]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[wt]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[wt]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),xt=11155111,vt=p({...gt,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:{...gt.contracts,disputeGameFactory:{[xt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[xt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[xt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[xt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:xt});p({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 kt=1;p({...gt,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:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[kt]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[kt]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Mt=11155111;p({...gt,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:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Mt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Mt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Mt});p({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}}}),p({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}),p({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});p({...gt,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:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const Pt=17e3;p({...gt,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:Pt,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:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Pt]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[Pt]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[Pt]:{address:"0x09bcDd311FE398F80a78BE37E489f5D440DB95DE",blockCreated:1274684}}}});p({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});const Ft=11155111;p({...gt,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:Ft,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:{...gt.contracts,l1StandardBridge:{[Ft]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const _t=1;p({...gt,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:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[_t]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[_t]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[_t]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const At={[It.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[vt.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},Ct={[It.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[vt.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},St={[It.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[vt.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},Dt={[It.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[vt.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Et={[It.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[vt.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},Lt={[It.id]:"0x4dc442403e8c758425b93c59dc737da522f32640",[vt.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},Bt={[It.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[vt.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},Ot={[It.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[vt.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},Ut={[It.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[vt.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},Rt={[It.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[vt.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},Ht={[It.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[vt.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},Nt={[It.id]:"0xfa9e8528ee95eb109bffd1a2d59cb95b300a672a",[vt.id]:"0xb2f5d987de90e026b61805e60b6002d367461474"},zt={[It.id]:"0x712fa8ddc7347b4b6b029aa21710f365cd02d898",[vt.id]:"0x17E02501dE3e420347e7C5fCAe3AD787C5aea690"},qt={[It.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[vt.id]:"0xd2f3c6185e06925dcbe794c6574315b2202e9ccd"},Gt={[It.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[vt.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},Vt={[It.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[vt.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},$t={[It.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[vt.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},Kt={[It.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[vt.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Wt={[It.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[vt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},Zt={[It.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[vt.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},Xt=[{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"}],Qt=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let jt=0;const Yt=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=Qt[jt];return jt=(jt+1)%Qt.length,`${n}${t}`}return e},Jt=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}},en=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 p=new Blob(i,{type:r}),o=e.name||`image.${r.split("/")[1]}`,y=new File([p],o,{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}},tn=async(e,t)=>{const n=await en({pinataConfig:t.pinataConfig,base64Image:t.metadata.base64Image}),a={name:e,description:t.metadata.description,image:`ipfs://${n.IpfsHash}`,external_link:t.metadata.websiteUrl,collaborators:[],discordUrl:t.metadata.discordUrl,twitterUrl:t.metadata.twitterUrl,telegramUrl:t.metadata.telegramUrl};return`ipfs://${(await Jt({pinataConfig:t.pinataConfig,json:a})).IpfsHash}`},nn=[{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"}],an=[{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"}]}],rn=[{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"}]}],sn="07",pn="09",on="0c",yn="0f",un="10",ln="04",dn="0a",cn=(e,t,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)},mn=n.zeroAddress,Tn={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]},bn=[{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 fn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:bn,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}}class hn{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:Xt,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}async getFlaunchingFee(e){const t=new fn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return cn(n,(e.slippagePercent??0).toFixed(18).toString(),"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({blockNumber: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 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({blockNumber:e.blockNumber}),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const x=b<0?-b:b,v=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHSold:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHBought:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}})));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}}}const gn=e=>n.hexToBigInt(e),wn=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),In=[{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 xn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:In,address:e})}poolStateSlot({poolId:e}){const t=wn(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,p=BigInt("0xFFFFFF"),o=Number(s&p),y=o>8388607?o-16777216:o,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"}),p=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),o=this.poolStateSlot({poolId:e}),y=wn(gn(o)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[p,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 vn=[{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 kn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:vn,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 Mn=[{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 Pn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Mn,address:e})}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 Fn=[{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 _n{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Fn,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const An=[{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"}];class Cn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:An,address:e})}}class Sn extends Cn{constructor(e,n=t.createDrift()){super(e,n)}fastFlaunch({name:e,symbol:t,tokenUri:n,creator:a}){return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:n,creator:a}})}async fastFlaunchIPFS({name:e,symbol:t,creator:n,metadata:a,pinataConfig:i}){const r=await tn(e,{metadata:a,pinataConfig:i});return this.fastFlaunch({name:e,symbol:t,tokenUri:r,creator:n})}}const Dn=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"contract Flaunch",name:"_flaunchContract",type:"address"},{internalType:"contract IFLETH",name:"_flETH",type:"address"},{internalType:"contract PoolSwap",name:"_poolSwap",type:"address"},{internalType:"contract ITreasuryManagerFactory",name:"_treasuryManagerFactory",type:"address"},{internalType:"contract IMerkleAirdrop",name:"_merkleAirdrop",type:"address"},{internalType:"contract WhitelistFairLaunch",name:"_whitelistFairLaunch",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CreatorCannotBeZero",type:"error"},{inputs:[],name:"InsufficientMemecoinsForAirdrop",type:"error"},{inputs:[{internalType:"uint256",name:"_premineAmount",type:"uint256"},{internalType:"uint256",name:"_slippage",type:"uint256"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"ethRequired_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flETH",outputs:[{internalType:"contract IFLETH",name:"",type:"address"}],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:"_flaunchParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"",type:"address"}],stateMutability:"payable",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:"_flaunchParams",type:"tuple"},{components:[{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"},{internalType:"uint256",name:"maxTokens",type:"uint256"}],internalType:"struct FlaunchZap.WhitelistParams",name:"_whitelistParams",type:"tuple"},{components:[{internalType:"uint256",name:"airdropIndex",type:"uint256"},{internalType:"uint256",name:"airdropAmount",type:"uint256"},{internalType:"uint256",name:"airdropEndTime",type:"uint256"},{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"}],internalType:"struct FlaunchZap.AirdropParams",name:"_airdropParams",type:"tuple"},{components:[{internalType:"address",name:"manager",type:"address"},{internalType:"bytes",name:"initializeData",type:"bytes"},{internalType:"bytes",name:"depositData",type:"bytes"}],internalType:"struct FlaunchZap.TreasuryManagerParams",name:"_treasuryManagerParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"deployedManager_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"merkleAirdrop",outputs:[{internalType:"contract IMerkleAirdrop",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract ITreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"whitelistFairLaunch",outputs:[{internalType:"contract WhitelistFairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],En=[{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 Ln{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:En,address: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 fn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return cn(n,(e.slippagePercent??0).toFixed(18).toString(),"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({blockNumber: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 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({blockNumber:e.blockNumber}),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const x=b<0?-b:b,v=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHSold:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHBought:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}})));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 Bn extends Ln{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:p,creatorFeeAllocationPercent:o,flaunchAt:y}){const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*o,m=await this.getFlaunchingFee({sender:await this.drift.adapter.getSignerAddress(),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:p,creatorFeeAllocation:c,flaunchAt:y??0n,initialPriceParams:l,feeCalculatorParams:"0x"}},{value:m,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:p,metadata:o,pinataConfig:y}){const u=await tn(e,{metadata:o,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:p})}}class On{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:Dn,address:n}),this.readPositionManagerV1_1=new Ln(Ct[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return cn(t,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async getFlaunchingFee(e){const t=new fn(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return cn(n,(e.slippagePercent??0).toFixed(18).toString(),"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 Un extends On{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:n.zeroAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:"0x",merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:"0x",merkleIPFSHash:""}},{value:s})}async flaunchIPFS(e){const t=await tn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:e.revenueManagerInstanceAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:"0x",merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:"0x",merkleIPFSHash:""}},{value:s})}async flaunchIPFSWithRevenueManager(e){const t=await tn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}}const Rn=[{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 Hn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Rn,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 Nn=[{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 zn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Nn,address:e})}name(){return this.contract.read("name")}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}}const qn=[{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 Gn{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:qn,address:n})}async getSellQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x",intermediateCurrency:St[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId],intermediateCurrency:St[this.chainId]},{fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x",intermediateCurrency:e}]}})).amountOut}async getBuyQuoteExactOutput(e,t,a){return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId]},{intermediateCurrency:St[this.chainId],fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x"}],exactCurrency:e,exactAmount:t}})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:Zt[this.chainId].fee,tickSpacing:Zt[this.chainId].tickSpacing,hooks:Zt[this.chainId].hooks,hookData:"0x",intermediateCurrency:Zt[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const Vn=[{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 $n{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Vn,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}const Kn=[{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 Wn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Kn,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Zn=[{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 Xn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Zn,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 Qn=[{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 jn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Qn,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const Yn=[{inputs:[{internalType:"address",name:"_protocolOwner",type:"address"},{internalType:"address",name:"_feeEscrow",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:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownManagerImplemention",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_manager",type:"address"},{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationUnapproved",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"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approveManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approvedManagerImplementation",outputs:[{internalType:"bool",name:"_approved",type:"bool"}],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:[{internalType:"address",name:"_managerImplementation",type:"address"},{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deployAndInitializeManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"deployManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract IFeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"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:"address",name:"_manager",type:"address"}],name:"managerImplementation",outputs:[{internalType:"address",name:"_managerImplementation",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:[{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:[{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"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"unapproveManager",outputs:[],stateMutability:"nonpayable",type:"function"}];class Jn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Yn,address:e})}}class ea extends Jn{constructor(e,n,a=t.createDrift()){super(n,a),this.chainId=e}deployRevenueManager(e){return this.contract.write("deployAndInitializeManager",{_managerImplementation:zt[this.chainId],_owner:e.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:e.protocolRecipient,protocolFee:BigInt(100*e.protocolFeePercent)}])})}}const ta=[{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"}],na=[{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 aa{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:na,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map((e=>({target:e.target,allowFailure:!0,callData:e.callData})))})}}class ia{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:ta,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 aa(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 ra extends ia{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 sa={MIN_TICK:-887220,MAX_TICK:887220},pa=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)},oa=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},ya=({tick:e,tickSpacing:t,roundDown:n})=>{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},ua=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},la=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},da=e=>BigInt(i.TickMath.getSqrtRatioAtTick(e).toString()),ca=(e,t,n,a)=>{const i=da(a),r=da(t),s=da(n);let p=0n,o=0n;return i<=r?p=ua(r,s,e):i<s?(p=ua(i,s,e),o=la(r,i,e)):o=la(r,s,e),{amount0:p,amount1:o}},ma={[It.id]:It,[vt.id]:vt};class Ta{constructor(e,n=t.createDrift()){this.TICK_SPACING=60,this.chainId=e,this.drift=n,this.resolveIPFS=Yt,this.readPositionManager=new hn(At[this.chainId],n),this.readPositionManagerV1_1=new Ln(Ct[this.chainId],n),this.readFlaunchZap=new On(this.chainId,Nt[this.chainId],n),this.readPoolManager=new xn(Gt[this.chainId],n),this.readStateView=new kn(Kt[this.chainId],n),this.readFairLaunch=new Pn(Et[this.chainId],n),this.readFairLaunchV1_1=new Xn(Lt[this.chainId],n),this.readBidWall=new _n(Ut[this.chainId],n),this.readBidWallV1_1=new Wn(Rt[this.chainId],n),this.readFlaunch=new Hn(Bt[this.chainId],n),this.readFlaunchV1_1=new jn(Ot[this.chainId],n),this.readQuoter=new Gn(this.chainId,$t[this.chainId],n),this.readPermit2=new $n(Wt[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)}async isV1Coin(e){return this.readPositionManager.isValidCoin(e)}async getCoinMetadata(e){const t=new zn(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 Hn(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new aa(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))),p=[];r.forEach((()=>{p.push(this.drift.adapter.encodeFunctionData({abi:Nn,fn:"name"})),p.push(this.drift.adapter.encodeFunctionData({abi:Nn,fn:"symbol"})),p.push(this.drift.adapter.encodeFunctionData({abi:Nn,fn:"tokenURI"}))}));const o=await a.aggregate3(p.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:Nn,fn:"name",data:o[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:Nn,fn:"symbol",data:o[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:Nn,fn:"tokenURI",data:o[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}watchPoolCreatedV1(e){return this.readPositionManager.watchPoolCreated(e)}watchPoolCreated(e){return this.readPositionManagerV1_1.watchPoolCreated(e)}pollPoolCreatedNowV1(){const e=this.readPositionManager.pollPoolCreatedNow;if(e)return e()}pollPoolCreatedNow(){const e=this.readPositionManagerV1_1.pollPoolCreatedNow;if(e)return e()}async watchPoolSwapV1(e){return this.readPositionManager.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin,!0):void 0,flETHIsCurrencyZero:this.flETHIsCurrencyZero(e.filterByCoin)})}async watchPoolSwap(e){return this.readPositionManagerV1_1.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin):void 0,flETHIsCurrencyZero:this.flETHIsCurrencyZero(e.filterByCoin)})}pollPoolSwapNowV1(){const e=this.readPositionManager.pollPoolSwapNow;if(e)return e()}pollPoolSwapNow(){const e=this.readPositionManagerV1_1.pollPoolSwapNow;if(e)return e()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(await this.readStateView.poolSlot0({poolId:n})).tick}async coinPriceInETH(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=this.flETHIsCurrencyZero(e),a=await this.currentTick(e,t),i=Math.pow(1.0001,a);let r=0;return r=n?1/i:i,r.toFixed(18)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new Gn(t,$t[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async fairLaunchInfo(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.fairLaunchInfo({poolId:n}):this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})}async isFairLaunchActive(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.isFairLaunchActive({poolId:n}):this.readFairLaunchV1_1.isFairLaunchActive({poolId:n})}async fairLaunchDuration(e,t){if(void 0===t&&(t=await this.isV1Coin(e)),t)return 1800;const n=await this.poolId(e,t);return this.readFairLaunchV1_1.fairLaunchDuration({poolId:n})}async initialTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(t?await this.readFairLaunch.fairLaunchInfo({poolId:n}):await this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})).initialTick}async fairLaunchETHOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=ya({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=s+this.TICK_SPACING):(p=ya({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),s=p-this.TICK_SPACING);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Et[this.chainId]:Lt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=ca(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=sa.MIN_TICK,p=ya({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(s=ya({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=sa.MAX_TICK);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Et[this.chainId]:Lt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=ca(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async bidWallPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=this.flETHIsCurrencyZero(e),{amount0_:i,amount1_:r,pendingEth_:s}=t?await this.readBidWall.position({poolId:n}):await this.readBidWallV1_1.position({poolId:n}),{tickLower:p,tickUpper:o}=t?await this.readBidWall.poolInfo({poolId:n}):await this.readBidWallV1_1.poolInfo({poolId:n}),[y,u]=a?[i,r]:[r,i];return{flETHAmount:y,coinAmount:u,pendingEth:s,tickLower:p,tickUpper:o}}revenueManagerBalance(e){return new ia(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new ia(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new ia(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new ia(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new ia(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async poolId(e,t){return void 0===t&&(t=await this.isV1Coin(e)),pa(oa({currency0:St[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:t?At[this.chainId]:Ct[this.chainId]}))}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(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getSellQuoteExactInput(e,t,n)}async getBuyQuoteExactInput(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getBuyQuoteExactInput(e,t,n)}async getBuyQuoteExactOutput(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getBuyQuoteExactOutput(e,t,n)}flETHIsCurrencyZero(e){return e>St[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}}class ba extends Ta{constructor(e,n=t.createDrift()){super(e,n),this.readWritePositionManagerV1_1=new Bn(At[this.chainId],n),this.readWriteFastFlaunchZap=new Sn(Ht[this.chainId],n),this.readWriteFlaunchZap=new Un(this.chainId,Nt[this.chainId],n),this.readWriteTreasuryManagerFactory=new ea(this.chainId,qt[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteTreasuryManagerFactory.deployRevenueManager(e),a=n.createPublicClient({chain:ma[this.chainId],transport:n.http()}),i=await a.waitForTransactionReceipt({hash:t}),r=(await a.getContractEvents({address:this.readWriteTreasuryManagerFactory.contract.address,abi:Yn,eventName:"ManagerDeployed",fromBlock:i.blockNumber,toBlock:i.blockNumber})).find((e=>e.transactionHash===t));if(!r)throw new Error("ManagerDeployed event not found in transaction logs");return r.args._manager}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}fastFlaunch(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunch(e)}fastFlaunchIPFS(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunchIPFS(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)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new zn(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){void 0===t&&(t=await this.isV1Coin(e.coinAddress));const a=await this.drift.getSignerAddress();let i,r,s,p;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?cn(await this.readQuoter.getBuyQuoteExactInput(e.coinAddress,i,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountOutMin):(s=e.amountOut,p=void 0===e.amountInMax?cn(await this.readQuoter.getBuyQuoteExactOutput(e.coinAddress,s,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountInMax);const{commands:o,inputs:y}=(e=>{const t=St[e.chainId],a=Dt[e.chainId],i=e.isV1Coin?At[e.chainId]:Ct[e.chainId],r="0x"+("EXACT_IN"===e.swapType?sn:pn)+on+yn;let s,p;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");s=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(an,[{currencyIn:mn,path:s,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");s=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:mn},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(rn,[{currencyOut:e.memecoin,path:s,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[mn,"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,[p,o,y]]),l="0x"+un+ln,d=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[mn,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:nn,functionName:"execute",args:[l,d]}),commands:l,inputs:d}})({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:p,isV1Coin:t});return this.drift.adapter.write({abi:nn,address:Vt[this.chainId],fn:"execute",args:{commands:o,inputs:y},value:"EXACT_IN"===e.swapType?i:p})}async sellCoin(e,t){let a;void 0===t&&(t=await this.isV1Coin(e.coinAddress)),await this.readQuoter.contract.cache.clear(),a=void 0===e.ethOutMin?cn(await this.readQuoter.getSellQuoteExactInput(e.coinAddress,e.amountIn,t),(e.slippagePercent/100).toFixed(18).toString(),"EXACT_IN"):e.ethOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=(e=>{const t=St[e.chainId],a=Dt[e.chainId],i=e.isV1Coin?At[e.chainId]:Ct[e.chainId],r="0x"+sn+on+yn,s=n.encodeAbiParameters(an,[{currencyIn:e.memecoin,path:[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:mn,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],amountIn:e.amountIn,amountOutMinimum:e.ethOutMin}]),p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[mn,e.ethOutMin]),y=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,o]]);if(e.signature&&e.permitSingle){const t="0x"+dn+un,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]),y];return{calldata:n.encodeFunctionData({abi:nn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+un,t=[y];return{calldata:n.encodeFunctionData({abi:nn,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}})({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,ethOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer,isV1Coin:t});return this.drift.write({abi:nn,address:Vt[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:a}=await this.getPermit2AllowanceAndNonce(e),i=BigInt(Math.floor(Date.now()/1e3)+31536e4);return(({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Wt[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:Vt[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:Tn,message:s},permitSingle:s}})({chainId:this.chainId,coinAddress:e,nonce:a,deadline:void 0!==t?t:i})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,Vt[this.chainId]);return{allowance:t,nonce:n}}revenueManagerProtocolClaim(e){return new ra(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new ra(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new ra(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}}const fa={ReadFlaunchSDK:Ta,ReadWriteFlaunchSDK:ba};e.BidWallAddress=Ut,e.BidWallV1_1Address=Rt,e.FLETHAddress=St,e.FLETHHooksAddress=Dt,e.FairLaunchAbi=Mn,e.FairLaunchAddress=Et,e.FairLaunchV1_1Address=Lt,e.FastFlaunchZapAbi=An,e.FastFlaunchZapAddress=Ht,e.FlaunchAddress=Bt,e.FlaunchPositionManagerAbi=Xt,e.FlaunchPositionManagerAddress=At,e.FlaunchPositionManagerV1_1Address=Ct,e.FlaunchSDK=fa,e.FlaunchV1_1Address=Ot,e.FlaunchZapAddress=Nt,e.MemecoinAbi=Nn,e.Permit2Address=Wt,e.PoolManagerAbi=In,e.PoolManagerAddress=Gt,e.QuoterAddress=$t,e.ReadFlaunchSDK=Ta,e.ReadWriteFlaunchSDK=ba,e.RevenueManagerAddress=zt,e.StateViewAddress=Kt,e.TICK_SPACING=60,e.TickFinder=sa,e.TreasuryManagerFactoryAddress=qt,e.USDCETHPoolKeys=Zt,e.UniversalRouterAddress=Vt,e.bytes32ToUint256=gn,e.calculateUnderlyingTokenBalances=ca,e.chainIdToChain=ma,e.generateTokenUri=tn,e.getPoolId=pa,e.getSqrtPriceX96FromTick=da,e.getValidTick=ya,e.orderPoolKey=oa,e.resolveIPFS=Yt,e.uint256ToBytes32=wn,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.uploadImageToIPFS=en,e.uploadJsonToIPFS=Jt,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@uniswap/v3-sdk")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@uniswap/v3-sdk"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.v3Sdk)}(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 p(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const o="2.29.2";let y=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,u=`viem@${o}`;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=o}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 b(e){return T(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function f(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?function(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")}`}(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})}const I=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?k(e,t):"string"==typeof e?function(e,t={}){const n=M.encode(e);return v(n,t)}(e,t):"boolean"==typeof e?function(e,t={}){const n=`0x${Number(e)}`;if("number"==typeof t.size)return D(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):v(e,t)}function v(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=I[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(D(a,{size:t.size}),w(a,{dir:"right",size:t.size})):a}function k(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 p=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?w(p,{size:a}):p}const M=new TextEncoder;const P=new TextEncoder;function F(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=k(e,t);return C(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return D(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):T(e)?C(e,t):S(e,t)}const _={zero:48,nine:57,A:65,F:70,a:97,f:102};function A(e){return e>=_.zero&&e<=_.nine?e-_.zero:e>=_.A&&e<=_.F?e-(_.A-10):e>=_.a&&e<=_.f?e-(_.a-10):void 0}function C(e,t={}){let n=e;t.size&&(D(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=A(a.charCodeAt(t++)),i=A(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 S(e,t={}){const n=P.encode(e);return"number"==typeof t.size?(D(n,{size:t.size}),w(n,{dir:"right",size:t.size})):n}function D(e,{size:t}){if(b(e)>t)throw new m({givenSize:b(e),maxSize:t})}function E(e,t={}){const{signed:n}=t;t.size&&D(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 B(e,t={}){return Number(E(e,t))}function L(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 O={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function U(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?B(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?B(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?O[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 R=L("transaction",U);function H(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:U(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 N=L("block",H);const z={"0x0":"reverted","0x1":"success"};function q(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?B(e.transactionIndex):null,status:e.status?z[e.status]:null,type:e.type?O[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const G=L("transactionReceipt",q);const V=2n**256n-1n;function $(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class K extends l{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class W extends l{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Z extends l{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const X={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 Z({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new W({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new K({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 K({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 Q(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(X);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function j(e,t="hex"){const n=Y(e),a=Q(new Uint8Array(n.length));return n.encode(a),"hex"===t?v(a.bytes):a.bytes}function Y(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=J(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=>Y(e)))):function(e){const t="string"==typeof e?C(e):e,n=J(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 J(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 ee={ether:-9,wei:9};function te(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,ee[t])}function ne(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 ae extends l{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class ie extends l{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",ne(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 re 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 se(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=>C(e))):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map((e=>v(e)))}function pe(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=>C(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>C(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=>v(e)))}function oe(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ye(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 ue(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 le(e,t){ye(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function de(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ce(e,t){return e<<32-t|e>>>t}const me=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function Te(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 be(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),ye(e),e}"function"==typeof Uint8Array.from([]).toHex&&Uint8Array.fromHex;class fe{clone(){return this._cloneInto()}}function he(e){const t=t=>e().update(be(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ge(e,t,n){return e&t^e&n^t&n}class we extends fe{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=de(this.buffer)}update(e){ue(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=be(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=de(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){ue(this),le(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),p=Number(n&r),o=a?4:0,y=a?0:4;e.setUint32(t+o,s,a),e.setUint32(t+y,p,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=de(e),p=this.outputLen;if(p%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const o=p/4,y=this.get();if(o>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<o;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 Ie=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]),xe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ve=new Uint32Array(64);class ke extends we{constructor(e=32){super(64,e,8,!1),this.A=0|xe[0],this.B=0|xe[1],this.C=0|xe[2],this.D=0|xe[3],this.E=0|xe[4],this.F=0|xe[5],this.G=0|xe[6],this.H=0|xe[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:p}=this;return[e,t,n,a,i,r,s,p]}set(e,t,n,a,i,r,s,p){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|p}process(e,t){for(let n=0;n<16;n++,t+=4)ve[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=ve[e-15],n=ve[e-2],a=ce(t,7)^ce(t,18)^t>>>3,i=ce(n,17)^ce(n,19)^n>>>10;ve[e]=i+ve[e-7]+a+ve[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:p,G:o,H:y}=this;for(let e=0;e<64;e++){const t=y+(ce(s,6)^ce(s,11)^ce(s,25))+((u=s)&p^~u&o)+Ie[e]+ve[e]|0,l=(ce(n,2)^ce(n,13)^ce(n,22))+ge(n,a,i)|0;y=o,o=p,p=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,p=p+this.F|0,o=o+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,p,o,y)}roundClean(){ve.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Me=he((()=>new ke));function Pe(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=Me(T(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:v(i)}const Fe=4096,_e=131072,Ae=761855;class Ce extends l{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class Se extends l{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class De extends l{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class Ee extends l{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function Be(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?C(e.data):e.data,a=b(n);if(!a)throw new Se;if(a>Ae)throw new Ce({maxSize:Ae,size:a});const i=[];let r=!0,s=0;for(;r;){const e=Q(new Uint8Array(_e));let t=0;for(;t<Fe;){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=>v(e.bytes)))}({data:t,to:a}),r=e.commitments??se({blobs:i,kzg:n,to:a}),s=e.proofs??pe({blobs:i,commitments:r,kzg:n,to:a}),p=[];for(let e=0;e<i.length;e++)p.push({blob:i[e],commitment:r[e],proof:s[e]});return p}class Le 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 Oe extends l{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Ue extends l{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${te(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Ue,"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 Re extends l{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${te(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${te(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(Re,"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 He 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 Ne=BigInt(2**32-1),ze=BigInt(32);function qe(e,t=!1){return t?{h:Number(e&Ne),l:Number(e>>ze&Ne)}:{h:0|Number(e>>ze&Ne),l:0|Number(e&Ne)}}function Ge(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}=qe(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const Ve=[],$e=[],Ke=[],We=BigInt(0),Ze=BigInt(1),Xe=BigInt(2),Qe=BigInt(7),je=BigInt(256),Ye=BigInt(113);for(let e=0,t=Ze,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],Ve.push(2*(5*a+n)),$e.push((e+1)*(e+2)/2%64);let i=We;for(let e=0;e<7;e++)t=(t<<Ze^(t>>Qe)*Ye)%je,t&Xe&&(i^=Ze<<(Ze<<BigInt(e))-Ze);Ke.push(i)}const[Je,et]=Ge(Ke,!0),tt=(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),nt=(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 at extends fe{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,oe(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(){me||Te(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],p=tt(r,s,1)^n[a],o=nt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=p,e[t+n+1]^=o}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=$e[n],r=tt(t,i,a),s=nt(t,i,a),p=Ve[n];t=e[p],i=e[p+1],e[p]=r,e[p+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]^=Je[a],e[1]^=et[a]}n.fill(0)}(this.state32,this.rounds),me||Te(this.state32),this.posOut=0,this.pos=0}update(e){ue(this);const{blockLen:t,state:n}=this,a=(e=be(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){ue(this,!1),ye(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 oe(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(le(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 at(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 it=((e,t,n)=>he((()=>new at(t,e,n))))(1,136,32);const rt=new He(8192);function st(e,t){if(rt.has(`${e}.${t}`))return rt.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=function(e,t){const n=t||"hex",a=it(T(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(S(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 rt.set(`${e}.${t}`,r),r}const pt=/^0x[a-fA-F0-9]{40}$/,ot=new He(8192);function yt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(ot.has(a))return ot.get(a);const i=!(!pt.test(e)||e.toLowerCase()!==e&&n&&st(e)!==e);return ot.set(a,i),i}function ut(e,t,n,{strict:a}={}){return T(e,{strict:!1})?function(e,t,n,{strict:a}={}){lt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&dt(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){lt(e,t);const i=e.slice(t,n);a&&dt(i,t,n);return i}(e,t,n,{strict:a})}function lt(e,t){if("number"==typeof t&&t>0&&t>b(e)-1)throw new h({offset:t,position:"start",size:b(e)})}function dt(e,t,n){if("number"==typeof t&&"number"==typeof n&&b(e)!==n-t)throw new h({offset:n,position:"end",size:b(e)})}function ct(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new Oe({chainId:t});if(i&&!yt(i))throw new Le({address:i});if(a&&a>V)throw new Ue({maxFeePerGas:a});if(n&&a&&n>a)throw new Re({maxFeePerGas:a,maxPriorityFeePerGas:n})}function mt(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 re({storageKey:i[e]});if(!yt(a,{strict:!1}))throw new Le({address:a});t.push([a,i])}return t}function Tt(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 ie({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:p,maxPriorityFeePerGas:o,accessList:y,data:u}=e;ct(e);const l=mt(y),d=[x(n),i?x(i):"0x",o?x(o):"0x",p?x(p):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",u??"0x",l,...bt(e,t)];return $(["0x02",j(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:p,accessList:o,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Oe({chainId:t});if(r&&!yt(r))throw new Le({address:r});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>V)throw new Ue({maxFeePerGas:a})}(e);const u=mt(o),d=[x(n),r?x(r):"0x",y?x(y):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x",u,...bt(e,t)];return $(["0x01",j(d)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new Se;for(const e of t){const t=b(e),n=B(ut(e,0,1));if(32!==t)throw new De({hash:e,size:t});if(1!==n)throw new Ee({hash:e,version:n})}}ct(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=>v(e))),n=e.kzg,a=se({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(Pe({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=Be({blobs:t,commitments:a,proofs:pe({blobs:t,commitments:a,kzg:n})})}}const m=mt(u),T=[x(n),i?x(i):"0x",y?x(y):"0x",o?x(o):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",l??"0x",m,p?x(p):"0x",d??[],...bt(e,t)],f=[],h=[],g=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];f.push(t),h.push(n),g.push(a)}return $(["0x03",j(c?[T,f,h,g]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:p,maxFeePerGas:o,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(!yt(n))throw new Le({address:n});if(t<0)throw new Oe({chainId:t})}ct(e)}(e);const d=mt(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",...bt({},i)])}return t}(n);return $(["0x04",j([x(a),r?x(r):"0x",y?x(y):"0x",o?x(o):"0x",i?x(i):"0x",s??"0x",p?x(p):"0x",l??"0x",d,c,...bt(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:p,gasPrice:o}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!yt(r))throw new Le({address:r});if(void 0!==t&&t<=0)throw new Oe({chainId:t});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>V)throw new Ue({maxFeePerGas:a})}(e);let y=[r?x(r):"0x",o?x(o):"0x",a?x(a):"0x",s??"0x",p?x(p):"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 ae({v:t.v});return e})(),a=f(t.r),i=f(t.s);y=[...y,x(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,x(n),"0x","0x"]);return j(y)}(e,t)}function bt(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=f(n.r),s=f(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 ft={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function ht(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&&!yt(t))throw new Le({address:t});if(n&&!yt(n))throw new Le({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:p,value:o}=e;return $(["0x7e",j([t,a,p??"0x",s?x(s):"0x",o?x(o):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):Tt(e,t)}const gt={contracts:ft,formatters:{block:N({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=U(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?E(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}));return{transactions:t,stateRoot:e.stateRoot}}}),transaction:R({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?E(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:G({format:e=>({l1GasPrice:e.l1GasPrice?E(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?E(e.l1GasUsed):null,l1Fee:e.l1Fee?E(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:ht}},wt=1,It=p({...gt,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:{...gt.contracts,disputeGameFactory:{[wt]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[wt]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[wt]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[wt]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),xt=11155111,vt=p({...gt,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:{...gt.contracts,disputeGameFactory:{[xt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[xt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[xt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[xt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:xt});p({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 kt=1;p({...gt,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:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[kt]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[kt]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Mt=11155111;p({...gt,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:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Mt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Mt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Mt});p({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}}}),p({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}),p({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});p({...gt,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:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const Pt=17e3;p({...gt,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:Pt,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:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Pt]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[Pt]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[Pt]:{address:"0x09bcDd311FE398F80a78BE37E489f5D440DB95DE",blockCreated:1274684}}}});p({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});const Ft=11155111;p({...gt,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:Ft,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:{...gt.contracts,l1StandardBridge:{[Ft]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const _t=1;p({...gt,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:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[_t]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[_t]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[_t]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const At={[It.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[vt.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},Ct={[It.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[vt.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},St={[It.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[vt.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},Dt={[It.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[vt.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Et={[It.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[vt.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},Bt={[It.id]:"0x4dc442403e8c758425b93c59dc737da522f32640",[vt.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},Lt={[It.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[vt.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},Ot={[It.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[vt.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},Ut={[It.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[vt.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},Rt={[It.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[vt.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},Ht={[It.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[vt.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},Nt={[It.id]:"0xfa9e8528ee95eb109bffd1a2d59cb95b300a672a",[vt.id]:"0xb2f5d987de90e026b61805e60b6002d367461474"},zt={[It.id]:"0x712fa8ddc7347b4b6b029aa21710f365cd02d898",[vt.id]:"0x17E02501dE3e420347e7C5fCAe3AD787C5aea690"},qt={[It.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[vt.id]:"0xd2f3c6185e06925dcbe794c6574315b2202e9ccd"},Gt={[It.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[vt.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},Vt={[It.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[vt.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},$t={[It.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[vt.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},Kt={[It.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[vt.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Wt={[It.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[vt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},Zt={[It.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[vt.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},Xt=[{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"}],Qt=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let jt=0;const Yt=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=Qt[jt];return jt=(jt+1)%Qt.length,`${n}${t}`}return e},Jt=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}},en=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 p=new Blob(i,{type:r}),o=e.name||`image.${r.split("/")[1]}`,y=new File([p],o,{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}},tn=async(e,t)=>{const n=await en({pinataConfig:t.pinataConfig,base64Image:t.metadata.base64Image}),a={name:e,description:t.metadata.description,image:`ipfs://${n.IpfsHash}`,external_link:t.metadata.websiteUrl||"",collaborators:[],discordUrl:t.metadata.discordUrl||"",twitterUrl:t.metadata.twitterUrl||"",telegramUrl:t.metadata.telegramUrl||""};return`ipfs://${(await Jt({pinataConfig:t.pinataConfig,json:a})).IpfsHash}`},nn=[{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"}],an=[{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"}]}],rn=[{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"}]}],sn="07",pn="09",on="0c",yn="0f",un="10",ln="04",dn="0a",cn=(e,t,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)},mn=n.zeroAddress,Tn={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]},bn=[{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 fn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:bn,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}}class hn{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:Xt,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}async getFlaunchingFee(e){const t=new fn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return cn(n,(e.slippagePercent??0).toFixed(18).toString(),"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 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{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const x=b<0?-b:b,v=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHSold:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHBought:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}})));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}}}const gn=e=>n.hexToBigInt(e),wn=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),In=[{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 xn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:In,address:e})}poolStateSlot({poolId:e}){const t=wn(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,p=BigInt("0xFFFFFF"),o=Number(s&p),y=o>8388607?o-16777216:o,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"}),p=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),o=this.poolStateSlot({poolId:e}),y=wn(gn(o)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[p,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 vn=[{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 kn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:vn,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 Mn=[{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 Pn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Mn,address:e})}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 Fn=[{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 _n{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Fn,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const An=[{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"}];class Cn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:An,address:e})}}class Sn extends Cn{constructor(e,n=t.createDrift()){super(e,n)}fastFlaunch({name:e,symbol:t,tokenUri:n,creator:a}){return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:n,creator:a}})}async fastFlaunchIPFS({name:e,symbol:t,creator:n,metadata:a,pinataConfig:i}){const r=await tn(e,{metadata:a,pinataConfig:i});return this.fastFlaunch({name:e,symbol:t,tokenUri:r,creator:n})}}const Dn=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"contract Flaunch",name:"_flaunchContract",type:"address"},{internalType:"contract IFLETH",name:"_flETH",type:"address"},{internalType:"contract PoolSwap",name:"_poolSwap",type:"address"},{internalType:"contract ITreasuryManagerFactory",name:"_treasuryManagerFactory",type:"address"},{internalType:"contract IMerkleAirdrop",name:"_merkleAirdrop",type:"address"},{internalType:"contract WhitelistFairLaunch",name:"_whitelistFairLaunch",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CreatorCannotBeZero",type:"error"},{inputs:[],name:"InsufficientMemecoinsForAirdrop",type:"error"},{inputs:[{internalType:"uint256",name:"_premineAmount",type:"uint256"},{internalType:"uint256",name:"_slippage",type:"uint256"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"ethRequired_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flETH",outputs:[{internalType:"contract IFLETH",name:"",type:"address"}],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:"_flaunchParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"",type:"address"}],stateMutability:"payable",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:"_flaunchParams",type:"tuple"},{components:[{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"},{internalType:"uint256",name:"maxTokens",type:"uint256"}],internalType:"struct FlaunchZap.WhitelistParams",name:"_whitelistParams",type:"tuple"},{components:[{internalType:"uint256",name:"airdropIndex",type:"uint256"},{internalType:"uint256",name:"airdropAmount",type:"uint256"},{internalType:"uint256",name:"airdropEndTime",type:"uint256"},{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"}],internalType:"struct FlaunchZap.AirdropParams",name:"_airdropParams",type:"tuple"},{components:[{internalType:"address",name:"manager",type:"address"},{internalType:"bytes",name:"initializeData",type:"bytes"},{internalType:"bytes",name:"depositData",type:"bytes"}],internalType:"struct FlaunchZap.TreasuryManagerParams",name:"_treasuryManagerParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"deployedManager_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"merkleAirdrop",outputs:[{internalType:"contract IMerkleAirdrop",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract ITreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"whitelistFairLaunch",outputs:[{internalType:"contract WhitelistFairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],En=[{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 Bn{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:En,address: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 fn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return cn(n,(e.slippagePercent??0).toFixed(18).toString(),"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 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{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const x=b<0?-b:b,v=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHSold:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHBought:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}})));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 Ln extends Bn{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:p,creatorFeeAllocationPercent:o,flaunchAt:y}){const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*o;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:p,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:p,metadata:o,pinataConfig:y}){const u=await tn(e,{metadata:o,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:p})}}class On{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:Dn,address:n}),this.readPositionManagerV1_1=new Bn(Ct[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return cn(t,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async getFlaunchingFee(e){const t=new fn(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return cn(n,(e.slippagePercent??0).toFixed(18).toString(),"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 Un extends On{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:n.zeroAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:"0x",merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:"0x",merkleIPFSHash:""}},{value:s})}async flaunchIPFS(e){const t=await tn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:e.revenueManagerInstanceAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:"0x",merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:"0x",merkleIPFSHash:""}},{value:s})}async flaunchIPFSWithRevenueManager(e){const t=await tn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}}const Rn=[{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 Hn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Rn,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 Nn=[{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 zn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Nn,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}}const qn=[{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 Gn{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:qn,address:n})}async getSellQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x",intermediateCurrency:St[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId],intermediateCurrency:St[this.chainId]},{fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x",intermediateCurrency:e}]}})).amountOut}async getBuyQuoteExactOutput(e,t,a){return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId]},{intermediateCurrency:St[this.chainId],fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x"}],exactCurrency:e,exactAmount:t}})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:Zt[this.chainId].fee,tickSpacing:Zt[this.chainId].tickSpacing,hooks:Zt[this.chainId].hooks,hookData:"0x",intermediateCurrency:Zt[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const Vn=[{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 $n{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Vn,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class Kn extends $n{constructor(e,n=t.createDrift()){super(e,n)}approve(e){return this.contract.write("approve",e)}}const Wn=[{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 Zn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Wn,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Xn=[{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 Qn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Xn,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 jn=[{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 Yn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:jn,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const Jn=[{inputs:[{internalType:"address",name:"_protocolOwner",type:"address"},{internalType:"address",name:"_feeEscrow",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:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownManagerImplemention",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_manager",type:"address"},{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationUnapproved",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"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approveManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approvedManagerImplementation",outputs:[{internalType:"bool",name:"_approved",type:"bool"}],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:[{internalType:"address",name:"_managerImplementation",type:"address"},{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deployAndInitializeManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"deployManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract IFeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"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:"address",name:"_manager",type:"address"}],name:"managerImplementation",outputs:[{internalType:"address",name:"_managerImplementation",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:[{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:[{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"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"unapproveManager",outputs:[],stateMutability:"nonpayable",type:"function"}];class ea{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Jn,address:e})}}class ta extends ea{constructor(e,n,a=t.createDrift()){super(n,a),this.chainId=e}deployRevenueManager(e){return this.contract.write("deployAndInitializeManager",{_managerImplementation:zt[this.chainId],_owner:e.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:e.protocolRecipient,protocolFee:BigInt(100*e.protocolFeePercent)}])})}}const na=[{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"}],aa=[{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 ia{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:aa,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map((e=>({target:e.target,allowFailure:!0,callData:e.callData})))})}}class ra{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:na,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 ia(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 sa extends ra{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 pa={MIN_TICK:-887220,MAX_TICK:887220},oa=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)},ya=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},ua=({tick:e,tickSpacing:t,roundDown:n})=>{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},la=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},da=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},ca=e=>BigInt(i.TickMath.getSqrtRatioAtTick(e).toString()),ma=(e,t,n,a)=>{const i=ca(a),r=ca(t),s=ca(n);let p=0n,o=0n;return i<=r?p=la(r,s,e):i<s?(p=la(i,s,e),o=da(r,i,e)):o=da(r,s,e),{amount0:p,amount1:o}},Ta={[It.id]:It,[vt.id]:vt};class ba{constructor(e,n=t.createDrift()){this.TICK_SPACING=60,this.chainId=e,this.drift=n,this.resolveIPFS=Yt,this.readPositionManager=new hn(At[this.chainId],n),this.readPositionManagerV1_1=new Bn(Ct[this.chainId],n),this.readFlaunchZap=new On(this.chainId,Nt[this.chainId],n),this.readPoolManager=new xn(Gt[this.chainId],n),this.readStateView=new kn(Kt[this.chainId],n),this.readFairLaunch=new Pn(Et[this.chainId],n),this.readFairLaunchV1_1=new Qn(Bt[this.chainId],n),this.readBidWall=new _n(Ut[this.chainId],n),this.readBidWallV1_1=new Zn(Rt[this.chainId],n),this.readFlaunch=new Hn(Lt[this.chainId],n),this.readFlaunchV1_1=new Yn(Ot[this.chainId],n),this.readQuoter=new Gn(this.chainId,$t[this.chainId],n),this.readPermit2=new $n(Wt[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)}async isV1Coin(e){return this.readPositionManager.isValidCoin(e)}async getCoinMetadata(e){const t=new zn(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 Hn(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new ia(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))),p=[];r.forEach((()=>{p.push(this.drift.adapter.encodeFunctionData({abi:Nn,fn:"name"})),p.push(this.drift.adapter.encodeFunctionData({abi:Nn,fn:"symbol"})),p.push(this.drift.adapter.encodeFunctionData({abi:Nn,fn:"tokenURI"}))}));const o=await a.aggregate3(p.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:Nn,fn:"name",data:o[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:Nn,fn:"symbol",data:o[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:Nn,fn:"tokenURI",data:o[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}watchPoolCreatedV1(e){return this.readPositionManager.watchPoolCreated(e)}watchPoolCreated(e){return this.readPositionManagerV1_1.watchPoolCreated(e)}pollPoolCreatedNowV1(){const e=this.readPositionManager.pollPoolCreatedNow;if(e)return e()}pollPoolCreatedNow(){const e=this.readPositionManagerV1_1.pollPoolCreatedNow;if(e)return e()}async watchPoolSwapV1(e){return this.readPositionManager.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin,!0):void 0,flETHIsCurrencyZero:e.filterByCoin?this.flETHIsCurrencyZero(e.filterByCoin):void 0})}async watchPoolSwap(e){return this.readPositionManagerV1_1.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin):void 0,flETHIsCurrencyZero:e.filterByCoin?this.flETHIsCurrencyZero(e.filterByCoin):void 0})}pollPoolSwapNowV1(){const e=this.readPositionManager.pollPoolSwapNow;if(e)return e()}pollPoolSwapNow(){const e=this.readPositionManagerV1_1.pollPoolSwapNow;if(e)return e()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(await this.readStateView.poolSlot0({poolId:n})).tick}async coinPriceInETH(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=this.flETHIsCurrencyZero(e),a=await this.currentTick(e,t),i=Math.pow(1.0001,a);let r=0;return r=n?1/i:i,r.toFixed(18)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new Gn(t,$t[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async fairLaunchInfo(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.fairLaunchInfo({poolId:n}):this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})}async isFairLaunchActive(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.isFairLaunchActive({poolId:n}):this.readFairLaunchV1_1.isFairLaunchActive({poolId:n})}async fairLaunchDuration(e,t){if(void 0===t&&(t=await this.isV1Coin(e)),t)return 1800;const n=await this.poolId(e,t);return this.readFairLaunchV1_1.fairLaunchDuration({poolId:n})}async initialTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(t?await this.readFairLaunch.fairLaunchInfo({poolId:n}):await this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})).initialTick}async fairLaunchETHOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=ua({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=s+this.TICK_SPACING):(p=ua({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),s=p-this.TICK_SPACING);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Et[this.chainId]:Bt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=ma(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=pa.MIN_TICK,p=ua({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(s=ua({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=pa.MAX_TICK);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Et[this.chainId]:Bt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=ma(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async bidWallPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=this.flETHIsCurrencyZero(e),{amount0_:i,amount1_:r,pendingEth_:s}=t?await this.readBidWall.position({poolId:n}):await this.readBidWallV1_1.position({poolId:n}),{tickLower:p,tickUpper:o}=t?await this.readBidWall.poolInfo({poolId:n}):await this.readBidWallV1_1.poolInfo({poolId:n}),[y,u]=a?[i,r]:[r,i];return{flETHAmount:y,coinAmount:u,pendingEth:s,tickLower:p,tickUpper:o}}revenueManagerBalance(e){return new ra(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new ra(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new ra(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new ra(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new ra(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async poolId(e,t){return void 0===t&&(t=await this.isV1Coin(e)),oa(ya({currency0:St[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:t?At[this.chainId]:Ct[this.chainId]}))}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(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getSellQuoteExactInput(e,t,n)}async getBuyQuoteExactInput(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getBuyQuoteExactInput(e,t,n)}async getBuyQuoteExactOutput(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getBuyQuoteExactOutput(e,t,n)}flETHIsCurrencyZero(e){return e>St[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}}class fa extends ba{constructor(e,n=t.createDrift()){super(e,n),this.readWritePositionManagerV1_1=new Ln(At[this.chainId],n),this.readWriteFastFlaunchZap=new Sn(Ht[this.chainId],n),this.readWriteFlaunchZap=new Un(this.chainId,Nt[this.chainId],n),this.readWriteTreasuryManagerFactory=new ta(this.chainId,qt[this.chainId],n),this.readWritePermit2=new Kn(Wt[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteTreasuryManagerFactory.deployRevenueManager(e),a=n.createPublicClient({chain:Ta[this.chainId],transport:n.http()}),i=await a.waitForTransactionReceipt({hash:t}),r=(await a.getContractEvents({address:this.readWriteTreasuryManagerFactory.contract.address,abi:Jn,eventName:"ManagerDeployed",fromBlock:i.blockNumber,toBlock:i.blockNumber})).find((e=>e.transactionHash===t));if(!r)throw new Error("ManagerDeployed event not found in transaction logs");return r.args._manager}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}fastFlaunch(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunch(e)}fastFlaunchIPFS(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunchIPFS(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)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new zn(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){void 0===t&&(t=await this.isV1Coin(e.coinAddress));const a=await this.drift.getSignerAddress();let i,r,s,p;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?cn(await this.readQuoter.getBuyQuoteExactInput(e.coinAddress,i,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountOutMin):(s=e.amountOut,p=void 0===e.amountInMax?cn(await this.readQuoter.getBuyQuoteExactOutput(e.coinAddress,s,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountInMax);const{commands:o,inputs:y}=(e=>{const t=St[e.chainId],a=Dt[e.chainId],i=e.isV1Coin?At[e.chainId]:Ct[e.chainId],r="0x"+("EXACT_IN"===e.swapType?sn:pn)+on+yn;let s,p;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");s=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(an,[{currencyIn:mn,path:s,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");s=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:mn},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(rn,[{currencyOut:e.memecoin,path:s,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[mn,"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,[p,o,y]]),l="0x"+un+ln,d=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[mn,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:nn,functionName:"execute",args:[l,d]}),commands:l,inputs:d}})({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer??null,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:p,isV1Coin:t});return this.drift.adapter.write({abi:nn,address:Vt[this.chainId],fn:"execute",args:{commands:o,inputs:y},value:"EXACT_IN"===e.swapType?i:p})}async sellCoin(e,t){let a;void 0===t&&(t=await this.isV1Coin(e.coinAddress)),await this.readQuoter.contract.cache.clear(),a=void 0===e.ethOutMin?cn(await this.readQuoter.getSellQuoteExactInput(e.coinAddress,e.amountIn,t),(e.slippagePercent/100).toFixed(18).toString(),"EXACT_IN"):e.ethOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=(e=>{const t=St[e.chainId],a=Dt[e.chainId],i=e.isV1Coin?At[e.chainId]:Ct[e.chainId],r="0x"+sn+on+yn,s=n.encodeAbiParameters(an,[{currencyIn:e.memecoin,path:[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:mn,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],amountIn:e.amountIn,amountOutMinimum:e.ethOutMin}]),p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[mn,e.ethOutMin]),y=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,o]]);if(e.signature&&e.permitSingle){const t="0x"+dn+un,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]),y];return{calldata:n.encodeFunctionData({abi:nn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+un,t=[y];return{calldata:n.encodeFunctionData({abi:nn,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}})({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,ethOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer??null,isV1Coin:t});return this.drift.write({abi:nn,address:Vt[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:a}=await this.getPermit2AllowanceAndNonce(e),i=BigInt(Math.floor(Date.now()/1e3)+31536e4);return(({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Wt[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:Vt[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:Tn,message:s},permitSingle:s}})({chainId:this.chainId,coinAddress:e,nonce:a,deadline:void 0!==t?t:i})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,Vt[this.chainId]);return{allowance:t,nonce:n}}revenueManagerProtocolClaim(e){return new sa(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new sa(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new sa(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}}const ha={ReadFlaunchSDK:ba,ReadWriteFlaunchSDK:fa};e.BidWallAddress=Ut,e.BidWallV1_1Address=Rt,e.FLETHAddress=St,e.FLETHHooksAddress=Dt,e.FairLaunchAbi=Mn,e.FairLaunchAddress=Et,e.FairLaunchV1_1Address=Bt,e.FastFlaunchZapAbi=An,e.FastFlaunchZapAddress=Ht,e.FlaunchAddress=Lt,e.FlaunchPositionManagerAbi=Xt,e.FlaunchPositionManagerAddress=At,e.FlaunchPositionManagerV1_1Address=Ct,e.FlaunchSDK=ha,e.FlaunchV1_1Address=Ot,e.FlaunchZapAddress=Nt,e.MemecoinAbi=Nn,e.Permit2Address=Wt,e.PoolManagerAbi=In,e.PoolManagerAddress=Gt,e.QuoterAddress=$t,e.ReadFlaunchSDK=ba,e.ReadWriteFlaunchSDK=fa,e.RevenueManagerAddress=zt,e.StateViewAddress=Kt,e.TICK_SPACING=60,e.TickFinder=pa,e.TreasuryManagerFactoryAddress=qt,e.USDCETHPoolKeys=Zt,e.UniversalRouterAddress=Vt,e.bytes32ToUint256=gn,e.calculateUnderlyingTokenBalances=ma,e.chainIdToChain=Ta,e.generateTokenUri=tn,e.getPoolId=oa,e.getSqrtPriceX96FromTick=ca,e.getValidTick=ua,e.orderPoolKey=ya,e.resolveIPFS=Yt,e.uint256ToBytes32=wn,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.uploadImageToIPFS=en,e.uploadJsonToIPFS=Jt,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=index.umd.js.map