@flaunch/sdk 0.9.18 → 0.9.19
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/addresses/index.cjs +305 -5535
- package/dist/addresses/index.cjs.map +1 -1
- package/dist/addresses/index.js +305 -5535
- package/dist/addresses/index.js.map +1 -1
- package/dist/helpers/index.cjs +303 -5707
- package/dist/helpers/index.cjs.map +1 -1
- package/dist/helpers/index.js +305 -5709
- package/dist/helpers/index.js.map +1 -1
- package/dist/index.cjs.js +5499 -8393
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +5515 -8409
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.umd.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@delvtech/drift-viem")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@delvtech/drift-viem"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.driftViem)}(this,function(e,t,n,a,i){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(a);function o(e){const t={formatters:void 0,fees:void 0,serializers:void 0,...e};return Object.assign(t,{extend:function e(t){return n=>{const a="function"==typeof n?n(t):n,i={...t,...a};return Object.assign(i,{extend:e(i)})}}(t)})}const p="2.47.2";let y=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,u=`viem@${p}`;class l extends Error{constructor(e,t={}){const n=t.cause instanceof l?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof l&&t.cause.docsPath||t.docsPath,i=y?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...u?[`Version: ${u}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=a,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=p}walk(e){return d(this,e)}}function d(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?d(e.cause,t):t?null:e}class c extends l{constructor({max:e,min:t,signed:n,size:a,value:i}){super(`Number "${i}" is not in safe ${a?`${8*a}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class m extends l{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function f(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function b(e){return f(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function T(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?v(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new g({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let i=0;i<n;i++){const r="right"===t;a[r?i:n-i-1]=e[r?i:e.length-i-1]}return a}(e,{dir:t,size:n})}function v(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new g({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}const I=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?P(e,t):"string"==typeof e?A(e,t):"boolean"==typeof e?M(e,t):k(e,t)}function M(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?(B(n,{size:t.size}),w(n,{size:t.size})):n}function k(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?(B(a,{size:t.size}),w(a,{dir:"right",size:t.size})):a}function P(e,t={}){const{signed:n,size:a}=t,i=BigInt(e);let r;a?r=n?(1n<<8n*BigInt(a)-1n)-1n:2n**(8n*BigInt(a))-1n:"number"==typeof e&&(r=BigInt(Number.MAX_SAFE_INTEGER));const s="bigint"==typeof r&&n?-r-1n:0;if(r&&i>r||i<s){const t="bigint"==typeof e?"n":"";throw new c({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const o=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?w(o,{size:a}):o}const _=new TextEncoder;function A(e,t={}){return k(_.encode(e),t)}const F=new TextEncoder;function S(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=P(e,t);return D(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return B(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):f(e)?D(e,t):O(e,t)}const C={zero:48,nine:57,A:65,F:70,a:97,f:102};function E(e){return e>=C.zero&&e<=C.nine?e-C.zero:e>=C.A&&e<=C.F?e-(C.A-10):e>=C.a&&e<=C.f?e-(C.a-10):void 0}function D(e,t={}){let n=e;t.size&&(B(n,{size:t.size}),n=w(n,{dir:"right",size:t.size}));let a=n.slice(2);a.length%2&&(a=`0${a}`);const i=a.length/2,r=new Uint8Array(i);for(let e=0,t=0;e<i;e++){const n=E(a.charCodeAt(t++)),i=E(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new l(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function O(e,t={}){const n=F.encode(e);return"number"==typeof t.size?(B(n,{size:t.size}),w(n,{dir:"right",size:t.size})):n}function B(e,{size:t}){if(b(e)>t)throw new m({givenSize:b(e),maxSize:t})}function U(e,t={}){const{signed:n}=t;t.size&&B(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function L(e,t={}){const n=U(e,t),a=Number(n);if(!Number.isSafeInteger(a))throw new c({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:t.signed,size:t.size,value:`${n}n`});return a}function R(e,t){return({exclude:n,format:a})=>({exclude:n,format:(e,i)=>{const r=t(e,i);if(n)for(const e of n)delete r[e];return{...r,...a(e,i)}},type:e})}const N={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function z(e,t){const n={...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?N[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&&(n.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)}))),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof n.v){if(0n===n.v||27n===n.v)return 0;if(1n===n.v||28n===n.v)return 1;if(n.v>=35n)return n.v%2n==0n?1:0}})(),"legacy"===n.type&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),"eip2930"===n.type&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),"eip1559"===n.type&&delete n.maxFeePerBlobGas,n}const H=R("transaction",z);function q(e,t){const n=(e.transactions??[]).map(e=>"string"==typeof e?e:z(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:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const V=R("block",q);const $={"0x0":"reverted","0x1":"success"};function K(e,t){const n={...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,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):null===e.blockTimestamp?null:void 0,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?$[e.status]:null,type:e.type?N[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const W=R("transactionReceipt",K);const G=2n**256n-1n;function Z(e){return"string"==typeof e[0]?j(e):function(e){let t=0;for(const n of e)t+=n.length;const n=new Uint8Array(t);let a=0;for(const t of e)n.set(t,a),a+=t.length;return n}(e)}function j(e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}class X extends l{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class Q extends l{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Y extends l{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const J={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Y({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Q({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new X({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 X({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function ee(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(J);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function te(e,t="hex"){const n=ne(e),a=ee(new Uint8Array(n.length));return n.encode(a),"hex"===t?k(a.bytes):a.bytes}function ne(e){return Array.isArray(e)?function(e){const t=e.reduce((e,t)=>e+t.length,0),n=ae(t);return{length:t<=55?1+t:1+n+t,encode(a){t<=55?a.pushByte(192+t):(a.pushByte(247+n),1===n?a.pushUint8(t):2===n?a.pushUint16(t):3===n?a.pushUint24(t):a.pushUint32(t));for(const{encode:t}of e)t(a)}}}(e.map(e=>ne(e))):function(e){const t="string"==typeof e?D(e):e,n=ae(t.length),a=1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length;return{length:a,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function ae(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new l("Length is too large.")}const ie={ether:-9,wei:9};function re(e,t="wei"){return function(e,t){let n=e.toString();const a=n.startsWith("-");a&&(n=n.slice(1)),n=n.padStart(t,"0");let[i,r]=[n.slice(0,n.length-t),n.slice(n.length-t)];return r=r.replace(/(0+)$/,""),`${a?"-":""}${i||"0"}${r?`.${r}`:""}`}(e,ie[t])}function se(e){const t=Object.entries(e).map(([e,t])=>void 0===t||!1===t?null:[e,t]).filter(Boolean),n=t.reduce((e,[t])=>Math.max(e,t.length),0);return t.map(([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`).join("\n")}class oe extends l{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class pe extends l{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",se(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class ye extends l{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function ue(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>D(e)):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map(e=>k(e))}function le(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>D(e)):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map(e=>D(e)):e.commitments,r=[];for(let e=0;e<a.length;e++){const n=a[e],s=i[e];r.push(Uint8Array.from(t.computeBlobKzgProof(n,s)))}return"bytes"===n?r:r.map(e=>k(e))}const de="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function ce(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function me(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 fe(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 be(e,t){me(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Te(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function he(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ge(e,t){return e<<32-t|e>>>t}function we(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const ve=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])()?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=we(e[t]);return e};function Ie(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function xe(e){return"string"==typeof e&&(e=Ie(e)),me(e),e}class Me{}function ke(e){const t=t=>e().update(xe(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Pe(e=32){if(de&&"function"==typeof de.getRandomValues)return de.getRandomValues(new Uint8Array(e));if(de&&"function"==typeof de.randomBytes)return Uint8Array.from(de.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function _e(e,t,n){return e&t^~e&n}function Ae(e,t,n){return e&t^e&n^t&n}class Fe extends Me{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=he(this.buffer)}update(e){fe(this),me(e=xe(e));const{view:t,buffer:n,blockLen:a}=this,i=e.length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s===a){const t=he(e);for(;a<=i-r;r+=a)this.process(t,r);continue}n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){fe(this),be(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,Te(this.buffer.subarray(r)),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),o=Number(n&r),p=a?4:0,y=a?0:4;e.setUint32(t+p,s,a),e.setUint32(t+y,o,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=he(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const p=o/4,y=this.get();if(p>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<p;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.destroyed=r,e.finished=i,e.length=a,e.pos=s,a%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const Se=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ce=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ee=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),De=BigInt(2**32-1),Oe=BigInt(32);function Be(e,t=!1){return t?{h:Number(e&De),l:Number(e>>Oe&De)}:{h:0|Number(e>>Oe&De),l:0|Number(e&De)}}function Ue(e,t=!1){const n=e.length;let a=new Uint32Array(n),i=new Uint32Array(n);for(let r=0;r<n;r++){const{h:n,l:s}=Be(e[r],t);[a[r],i[r]]=[n,s]}return[a,i]}const Le=(e,t,n)=>e>>>n,Re=(e,t,n)=>e<<32-n|t>>>n,Ne=(e,t,n)=>e>>>n|t<<32-n,ze=(e,t,n)=>e<<32-n|t>>>n,He=(e,t,n)=>e<<64-n|t>>>n-32,qe=(e,t,n)=>e>>>n-32|t<<64-n;function Ve(e,t,n,a){const i=(t>>>0)+(a>>>0);return{h:e+n+(i/2**32|0)|0,l:0|i}}const $e=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Ke=(e,t,n,a)=>t+n+a+(e/2**32|0)|0,We=(e,t,n,a)=>(e>>>0)+(t>>>0)+(n>>>0)+(a>>>0),Ge=(e,t,n,a,i)=>t+n+a+i+(e/2**32|0)|0,Ze=(e,t,n,a,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(a>>>0)+(i>>>0),je=(e,t,n,a,i,r)=>t+n+a+i+r+(e/2**32|0)|0,Xe=Uint32Array.from([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]),Qe=new Uint32Array(64);class Ye extends Fe{constructor(e=32){super(64,e,8,!1),this.A=0|Se[0],this.B=0|Se[1],this.C=0|Se[2],this.D=0|Se[3],this.E=0|Se[4],this.F=0|Se[5],this.G=0|Se[6],this.H=0|Se[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:o}=this;return[e,t,n,a,i,r,s,o]}set(e,t,n,a,i,r,s,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)Qe[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Qe[e-15],n=Qe[e-2],a=ge(t,7)^ge(t,18)^t>>>3,i=ge(n,17)^ge(n,19)^n>>>10;Qe[e]=i+Qe[e-7]+a+Qe[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:o,G:p,H:y}=this;for(let e=0;e<64;e++){const t=y+(ge(s,6)^ge(s,11)^ge(s,25))+_e(s,o,p)+Xe[e]+Qe[e]|0,u=(ge(n,2)^ge(n,13)^ge(n,22))+Ae(n,a,i)|0;y=p,p=o,o=s,s=r+t|0,r=i,i=a,a=n,n=t+u|0}n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,o=o+this.F|0,p=p+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,o,p,y)}roundClean(){Te(Qe)}destroy(){this.set(0,0,0,0,0,0,0,0),Te(this.buffer)}}const Je=(()=>Ue(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),et=(()=>Je[0])(),tt=(()=>Je[1])(),nt=new Uint32Array(80),at=new Uint32Array(80);class it extends Fe{constructor(e=64){super(128,e,16,!1),this.Ah=0|Ee[0],this.Al=0|Ee[1],this.Bh=0|Ee[2],this.Bl=0|Ee[3],this.Ch=0|Ee[4],this.Cl=0|Ee[5],this.Dh=0|Ee[6],this.Dl=0|Ee[7],this.Eh=0|Ee[8],this.El=0|Ee[9],this.Fh=0|Ee[10],this.Fl=0|Ee[11],this.Gh=0|Ee[12],this.Gl=0|Ee[13],this.Hh=0|Ee[14],this.Hl=0|Ee[15]}get(){const{Ah:e,Al:t,Bh:n,Bl:a,Ch:i,Cl:r,Dh:s,Dl:o,Eh:p,El:y,Fh:u,Fl:l,Gh:d,Gl:c,Hh:m,Hl:f}=this;return[e,t,n,a,i,r,s,o,p,y,u,l,d,c,m,f]}set(e,t,n,a,i,r,s,o,p,y,u,l,d,c,m,f){this.Ah=0|e,this.Al=0|t,this.Bh=0|n,this.Bl=0|a,this.Ch=0|i,this.Cl=0|r,this.Dh=0|s,this.Dl=0|o,this.Eh=0|p,this.El=0|y,this.Fh=0|u,this.Fl=0|l,this.Gh=0|d,this.Gl=0|c,this.Hh=0|m,this.Hl=0|f}process(e,t){for(let n=0;n<16;n++,t+=4)nt[n]=e.getUint32(t),at[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|nt[e-15],n=0|at[e-15],a=Ne(t,n,1)^Ne(t,n,8)^Le(t,0,7),i=ze(t,n,1)^ze(t,n,8)^Re(t,n,7),r=0|nt[e-2],s=0|at[e-2],o=Ne(r,s,19)^He(r,s,61)^Le(r,0,6),p=ze(r,s,19)^qe(r,s,61)^Re(r,s,6),y=We(i,p,at[e-7],at[e-16]),u=Ge(y,a,o,nt[e-7],nt[e-16]);nt[e]=0|u,at[e]=0|y}let{Ah:n,Al:a,Bh:i,Bl:r,Ch:s,Cl:o,Dh:p,Dl:y,Eh:u,El:l,Fh:d,Fl:c,Gh:m,Gl:f,Hh:b,Hl:T}=this;for(let e=0;e<80;e++){const t=Ne(u,l,14)^Ne(u,l,18)^He(u,l,41),h=ze(u,l,14)^ze(u,l,18)^qe(u,l,41),g=u&d^~u&m,w=Ze(T,h,l&c^~l&f,tt[e],at[e]),v=je(w,b,t,g,et[e],nt[e]),I=0|w,x=Ne(n,a,28)^He(n,a,34)^He(n,a,39),M=ze(n,a,28)^qe(n,a,34)^qe(n,a,39),k=n&i^n&s^i&s,P=a&r^a&o^r&o;b=0|m,T=0|f,m=0|d,f=0|c,d=0|u,c=0|l,({h:u,l:l}=Ve(0|p,0|y,0|v,0|I)),p=0|s,y=0|o,s=0|i,o=0|r,i=0|n,r=0|a;const _=$e(I,M,P);n=Ke(_,v,x,k),a=0|_}({h:n,l:a}=Ve(0|this.Ah,0|this.Al,0|n,0|a)),({h:i,l:r}=Ve(0|this.Bh,0|this.Bl,0|i,0|r)),({h:s,l:o}=Ve(0|this.Ch,0|this.Cl,0|s,0|o)),({h:p,l:y}=Ve(0|this.Dh,0|this.Dl,0|p,0|y)),({h:u,l:l}=Ve(0|this.Eh,0|this.El,0|u,0|l)),({h:d,l:c}=Ve(0|this.Fh,0|this.Fl,0|d,0|c)),({h:m,l:f}=Ve(0|this.Gh,0|this.Gl,0|m,0|f)),({h:b,l:T}=Ve(0|this.Hh,0|this.Hl,0|b,0|T)),this.set(n,a,i,r,s,o,p,y,u,l,d,c,m,f,b,T)}roundClean(){Te(nt,at)}destroy(){Te(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class rt extends it{constructor(){super(48),this.Ah=0|Ce[0],this.Al=0|Ce[1],this.Bh=0|Ce[2],this.Bl=0|Ce[3],this.Ch=0|Ce[4],this.Cl=0|Ce[5],this.Dh=0|Ce[6],this.Dl=0|Ce[7],this.Eh=0|Ce[8],this.El=0|Ce[9],this.Fh=0|Ce[10],this.Fl=0|Ce[11],this.Gh=0|Ce[12],this.Gl=0|Ce[13],this.Hh=0|Ce[14],this.Hl=0|Ce[15]}}const st=ke(()=>new Ye),ot=ke(()=>new it),pt=ke(()=>new rt),yt=st;function ut(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=yt(f(e,{strict:!1})?S(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:k(i)}const lt=4096,dt=131072,ct=761855;class mt extends l{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class ft extends l{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class bt extends l{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class Tt extends l{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function ht(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?D(e.data):e.data,a=b(n);if(!a)throw new ft;if(a>ct)throw new mt({maxSize:ct,size:a});const i=[];let r=!0,s=0;for(;r;){const e=ee(new Uint8Array(dt));let t=0;for(;t<lt;){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=>k(e.bytes))}({data:t,to:a}),r=e.commitments??ue({blobs:i,kzg:n,to:a}),s=e.proofs??le({blobs:i,commitments:r,kzg:n,to:a}),o=[];for(let e=0;e<i.length;e++)o.push({blob:i[e],commitment:r[e],proof:s[e]});return o}class gt 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 wt extends l{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class vt extends l{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(vt,"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 It extends l{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${re(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(It,"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 xt 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 Mt=BigInt(0),kt=BigInt(1),Pt=BigInt(2),_t=BigInt(7),At=BigInt(256),Ft=BigInt(113),St=[],Ct=[],Et=[];for(let e=0,t=kt,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],St.push(2*(5*a+n)),Ct.push((e+1)*(e+2)/2%64);let i=Mt;for(let e=0;e<7;e++)t=(t<<kt^(t>>_t)*Ft)%At,t&Pt&&(i^=kt<<(kt<<BigInt(e))-kt);Et.push(i)}const Dt=Ue(Et,!0),Ot=Dt[0],Bt=Dt[1],Ut=(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),Lt=(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 Rt extends Me{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,ce(n),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}clone(){return this._cloneInto()}keccak(){ve(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],o=Ut(r,s,1)^n[a],p=Lt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=o,e[t+n+1]^=p}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=Ct[n],r=Ut(t,i,a),s=Lt(t,i,a),o=St[n];t=e[o],i=e[o+1],e[o]=r,e[o+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=Ot[a],e[1]^=Bt[a]}Te(n)}(this.state32,this.rounds),ve(this.state32),this.posOut=0,this.pos=0}update(e){fe(this),me(e=xe(e));const{blockLen:t,state:n}=this,a=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){fe(this,!1),me(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 ce(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(be(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,Te(this.state)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new Rt(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 Nt=(()=>{return e=1,t=136,n=32,ke(()=>new Rt(t,e,n));var e,t,n})();function zt(e,t){const n=t||"hex",a=Nt(f(e,{strict:!1})?S(e):e);return"bytes"===n?a:x(a)}const Ht=new xt(8192);function qt(e,t){if(Ht.has(`${e}.${t}`))return Ht.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=zt(O(n),"bytes"),i=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)a[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(15&a[e>>1])>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());const r=`0x${i.join("")}`;return Ht.set(`${e}.${t}`,r),r}const Vt=/^0x[a-fA-F0-9]{40}$/,$t=new xt(8192);function Kt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if($t.has(a))return $t.get(a);const i=!(!Vt.test(e)||e.toLowerCase()!==e&&n&&qt(e)!==e);return $t.set(a,i),i}function Wt(e,t,n,{strict:a}={}){return f(e,{strict:!1})?function(e,t,n,{strict:a}={}){Gt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&Zt(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){Gt(e,t);const i=e.slice(t,n);a&&Zt(i,t,n);return i}(e,t,n,{strict:a})}function Gt(e,t){if("number"==typeof t&&t>0&&t>b(e)-1)throw new h({offset:t,position:"start",size:b(e)})}function Zt(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 jt(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new wt({chainId:t});if(i&&!Kt(i))throw new gt({address:i});if(a&&a>G)throw new vt({maxFeePerGas:a});if(n&&a&&n>a)throw new It({maxFeePerGas:a,maxPriorityFeePerGas:n})}function Xt(e){if(!e||0===e.length)return[];const t=[];for(let n=0;n<e.length;n++){const{address:a,storageKeys:i}=e[n];for(let e=0;e<i.length;e++)if(i[e].length-2!=64)throw new ye({storageKey:i[e]});if(!Kt(a,{strict:!1}))throw new gt({address:a});t.push([a,i])}return t}function Qt(e,t){const n=function(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new pe({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:o,maxPriorityFeePerGas:p,accessList:y,data:u}=e;jt(e);const l=Xt(y),d=[P(n),i?P(i):"0x",p?P(p):"0x",o?P(o):"0x",a?P(a):"0x",r??"0x",s?P(s):"0x",u??"0x",l,...Yt(e,t)];return j(["0x02",te(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:o,accessList:p,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new wt({chainId:t});if(r&&!Kt(r))throw new gt({address:r});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>G)throw new vt({maxFeePerGas:a})}(e);const u=Xt(p),d=[P(n),r?P(r):"0x",y?P(y):"0x",a?P(a):"0x",s??"0x",o?P(o):"0x",i??"0x",u,...Yt(e,t)];return j(["0x01",te(d)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new ft;for(const e of t){const t=b(e),n=L(Wt(e,0,1));if(32!==t)throw new bt({hash:e,size:t});if(1!==n)throw new Tt({hash:e,version:n})}}jt(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=>k(e)),n=e.kzg,a=ue({blobs:t,kzg:n});if(void 0===d&&(d=function(e){const{commitments:t,version:n}=e,a=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(ut({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=ht({blobs:t,commitments:a,proofs:le({blobs:t,commitments:a,kzg:n})})}}const m=Xt(u),f=[P(n),i?P(i):"0x",y?P(y):"0x",p?P(p):"0x",a?P(a):"0x",r??"0x",s?P(s):"0x",l??"0x",m,o?P(o):"0x",d??[],...Yt(e,t)],T=[],h=[],g=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];T.push(t),h.push(n),g.push(a)}return j(["0x03",te(c?[f,T,h,g]:f)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{chainId:t}=e,n=e.address;if(!Kt(n))throw new gt({address:n});if(t<0)throw new wt({chainId:t})}jt(e)}(e);const d=Xt(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",...Yt({},i)])}return t}(n);return j(["0x04",te([P(a),r?P(r):"0x",y?P(y):"0x",p?P(p):"0x",i?P(i):"0x",s??"0x",o?P(o):"0x",l??"0x",d,c,...Yt(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:o,gasPrice:p}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!Kt(r))throw new gt({address:r});if(void 0!==t&&t<=0)throw new wt({chainId:t});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>G)throw new vt({maxFeePerGas:a})}(e);let y=[r?P(r):"0x",p?P(p):"0x",a?P(a):"0x",s??"0x",o?P(o):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new oe({v:t.v});return e})(),a=T(t.r),i=T(t.s);y=[...y,P(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,P(n),"0x","0x"]);return te(y)}(e,t)}function Yt(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=T(n.r),s=T(n.s);return["number"==typeof i?i?P(1):"0x":0n===a?"0x":1n===a?P(1):27n===a?"0x":P(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const Jt={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function en(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&&!Kt(t))throw new gt({address:t});if(n&&!Kt(n))throw new gt({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:o,value:p}=e,y=[t,a,o??"0x",s?x(s):"0x",p?x(p):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"];return j(["0x7e",te(y)])}(e):Qt(e,t)}const tn={blockTime:2e3,contracts:Jt,formatters:{block:V({format(e){const t=e.transactions?.map(e=>{if("string"==typeof e)return e;const t=z(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?U(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t});return{transactions:t,stateRoot:e.stateRoot}}}),transaction:H({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?U(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:W({format:e=>({l1GasPrice:e.l1GasPrice?U(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?U(e.l1GasUsed):null,l1Fee:e.l1Fee?U(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:en}},nn=1,an=o({...tn,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:{...tn.contracts,disputeGameFactory:{[nn]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[nn]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[nn]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[nn]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),rn=11155111,sn=o({...tn,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:{...tn.contracts,disputeGameFactory:{[rn]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[rn]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[rn]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[rn]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:rn});const on=11155111;o({...o({...tn,id:91342,network:"giwa-sepolia",name:"GIWA Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},blockTime:1e3,rpcUrls:{default:{http:["https://sepolia-rpc.giwa.io"]}},blockExplorers:{default:{name:"Blockscout",url:"https://sepolia-explorer.giwa.io",apiUrl:"https://sepolia-explorer.giwa.io/api"}},contracts:{...tn.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0},disputeGameFactory:{[on]:{address:"0x37347caB2afaa49B776372279143D71ad1f354F6"}},portal:{[on]:{address:"0x956962C34687A954e611A83619ABaA37Ce6bC78A"}},l1StandardBridge:{[on]:{address:"0x77b2ffc0F57598cAe1DB76cb398059cF5d10A7E7"}}},testnet:!0,sourceId:on}),experimental_preconfirmationTime:200,rpcUrls:{default:{http:["https://sepolia-rpc-flashblocks.giwa.io"]}}});class pn extends l{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join("\n"),{name:"AbiEncodingArrayLengthMismatchError"})}}class yn extends l{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${b(t)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class un extends l{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join("\n"),{name:"AbiEncodingLengthMismatchError"})}}class ln extends l{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:"BytesSizeMismatchError"})}}class dn extends l{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiEncodingType"})}}class cn extends l{constructor(e){super([`Value "${e}" is not a valid array.`].join("\n"),{name:"InvalidArrayError"})}}class mn extends Error{constructor(e,t={}){const n=t.cause instanceof mn?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof mn&&t.cause.docsPath||t.docsPath;super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...a?[`Docs: https://abitype.dev${a}`]:[],...n?[`Details: ${n}`]:[],"Version: abitype@1.2.3"].join("\n")),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,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),t.cause&&(this.cause=t.cause),this.details=n,this.docsPath=a,this.metaMessages=t.metaMessages,this.shortMessage=e}}function fn(e,t){const n=e.exec(t);return n?.groups}const bn=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Tn=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,hn=/^\(.+?\).*?$/,gn=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function wn(e){return gn.test(e)}function vn(e){return fn(gn,e)}const In=new Set(["memory","indexed","storage","calldata"]),xn=new Set(["calldata","memory","storage"]);class Mn extends mn{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class kn extends mn{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}class Pn extends mn{constructor({params:e}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class _n extends mn{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class An extends mn{constructor({param:e,name:t}){super("Invalid ABI parameter.",{details:e,metaMessages:[`"${t}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class Fn extends mn{constructor({param:e,type:t,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class Sn extends mn{constructor({param:e,type:t,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class Cn extends mn{constructor({abiParameter:e}){super("Invalid ABI parameter.",{details:JSON.stringify(e,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}class En extends mn{constructor({signature:e,type:t}){super(`Invalid ${t} signature.`,{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class Dn extends mn{constructor({signature:e}){super("Invalid struct signature.",{details:e,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}class On extends mn{constructor({type:e}){super("Circular reference detected.",{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}class Bn extends mn{constructor({current:e,depth:t}){super("Unbalanced parentheses.",{metaMessages:[`"${e.trim()}" has too many ${t>0?"opening":"closing"} parentheses.`],details:`Depth "${t}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}const Un=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]),Ln=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Rn=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Nn=/^u?int$/;function zn(e,t){const n=function(e,t,n){let a="";if(n)for(const e of Object.entries(n)){if(!e)continue;let t="";for(const n of e[1])t+=`[${n.type}${n.name?`:${n.name}`:""}]`;a+=`(${e[0]}{${t}})`}return t?`${t}:${e}${a}`:`${e}${a}`}(e,t?.type,t?.structs);if(Un.has(n))return Un.get(n);const a=hn.test(e),i=fn(a?Rn:Ln,e);if(!i)throw new _n({param:e});if(i.name&&function(e){return"address"===e||"bool"===e||"function"===e||"string"===e||"tuple"===e||bn.test(e)||Tn.test(e)||Vn.test(e)}(i.name))throw new An({param:e,name:i.name});const r=i.name?{name:i.name}:{},s="indexed"===i.modifier?{indexed:!0}:{},o=t?.structs??{};let p,y={};if(a){p="tuple";const e=Hn(i.type),t=[],n=e.length;for(let a=0;a<n;a++)t.push(zn(e[a],{structs:o}));y={components:t}}else if(i.type in o)p="tuple",y={components:o[i.type]};else if(Nn.test(i.type))p=`${i.type}256`;else if("address payable"===i.type)p="address";else if(p=i.type,"struct"!==t?.type&&!qn(p))throw new kn({type:p});if(i.modifier){if(!t?.modifiers?.has?.(i.modifier))throw new Fn({param:e,type:t?.type,modifier:i.modifier});if(xn.has(i.modifier)&&!function(e,t){return t||"bytes"===e||"string"===e||"tuple"===e}(p,!!i.array))throw new Sn({param:e,type:t?.type,modifier:i.modifier})}const u={type:`${p}${i.array??""}`,...r,...s,...y};return Un.set(n,u),u}function Hn(e,t=[],n="",a=0){const i=e.trim().length;for(let r=0;r<i;r++){const i=e[r],s=e.slice(r+1);switch(i){case",":return 0===a?Hn(s,[...t,n.trim()]):Hn(s,t,`${n}${i}`,a);case"(":return Hn(s,t,`${n}${i}`,a+1);case")":return Hn(s,t,`${n}${i}`,a-1);default:return Hn(s,t,`${n}${i}`,a)}}if(""===n)return t;if(0!==a)throw new Bn({current:n,depth:a});return t.push(n.trim()),t}function qn(e){return"address"===e||"bool"===e||"function"===e||"string"===e||bn.test(e)||Tn.test(e)}const Vn=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;const $n=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function Kn(e=[],t={},n=new Set){const a=[],i=e.length;for(let r=0;r<i;r++){const i=e[r];if(hn.test(i.type))a.push(i);else{const e=fn($n,i.type);if(!e?.type)throw new Cn({abiParameter:i});const{array:r,type:s}=e;if(s in t){if(n.has(s))throw new On({type:s});a.push({...i,type:`tuple${r??""}`,components:Kn(t[s],t,new Set([...n,s]))})}else{if(!qn(s))throw new Mn({type:s});a.push(i)}}}return a}function Wn(e){const t=[];if("string"==typeof e){const n=Hn(e),a=n.length;for(let e=0;e<a;e++)t.push(zn(n[e],{modifiers:In}))}else{const n=function(e){const t={},n=e.length;for(let a=0;a<n;a++){const n=e[a];if(!wn(n))continue;const i=vn(n);if(!i)throw new En({signature:n,type:"struct"});const r=i.properties.split(";"),s=[],o=r.length;for(let e=0;e<o;e++){const t=r[e].trim();if(!t)continue;const n=zn(t,{type:"struct"});s.push(n)}if(!s.length)throw new Dn({signature:n});t[i.name]=s}const a={},i=Object.entries(t),r=i.length;for(let e=0;e<r;e++){const[n,r]=i[e];a[n]=Kn(r,t)}return a}(e),a=e.length;for(let i=0;i<a;i++){const a=e[i];if(wn(a))continue;const r=Hn(a),s=r.length;for(let e=0;e<s;e++)t.push(zn(r[e],{modifiers:In,structs:n}))}}if(0===t.length)throw new Pn({params:e});return t}const Gn=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Zn=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function jn(e,t){if(e.length!==t.length)throw new un({expectedLength:e.length,givenLength:t.length});const n=function({params:e,values:t}){const n=[];for(let a=0;a<e.length;a++)n.push(Xn({param:e[a],value:t[a]}));return n}({params:e,values:t}),a=Qn(n);return 0===a.length?"0x":a}function Xn({param:e,value:t}){const n=function(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}(e.type);if(n){const[a,i]=n;return function(e,{length:t,param:n}){const a=null===t;if(!Array.isArray(e))throw new cn(e);if(!a&&e.length!==t)throw new pn({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let i=!1;const r=[];for(let t=0;t<e.length;t++){const a=Xn({param:n,value:e[t]});a.dynamic&&(i=!0),r.push(a)}if(a||i){const e=Qn(r);if(a){const t=P(r.length,{size:32});return{dynamic:!0,encoded:r.length>0?Z([t,e]):t}}if(i)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Z(r.map(({encoded:e})=>e))}}(t,{length:a,param:{...e,type:i}})}if("tuple"===e.type)return function(e,{param:t}){let n=!1;const a=[];for(let i=0;i<t.components.length;i++){const r=t.components[i],s=Xn({param:r,value:e[Array.isArray(e)?i:r.name]});a.push(s),s.dynamic&&(n=!0)}return{dynamic:n,encoded:n?Qn(a):Z(a.map(({encoded:e})=>e))}}(t,{param:e});if("address"===e.type)return function(e){if(!Kt(e))throw new gt({address:e});return{dynamic:!1,encoded:v(e.toLowerCase())}}(t);if("bool"===e.type)return function(e){if("boolean"!=typeof e)throw new l(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:v(M(e))}}(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const n=e.type.startsWith("int"),[,,a="256"]=Zn.exec(e.type)??[];return function(e,{signed:t,size:n=256}){if("number"==typeof n){const a=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-a-1n:0n;if(e>a||e<i)throw new c({max:a.toString(),min:i.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:P(e,{size:32,signed:t})}}(t,{signed:n,size:Number(a)})}if(e.type.startsWith("bytes"))return function(e,{param:t}){const[,n]=t.type.split("bytes"),a=b(e);if(!n){let t=e;return a%32!=0&&(t=v(t,{dir:"right",size:32*Math.ceil((e.length-2)/2/32)})),{dynamic:!0,encoded:Z([v(P(a,{size:32})),t])}}if(a!==Number.parseInt(n,10))throw new yn({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:v(e,{dir:"right"})}}(t,{param:e});if("string"===e.type)return function(e){const t=A(e),n=Math.ceil(b(t)/32),a=[];for(let e=0;e<n;e++)a.push(v(Wt(t,32*e,32*(e+1)),{dir:"right"}));return{dynamic:!0,encoded:Z([v(P(b(t),{size:32})),...a])}}(t);throw new dn(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Qn(e){let t=0;for(let n=0;n<e.length;n++){const{dynamic:a,encoded:i}=e[n];t+=a?32:b(i)}const n=[],a=[];let i=0;for(let r=0;r<e.length;r++){const{dynamic:s,encoded:o}=e[r];s?(n.push(P(t+i,{size:32})),a.push(o),i+=b(o)):n.push(o)}return Z([...n,...a])}class Yn extends Me{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");ce(e.outputLen),ce(e.blockLen)}(e);const n=xe(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const a=this.blockLen,i=new Uint8Array(a);i.set(n.length>a?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),Te(i)}update(e){return fe(this),this.iHash.update(e),this}digestInto(e){fe(this),me(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:a,destroyed:i,blockLen:r,outputLen:s}=this;return e.finished=a,e.destroyed=i,e.blockLen=r,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Jn=(e,t,n)=>new Yn(e,t).update(n).digest();Jn.create=(e,t)=>new Yn(e,t);
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@delvtech/drift-viem")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@delvtech/drift-viem"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.driftViem)}(this,function(e,t,n,a,i){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(a);function o(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const p="2.37.12";let y=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,u=`viem@${p}`;class l extends Error{constructor(e,t={}){const n=t.cause instanceof l?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof l&&t.cause.docsPath||t.docsPath,i=y?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...u?[`Version: ${u}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=a,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=p}walk(e){return d(this,e)}}function d(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?d(e.cause,t):t?null:e}class c extends l{constructor({max:e,min:t,signed:n,size:a,value:i}){super(`Number "${i}" is not in safe ${a?`${8*a}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class m extends l{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function T(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function f(e){return T(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function b(e,{dir:t="left"}={}){let n="string"==typeof e?e.replace("0x",""):e,a=0;for(let e=0;e<n.length-1&&"0"===n["left"===t?e:n.length-e-1].toString();e++)a++;return n="left"===t?n.slice(a):n.slice(0,n.length-a),"string"==typeof e?(1===n.length&&"right"===t&&(n=`${n}0`),`0x${n.length%2==1?`0${n}`:n}`):n}class h extends l{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class w 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 g(e,{dir:t,size:n=32}={}){return"string"==typeof e?I(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new w({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let i=0;i<n;i++){const r="right"===t;a[r?i:n-i-1]=e[r?i:e.length-i-1]}return a}(e,{dir:t,size:n})}function I(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new w({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}const v=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?P(e,t):"string"==typeof e?A(e,t):"boolean"==typeof e?M(e,t):k(e,t)}function M(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?(B(n,{size:t.size}),g(n,{size:t.size})):n}function k(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=v[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(B(a,{size:t.size}),g(a,{dir:"right",size:t.size})):a}function P(e,t={}){const{signed:n,size:a}=t,i=BigInt(e);let r;a?r=n?(1n<<8n*BigInt(a)-1n)-1n:2n**(8n*BigInt(a))-1n:"number"==typeof e&&(r=BigInt(Number.MAX_SAFE_INTEGER));const s="bigint"==typeof r&&n?-r-1n:0;if(r&&i>r||i<s){const t="bigint"==typeof e?"n":"";throw new c({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const o=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?g(o,{size:a}):o}const _=new TextEncoder;function A(e,t={}){return k(_.encode(e),t)}const F=new TextEncoder;function C(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=P(e,t);return D(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return B(n,{size:t.size}),g(n,{size:t.size});return n}(e,t):T(e)?D(e,t):O(e,t)}const S={zero:48,nine:57,A:65,F:70,a:97,f:102};function E(e){return e>=S.zero&&e<=S.nine?e-S.zero:e>=S.A&&e<=S.F?e-(S.A-10):e>=S.a&&e<=S.f?e-(S.a-10):void 0}function D(e,t={}){let n=e;t.size&&(B(n,{size:t.size}),n=g(n,{dir:"right",size:t.size}));let a=n.slice(2);a.length%2&&(a=`0${a}`);const i=a.length/2,r=new Uint8Array(i);for(let e=0,t=0;e<i;e++){const n=E(a.charCodeAt(t++)),i=E(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new l(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function O(e,t={}){const n=F.encode(e);return"number"==typeof t.size?(B(n,{size:t.size}),g(n,{dir:"right",size:t.size})):n}function B(e,{size:t}){if(f(e)>t)throw new m({givenSize:f(e),maxSize:t})}function L(e,t={}){const{signed:n}=t;t.size&&B(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function U(e,t={}){return Number(L(e,t))}function R(e,t){return({exclude:n,format:a})=>({exclude:n,format:(e,i)=>{const r=t(e,i);if(n)for(const e of n)delete r[e];return{...r,...a(e,i)}},type:e})}const N={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function H(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?U(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?U(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?N[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&&(n.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)}))),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof n.v){if(0n===n.v||27n===n.v)return 0;if(1n===n.v||28n===n.v)return 1;if(n.v>=35n)return n.v%2n==0n?1:0}})(),"legacy"===n.type&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),"eip2930"===n.type&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),"eip1559"===n.type&&delete n.maxFeePerBlobGas,n}const z=R("transaction",H);function q(e,t){const n=(e.transactions??[]).map(e=>"string"==typeof e?e:H(e));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const V=R("block",q);const K={"0x0":"reverted","0x1":"success"};function W(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(e=>function(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}(e)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?U(e.transactionIndex):null,status:e.status?K[e.status]:null,type:e.type?N[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const $=R("transactionReceipt",W);const G=2n**256n-1n;function Z(e){return"string"==typeof e[0]?X(e):function(e){let t=0;for(const n of e)t+=n.length;const n=new Uint8Array(t);let a=0;for(const t of e)n.set(t,a),a+=t.length;return n}(e)}function X(e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}class j extends l{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class Q extends l{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Y extends l{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const J={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Y({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Q({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new j({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new j({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function ee(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(J);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function te(e,t="hex"){const n=ne(e),a=ee(new Uint8Array(n.length));return n.encode(a),"hex"===t?k(a.bytes):a.bytes}function ne(e){return Array.isArray(e)?function(e){const t=e.reduce((e,t)=>e+t.length,0),n=ae(t);return{length:t<=55?1+t:1+n+t,encode(a){t<=55?a.pushByte(192+t):(a.pushByte(247+n),1===n?a.pushUint8(t):2===n?a.pushUint16(t):3===n?a.pushUint24(t):a.pushUint32(t));for(const{encode:t}of e)t(a)}}}(e.map(e=>ne(e))):function(e){const t="string"==typeof e?D(e):e,n=ae(t.length),a=1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length;return{length:a,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function ae(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new l("Length is too large.")}const ie={ether:-9,wei:9};function re(e,t="wei"){return function(e,t){let n=e.toString();const a=n.startsWith("-");a&&(n=n.slice(1)),n=n.padStart(t,"0");let[i,r]=[n.slice(0,n.length-t),n.slice(n.length-t)];return r=r.replace(/(0+)$/,""),`${a?"-":""}${i||"0"}${r?`.${r}`:""}`}(e,ie[t])}function se(e){const t=Object.entries(e).map(([e,t])=>void 0===t||!1===t?null:[e,t]).filter(Boolean),n=t.reduce((e,[t])=>Math.max(e,t.length),0);return t.map(([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`).join("\n")}class oe extends l{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class pe extends l{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",se(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class ye extends l{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function ue(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>D(e)):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map(e=>k(e))}function le(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>D(e)):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map(e=>D(e)):e.commitments,r=[];for(let e=0;e<a.length;e++){const n=a[e],s=i[e];r.push(Uint8Array.from(t.computeBlobKzgProof(n,s)))}return"bytes"===n?r:r.map(e=>k(e))}const de="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function ce(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function me(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 Te(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 fe(e,t){me(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function be(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function he(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function we(e,t){return e<<32-t|e>>>t}function ge(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const Ie=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])()?e=>e:function(e){for(let t=0;t<e.length;t++)e[t]=ge(e[t]);return e};function ve(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function xe(e){return"string"==typeof e&&(e=ve(e)),me(e),e}class Me{}function ke(e){const t=t=>e().update(xe(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Pe(e=32){if(de&&"function"==typeof de.getRandomValues)return de.getRandomValues(new Uint8Array(e));if(de&&"function"==typeof de.randomBytes)return Uint8Array.from(de.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function _e(e,t,n){return e&t^~e&n}function Ae(e,t,n){return e&t^e&n^t&n}class Fe extends Me{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=he(this.buffer)}update(e){Te(this),me(e=xe(e));const{view:t,buffer:n,blockLen:a}=this,i=e.length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s===a){const t=he(e);for(;a<=i-r;r+=a)this.process(t,r);continue}n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Te(this),fe(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,be(this.buffer.subarray(r)),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),o=Number(n&r),p=a?4:0,y=a?0:4;e.setUint32(t+p,s,a),e.setUint32(t+y,o,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=he(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const p=o/4,y=this.get();if(p>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<p;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.destroyed=r,e.finished=i,e.length=a,e.pos=s,a%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const Ce=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Se=BigInt(2**32-1),Ee=BigInt(32);function De(e,t=!1){return t?{h:Number(e&Se),l:Number(e>>Ee&Se)}:{h:0|Number(e>>Ee&Se),l:0|Number(e&Se)}}const Oe=Uint32Array.from([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]),Be=new Uint32Array(64);class Le extends Fe{constructor(e=32){super(64,e,8,!1),this.A=0|Ce[0],this.B=0|Ce[1],this.C=0|Ce[2],this.D=0|Ce[3],this.E=0|Ce[4],this.F=0|Ce[5],this.G=0|Ce[6],this.H=0|Ce[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:o}=this;return[e,t,n,a,i,r,s,o]}set(e,t,n,a,i,r,s,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)Be[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=Be[e-15],n=Be[e-2],a=we(t,7)^we(t,18)^t>>>3,i=we(n,17)^we(n,19)^n>>>10;Be[e]=i+Be[e-7]+a+Be[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:o,G:p,H:y}=this;for(let e=0;e<64;e++){const t=y+(we(s,6)^we(s,11)^we(s,25))+_e(s,o,p)+Oe[e]+Be[e]|0,u=(we(n,2)^we(n,13)^we(n,22))+Ae(n,a,i)|0;y=p,p=o,o=s,s=r+t|0,r=i,i=a,a=n,n=t+u|0}n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,o=o+this.F|0,p=p+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,o,p,y)}roundClean(){be(Be)}destroy(){this.set(0,0,0,0,0,0,0,0),be(this.buffer)}}const Ue=ke(()=>new Le),Re=Ue;function Ne(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=Re(T(e,{strict:!1})?C(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:k(i)}const He=4096,ze=131072,qe=761855;class Ve extends l{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class Ke extends l{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class We extends l{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class $e extends l{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function Ge(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?D(e.data):e.data,a=f(n);if(!a)throw new Ke;if(a>qe)throw new Ve({maxSize:qe,size:a});const i=[];let r=!0,s=0;for(;r;){const e=ee(new Uint8Array(ze));let t=0;for(;t<He;){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=>k(e.bytes))}({data:t,to:a}),r=e.commitments??ue({blobs:i,kzg:n,to:a}),s=e.proofs??le({blobs:i,commitments:r,kzg:n,to:a}),o=[];for(let e=0;e<i.length;e++)o.push({blob:i[e],commitment:r[e],proof:s[e]});return o}class Ze 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 Xe extends l{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class je extends l{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(je,"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 Qe extends l{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${re(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${re(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(Qe,"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 Ye 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 Je=BigInt(0),et=BigInt(1),tt=BigInt(2),nt=BigInt(7),at=BigInt(256),it=BigInt(113),rt=[],st=[],ot=[];for(let e=0,t=et,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],rt.push(2*(5*a+n)),st.push((e+1)*(e+2)/2%64);let i=Je;for(let e=0;e<7;e++)t=(t<<et^(t>>nt)*it)%at,t&tt&&(i^=et<<(et<<BigInt(e))-et);ot.push(i)}const pt=function(e,t=!1){const n=e.length;let a=new Uint32Array(n),i=new Uint32Array(n);for(let r=0;r<n;r++){const{h:n,l:s}=De(e[r],t);[a[r],i[r]]=[n,s]}return[a,i]}(ot,!0),yt=pt[0],ut=pt[1],lt=(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),dt=(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 ct extends Me{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,ce(n),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}clone(){return this._cloneInto()}keccak(){Ie(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],o=lt(r,s,1)^n[a],p=dt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=o,e[t+n+1]^=p}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=st[n],r=lt(t,i,a),s=dt(t,i,a),o=rt[n];t=e[o],i=e[o+1],e[o]=r,e[o+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=yt[a],e[1]^=ut[a]}be(n)}(this.state32,this.rounds),Ie(this.state32),this.posOut=0,this.pos=0}update(e){Te(this),me(e=xe(e));const{blockLen:t,state:n}=this,a=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){Te(this,!1),me(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 ce(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(fe(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,be(this.state)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new ct(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 mt=(()=>{return e=1,t=136,n=32,ke(()=>new ct(t,e,n));var e,t,n})();function Tt(e,t){const n=t||"hex",a=mt(T(e,{strict:!1})?C(e):e);return"bytes"===n?a:x(a)}const ft=new Ye(8192);function bt(e,t){if(ft.has(`${e}.${t}`))return ft.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=Tt(O(n),"bytes"),i=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)a[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(15&a[e>>1])>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());const r=`0x${i.join("")}`;return ft.set(`${e}.${t}`,r),r}const ht=/^0x[a-fA-F0-9]{40}$/,wt=new Ye(8192);function gt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(wt.has(a))return wt.get(a);const i=!(!ht.test(e)||e.toLowerCase()!==e&&n&&bt(e)!==e);return wt.set(a,i),i}function It(e,t,n,{strict:a}={}){return T(e,{strict:!1})?function(e,t,n,{strict:a}={}){vt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&xt(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){vt(e,t);const i=e.slice(t,n);a&&xt(i,t,n);return i}(e,t,n,{strict:a})}function vt(e,t){if("number"==typeof t&&t>0&&t>f(e)-1)throw new h({offset:t,position:"start",size:f(e)})}function xt(e,t,n){if("number"==typeof t&&"number"==typeof n&&f(e)!==n-t)throw new h({offset:n,position:"end",size:f(e)})}function Mt(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new Xe({chainId:t});if(i&&!gt(i))throw new Ze({address:i});if(a&&a>G)throw new je({maxFeePerGas:a});if(n&&a&&n>a)throw new Qe({maxFeePerGas:a,maxPriorityFeePerGas:n})}function kt(e){if(!e||0===e.length)return[];const t=[];for(let n=0;n<e.length;n++){const{address:a,storageKeys:i}=e[n];for(let e=0;e<i.length;e++)if(i[e].length-2!=64)throw new ye({storageKey:i[e]});if(!gt(a,{strict:!1}))throw new Ze({address:a});t.push([a,i])}return t}function Pt(e,t){const n=function(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new pe({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:o,maxPriorityFeePerGas:p,accessList:y,data:u}=e;Mt(e);const l=kt(y),d=[P(n),i?P(i):"0x",p?P(p):"0x",o?P(o):"0x",a?P(a):"0x",r??"0x",s?P(s):"0x",u??"0x",l,..._t(e,t)];return X(["0x02",te(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:o,accessList:p,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Xe({chainId:t});if(r&&!gt(r))throw new Ze({address:r});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>G)throw new je({maxFeePerGas:a})}(e);const u=kt(p),d=[P(n),r?P(r):"0x",y?P(y):"0x",a?P(a):"0x",s??"0x",o?P(o):"0x",i??"0x",u,..._t(e,t)];return X(["0x01",te(d)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new Ke;for(const e of t){const t=f(e),n=U(It(e,0,1));if(32!==t)throw new We({hash:e,size:t});if(1!==n)throw new $e({hash:e,version:n})}}Mt(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=>k(e)),n=e.kzg,a=ue({blobs:t,kzg:n});if(void 0===d&&(d=function(e){const{commitments:t,version:n}=e,a=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(Ne({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=Ge({blobs:t,commitments:a,proofs:le({blobs:t,commitments:a,kzg:n})})}}const m=kt(u),T=[P(n),i?P(i):"0x",y?P(y):"0x",p?P(p):"0x",a?P(a):"0x",r??"0x",s?P(s):"0x",l??"0x",m,o?P(o):"0x",d??[],..._t(e,t)],b=[],h=[],w=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];b.push(t),h.push(n),w.push(a)}return X(["0x03",te(c?[T,b,h,w]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{chainId:t}=e,n=e.address;if(!gt(n))throw new Ze({address:n});if(t<0)throw new Xe({chainId:t})}Mt(e)}(e);const d=kt(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",..._t({},i)])}return t}(n);return X(["0x04",te([P(a),r?P(r):"0x",y?P(y):"0x",p?P(p):"0x",i?P(i):"0x",s??"0x",o?P(o):"0x",l??"0x",d,c,..._t(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:o,gasPrice:p}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!gt(r))throw new Ze({address:r});if(void 0!==t&&t<=0)throw new Xe({chainId:t});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>G)throw new je({maxFeePerGas:a})}(e);let y=[r?P(r):"0x",p?P(p):"0x",a?P(a):"0x",s??"0x",o?P(o):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new oe({v:t.v});return e})(),a=b(t.r),i=b(t.s);y=[...y,P(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,P(n),"0x","0x"]);return te(y)}(e,t)}function _t(e,t){const n=t??e,{v:a,yParity:i}=n;if(void 0===n.r)return[];if(void 0===n.s)return[];if(void 0===a&&void 0===i)return[];const r=b(n.r),s=b(n.s);return["number"==typeof i?i?P(1):"0x":0n===a?"0x":1n===a?P(1):27n===a?"0x":P(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const At={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function Ft(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&&!gt(t))throw new Ze({address:t});if(n&&!gt(n))throw new Ze({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:o,value:p}=e;return X(["0x7e",te([t,a,o??"0x",s?x(s):"0x",p?x(p):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):Pt(e,t)}const Ct={blockTime:2e3,contracts:At,formatters:{block:V({format(e){const t=e.transactions?.map(e=>{if("string"==typeof e)return e;const t=H(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?L(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t});return{transactions:t,stateRoot:e.stateRoot}}}),transaction:z({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?L(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:$({format:e=>({l1GasPrice:e.l1GasPrice?L(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?L(e.l1GasUsed):null,l1Fee:e.l1Fee?L(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:Ft}},St=1,Et=o({...Ct,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:{...Ct.contracts,disputeGameFactory:{[St]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[St]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[St]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[St]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),Dt=11155111,Ot=o({...Ct,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:{...Ct.contracts,disputeGameFactory:{[Dt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[Dt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[Dt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[Dt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:Dt});o({id:53456,name:"BirdLayer",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.birdlayer.xyz","https://rpc1.birdlayer.xyz"],webSocket:["wss://rpc.birdlayer.xyz/ws"]}},blockExplorers:{default:{name:"BirdLayer Explorer",url:"https://scan.birdlayer.xyz"}}});const Bt=1;o({...Ct,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:{...Ct.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[Bt]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[Bt]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Lt=11155111;o({...Ct,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:{...Ct.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Lt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Lt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Lt});o({id:44,name:"Crab Network",nativeCurrency:{decimals:18,name:"Crab Network Native Token",symbol:"CRAB"},rpcUrls:{default:{http:["https://crab-rpc.darwinia.network"],webSocket:["wss://crab-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://crab-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:3032593}}}),o({id:66665,name:"Creator",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.creatorchain.io"]}},blockExplorers:{default:{name:"Explorer",url:"https://explorer.creatorchain.io"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11"}},testnet:!0}),o({id:53457,name:"DODOchain Testnet",nativeCurrency:{decimals:18,name:"DODO",symbol:"DODO"},rpcUrls:{default:{http:["https://dodochain-testnet.alt.technology"],webSocket:["wss://dodochain-testnet.alt.technology/ws"]}},blockExplorers:{default:{name:"DODOchain Testnet (Sepolia) Explorer",url:"https://testnet-scan.dodochain.com"}},testnet:!0});o({...Ct,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:{...Ct.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const Ut=17e3;o({...Ct,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:Ut,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:{...Ct.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Ut]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[Ut]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[Ut]:{address:"0x09bcDd311FE398F80a78BE37E489f5D440DB95DE",blockCreated:1274684}}}});o({id:701,name:"Koi Network",nativeCurrency:{decimals:18,name:"Koi Network Native Token",symbol:"KRING"},rpcUrls:{default:{http:["https://koi-rpc.darwinia.network"],webSocket:["wss://koi-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://koi-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:180001}},testnet:!0});class Rt extends l{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join("\n"),{name:"AbiEncodingArrayLengthMismatchError"})}}class Nt extends l{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${f(t)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class Ht extends l{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join("\n"),{name:"AbiEncodingLengthMismatchError"})}}class zt extends l{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:"BytesSizeMismatchError"})}}class qt extends l{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiEncodingType"})}}class Vt extends l{constructor(e){super([`Value "${e}" is not a valid array.`].join("\n"),{name:"InvalidArrayError"})}}const Kt=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Wt=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function $t(e,t){if(e.length!==t.length)throw new Ht({expectedLength:e.length,givenLength:t.length});const n=function({params:e,values:t}){const n=[];for(let a=0;a<e.length;a++)n.push(Gt({param:e[a],value:t[a]}));return n}({params:e,values:t}),a=Zt(n);return 0===a.length?"0x":a}function Gt({param:e,value:t}){const n=function(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}(e.type);if(n){const[a,i]=n;return function(e,{length:t,param:n}){const a=null===t;if(!Array.isArray(e))throw new Vt(e);if(!a&&e.length!==t)throw new Rt({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let i=!1;const r=[];for(let t=0;t<e.length;t++){const a=Gt({param:n,value:e[t]});a.dynamic&&(i=!0),r.push(a)}if(a||i){const e=Zt(r);if(a){const t=P(r.length,{size:32});return{dynamic:!0,encoded:r.length>0?Z([t,e]):t}}if(i)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Z(r.map(({encoded:e})=>e))}}(t,{length:a,param:{...e,type:i}})}if("tuple"===e.type)return function(e,{param:t}){let n=!1;const a=[];for(let i=0;i<t.components.length;i++){const r=t.components[i],s=Gt({param:r,value:e[Array.isArray(e)?i:r.name]});a.push(s),s.dynamic&&(n=!0)}return{dynamic:n,encoded:n?Zt(a):Z(a.map(({encoded:e})=>e))}}(t,{param:e});if("address"===e.type)return function(e){if(!gt(e))throw new Ze({address:e});return{dynamic:!1,encoded:I(e.toLowerCase())}}(t);if("bool"===e.type)return function(e){if("boolean"!=typeof e)throw new l(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:I(M(e))}}(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const n=e.type.startsWith("int"),[,,a="256"]=Wt.exec(e.type)??[];return function(e,{signed:t,size:n=256}){if("number"==typeof n){const a=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-a-1n:0n;if(e>a||e<i)throw new c({max:a.toString(),min:i.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:P(e,{size:32,signed:t})}}(t,{signed:n,size:Number(a)})}if(e.type.startsWith("bytes"))return function(e,{param:t}){const[,n]=t.type.split("bytes"),a=f(e);if(!n){let t=e;return a%32!=0&&(t=I(t,{dir:"right",size:32*Math.ceil((e.length-2)/2/32)})),{dynamic:!0,encoded:Z([I(P(a,{size:32})),t])}}if(a!==Number.parseInt(n,10))throw new Nt({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:I(e,{dir:"right"})}}(t,{param:e});if("string"===e.type)return function(e){const t=A(e),n=Math.ceil(f(t)/32),a=[];for(let e=0;e<n;e++)a.push(I(It(t,32*e,32*(e+1)),{dir:"right"}));return{dynamic:!0,encoded:Z([I(P(f(t),{size:32})),...a])}}(t);throw new qt(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Zt(e){let t=0;for(let n=0;n<e.length;n++){const{dynamic:a,encoded:i}=e[n];t+=a?32:f(i)}const n=[],a=[];let i=0;for(let r=0;r<e.length;r++){const{dynamic:s,encoded:o}=e[r];s?(n.push(P(t+i,{size:32})),a.push(o),i+=f(o)):n.push(o)}return Z([...n,...a])}o({id:166,name:"Omni",nativeCurrency:{name:"Omni",symbol:"OMNI",decimals:18},rpcUrls:{default:{http:["https://mainnet.omni.network"],webSocket:["wss://mainnet.omni.network"]}},blockExplorers:{default:{name:"OmniScan",url:"https://omniscan.network"}},testnet:!1});const Xt=11155111;o({...Ct,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:Xt,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:{...Ct.contracts,l1StandardBridge:{[Xt]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const jt=1;o({...Ct,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:{...Ct.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[jt]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[jt]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[jt]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const Qt={[Et.id]:"0x39112541720078c70164EA4Deb61F0A4811910F9",[Ot.id]:"0x25b747aeca2612b9804b5c3bb272a3daefdc6eaa"},Yt={[Et.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[Ot.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},Jt={[Et.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[Ot.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},en={[Et.id]:"0x23321f11a6d44fd1ab790044fdfde5758c902fdc",[Ot.id]:"0x4e7cb1e6800a7b297b38bddcecaf9ca5b6616fdc"},tn={[Et.id]:"0x8DC3b85e1dc1C846ebf3971179a751896842e5dC",[Ot.id]:"0xB4A535B9D35851972736495CC52FBfDaCF32e5dc"},nn={[Et.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[Ot.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},an={[Et.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[Ot.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},rn={[Et.id]:"0x516af52d0c629b5e378da4dc64ecb0744ce10109",[Ot.id]:"0xe2ef58a54ee79dac0D4A130ea58b340124DF9438"},sn={[Et.id]:"0xc5B2E8F197407263F4B62a35C71bFc394ecF95D5",[Ot.id]:"0x67Ee6C83956a75f67bD3Fc8Ca4080D95a145c7C9"},on={[Et.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[Ot.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},pn={[Et.id]:"0x4dc442403e8c758425b93C59Dc737da522f32640",[Ot.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},yn={[Et.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[Ot.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},un={[Et.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[Ot.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},ln={[Et.id]:"0x2154c604df568A5285284D1c4918DC98C39240df",[Ot.id]:"0xcfF222eA42E43F46A98755db237E4c9C2CA9B772"},dn={[Et.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[Ot.id]:"0xD2F3C6185e06925dCBE794C6574315b2202E9CcD"},cn={[Et.id]:"0xc8d4B2Ca8eD6868eE768beAb1f932d7eecCc1b50",[Ot.id]:"0xA8153b14c8CfdDfb02627807D84AB02D12A85477"},mn={[Et.id]:"0xfAB4BA48a322Efc8b25815448BE6018D211e89f3",[Ot.id]:"0x0A3AF63cd86E68a852A1D4923FEfC4e855D8499d"},Tn={[Et.id]:"0x9b332EA14a99B74cAB03A3D3178964eD9CE35fc8",[Ot.id]:"0x4882075542626721C8743D80DC9528e2f54d8A46"},fn={[Et.id]:"0xec0069F8DBbbC94058dc895000dd38ef40b3125d",[Ot.id]:"0xB8f1cb6B4Ff8f07149276bbfA617aed7bd32d20D"},bn={[Et.id]:"0x18713855492A778363e23e2CdE325344b8fd6F8d",[Ot.id]:"0xA4A1a2Ca68151565d5200243a52EEBbCb2C878E0"},hn={[Et.id]:"0x6fb66f4fc262dc86e12136c481ba7c411e668197",[Ot.id]:"0x7981369D21975F39773f289F759F7d7CE1097139"},wn={[Et.id]:"0xFe55dFf581b665479ABe9Fc0A0578FB222cB4Dda",[Ot.id]:"0x2874F9A30348aCAaaD55D74B0BEc9C18f04b471a"},gn={[Et.id]:"0xedd66b080b8e9425c39d349a3fb69f480580f993",[Ot.id]:"0x6428b5C4da36ecB070aBdcB5E1939244A3cC7fb5"},In={[Et.id]:"0xba28ac1540893a34476c24b2c4fa32e0506c9055",[Ot.id]:"0x47226918e518f205584bd75bf81e0b532b0b3ea7"},vn={[Et.id]:"0x06a089fa231aca48d2aa77365123ad9aca43d3a4",[Ot.id]:"0x6582d2bc6a7eba3b40bdf46b3868fc7ec2ff96ec"},xn={[Et.id]:"0x7a04367563a65db574d6b7d084fdbcf4a570c5a6",[Ot.id]:"0xfde5b79e3e2814edd5f91e8694ae400954d9cfaa"},Mn={[Et.id]:"0x656047fd43d2c3a121f2ef859d7171d7dd59f8b9",[Ot.id]:"0x05a5763e9199b88bb591c6b112d0424b2cd7a99e"},kn={[Et.id]:"0x4dfc76A31A2a0110739611683a8b6C5201480fa1",[Ot.id]:"0x551aeD820CAfaca2f9cD1C637AAc076D05a03AC2"},Pn={[Et.id]:"0x828B58B2B2df8ff3221Fbe2b07e75a56a84493Cc",[Ot.id]:"0xe8691E8f576A98c41EBB5E984207d4F51386621f"},_n={[Et.id]:"0x72e6f7948b1B1A343B477F39aAbd2E35E6D27dde",[Ot.id]:"0x73E27908b7d35A9251a54799A8ef4C17e4ED9FF9"},An={[Et.id]:"0xd381f8ea57df43c57cfe6e5b19a0a4700396f28c",[Ot.id]:"0xd3d9047CaBE3346C70b510435866565176e8CE12"},Fn={[Et.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[Ot.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},Cn={[Et.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[Ot.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Sn={[Et.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[Ot.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},En={[Et.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[Ot.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},Dn={[Et.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[Ot.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},On={[Et.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[Ot.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},Bn={[Et.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[Ot.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Ln={[Et.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[Ot.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},Un={[Et.id]:"0x7C5f5A4bBd8fD63184577525326123B519429bDc",[Ot.id]:"0x4B2C77d209D3405F41a037Ec6c77F7F5b8e2ca80"},Rn={[Et.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[Ot.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},Nn=[{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"}],Hn=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let zn=0;const qn=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=Hn[zn];return zn=(zn+1)%Hn.length,`${n}${t}`}return e},Vn=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}},Kn=async e=>{try{const t=new FormData,n=e.base64Image.split(",")[1]||e.base64Image,a=atob(n),i=[];for(let e=0;e<a.length;e+=1024){const t=a.slice(e,e+1024),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const r=new Uint8Array(n);i.push(r)}let r="image/png";e.base64Image.startsWith("data:")&&(r=e.base64Image.split(";")[0].split(":")[1]);const o=new Blob(i,{type:r}),p=e.name||`image.${r.split("/")[1]}`,y=new File([o],p,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:d.data.IpfsHash,PinSize:d.data.PinSize,Timestamp:d.data.Timestamp,isDuplicate:d.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Wn=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-image",{base64Image:e},{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},$n=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-metadata",e,{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload metadata to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},Gn=async(e,t,n)=>{let a,i;if(n.pinataConfig){a=(await Kn({pinataConfig:n.pinataConfig,base64Image:n.metadata.base64Image})).IpfsHash;const t={name:e,description:n.metadata.description,image:`ipfs://${a}`,external_link:n.metadata.websiteUrl||"",collaborators:[],discordUrl:n.metadata.discordUrl||"",twitterUrl:n.metadata.twitterUrl||"",telegramUrl:n.metadata.telegramUrl||""};i=(await Vn({pinataConfig:n.pinataConfig,json:t})).IpfsHash}else{a=(await Wn(n.metadata.base64Image)).ipfsHash;const r={name:e,symbol:t,description:n.metadata.description,imageIpfs:a,websiteUrl:n.metadata.websiteUrl,discordUrl:n.metadata.discordUrl,twitterUrl:n.metadata.twitterUrl,telegramUrl:n.metadata.telegramUrl};i=(await $n(r)).ipfsHash}return`ipfs://${i}`},Zn=[{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"}],Xn=[{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"}]}],jn=[{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"}]}],Qn="07",Yn="09",Jn="0c",ea="0f",ta="10",na="04",aa="0a",ia=({amount:e,slippage:t,swapType:a})=>{if(null==e)return 0n;return(e<0n?-e:e)*("EXACT_IN"===a?BigInt(1e18)-n.parseEther(t):BigInt(1e18)+n.parseEther(t))/BigInt(1e18)},ra=n.zeroAddress,sa=e=>{const t=Fn[e.chainId],a=Cn[e.chainId],i=e.positionManagerAddress,r="0x"+("EXACT_IN"===e.swapType?Qn:Yn)+Jn+ea;let s;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==ra&&e.intermediatePoolKey.currency1!==ra)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=e.intermediatePoolKey?e.intermediatePoolKey.currency0===ra?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:ra;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");const r=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(Xn,[{currencyIn:o,path:e.intermediatePoolKey?[{intermediateCurrency:ra,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData},...r]:r,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");const r=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:ra},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(jn,[{currencyOut:e.memecoin,path:e.intermediatePoolKey?[{fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hookData:e.intermediatePoolKey.hookData,hooks:e.intermediatePoolKey.hooks,intermediateCurrency:o},...r]:r,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[o,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,y]]);if(e.intermediatePoolKey&&e.signature&&e.permitSingle){const t="0x"+aa+ta,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),u];return{calldata:n.encodeFunctionData({abi:Zn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const t="0x"+ta+na,a=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[ra,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:Zn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}},oa=e=>{const t=Fn[e.chainId],a=Cn[e.chainId],i=e.positionManagerAddress,r="0x"+Qn+Jn+ea;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==ra&&e.intermediatePoolKey.currency1!==ra)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const s=e.intermediatePoolKey?e.intermediatePoolKey.currency0===ra?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:ra,o=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:ra,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],p=n.encodeAbiParameters(Xn,[{currencyIn:e.memecoin,path:e.intermediatePoolKey?[...o,{intermediateCurrency:s,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData}]:o,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),u=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[s,e.amountOutMin]),l=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[p,y,u]]);if(e.signature&&e.permitSingle){const t="0x"+aa+ta,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),l];return{calldata:n.encodeFunctionData({abi:Zn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+ta,t=[l];return{calldata:n.encodeFunctionData({abi:Zn,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}},pa=[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}],ya={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:pa},ua=({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Ln[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:Dn[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:ya,message:s},permitSingle:s}};function la(e,t){const{flAmount0:n,flAmount1:a,flFee0:i,flFee1:r,ispAmount0:s,ispAmount1:o,ispFee0:p,ispFee1:y,uniAmount0:u,uniAmount1:l,uniFee0:d,uniFee1:c}=e,m=n+s+u,T=a+o+l,f=i+p+d,b=r+y+c;let h,w;t?(w=m<0?"BUY":"SELL",h=f<0):(w=T<0?"BUY":"SELL",h=b<0);const g=m<0?-m:m,I=T<0?-T:T,v=f<0?-f:f,x=b<0?-b:b,M={isInFLETH:h,amount:t?h?v:x:h?x:v};return"BUY"===w?{type:w,delta:{coinsBought:t?I-(M.isInFLETH?0n:M.amount):g-(M.isInFLETH?0n:M.amount),flETHSold:t?g-(M.isInFLETH?M.amount:0n):I-(M.isInFLETH?M.amount:0n),fees:M}}:{type:w,delta:{coinsSold:t?I-(M.isInFLETH?0n:M.amount):g-(M.isInFLETH?0n:M.amount),flETHBought:t?g-(M.isInFLETH?M.amount:0n):I-(M.isInFLETH?M.amount:0n),fees:M}}}const da=[{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 ca{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:da,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}getSqrtPriceX96(e){return this.contract.read("getSqrtPriceX96",{_flipped:!e.isFLETHZero,_initialPriceParams:e.initialPriceParams,0:n.zeroAddress})}}class ma{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:Nn,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}creatorBalance(e){return this.contract.read("balances",{_recipient:e})}async getFlaunchingFee(e){const t=new ca(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return ia({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=la(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=la(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class Ta extends ma{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,initialMarketCapUSD:r,creator:s,creatorFeeAllocationPercent:o,flaunchAt:p}){if(0!==i)throw new Error("FairLaunch has been deprecated. Please set fairLaunchPercent to 0.");const y=n.parseUnits(r.toString(),6),u=n.encodeAbiParameters([{type:"uint256"}],[y]),l=BigInt(100*i),d=100*o;let c=n.zeroAddress;this.drift.adapter.getSignerAddress&&(c=await this.drift.adapter.getSignerAddress());const m=await this.getFlaunchingFee({sender:c,initialPriceParams:u,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*l/10000n,premineAmount:0n,creator:s,creatorFeeAllocation:d,flaunchAt:p??0n,initialPriceParams:u,feeCalculatorParams:"0x"}},{value:m,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s,metadata:o,pinataConfig:p}){const y=await Gn(e,t,{metadata:o,pinataConfig:p});return this.flaunch({name:e,symbol:t,tokenUri:y,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s})}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const fa=e=>n.hexToBigInt(e),ba=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),ha=[{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 wa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ha,address:e})}poolStateSlot({poolId:e}){const t=ba(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,o=BigInt("0xFFFFFF"),p=Number(s&o),y=p>8388607?p-16777216:p,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),o=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),p=this.poolStateSlot({poolId:e}),y=ba(fa(p)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[o,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const ga=[{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 Ia{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ga,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 va=[{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 xa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:va,address:e})}fairLaunchDuration({poolId:e}){return 1800}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const Ma=[{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 ka{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ma,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Pa=[{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 _a{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Pa,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Aa=[{type:"constructor",inputs:[{name:"_positionManager",type:"address",internalType:"contract PositionManager"},{name:"_flaunchContract",type:"address",internalType:"contract Flaunch"},{name:"_flETH",type:"address",internalType:"contract IFLETH"},{name:"_poolSwap",type:"address",internalType:"contract PoolSwap"},{name:"_treasuryManagerFactory",type:"address",internalType:"contract ITreasuryManagerFactory"},{name:"_merkleAirdrop",type:"address",internalType:"contract IMerkleAirdrop"},{name:"_whitelistFairLaunch",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"calculateFee",inputs:[{name:"_premineAmount",type:"uint256",internalType:"uint256"},{name:"_slippage",type:"uint256",internalType:"uint256"},{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"ethRequired_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"},{name:"_permissions",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"flETH",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFLETH"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"},{name:"_whitelistParams",type:"tuple",internalType:"struct FlaunchZap.WhitelistParams",components:[{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"},{name:"maxTokens",type:"uint256",internalType:"uint256"}]},{name:"_airdropParams",type:"tuple",internalType:"struct FlaunchZap.AirdropParams",components:[{name:"airdropIndex",type:"uint256",internalType:"uint256"},{name:"airdropAmount",type:"uint256",internalType:"uint256"},{name:"airdropEndTime",type:"uint256",internalType:"uint256"},{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"}]},{name:"_treasuryManagerParams",type:"tuple",internalType:"struct FlaunchZap.TreasuryManagerParams",components:[{name:"manager",type:"address",internalType:"address"},{name:"permissions",type:"address",internalType:"address"},{name:"initializeData",type:"bytes",internalType:"bytes"},{name:"depositData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"deployedManager_",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunchContract",inputs:[],outputs:[{name:"",type:"address",internalType:"contract Flaunch"}],stateMutability:"view"},{type:"function",name:"merkleAirdrop",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMerkleAirdrop"}],stateMutability:"view"},{type:"function",name:"poolSwap",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PoolSwap"}],stateMutability:"view"},{type:"function",name:"positionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PositionManager"}],stateMutability:"view"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITreasuryManagerFactory"}],stateMutability:"view"},{type:"function",name:"whitelistFairLaunch",inputs:[],outputs:[{name:"",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"view"},{type:"error",name:"CreatorCannotBeZero",inputs:[]},{type:"error",name:"InsufficientMemecoinsForAirdrop",inputs:[]}];var Fa,Ca,Sa,Ea;function Da(t,a){switch(t){case e.Permissions.CLOSED:return kn[a];case e.Permissions.WHITELISTED:return Pn[a];case e.Permissions.OPEN:default:return n.zeroAddress}}e.FlaunchVersion=void 0,(Fa=e.FlaunchVersion||(e.FlaunchVersion={})).V1="V1",Fa.V1_1="V1_1",Fa.V1_2="V1_2",Fa.ANY="ANY",e.Verifier=void 0,(Ca=e.Verifier||(e.Verifier={})).CLANKER="clanker",Ca.DOPPLER="doppler",Ca.SOLANA="solana",Ca.VIRTUALS="virtuals",Ca.WHITELIST="whitelist",Ca.ZORA="zora",e.LiquidityMode=void 0,(Sa=e.LiquidityMode||(e.LiquidityMode={})).FULL_RANGE="full-range",Sa.CONCENTRATED="concentrated",e.Permissions=void 0,(Ea=e.Permissions||(e.Permissions={})).OPEN="open",Ea.CLOSED="closed",Ea.WHITELISTED="whitelisted";const Oa=[{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 Ba{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:Oa,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new ca(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return ia({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=la(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=la(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}class La extends Ba{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:o,creatorFeeAllocationPercent:p,flaunchAt:y}){if(0!==i)throw new Error("FairLaunch has been deprecated. Please set fairLaunchPercent to 0.");const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*p;let m=n.zeroAddress;this.drift.adapter.getSignerAddress&&(m=await this.drift.adapter.getSignerAddress());const T=await this.getFlaunchingFee({sender:m,initialPriceParams:l,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*d/10000n,fairLaunchDuration:r,premineAmount:0n,creator:o,creatorFeeAllocation:c,flaunchAt:y??0n,initialPriceParams:l,feeCalculatorParams:"0x"}},{value:T,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o,metadata:p,pinataConfig:y}){const u=await Gn(e,t,{metadata:p,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o})}}const Ua={MIN_TICK:-887220,MAX_TICK:887220},Ra=2n**96n,Na=2n**192n,Ha=60,za=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)},qa=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},Va=({tick:e,tickSpacing:t,roundDown:n=!0})=>{if(e%t===0)return e;let a=Math.trunc(e/t)*t;return e<0&&e%t!==0&&(a-=t),n||(a+=t),a},Ka=({tick:e,tickSpacing:t})=>{const n=Math.round(e/t)*t;return Math.max(Ua.MIN_TICK,Math.min(Ua.MAX_TICK,n))},Wa=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},$a=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},Ga=e=>{const t=e<0?BigInt(-e):BigInt(e);if(t>Ua.MAX_TICK)throw new Error("Tick out of range");let n=0n!=(1n&t)?0xfffcb933bd6fad37aa2d162d1a594001n:0x100000000000000000000000000000000n;0n!=(2n&t)&&(n=0xfff97272373d413259a46990580e213an*n>>128n),0n!=(4n&t)&&(n=0xfff2e50f5f656932ef12357cf3c7fdccn*n>>128n),0n!=(8n&t)&&(n=0xffe5caca7e10e4e61c3624eaa0941cd0n*n>>128n),0n!=(16n&t)&&(n=0xffcb9843d60f6159c9db58835c926644n*n>>128n),0n!=(32n&t)&&(n=0xff973b41fa98c081472e6896dfb254c0n*n>>128n),0n!=(64n&t)&&(n=0xff2ea16466c96a3843ec78b326b52861n*n>>128n),0n!=(128n&t)&&(n=0xfe5dee046a99a2a811c461f1969c3053n*n>>128n),0n!=(256n&t)&&(n=0xfcbe86c7900a88aedcffc83b479aa3a4n*n>>128n),0n!=(512n&t)&&(n=0xf987a7253ac413176f2b074cf7815e54n*n>>128n),0n!=(1024n&t)&&(n=0xf3392b0822b70005940c7a398e4b70f3n*n>>128n),0n!=(2048n&t)&&(n=0xe7159475a2c29b7443b29c7fa6e889d9n*n>>128n),0n!=(4096n&t)&&(n=0xd097f3bdfd2022b8845ad8f792aa5825n*n>>128n),0n!=(8192n&t)&&(n=0xa9f746462d870fdf8a65dc1f90e061e5n*n>>128n),0n!=(16384n&t)&&(n=0x70d869a156d2a1b890bb3df62baf32f7n*n>>128n),0n!=(32768n&t)&&(n=0x31be135f97d08fd981231505542fcfa6n*n>>128n),0n!=(65536n&t)&&(n=0x9aa508b5b7a84e1c677de54f3e99bc9n*n>>128n),0n!=(131072n&t)&&(n=0x5d6af8dedb81196699c329225ee604n*n>>128n),0n!=(262144n&t)&&(n=0x2216e584f5fa1ea926041bedfe98n*n>>128n),0n!=(524288n&t)&&(n=0x48a170391f7dc42444e8fa2n*n>>128n),e>0&&(n=(2n**256n-1n)/n);const a=n>>32n;return n%(1n<<32n)==0n?a:a+1n},Za=(e,t,n,a)=>{const i=Ga(a),r=Ga(t),s=Ga(n);let o=0n,p=0n;return i<=r?o=Wa(r,s,e):i<s?(o=Wa(i,s,e),p=$a(r,i,e)):p=$a(r,s,e),{amount0:o,amount1:p}},Xa=({priceInput:e,isDirection1Per0:t,decimals0:n,decimals1:a,spacing:i,shouldGetNearestUsableTick:r=!0})=>{if(!e||isNaN(Number(e)))return 0;const s=Number(e);try{let e;e=t?s/Math.pow(10,n-a):1/s/Math.pow(10,n-a);const o=Math.log(e)/Math.log(1.0001);return r?Va({tick:Math.round(o),tickSpacing:i}):Math.round(o)}catch(e){console.error("Error converting price to tick:",e);const t=Math.floor(Math.log(s)/Math.log(1.0001));return r?Va({tick:t,tickSpacing:i}):t}},ja=e=>{const t=Ga(e.currentTick);let n=Ga(e.tickLower),a=Ga(e.tickUpper);if(n>a&&([n,a]=[a,n]),t<=n)return Qa(n,a,e.amount0);if(t<a){const i=Qa(t,a,e.amount0),r=Ya(n,t,e.amount1);return i<r?i:r}return Ya(n,a,e.amount1)};function Qa(e,t,n){if(e>t&&([e,t]=[t,e]),e===t)return 0n;return n*e*t/(2n**96n*(t-e))}function Ya(e,t,n){if(e>t&&([e,t]=[t,e]),e===t)return 0n;return n*2n**96n/(t-e)}const Ja=e=>{if(0n===e.liquidity)return{amount0:0n,amount1:0n};const t=Ga(e.currentTick);let n=Ga(e.tickLower),a=Ga(e.tickUpper);n>a&&([n,a]=[a,n]);let i=0n,r=0n;return t<=n?i=Wa(n,a,e.liquidity):t<a?(i=Wa(t,a,e.liquidity),r=$a(n,t,e.liquidity)):r=$a(n,a,e.liquidity),{amount0:i,amount1:r}};class ei{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:Aa,address:n}),this.readPositionManagerV1_1=new Ba(Jt[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return ia({amount:t,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async getFlaunchingFee(e){const t=new ca(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return ia({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}ethRequiredToFlaunch(e){return this.contract.read("calculateFee",{_premineAmount:e.premineAmount??0n,_slippage:e.slippagePercent?BigInt(100*e.slippagePercent):0n,_initialPriceParams:e.initialPriceParams})}}class ti extends ei{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(t){if(0!==t.fairLaunchPercent)throw new Error("FairLaunch has been deprecated. Please set fairLaunchPercent to 0.");const a=n.parseUnits(t.initialMarketCapUSD.toString(),6),i=n.encodeAbiParameters([{type:"uint256"}],[a]),r=BigInt(100*t.fairLaunchPercent),s=100*t.creatorFeeAllocationPercent,o=await this.ethRequiredToFlaunch({premineAmount:t.premineAmount??0n,initialPriceParams:i,slippagePercent:5}),p=t.treasuryManagerParams?{manager:t.treasuryManagerParams.manager??n.zeroAddress,permissions:t.treasuryManagerParams.permissions??e.Permissions.OPEN,initializeData:t.treasuryManagerParams.initializeData??"0x",depositData:t.treasuryManagerParams.depositData??"0x"}:{manager:n.zeroAddress,permissions:e.Permissions.OPEN,initializeData:"0x",depositData:"0x"},y=t.trustedSignerSettings?n.encodeAbiParameters([{type:"bool",name:"enabled"},{type:"uint256",name:"walletCap"},{type:"uint256",name:"txCap"}],[t.trustedSignerSettings.enabled,t.trustedSignerSettings.walletCap??0n,t.trustedSignerSettings.txCap??0n]):"0x",u=t.trustedSignerSettings?.enabled?n.encodeAbiParameters([{type:"address",name:"referrer"},{type:"tuple",components:[{type:"uint256",name:"deadline"},{type:"bytes",name:"signature"}]}],[n.zeroAddress,{deadline:BigInt(t.trustedSignerSettings.premineSignedMessage?.deadline??0),signature:t.trustedSignerSettings.premineSignedMessage?.signature??"0x"}]):"0x";return this.contract.write("flaunch",{_flaunchParams:{name:t.name,symbol:t.symbol,tokenUri:t.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*r/10000n,fairLaunchDuration:BigInt(t.fairLaunchDuration),premineAmount:t.premineAmount??0n,creator:t.creator,creatorFeeAllocation:s,flaunchAt:t.flaunchAt??0n,initialPriceParams:i,feeCalculatorParams:y},_trustedFeeSigner:t.trustedSignerSettings?.trustedFeeSigner??n.zeroAddress,_premineSwapHookData:u,_treasuryManagerParams:{...p,permissions:Da(p.permissions,this.chainId)},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:o})}async flaunchIPFS(e){const t=await Gn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(t){return this.flaunch({...t,treasuryManagerParams:{manager:t.revenueManagerInstanceAddress,permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:"0x",depositData:"0x"}})}async flaunchIPFSWithRevenueManager(e){const t=await Gn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}async flaunchWithSplitManager(t){const a=10000000n;let i=BigInt(t.creatorSplitPercent)*a/100n;const r=BigInt(t.managerOwnerSplitPercent)*a/100n,s=t.splitReceivers.map(e=>({recipient:e.address,share:BigInt(e.percent)*a/100n})),o=s.reduce((e,t)=>e+t.share,0n);i+=a-o-r;const p=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:i,ownerShare:r,recipientShares:s}]);return this.flaunch({...t,treasuryManagerParams:{manager:mn[this.chainId],permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:p,depositData:"0x"}})}async flaunchIPFSWithSplitManager(e){const t=await Gn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithSplitManager({...e,tokenUri:t})}async flaunchWithDynamicSplitManager(t){if(t.moderator===n.zeroAddress)throw new Error("Dynamic split moderator cannot be zero address");if(t.creatorShare<0n||t.managerOwnerShare<0n)throw new Error("Creator and manager owner shares cannot be negative");if(t.creatorShare+t.managerOwnerShare>10000000n)throw new Error("Creator and manager owner shares must be less than or equal to 100_00000");const a=new Set,i=t.splitReceivers.map(e=>{if(e.address===n.zeroAddress)throw new Error("Recipient address cannot be zero address");if(e.share<=0n)throw new Error("Recipient share must be greater than zero");const t=n.getAddress(e.address);if(a.has(t))throw new Error("Duplicate recipient found in split receivers");return a.add(t),{recipient:t,share:e.share}}),r=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"},{type:"address",name:"moderator"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:t.creatorShare,ownerShare:t.managerOwnerShare,moderator:t.moderator,recipientShares:i}]);return this.flaunch({...t,treasuryManagerParams:{manager:Tn[this.chainId],permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:r,depositData:"0x"}})}async flaunchIPFSWithDynamicSplitManager(e){const t=await Gn(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithDynamicSplitManager({...e,tokenUri:t})}deployRevenueManager(t){const a=Da(t.permissions??e.Permissions.OPEN,this.chainId);return this.contract.write("deployAndInitializeManager",{_managerImplementation:cn[this.chainId],_owner:t.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:t.protocolRecipient,protocolFee:BigInt(100*t.protocolFeePercent)}]),_permissions:a})}deployStakingManager(t){const a=Da(t.permissions??e.Permissions.OPEN,this.chainId),i=10000000n,r=fn[this.chainId];if(r===n.zeroAddress)throw new Error(`StakingManager not deployed on chainId: ${this.chainId}`);return this.contract.write("deployAndInitializeManager",{_managerImplementation:r,_owner:t.managerOwner,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"stakingToken"},{type:"uint256",name:"minEscrowDuration"},{type:"uint256",name:"minStakeDuration"},{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"}]}],[{stakingToken:t.stakingToken,minEscrowDuration:t.minEscrowDuration,minStakeDuration:t.minStakeDuration,creatorShare:BigInt(t.creatorSharePercent)*i/100n,ownerShare:BigInt(t.ownerSharePercent)*i/100n}]),_permissions:a})}deployBuyBackManager(t){const a=Da(t.permissions??e.Permissions.OPEN,this.chainId),i=10000000n,r=bn[this.chainId];if(r===n.zeroAddress)throw new Error(`BuyBackManager not deployed on chainId: ${this.chainId}`);return this.contract.write("deployAndInitializeManager",{_managerImplementation:r,_owner:t.managerOwner,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"},{type:"tuple",name:"buyBackPoolKey",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"}]}]}],[{creatorShare:BigInt(t.creatorSharePercent)*i/100n,ownerShare:BigInt(t.ownerSharePercent)*i/100n,buyBackPoolKey:qa({currency0:t.buyBackPoolKey.currency0,currency1:t.buyBackPoolKey.currency1,fee:t.buyBackPoolKey.fee,tickSpacing:t.buyBackPoolKey.tickSpacing,hooks:t.buyBackPoolKey.hooks})}]),_permissions:a})}}const ni=[{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 ai{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ni,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 ii=[{inputs:[{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:"BaseURICannotBeEmpty",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",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:[],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"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_newBaseURI",type:"string"}],name:"BaseURIUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinTreasuryImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!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:[{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"}],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:"address",name:"_memecoin",type:"address"}],name:"creator",outputs:[{internalType:"address",name:"creator_",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{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 AnyPositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",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:[{internalType:"address",name:"_memecoin",type:"address"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",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 AnyPositionManager",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:"_memecoinTreasuryImplementation",type:"address"}],name:"setMemecoinTreasuryImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ri{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ii,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 si=[{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 oi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:si,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}decimals(){return this.contract.read("decimals")}totalSupply(){return this.contract.read("totalSupply")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}allowance(e,t){return this.contract.read("allowance",{owner:e,spender:t})}}class pi extends oi{constructor(e,n=t.createDrift()){super(e,n)}approve(e,t){return this.contract.write("approve",{spender:e,amount:t})}}const yi=[{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 ui{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:yi,address:n})}async getSellQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const r=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:Fn[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:Cn[this.chainId],intermediateCurrency:n.zeroAddress},{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:r}]}})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:Fn[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:Cn[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:o,path:[{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:n.zeroAddress},{fee:0,tickSpacing:60,hookData:"0x",hooks:Cn[this.chainId],intermediateCurrency:Fn[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:Cn[this.chainId],intermediateCurrency:Fn[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}async getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:o,fee:i.fee,tickSpacing:i.tickSpacing,hookData:i.hookData,hooks:i.hooks},{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:Cn[this.chainId]},{intermediateCurrency:Fn[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:Cn[this.chainId]},{intermediateCurrency:Fn[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:Rn[this.chainId].fee,tickSpacing:Rn[this.chainId].tickSpacing,hooks:Rn[this.chainId].hooks,hookData:"0x",intermediateCurrency:Rn[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const li=[{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 di{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:li,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class ci extends di{constructor(e,n=t.createDrift()){super(e,n)}approve(e){return this.contract.write("approve",e)}}const mi=[{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 Ti{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:mi,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new ca(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return ia({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=la(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=la(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}const fi=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"address",name:"bidWall",type:"address"}],internalType:"struct AnyPositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyFlaunched",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotApprovedCreator",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_creator",type:"address"},{indexed:!1,internalType:"bool",name:"_isApproved",type:"bool"}],name:"CreatorApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"},{internalType:"bool",name:"_isApproved",type:"bool"}],name:"approveCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"approvedMemecoinCreator",outputs:[{internalType:"bool",name:"isApproved",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IAnyFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class bi{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:fi,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}async getFlaunchingFee(e){return 0n}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=la(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=la(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class hi extends bi{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({memecoin:e,initialMarketCapUSD:t,creator:a,creatorFeeAllocationPercent:i}){const r=n.parseUnits(t.toString(),6),s=n.encodeAbiParameters([{type:"uint256"},{type:"address"}],[r,e]),o=100*i;return this.contract.write("flaunch",{_params:{memecoin:e,creator:a,creatorFeeAllocation:o,initialPriceParams:s,feeCalculatorParams:"0x"}},{onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}}const wi=[{type:"constructor",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"anyPositionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract AnyPositionManager"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"getAllVerifiers",inputs:[],outputs:[{name:"verifiers_",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"},{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"},{name:"_totalSupply",type:"uint256",internalType:"uint256"},{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"removeVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setAnyPositionManager",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"verifyMemecoin",inputs:[{name:"_memecoin",type:"address",internalType:"address"}],outputs:[{name:"verifier_",type:"address",internalType:"address"}],stateMutability:"view"},{type:"event",name:"AnyPositionManagerSet",inputs:[{name:"_anyPositionManager",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"TokenImported",inputs:[{name:"_memecoin",type:"address",indexed:!0,internalType:"address"},{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierAdded",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierRemoved",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"InvalidMemecoin",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"VerifierAlreadyAdded",inputs:[]},{type:"error",name:"VerifierNotAdded",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}];class gi{constructor(e,n,a=t.createDrift()){this.chainId=e,this.drift=a,this.contract=a.contract({abi:wi,address:n})}async verifyMemecoin(e){const t=await this.contract.read("verifyMemecoin",{_memecoin:e});return{isValid:t!==n.zeroAddress,verifier:t}}verifierAddress(t){switch(t){case e.Verifier.CLANKER:return wn[this.chainId];case e.Verifier.DOPPLER:return gn[this.chainId];case e.Verifier.SOLANA:return In[this.chainId];case e.Verifier.VIRTUALS:return vn[this.chainId];case e.Verifier.WHITELIST:return xn[this.chainId];case e.Verifier.ZORA:return Mn[this.chainId];default:throw new Error(`Unknown verifier: ${t}`)}}}class Ii extends gi{constructor(e,n,a=t.createDrift()){super(e,n,a)}async initialize(e){return this.contract.write("initialize",await this.getInitializeParams(e))}async getInitializeParams(e){let t;if("initialMarketCapUSD"in e)t=e.initialMarketCapUSD;else{const a=new oi(e.coinAddress,this.drift),i=await a.totalSupply(),r=await a.decimals(),s=parseFloat(n.formatUnits(i,r));t=e.initialPriceUSD*s}const a=n.parseUnits(t.toString(),6),i=100*e.creatorFeeAllocationPercent;let r=e.verifier?this.verifierAddress(e.verifier):await this.contract.read("verifyMemecoin",{_memecoin:e.coinAddress});const s={_memecoin:e.coinAddress,_creatorFeeAllocation:i,_initialMarketCap:a,_verifier:r};return void 0!==e.tokenSupply?{...s,_totalSupply:e.tokenSupply}:s}}const vi=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_indexer",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"InvalidRecipient",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"PoolIdNotIndexed",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_recipient",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"allocateFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"indexer",outputs:[{internalType:"contract IndexerSubscriber",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_indexer",type:"address"}],name:"setIndexer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"totalFeesAllocated",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class xi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:vi,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}}class Mi extends xi{constructor(e,n=t.createDrift()){super(e,n)}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const ki=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"MismatchedTokensAndLimits",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensAssigned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenIn",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_ethOut",type:"uint256"}],name:"TokensSwapped",type:"event"},{inputs:[{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"}],name:"allocations",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"assignTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"uint160[]",name:"_sqrtPriceX96Limits",type:"uint160[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimAndSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_poolSwap",type:"address"}],name:"setPoolSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];class Pi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ki,address:e})}allocations(e,t){return this.contract.read("allocations",{_user:e,_token:t})}}class _i extends Pi{constructor(e,n=t.createDrift()){super(e,n)}claimTokens(e,t){return this.contract.write("claimTokens",{_tokens:e,_recipient:t})}}const Ai=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"StaleTimeWindowUpdated",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"checkStalePosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"lastPoolTransaction",outputs:[{internalType:"uint256",name:"_timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"setStaleTimeWindow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"staleTimeWindow",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Fi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ai,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Ci=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"_fairLaunchDuration",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class Si{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ci,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 Ei=[{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 Di{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ei,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const Oi=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyBridging",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_newBaseURI",type:"string"}],name:"BaseURIUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinTreasuryImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_BRIDGING_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingFinalized",outputs:[{internalType:"bool",name:"_finalized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStarted",outputs:[{internalType:"uint256",name:"_startedAt",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"}],name:"setMemecoinImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"setMemecoinTreasuryImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Bi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Oi,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const Li=[{type:"constructor",inputs:[{name:"_protocolOwner",type:"address",internalType:"address"},{name:"_feeEscrow",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"approveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"approvedManagerImplementation",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"_approved",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"deployManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"feeEscrow",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrow"}],stateMutability:"view"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"managerImplementation",inputs:[{name:"_manager",type:"address",internalType:"address"}],outputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"unapproveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"ManagerDeployed",inputs:[{name:"_manager",type:"address",indexed:!0,internalType:"address"},{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationApproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationUnapproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnknownManagerImplemention",inputs:[]}];class Ui{constructor(e,n,a=t.createDrift(),i){if(!n)throw new Error("Address is required");this.contract=a.contract({abi:Li,address:n}),this.chainId=e,this.publicClient=i}async getManagerDeployedAddressFromTx(e){if(!this.publicClient)throw new Error("Public client is required");const t=await this.publicClient.waitForTransactionReceipt({hash:e}),a=n.parseEventLogs({abi:Li,eventName:"ManagerDeployed",logs:t.logs}).find(e=>e.address.toLowerCase()===this.contract.address.toLowerCase());if(!a)throw new Error("ManagerDeployed event not found in transaction logs");return a.args._manager}}class Ri extends Ui{constructor(e,n,a=t.createDrift(),i){super(e,n,a,i)}}const Ni=[{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"}],Hi=[{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 zi{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:Hi,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map(e=>({target:e.target,allowFailure:!0,callData:e.callData}))})}}class qi{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:Ni,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 zi(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 Vi extends qi{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 Ki=[{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"}];class Wi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ki,address:e})}permissions(){return this.contract.read("permissions")}managerOwner(){return this.contract.read("managerOwner")}}class $i extends Wi{constructor(e,n=t.createDrift()){super(e,n)}deposit(e,t,n){return this.contract.write("deposit",{_flaunchToken:e,_creator:t,_data:n})}setPermissions(e){return this.contract.write("setPermissions",{_permissions:e})}transferManagerOwnership(e){return this.contract.write("transferManagerOwnership",{_newManagerOwner:e})}}const Gi={[Et.id]:Et,[Ot.id]:Ot},Zi=[{type:"constructor",inputs:[{name:"_treasuryManagerFactory",type:"address",internalType:"address"},{name:"_feeEscrowRegistry",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"MAX_CREATOR_SHARE",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"MAX_OWNER_SHARE",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"VALID_SHARE_TOTAL",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"accumulatorPerShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balances",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"balance_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"claim",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claim",inputs:[{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claimableOwnerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creator",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_creator",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"creatorFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creatorShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creatorTotalClaimed",inputs:[{name:"_creator",type:"address",internalType:"address"}],outputs:[{name:"_claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"feeEscrowRegistry",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrowRegistry"}],stateMutability:"view"},{type:"function",name:"flaunchTokenInternalIds",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCreatorFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"creatorFee_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOwnerFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"ownerFee_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPoolId",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]}],outputs:[{name:"poolId_",type:"bytes32",internalType:"PoolId"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialized",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"internalIds",inputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],outputs:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"isValidCreator",inputs:[{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidRecipient",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"lastProcessedManagerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"managerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"moderator",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextInternalId",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"ownerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"ownerShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingCreatorFees",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"balance_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwnerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"recipientAt",inputs:[{name:"_index",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"recipientCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"recipientShare",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"recipients",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"share",type:"uint256",internalType:"uint256"},{name:"debtPerShare",type:"uint256",internalType:"uint256"},{name:"snapshotBalance",type:"uint256",internalType:"uint256"},{name:"claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setCreator",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setModerator",inputs:[{name:"_moderator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"splitFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokenPoolId",inputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],stateMutability:"view"},{type:"function",name:"tokenTimelock",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokenTotalClaimed",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokens",inputs:[{name:"_creator",type:"address",internalType:"address"}],outputs:[{name:"flaunchTokens_",type:"tuple[]",internalType:"struct ITreasuryManager.FlaunchToken[]",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"totalActiveShares",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferRecipientShare",inputs:[{name:"_newRecipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract TreasuryManagerFactory"}],stateMutability:"view"},{type:"function",name:"updateRecipients",inputs:[{name:"_recipients",type:"tuple[]",internalType:"struct DynamicAddressFeeSplitManager.RecipientShare[]",components:[{name:"recipient",type:"address",internalType:"address"},{name:"share",type:"uint256",internalType:"uint256"}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"CreatorShareInitialized",inputs:[{name:"_creatorShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"CreatorUpdated",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_creator",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ETHReceivedFromUnknownSource",inputs:[{name:"_sender",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ManagerInitialized",inputs:[{name:"_owner",type:"address",indexed:!1,internalType:"address"},{name:"_params",type:"tuple",indexed:!1,internalType:"struct DynamicAddressFeeSplitManager.InitializeParams",components:[{name:"creatorShare",type:"uint256",internalType:"uint256"},{name:"ownerShare",type:"uint256",internalType:"uint256"},{name:"moderator",type:"address",internalType:"address"},{name:"recipientShares",type:"tuple[]",internalType:"struct DynamicAddressFeeSplitManager.RecipientShare[]",components:[{name:"recipient",type:"address",internalType:"address"},{name:"share",type:"uint256",internalType:"uint256"}]}]}],anonymous:!1},{type:"event",name:"ManagerOwnershipTransferred",inputs:[{name:"_previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"_newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ModeratorUpdated",inputs:[{name:"_oldModerator",type:"address",indexed:!0,internalType:"address"},{name:"_newModerator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerShareInitialized",inputs:[{name:"_ownerShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PermissionsUpdated",inputs:[{name:"_permissions",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RecipientAdded",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_share",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RecipientRemoved",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_snapshotBalance",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RecipientShareTransferred",inputs:[{name:"_oldRecipient",type:"address",indexed:!0,internalType:"address"},{name:"_newRecipient",type:"address",indexed:!0,internalType:"address"},{name:"_share",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RecipientShareUpdated",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_oldShare",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_newShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RevenueClaimed",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_amountClaimed",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RoundingDustAllocated",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TreasuryEscrowed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_owner",type:"address",indexed:!1,internalType:"address"},{name:"_sender",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryReclaimed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_sender",type:"address",indexed:!1,internalType:"address"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryTimelocked",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_unlockedAt",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyDeposited",inputs:[]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"CreatorShareAlreadyInitialized",inputs:[]},{type:"error",name:"FlaunchContractNotValid",inputs:[]},{type:"error",name:"InsufficientSharesToTransfer",inputs:[]},{type:"error",name:"InvalidClaimer",inputs:[]},{type:"error",name:"InvalidCreator",inputs:[]},{type:"error",name:"InvalidCreatorAddress",inputs:[]},{type:"error",name:"InvalidCreatorShare",inputs:[]},{type:"error",name:"InvalidOwnerShare",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRecipientShareTotal",inputs:[{name:"_share",type:"uint256",internalType:"uint256"},{name:"_validShare",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidShareAmount",inputs:[]},{type:"error",name:"InvalidShareTotal",inputs:[]},{type:"error",name:"InvalidShareTransferRecipient",inputs:[]},{type:"error",name:"NotInitialized",inputs:[]},{type:"error",name:"NotManagerOwner",inputs:[]},{type:"error",name:"NotOwnerOrModerator",inputs:[]},{type:"error",name:"OwnerShareAlreadyInitialized",inputs:[]},{type:"error",name:"RecipientAlreadyActive",inputs:[]},{type:"error",name:"RecipientNotActive",inputs:[]},{type:"error",name:"Reentrancy",inputs:[]},{type:"error",name:"TokenTimelocked",inputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UnableToSendRevenue",inputs:[{name:"_reason",type:"bytes",internalType:"bytes"}]},{type:"error",name:"UnknownFlaunchToken",inputs:[]},{type:"error",name:"UnknownPoolId",inputs:[]}],Xi=[{inputs:[{internalType:"uint256",name:"wethAmount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}],ji=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerNotPositionManager",type:"error"},{inputs:[{internalType:"uint256",name:"_deadline",type:"uint256"}],name:"DeadlineExpired",type:"error"},{inputs:[],name:"InvalidPoolKey",type:"error"},{inputs:[{internalType:"address",name:"_invalidSigner",type:"address"}],name:"InvalidSigner",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Reentrancy",type:"error"},{inputs:[],name:"SignatureAlreadyUsed",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerAlreadyAdded",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerDoesNotExist",type:"error"},{inputs:[{internalType:"uint256",name:"_requestedAmount",type:"uint256"},{internalType:"uint256",name:"_maxTokensOut",type:"uint256"}],name:"TransactionCapExceeded",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],indexed:!1,internalType:"struct TrustedSignerFeeCalculator.FairLaunchSettings",name:"_settings",type:"tuple"}],name:"PoolKeyFairLaunchSettingsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"PoolKeySignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_signer",type:"address"},{indexed:!1,internalType:"bool",name:"_isTrusted",type:"bool"}],name:"TrustedSignerUpdated",type:"event"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"addTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"",type:"tuple"},{internalType:"uint24",name:"_baseFee",type:"uint24"}],name:"determineSwapFee",outputs:[{internalType:"uint24",name:"swapFee_",type:"uint24"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchSettings",outputs:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"isTrustedSigner",outputs:[{internalType:"bool",name:"valid_",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_origin",type:"address"}],name:"maxTokensOut",outputs:[{internalType:"bool",name:"hasCap_",type:"bool"},{internalType:"uint256",name:"maxTokensOut_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"removeTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"bytes",name:"_params",type:"bytes"}],name:"setFlaunchParams",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"address",name:"_signer",type:"address"}],name:"setTrustedPoolKeySigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"trackSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"trustedPoolKeySigner",outputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_wallet",type:"address"}],name:"walletPurchasedAmount",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"}];class Qi{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ji,address:e})}trustedPoolKeySigner({poolId:e}){return this.contract.read("trustedPoolKeySigner",{_poolId:e})}}class Yi{constructor(e,n=t.createDrift(),a){this.TICK_SPACING=Ha,this.chainId=e,this.drift=n,this.publicClient=a,this.resolveIPFS=qn,this.readPositionManager=new ma(Yt[this.chainId],n),this.readPositionManagerV1_1=new Ba(Jt[this.chainId],n),this.readPositionManagerV1_2=new Ti(en[this.chainId],n),this.readAnyPositionManager=new bi(tn[this.chainId],n),this.readTokenImporter=new gi(this.chainId,hn[this.chainId],n),this.readFeeEscrow=new xi(_n[this.chainId],n),this.readReferralEscrow=new Pi(An[this.chainId],n),this.readFlaunchZap=new ei(this.chainId,Qt[this.chainId],n),this.readPoolManager=new wa(En[this.chainId],n),this.readStateView=new Ia(Bn[this.chainId],n),this.readFairLaunch=new xa(on[this.chainId],n),this.readFairLaunchV1_1=new Si(pn[this.chainId],n),this.readBidWall=new ka(yn[this.chainId],n),this.readBidWallV1_1=new Fi(un[this.chainId],n),this.readAnyBidWall=new _a(ln[this.chainId],n),this.readFlaunch=new ai(nn[this.chainId],n),this.readFlaunchV1_1=new Di(an[this.chainId],n),this.readFlaunchV1_2=new Bi(rn[this.chainId],n),this.readAnyFlaunch=new ri(sn[this.chainId],n),this.readQuoter=new ui(this.chainId,On[this.chainId],n),this.readPermit2=new di(Ln[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_2.isValidCoin(e)||await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)||await this.readAnyPositionManager.isValidCoin(e)}async getCoinVersion(t){if(await this.readPositionManagerV1_2.isValidCoin(t))return e.FlaunchVersion.V1_2;if(await this.readPositionManagerV1_1.isValidCoin(t))return e.FlaunchVersion.V1_1;if(await this.readPositionManager.isValidCoin(t))return e.FlaunchVersion.V1;if(await this.readAnyPositionManager.isValidCoin(t))return e.FlaunchVersion.ANY;throw new Error(`Unknown coin version for address: ${t}`)}getPositionManager(t){switch(t){case e.FlaunchVersion.V1:return this.readPositionManager;case e.FlaunchVersion.V1_1:return this.readPositionManagerV1_1;case e.FlaunchVersion.V1_2:return this.readPositionManagerV1_2;case e.FlaunchVersion.ANY:return this.readAnyPositionManager;default:return this.readPositionManagerV1_2}}getFairLaunch(t){switch(t){case e.FlaunchVersion.V1:return this.readFairLaunch;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:case e.FlaunchVersion.ANY:default:return this.readFairLaunchV1_1}}getBidWall(t){switch(t){case e.FlaunchVersion.V1:return this.readBidWall;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:return this.readBidWallV1_1;case e.FlaunchVersion.ANY:return this.readAnyBidWall;default:return this.readBidWallV1_1}}getFlaunch(t){switch(t){case e.FlaunchVersion.V1:return this.readFlaunch;case e.FlaunchVersion.V1_1:return this.readFlaunchV1_1;case e.FlaunchVersion.V1_2:return this.readFlaunchV1_2;case e.FlaunchVersion.ANY:return this.readAnyFlaunch;default:return this.readFlaunchV1_2}}getFlaunchAddress(e){return this.getFlaunch(e).contract.address}getPositionManagerAddress(e){return this.getPositionManager(e).contract.address}getFairLaunchAddress(e){return this.getFairLaunch(e).contract.address}getBidWallAddress(e){return this.getBidWall(e).contract.address}async getFlaunchTokenIdForMemecoin(e){const t=await this.getCoinVersion(e),n=this.getFlaunch(t),a=await n.tokenId(e);return{flaunchAddress:n.contract.address,tokenId:a}}async getCoinMetadata(e){const t=new oi(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 ai(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new zi(this.drift),i=e.map(e=>this.readFlaunch.contract.encodeFunctionData("memecoin",{_tokenId:e.tokenId})),r=(await a.aggregate3(i.map((t,n)=>({target:e[n].flaunch,callData:t})))).map(e=>this.readFlaunch.contract.decodeFunctionReturn("memecoin",e.returnData)),o=[];r.forEach(()=>{o.push(this.drift.adapter.encodeFunctionData({abi:si,fn:"name"})),o.push(this.drift.adapter.encodeFunctionData({abi:si,fn:"symbol"})),o.push(this.drift.adapter.encodeFunctionData({abi:si,fn:"tokenURI"}))});const p=await a.aggregate3(o.map((e,t)=>({target:r[Math.floor(t/3)],callData:e}))),y=[];for(let e=0;e<r.length;e++){const t=this.drift.adapter.decodeFunctionReturn({abi:si,fn:"name",data:p[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:si,fn:"symbol",data:p[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:si,fn:"tokenURI",data:p[3*e+2].returnData});y.push({name:t,symbol:n,tokenURI:a,coinAddress:r[e]})}const u=[];for(let e=0;e<y.length;e+=t){const a=y.slice(e,e+t),i=await Promise.all(a.map(async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=(await s.default.get(this.resolveIPFS(n))).data;return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?this.resolveIPFS(i.image):"",external_link:i.websiteUrl??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??"",telegramUrl:i.telegramUrl??""}}));u.push(...i),e+t<y.length&&await new Promise(e=>setTimeout(e,n))}return u}watchPoolCreated(t,n=e.FlaunchVersion.V1_1){return n===e.FlaunchVersion.V1?this.readPositionManager.watchPoolCreated(t):this.readPositionManagerV1_1.watchPoolCreated(t)}pollPoolCreatedNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolCreatedNow;if(n)return n()}async getPoolCreatedFromTx(e){if(!this.publicClient)throw new Error("Public client is required to fetch transaction data");const t=await this.publicClient.getTransactionReceipt({hash:e});if(!t)throw new Error(`Transaction not found: ${e}`);for(const e of t.logs)try{const t=n.decodeEventLog({abi:mi,data:e.data,topics:e.topics});if("PoolCreated"===t.eventName)return{poolId:t.args._poolId,memecoin:t.args._memecoin,memecoinTreasury:t.args._memecoinTreasury,tokenId:t.args._tokenId,currencyFlipped:t.args._currencyFlipped,flaunchFee:t.args._flaunchFee,params:t.args._params}}catch(e){continue}return null}async watchPoolSwap(t,n=e.FlaunchVersion.V1_1){return(n===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).watchPoolSwap({...t,filterByPoolId:t.filterByCoin?await this.poolId(t.filterByCoin,n):void 0,flETHIsCurrencyZero:t.filterByCoin?this.flETHIsCurrencyZero(t.filterByCoin):void 0})}pollPoolSwapNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolSwapNow;if(n)return n()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return(await this.readStateView.poolSlot0({poolId:a})).tick}async coinPriceInETH(e,t){const n=await this.determineCoinVersion(e,t),a=this.flETHIsCurrencyZero(e),i=await this.currentTick(e,n),r=Math.pow(1.0001,i);let s=0;return s=a?1/r:r,s.toFixed(18)}async coinPriceInUSD({coinAddress:e,version:t,drift:n}){const a=await this.determineCoinVersion(e,t),i=await this.coinPriceInETH(e,a),r=await this.getETHUSDCPrice(n);return(parseFloat(i)*r).toFixed(18)}async coinMarketCapInUSD({coinAddress:e,version:t,drift:n}){const a=await this.coinPriceInUSD({coinAddress:e,version:t,drift:n});return(1e11*parseFloat(a)).toFixed(2)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new ui(t,On[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async initialSqrtPriceX96(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=this.flETHIsCurrencyZero(e.coinAddress);return new ca(await this.readPositionManagerV1_1.initialPrice(),this.drift).getSqrtPriceX96({isFLETHZero:i,initialPriceParams:a})}async fairLaunchInfo(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchInfo({poolId:a})}async isFairLaunchActive(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return this.getFairLaunch(n).isFairLaunchActive({poolId:a})}async trustedPoolKeySignerStatus(t,a){const i=await this.determineCoinVersion(t,a);if(i===e.FlaunchVersion.ANY)throw new Error("AnyPositionManager is not supported for TrustedSigner");const r=await this.fairLaunchInfo(t,i);let s;r.closed&&(s=!1),(new Date).getTime()/1e3>r.endsAt&&(s=!1),s=!0;const o={isFairLaunchActive:s,fairLaunchStartsAt:Number(r.startsAt),fairLaunchEndsAt:Number(r.endsAt)},p=await this.getPositionManager(i).getFeeCalculator({forFairLaunch:!0});try{const e=new Qi(p,this.drift),n=await this.poolId(t,i),a=await e.trustedPoolKeySigner({poolId:n});return{isCurrentlyEnabled:a.enabled&&s,trustedSignerEnabled:a.enabled,signer:a.signer,...o}}catch{return{isCurrentlyEnabled:!1,trustedSignerEnabled:!1,signer:n.zeroAddress,...o}}}async fairLaunchDuration(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchDuration({poolId:a})}async initialTick(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return(await this.getFairLaunch(n).fairLaunchInfo({poolId:a})).initialTick}async fairLaunchETHOnlyPosition(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=Va({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=o+this.TICK_SPACING):(p=Va({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),o=p-this.TICK_SPACING);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Za(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=Ua.MIN_TICK,p=Va({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(o=Va({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=Ua.MAX_TICK);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Za(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async bidWallPosition(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n),i=this.flETHIsCurrencyZero(e),{amount0_:r,amount1_:s,pendingEth_:o}=await this.getBidWall(n).position({poolId:a}),{tickLower:p,tickUpper:y}=await this.getBidWall(n).poolInfo({poolId:a}),[u,l]=i?[r,s]:[s,r];return{flETHAmount:u,coinAmount:l,pendingEth:o,tickLower:p,tickUpper:y}}creatorRevenue(e,t){return t?this.readPositionManager.creatorBalance(e):this.readFeeEscrow.balances(e)}referralBalance(e,t){return this.readReferralEscrow.allocations(e,t)}revenueManagerBalance(e){return new qi(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new qi(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new qi(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new qi(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new qi(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async treasuryManagerInfo(e){const t=new Wi(e,this.drift),[n,a]=await Promise.all([t.managerOwner(),t.permissions()]);return{managerOwner:n,permissions:a}}async poolId(e,t){let n;const a=await this.determineCoinVersion(e,t);return n=this.getPositionManagerAddress(a),za(qa({currency0:Fn[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:n}))}getFlaunchingFee(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readPositionManagerV1_1.getFlaunchingFee({sender:e.sender,initialPriceParams:a,slippagePercent:e.slippagePercent})}ethRequiredToFlaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readFlaunchZap.ethRequiredToFlaunch({premineAmount:e.premineAmount,initialPriceParams:a,slippagePercent:e.slippagePercent})}async getSellQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a}){const i=await this.determineCoinVersion(e,t);return this.readQuoter.getSellQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(i),intermediatePoolKey:a})}async getBuyQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=await this.determineCoinVersion(e,t);return this.readQuoter.getBuyQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}async getBuyQuoteExactOutput({coinAddress:e,amountOut:t,version:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=await this.determineCoinVersion(e,n);return this.readQuoter.getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}flETHIsCurrencyZero(e){return e>Fn[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}async parseSwapTx(e){return this.getPositionManager(e.version).parseSwapTx(e.txHash,e.flETHIsCurrencyZero)}tokenImporterVerifyMemecoin(e){return this.readTokenImporter.verifyMemecoin(e)}async getCoinInfo(e){const t=new oi(e,this.drift),[a,i]=await Promise.all([t.totalSupply(),t.decimals()]);return{totalSupply:a,decimals:i,formattedTotalSupplyInDecimals:parseFloat(n.formatUnits(a,i))}}async getMarketContext(e,t){const n=await this.getETHUSDCPrice(),a=this.flETHIsCurrencyZero(e);return{ethUsdPrice:n,isFlethZero:a,decimals0:a?18:t,decimals1:a?t:18}}marketCapToTokenPriceEth(e,t,n){return e/t/n}convertPriceToTick(e,t,n,a){return Xa({priceInput:e.toString(),isDirection1Per0:!t,decimals0:n,decimals1:a,spacing:Ha})}calculateCurrentTickFromMarketCap(e,t,n){if(!e)return;const a=parseFloat(e),i=this.marketCapToTokenPriceEth(a,t,n.ethUsdPrice);return this.convertPriceToTick(i,n.isFlethZero,n.decimals0,n.decimals1)}async calculateAddLiquidityTicks({coinAddress:t,liquidityMode:n,minMarketCap:a,maxMarketCap:i,currentMarketCap:r}){const{totalSupply:s,decimals:o,formattedTotalSupplyInDecimals:p}=await this.getCoinInfo(t);if(n===e.LiquidityMode.FULL_RANGE){let e;if(r){const n=await this.getMarketContext(t,o);e=this.calculateCurrentTickFromMarketCap(r,p,n)}return{tickLower:Ka({tick:Ua.MIN_TICK,tickSpacing:Ha}),tickUpper:Ka({tick:Ua.MAX_TICK,tickSpacing:Ha}),currentTick:e,coinTotalSupply:s,coinDecimals:o}}{const e=await this.getMarketContext(t,o),n=parseFloat(a),y=parseFloat(i);if(n<=0||y<=0||n>=y)throw new Error("[ReadFlaunchSDK.addLiquidityCalculateTicks]: Invalid market cap range");const u=this.marketCapToTokenPriceEth(n,p,e.ethUsdPrice),l=this.marketCapToTokenPriceEth(y,p,e.ethUsdPrice),d=this.convertPriceToTick(u,e.isFlethZero,e.decimals0,e.decimals1),c=this.convertPriceToTick(l,e.isFlethZero,e.decimals0,e.decimals1),m=this.calculateCurrentTickFromMarketCap(r,p,e);return{tickLower:Math.min(d,c),tickUpper:Math.max(d,c),currentTick:m,coinTotalSupply:s,coinDecimals:o}}}async checkSingleSidedAddLiquidity(e){const{coinAddress:t,liquidityMode:n}=e;let a,i,r;if("minMarketCap"in e)a=e.minMarketCap,i=e.maxMarketCap,r=e.currentMarketCap;else{const{formattedTotalSupplyInDecimals:n}=await this.getCoinInfo(t);a=(parseFloat(e.minPriceUSD)*n).toString(),i=(parseFloat(e.maxPriceUSD)*n).toString(),e.currentPriceUSD&&(r=(e.currentPriceUSD*n).toString())}let{tickLower:s,tickUpper:o,currentTick:p}=await this.calculateAddLiquidityTicks({coinAddress:t,liquidityMode:n,minMarketCap:a,maxMarketCap:i,currentMarketCap:r});if(!p){const n=await this.determineCoinVersion(t,e.version);p=(await this.readStateView.poolSlot0({poolId:za(this.createPoolKey(t,n))})).tick}const y=this.flETHIsCurrencyZero(t);if(!(p<=s||p>=o))return{isSingleSided:!1,shouldHideCoinInput:!1,shouldHideETHInput:!1};let u=!1,l=!1;return p<=s?y?u=!0:l=!0:p>=o&&(y?l=!0:u=!0),{isSingleSided:!0,shouldHideCoinInput:u,shouldHideETHInput:l}}async calculateAddLiquidityAmounts(e){const{coinAddress:t,liquidityMode:n,inputToken:a,coinOrEthInputAmount:i}=e;let r,s,o;if("minMarketCap"in e)r=e.minMarketCap,s=e.maxMarketCap,o=e.currentMarketCap;else{const{formattedTotalSupplyInDecimals:n}=await this.getCoinInfo(t);r=(parseFloat(e.minPriceUSD)*n).toString(),s=(parseFloat(e.maxPriceUSD)*n).toString(),e.currentPriceUSD&&(o=(e.currentPriceUSD*n).toString())}let{tickLower:p,tickUpper:y,currentTick:u}=await this.calculateAddLiquidityTicks({coinAddress:t,liquidityMode:n,minMarketCap:r,maxMarketCap:s,currentMarketCap:o});if(!u){const n=await this.determineCoinVersion(t,e.version);u=(await this.readStateView.poolSlot0({poolId:za(this.createPoolKey(t,n))})).tick}const l=this.flETHIsCurrencyZero(t);try{const e=Ga(u);let t,n,r=Ga(p),s=Ga(y);r>s&&([r,s]=[s,r]);const o="coin"===a;if(o&&!l||!o&&l)if(t=i,e<=r)n=0n;else if(e>=s){n=i*(s*s/Ra)/Ra}else{const t=Na*(s-e)/Ra;n=t>0n?i*(s*e*(e-r)/Ra)/t:0n}else if(n=i,e<=r){t=i*Ra/(r*r/Ra)}else if(e>=s)t=0n;else{const n=s*e*(e-r)/Ra;t=n>0n?i*(Na*(s-e)/Ra)/n:0n}let[d,c]=l?[t,n]:[n,t];return(u<=p||u>=y)&&(u<=p?l?c=0n:d=0n:u>=y&&(l?d=0n:c=0n)),{coinAmount:c,ethAmount:d,tickLower:p,tickUpper:y,currentTick:u}}catch(e){throw console.error("Error calculating liquidity amounts:",e),e}}async isMemecoinImported(e){const t=qa({currency0:e,currency1:Fn[this.chainId],fee:0,tickSpacing:Ha,hooks:tn[this.chainId]});return 0n!==(await this.readStateView.poolSlot0({poolId:za(t)})).sqrtPriceX96}async isFlaunchTokenApprovedForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.read({abi:n.erc721Abi,address:i,fn:"isApprovedForAll",args:{owner:t,operator:a}})}async determineCoinVersion(t,n){if(!n)try{n=await this.getCoinVersion(t)}catch{n=e.FlaunchVersion.ANY}return n}createPoolKey(e,t){const n=Fn[this.chainId];return qa({currency0:e,currency1:n,fee:0,tickSpacing:this.TICK_SPACING,hooks:this.getPositionManagerAddress(t)})}}class Ji extends Yi{constructor(e,n=t.createDrift(),a){super(e,n,a),this.readWritePositionManager=new Ta(Yt[this.chainId],n),this.readWritePositionManagerV1_1=new La(Jt[this.chainId],n),this.readWriteAnyPositionManager=new hi(tn[this.chainId],n),this.readWriteTokenImporter=new Ii(this.chainId,hn[this.chainId],n),this.readWriteFeeEscrow=new Mi(_n[this.chainId],n),this.readWriteReferralEscrow=new _i(An[this.chainId],n),this.readWriteFlaunchZap=new ti(this.chainId,Qt[this.chainId],n),this.readWriteTreasuryManagerFactory=new Ri(this.chainId,dn[this.chainId],n,this.publicClient),this.readWritePermit2=new ci(Ln[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteFlaunchZap.deployRevenueManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}async deployStakingManager(e){const t=await this.readWriteFlaunchZap.deployStakingManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}async deployBuyBackManager(e){const t=await this.readWriteFlaunchZap.deployBuyBackManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}flaunchWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchWithRevenueManager(e)}async flaunchIPFSWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchIPFSWithRevenueManager(e)}flaunchWithSplitManager(e){return this.readWriteFlaunchZap.flaunchWithSplitManager(e)}flaunchIPFSWithSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithSplitManager(e)}flaunchWithDynamicSplitManager(e){return this.readWriteFlaunchZap.flaunchWithDynamicSplitManager(e)}flaunchIPFSWithDynamicSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithDynamicSplitManager(e)}anyFlaunch(e){return this.readWriteAnyPositionManager.flaunch(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new oi(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){const n=await this.determineCoinVersion(e.coinAddress,t),a=await this.drift.getSignerAddress();let i,r,s,o;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?ia({amount:await this.readQuoter.getBuyQuoteExactInput({coinAddress:e.coinAddress,amountIn:i,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountOutMin):(s=e.amountOut,o=void 0===e.amountInMax?ia({amount:await this.readQuoter.getBuyQuoteExactOutput({coinAddress:e.coinAddress,coinOut:s,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountInMax);const{commands:p,inputs:y}=sa({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer??null,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:o,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,permitSingle:e.permitSingle,signature:e.signature,hookData:e.hookData});return this.drift.adapter.write({abi:Zn,address:Dn[this.chainId],fn:"execute",args:{commands:p,inputs:y},value:e.intermediatePoolKey?0n:"EXACT_IN"===e.swapType?i:o})}async sellCoin(e,t){const n=await this.determineCoinVersion(e.coinAddress,t);let a;await this.readQuoter.contract.cache.clear(),a=void 0===e.amountOutMin?ia({amount:await this.readQuoter.getSellQuoteExactInput({coinAddress:e.coinAddress,amountIn:e.amountIn,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:"EXACT_IN"}):e.amountOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=oa({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,amountOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer??null,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey});return this.drift.write({abi:Zn,address:Dn[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:n}=await this.getPermit2AllowanceAndNonce(e),a=BigInt(Math.floor(Date.now()/1e3)+31536e4);return ua({chainId:this.chainId,coinAddress:e,nonce:n,deadline:void 0!==t?t:a})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,Dn[this.chainId]);return{allowance:t,nonce:n}}async getERC20AllowanceToPermit2(e){return new oi(e,this.drift).allowance(await this.drift.getSignerAddress(),Ln[this.chainId])}async setERC20AllowanceToPermit2(e,t){return new pi(e,this.drift).approve(Ln[this.chainId],t)}async withdrawCreatorRevenue(e){const t=e.recipient??await this.drift.getSignerAddress();return e.isV1?this.readWritePositionManager.withdrawFees(t):this.readWriteFeeEscrow.withdrawFees(t)}claimReferralBalance(e,t){return this.readWriteReferralEscrow.claimTokens(e,t)}revenueManagerProtocolClaim(e){return new Vi(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new Vi(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new Vi(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}treasuryManagerSetPermissions(e,t){const n=new $i(e,this.drift),a=Da(t,this.chainId);return n.setPermissions(a)}treasuryManagerTransferOwnership(e,t){return new $i(e,this.drift).transferManagerOwnership(t)}async setFlaunchTokenApprovalForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.write({abi:n.erc721Abi,address:i,fn:"setApprovalForAll",args:{operator:t,approved:a}})}async addToTreasuryManager(e,t,n,a,i="0x"){const r=new $i(e,this.drift),s={flaunch:this.getFlaunchAddress(t),tokenId:n},o=a??await this.drift.getSignerAddress();return r.deposit(s,o,i)}importMemecoin(e){return this.readWriteTokenImporter.initialize(e)}async getAddLiquidityCalls(e){const{coinAddress:t}=e,a=Fn[this.chainId];let i,r,s,o,p;const y=await this.determineCoinVersion(t,e.version),u=this.createPoolKey(t,y);if("tickLower"in e)if(i=e.coinAmount,r=e.flethAmount,s=e.tickLower,o=e.tickUpper,e.currentTick)p=e.currentTick;else{p=(await this.readStateView.poolSlot0({poolId:za(u)})).tick}else{let n,a,u;if("minMarketCap"in e)n=e.minMarketCap,a=e.maxMarketCap,u=e.initialMarketCapUSD;else{const{formattedTotalSupplyInDecimals:i}=await this.getCoinInfo(t);n=(parseFloat(e.minPriceUSD)*i).toString(),a=(parseFloat(e.maxPriceUSD)*i).toString(),e.initialPriceUSD&&(u=e.initialPriceUSD*i)}const l=await this.calculateAddLiquidityAmounts({coinAddress:t,liquidityMode:e.liquidityMode,coinOrEthInputAmount:e.coinOrEthInputAmount,inputToken:e.inputToken,minMarketCap:n,maxMarketCap:a,currentMarketCap:u?.toString(),version:y});i=l.coinAmount,r=l.ethAmount,s=l.tickLower,o=l.tickUpper,p=l.currentTick}const l=await this.drift.getSignerAddress(),d=Ln[this.chainId],c=await this.drift.multicall({calls:[{address:t,abi:n.erc20Abi,fn:"allowance",args:{owner:l,spender:d}},{address:a,abi:n.erc20Abi,fn:"allowance",args:{owner:l,spender:d}},{address:d,abi:li,fn:"allowance",args:{0:l,1:t,2:Un[this.chainId]}},{address:d,abi:li,fn:"allowance",args:{0:l,1:a,2:Un[this.chainId]}},{address:t,abi:n.erc20Abi,fn:"symbol"}]}),m=c[0].value,T=c[1].value,f=c[2].value,b=c[3].value,h=c[4].value,w=m<i,g=T<r,I=Math.floor(Date.now()/1e3),v=f.amount<i||f.expiration<=I,x=r>0n&&(b.amount<r||b.expiration<=I),M=[];w&&M.push({to:t,description:`Approve ${h} for Permit2`,data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[d,i]})}),g&&M.push({to:a,description:"Approve flETH for Permit2",data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[d,r]})});const k=Math.floor(Date.now()/1e3)+3600;v&&M.push({to:d,description:`Permit2 approval for ${h} to UniV4PositionManager`,data:n.encodeFunctionData({abi:li,functionName:"approve",args:[t,Un[this.chainId],i,k]})}),x&&M.push({to:d,description:"Permit2 approval for flETH to UniV4PositionManager",data:n.encodeFunctionData({abi:li,functionName:"approve",args:[a,Un[this.chainId],r,k]})}),r>0n&&M.push({to:a,description:"Wrap ETH to flETH",data:n.encodeFunctionData({abi:Xi,functionName:"deposit",args:[0n]}),value:r});const P=u.currency0===t?i:r,_=u.currency0===t?r:i,A=e.slippagePercent,{finalLiquidity:F,finalAmount0:C,finalAmount1:S}=this.calculateConstrainedLiquidity(p,s,o,P,_,A);return M.push(this.createLiquidityCall(u,s,o,F,C,S,l)),M}async getImportAndAddLiquidityCalls(t){let n;if("initialMarketCapUSD"in t){const e=t;n=await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialMarketCapUSD:e.initialMarketCapUSD,verifier:e.verifier})}else{const e=t;n=await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialPriceUSD:e.initialPriceUSD,verifier:e.verifier})}const a=await this.getAddLiquidityCalls({...t,version:e.FlaunchVersion.ANY});return[{to:this.readWriteTokenImporter.contract.address,data:this.readWriteTokenImporter.contract.encodeFunctionData("initialize",n),description:"Import Memecoin to Flaunch"},...a]}async getSingleSidedCoinAddLiquidityCalls(e){const{coinAddress:t,coinAmount:a}=e,i=await this.determineCoinVersion(t,e.version),r=this.createPoolKey(t,i);let s;const o=await this.readStateView.poolSlot0({poolId:za(r)});if(s=o.tick,0n===o.sqrtPriceX96&&("initialMarketCapUSD"in e&&e.initialMarketCapUSD||"initialPriceUSD"in e&&e.initialPriceUSD)){let a,{decimals:i,formattedTotalSupplyInDecimals:r}=await this.getCoinInfo(t);if("tokenSupply"in e&&void 0!==e.tokenSupply&&(r=parseFloat(n.formatUnits(e.tokenSupply,i))),"initialMarketCapUSD"in e&&e.initialMarketCapUSD)a=e.initialMarketCapUSD;else{if(!("initialPriceUSD"in e)||!e.initialPriceUSD)throw new Error("Either initialMarketCapUSD or initialPriceUSD must be provided");a=e.initialPriceUSD*r}const o=await this.getMarketContext(t,i),p=this.calculateCurrentTickFromMarketCap(a.toString(),r,o);if(void 0===p)throw new Error("Failed to calculate current tick from market cap");s=p}let p,y;this.flETHIsCurrencyZero(t)?(p=Ua.MIN_TICK,y=Va({tick:s,tickSpacing:this.TICK_SPACING,roundDown:!0})):(p=Va({tick:s,tickSpacing:this.TICK_SPACING,roundDown:!1}),y=Ua.MAX_TICK);const u=await this.drift.getSignerAddress(),l=Ln[this.chainId],d=await this.drift.multicall({calls:[{address:t,abi:n.erc20Abi,fn:"allowance",args:{owner:u,spender:l}},{address:l,abi:li,fn:"allowance",args:{0:u,1:t,2:Un[this.chainId]}},{address:t,abi:n.erc20Abi,fn:"symbol"}]}),c=d[0].value,m=d[1].value,T=d[2].value,f=c<a,b=Math.floor(Date.now()/1e3),h=m.amount<a||m.expiration<=b,w=[];f&&w.push({to:t,description:`Approve ${T} for Permit2`,data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[l,a]})});const g=Math.floor(Date.now()/1e3)+3600;h&&w.push({to:l,description:`Permit2 approval for ${T} to UniV4PositionManager`,data:n.encodeFunctionData({abi:li,functionName:"approve",args:[t,Un[this.chainId],a,g]})});const I=r.currency0===t?a:0n,v=r.currency0===t?0n:a,x=e.slippagePercent,{finalLiquidity:M,finalAmount0:k,finalAmount1:P}=this.calculateConstrainedLiquidity(s,p,y,I,v,x);return w.push(this.createLiquidityCall(r,p,y,M,k,P,u)),w}async getImportAndSingleSidedCoinAddLiquidityCalls(t){let n;if("initialMarketCapUSD"in t){const e=t;n="tokenSupply"in e&&void 0!==e.tokenSupply?await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialMarketCapUSD:e.initialMarketCapUSD,verifier:e.verifier,tokenSupply:e.tokenSupply}):await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialMarketCapUSD:e.initialMarketCapUSD,verifier:e.verifier})}else{const e=t;n="tokenSupply"in e&&void 0!==e.tokenSupply?await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialPriceUSD:e.initialPriceUSD,verifier:e.verifier,tokenSupply:e.tokenSupply}):await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialPriceUSD:e.initialPriceUSD,verifier:e.verifier})}const a=await this.getSingleSidedCoinAddLiquidityCalls({...t,..."_totalSupply"in n&&{tokenSupply:n._totalSupply},version:e.FlaunchVersion.ANY});return[{to:this.readWriteTokenImporter.contract.address,data:this.readWriteTokenImporter.contract.encodeFunctionData("initialize",n),description:"Import Memecoin to Flaunch"},...a]}calculateConstrainedLiquidity(e,t,n,a,i,r=.05){const s=ja({currentTick:e,tickLower:t,tickUpper:n,amount0:a,amount1:i}),o=Ja({currentTick:e,tickLower:t,tickUpper:n,liquidity:s});let p=s,y=o.amount0,u=o.amount1;if(o.amount0>a||o.amount1>i){console.log("Actual amounts exceed user input, constraining...");const r=ja({currentTick:e,tickLower:t,tickUpper:n,amount0:a,amount1:0n}),s=ja({currentTick:e,tickLower:t,tickUpper:n,amount0:0n,amount1:i});p=r<s?r:s;const o=Ja({currentTick:e,tickLower:t,tickUpper:n,liquidity:p});y=o.amount0,u=o.amount1}const l=r/100,d=p/BigInt(Math.floor(1/l));return void 0!==e&&(p=p-(d>1n?d:1n)),y=a,u=i,{finalLiquidity:p,finalAmount0:y,finalAmount1:u}}createLiquidityCall(e,t,a,i,r,s,o){const p="0x"+"02"+"0d",y=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"}]},{type:"int24",name:"tickLower"},{type:"int24",name:"tickUpper"},{type:"uint256",name:"liquidity"},{type:"uint128",name:"amount0Max"},{type:"uint128",name:"amount1Max"},{type:"address",name:"owner"},{type:"bytes",name:"hookData"}],[e,t,a,i,r,s,o,"0x"]),u=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"}]}],[{currency0:e.currency0,currency1:e.currency1}]);return{to:Un[this.chainId],data:n.encodeFunctionData({abi:[{inputs:[{internalType:"bytes",name:"unlockData",type:"bytes"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"modifyLiquidities",outputs:[],stateMutability:"payable",type:"function"}],functionName:"modifyLiquidities",args:[n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[p,[y,u]]),BigInt(Math.floor(Date.now()/1e3)+3600)]}),value:0n,description:"Add Liquidity"}}}class er{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Zi,address:e})}permissions(){return this.contract.read("permissions")}managerOwner(){return this.contract.read("managerOwner")}moderator(){return this.contract.read("moderator")}creatorShare(){return this.contract.read("creatorShare")}ownerShare(){return this.contract.read("ownerShare")}totalActiveShares(){return this.contract.read("totalActiveShares")}accumulatorPerShare(){return this.contract.read("accumulatorPerShare")}lastProcessedManagerFees(){return this.contract.read("lastProcessedManagerFees")}recipientCount(){return this.contract.read("recipientCount")}recipientAt(e){return this.contract.read("recipientAt",{_index:e})}recipients(e){return this.contract.read("recipients",{_recipient:e})}balances(e){return this.contract.read("balances",{_recipient:e})}recipientShare(e,t="0x"){return this.contract.read("recipientShare",{_recipient:e,1:t})}pendingCreatorFees(e){return this.contract.read("pendingCreatorFees",{_recipient:e})}pendingOwnerFees(){return this.contract.read("pendingOwnerFees")}claimableOwnerFees(){return this.contract.read("claimableOwnerFees")}async allRecipients(e=!1){const t=await this.recipientCount(),n=await Promise.all(Array.from({length:Number(t)},(e,t)=>this.recipientAt(BigInt(t))));if(e)return n;return(await Promise.all(n.map(async e=>({recipient:e,data:await this.recipients(e)})))).filter(({data:e})=>e.share>0n).map(({recipient:e})=>e)}}function tr(e){const{publicClient:n,walletClient:a}=e;if(!n.chain)throw new Error("publicClient must be configured with a chain");return a?t.createDrift({adapter:i.viemAdapter({publicClient:n,walletClient:a})}):t.createDrift({adapter:i.viemAdapter({publicClient:n})})}const nr=n.parseAbi(["function call(address to, uint256 value, bytes data)"]);function ar(e,t){if(!e.chain)throw new Error("publicClient must be configured with a chain");return n.createWalletClient({chain:e.chain,transport:n.http()}).extend(e=>({get account(){return{address:t,type:"json-rpc"}},getAddresses:async()=>[t],requestAddresses:async()=>[t],async writeContract(e){const t=e.address,a=e.value??0n,i=n.encodeFunctionData({abi:e.abi,functionName:e.functionName,args:e.args});return n.encodeFunctionData({abi:nr,functionName:"call",args:[t,a,i]})},async sendTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:nr,functionName:"call",args:[t,a,i]})},async signTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:nr,functionName:"call",args:[t,a,i]})}}))}function ir(e){const t=n.decodeFunctionData({abi:nr,data:e});return{to:t.args[0],value:t.args[1],data:t.args[2]}}
|
|
2
2
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
|
-
const ea=BigInt(0),ta=BigInt(1);function na(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function aa(e){if(!na(e))throw new Error("Uint8Array expected")}function ia(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function ra(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function sa(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?ea:BigInt("0x"+e)}const oa="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,pa=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ya(e){if(aa(e),oa)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=pa[e[n]];return t}const ua=48,la=57,da=65,ca=70,ma=97,fa=102;function ba(e){return e>=ua&&e<=la?e-ua:e>=da&&e<=ca?e-(da-10):e>=ma&&e<=fa?e-(ma-10):void 0}function Ta(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(oa)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const a=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){const n=ba(e.charCodeAt(i)),r=ba(e.charCodeAt(i+1));if(void 0===n||void 0===r){const t=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+i)}a[t]=16*n+r}return a}function ha(e){return sa(ya(e))}function ga(e){return aa(e),sa(ya(Uint8Array.from(e).reverse()))}function wa(e,t){return Ta(e.toString(16).padStart(2*t,"0"))}function va(e,t){return wa(e,t).reverse()}function Ia(e,t,n){let a;if("string"==typeof t)try{a=Ta(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!na(t))throw new Error(e+" must be hex string or Uint8Array");a=Uint8Array.from(t)}const i=a.length;if("number"==typeof n&&i!==n)throw new Error(e+" of length "+n+" expected, got "+i);return a}function xa(...e){let t=0;for(let n=0;n<e.length;n++){const a=e[n];aa(a),t+=a.length}const n=new Uint8Array(t);for(let t=0,a=0;t<e.length;t++){const i=e[t];n.set(i,a),a+=i.length}return n}const Ma=e=>"bigint"==typeof e&&ea<=e;function ka(e,t,n){return Ma(e)&&Ma(t)&&Ma(n)&&t<=e&&e<n}function Pa(e,t,n,a){if(!ka(t,n,a))throw new Error("expected valid "+e+": "+n+" <= n < "+a+", got "+t)}const _a=e=>(ta<<BigInt(e))-ta,Aa=e=>new Uint8Array(e),Fa=e=>Uint8Array.from(e);const Sa={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||na(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Ca(e,t,n={}){const a=(t,n,a)=>{const i=Sa[n];if("function"!=typeof i)throw new Error("invalid validator function");const r=e[t];if(!(a&&void 0===r||i(r,e)))throw new Error("param "+String(t)+" is invalid. Expected "+n+", got "+r)};for(const[e,n]of Object.entries(t))a(e,n,!1);for(const[e,t]of Object.entries(n))a(e,t,!0);return e}function Ea(e){const t=new WeakMap;return(n,...a)=>{const i=t.get(n);if(void 0!==i)return i;const r=e(n,...a);return t.set(n,r),r}}class Da extends Error{static setStaticOptions(e){Da.prototype.docsOrigin=e.docsOrigin,Da.prototype.showVersion=e.showVersion,Da.prototype.version=e.version}constructor(e,t={}){const n=(()=>{if(t.cause instanceof Da){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause&&"details"in t.cause&&"string"==typeof t.cause.details?t.cause.details:t.cause?.message?t.cause.message:t.details})(),a=t.cause instanceof Da&&t.cause.docsPath||t.docsPath,i=t.docsOrigin??Da.prototype.docsOrigin,r=`${i}${a??""}`,s=Boolean(t.version??Da.prototype.showVersion),o=t.version??Da.prototype.version;super([e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...n||a||s?["",n?`Details: ${n}`:void 0,a?`See: ${r}`:void 0,s?`Version: ${o}`:void 0]:[]].filter(e=>"string"==typeof e).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,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{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,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{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,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=t.cause,this.details=n,this.docs=r,this.docsOrigin=i,this.docsPath=a,this.shortMessage=e,this.showVersion=s,this.version=o}walk(e){return Oa(this,e)}}function Oa(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&e.cause?Oa(e.cause,t):t?null:e}function Ba(e,t){if(ri(e)>t)throw new oi({givenSize:ri(e),maxSize:t})}Object.defineProperty(Da,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:"ox@0.1.1"}}),Da.setStaticOptions(Da.defaultStaticOptions);const Ua=48,La=57,Ra=65,Na=70,za=97,Ha=102;function qa(e){return e>=Ua&&e<=La?e-Ua:e>=Ra&&e<=Na?e-(Ra-10):e>=za&&e<=Ha?e-(za-10):void 0}function Va(e,t){if(Qa(e)>t)throw new Ja({givenSize:Qa(e),maxSize:t})}function $a(e,t={}){const{dir:n,size:a=32}=t;if(0===a)return e;const i=e.replace("0x","");if(i.length>2*a)throw new ei({size:Math.ceil(i.length/2),targetSize:a,type:"Hex"});return`0x${i["right"===n?"padEnd":"padStart"](2*a,"0")}`}const Ka=new TextEncoder,Wa=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ga(...e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}function Za(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=Wa[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(Va(a,t.size),Xa(a,t.size)):a}function ja(e,t){return $a(e,{dir:"left",size:t})}function Xa(e,t){return $a(e,{dir:"right",size:t})}function Qa(e){return Math.ceil((e.length-2)/2)}class Ya extends Da{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}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class Ja extends Da{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class ei extends Da{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}const ti=new TextDecoder,ni=new TextEncoder;function ai(e){return e instanceof Uint8Array?e:"string"==typeof e?function(e,t={}){const{size:n}=t;let a=e;n&&(Va(e,n),a=Xa(e,n));let i=a.slice(2);i.length%2&&(i=`0${i}`);const r=i.length/2,s=new Uint8Array(r);for(let e=0,t=0;e<r;e++){const n=qa(i.charCodeAt(t++)),a=qa(i.charCodeAt(t++));if(void 0===n||void 0===a)throw new Da(`Invalid byte sequence ("${i[t-2]}${i[t-1]}" in "${i}").`);s[e]=n<<4|a}return s}(e):function(e){return e instanceof Uint8Array?e:new Uint8Array(e)}(e)}function ii(e,t={}){const{size:n}=t,a=ni.encode(e);return"number"==typeof n?(Ba(a,n),function(e,t){return function(e,t={}){const{dir:n,size:a=32}=t;if(0===a)return e;if(e.length>a)throw new pi({size:e.length,targetSize:a,type:"Bytes"});const i=new Uint8Array(a);for(let t=0;t<a;t++){const r="right"===n;i[r?t:a-t-1]=e[r?t:e.length-t-1]}return i}(e,{dir:"right",size:t})}(a,n)):a}function ri(e){return e.length}function si(e,t={}){const{size:n}=t;let a=e;return void 0!==n&&(Ba(a,n),a=function(e,t={}){const{dir:n="left"}=t;let a=e,i=0;for(let e=0;e<a.length-1&&"0"===a["left"===n?e:a.length-e-1].toString();e++)i++;return a="left"===n?a.slice(i):a.slice(0,a.length-i),a}(a,{dir:"right"})),ti.decode(a)}class oi extends Da{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class pi extends Da{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}class yi 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 ui={checksum:new yi(8192)}.checksum,li=/^0x[a-fA-F0-9]{40}$/;function di(e,t={}){const{strict:n=!0}=t;if(!li.test(e))throw new ci({address:e,cause:new mi});if(n){if(e.toLowerCase()===e)return;if(function(e){if(ui.has(e))return ui.get(e);di(e,{strict:!1});const t=e.substring(2).toLowerCase(),n=function(e,t={}){const{as:n=("string"==typeof e?"Hex":"Bytes")}=t,a=Nt(ai(e));return"Bytes"===n?a:Za(a)}(ii(t),{as:"Bytes"}),a=t.split("");for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&a[e]&&(a[e]=a[e].toUpperCase()),(15&n[e>>1])>=8&&a[e+1]&&(a[e+1]=a[e+1].toUpperCase());const i=`0x${a.join("")}`;return ui.set(e,i),i}(e)!==e)throw new ci({address:e,cause:new fi})}}class ci extends Da{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class mi extends Da{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class fi extends Da{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const bi=BigInt(0),Ti=BigInt(1),hi=BigInt(2),gi=BigInt(3),wi=BigInt(4),vi=BigInt(5),Ii=BigInt(8);function xi(e,t){const n=e%t;return n>=bi?n:t+n}function Mi(e,t,n){let a=e;for(;t-- >bi;)a*=a,a%=n;return a}function ki(e,t){if(e===bi)throw new Error("invert: expected non-zero number");if(t<=bi)throw new Error("invert: expected positive modulus, got "+t);let n=xi(e,t),a=t,i=bi,r=Ti;for(;n!==bi;){const e=a%n,t=i-r*(a/n);a=n,n=e,i=r,r=t}if(a!==Ti)throw new Error("invert: does not exist");return xi(i,t)}function Pi(e,t){const n=(e.ORDER+Ti)/wi,a=e.pow(t,n);if(!e.eql(e.sqr(a),t))throw new Error("Cannot find square root");return a}function _i(e,t){const n=(e.ORDER-vi)/Ii,a=e.mul(t,hi),i=e.pow(a,n),r=e.mul(t,i),s=e.mul(e.mul(r,hi),i),o=e.mul(r,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),t))throw new Error("Cannot find square root");return o}function Ai(e){return e%wi===gi?Pi:e%Ii===vi?_i:function(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let t=e-Ti,n=0;for(;t%hi===bi;)t/=hi,n++;let a=hi;const i=Di(e);for(;1===Ci(i,a);)if(a++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return Pi;let r=i.pow(a,t);const s=(t+Ti)/hi;return function(e,a){if(e.is0(a))return a;if(1!==Ci(e,a))throw new Error("Cannot find square root");let i=n,o=e.mul(e.ONE,r),p=e.pow(a,t),y=e.pow(a,s);for(;!e.eql(p,e.ONE);){if(e.is0(p))return e.ZERO;let t=1,n=e.sqr(p);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw new Error("Cannot find square root");const a=Ti<<BigInt(i-t-1),r=e.pow(o,a);i=t,o=e.sqr(r),p=e.mul(p,o),y=e.mul(y,r)}return y}}(e)}const Fi=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Si(e,t,n=!1){const a=new Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(a[i]=t,e.mul(t,n)),e.ONE),r=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(a[i]=e.mul(t,a[i]),e.mul(t,n)),r),a}function Ci(e,t){const n=(e.ORDER-Ti)/hi,a=e.pow(t,n),i=e.eql(a,e.ONE),r=e.eql(a,e.ZERO),s=e.eql(a,e.neg(e.ONE));if(!i&&!r&&!s)throw new Error("invalid Legendre symbol result");return i?1:r?0:-1}function Ei(e,t){void 0!==t&&ce(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Di(e,t,n=!1,a={}){if(e<=bi)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:r}=Ei(e,t);if(r>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let s;const o=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:r,MASK:_a(i),ZERO:bi,ONE:Ti,create:t=>xi(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return bi<=t&&t<e},is0:e=>e===bi,isOdd:e=>(e&Ti)===Ti,neg:t=>xi(-t,e),eql:(e,t)=>e===t,sqr:t=>xi(t*t,e),add:(t,n)=>xi(t+n,e),sub:(t,n)=>xi(t-n,e),mul:(t,n)=>xi(t*n,e),pow:(e,t)=>function(e,t,n){if(n<bi)throw new Error("invalid exponent, negatives unsupported");if(n===bi)return e.ONE;if(n===Ti)return t;let a=e.ONE,i=t;for(;n>bi;)n&Ti&&(a=e.mul(a,i)),i=e.sqr(i),n>>=Ti;return a}(o,e,t),div:(t,n)=>xi(t*ki(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>ki(t,e),sqrt:a.sqrt||(t=>(s||(s=Ai(e)),s(o,t))),toBytes:e=>n?va(e,r):wa(e,r),fromBytes:e=>{if(e.length!==r)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+e.length);return n?ga(e):ha(e)},invertBatch:e=>Si(o,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(o)}function Oi(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Bi(e){const t=Oi(e);return t+Math.ceil(t/2)}const Ui=BigInt(0),Li=BigInt(1);function Ri(e,t){const n=t.negate();return e?n:t}function Ni(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function zi(e,t){Ni(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:_a(e),maxNumber:n,shiftBy:BigInt(e)}}function Hi(e,t,n){const{windowSize:a,mask:i,maxNumber:r,shiftBy:s}=n;let o=Number(e&i),p=e>>s;o>a&&(o-=r,p+=Li);const y=t*a;return{nextN:p,offset:y+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:y}}const qi=new WeakMap,Vi=new WeakMap;function $i(e){return Vi.get(e)||1}function Ki(e,t,n,a){!function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(a,t);const i=n.length,r=a.length;if(i!==r)throw new Error("arrays of points and scalars must have equal length");const s=e.ZERO,o=function(e){let t;for(t=0;e>ea;e>>=ta,t+=1);return t}(BigInt(i));let p=1;o>12?p=o-3:o>4?p=o-2:o>0&&(p=2);const y=_a(p),u=new Array(Number(y)+1).fill(s);let l=s;for(let e=Math.floor((t.BITS-1)/p)*p;e>=0;e-=p){u.fill(s);for(let t=0;t<r;t++){const i=a[t],r=Number(i>>BigInt(e)&y);u[r]=u[r].add(n[t])}let t=s;for(let e=u.length-1,n=s;e>0;e--)n=n.add(u[e]),t=t.add(n);if(l=l.add(t),0!==e)for(let e=0;e<p;e++)l=l.double()}return l}function Wi(e){return Ca(e.Fp,Fi.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Ca(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Ei(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}function Gi(e){void 0!==e.lowS&&ia("lowS",e.lowS),void 0!==e.prehash&&ia("prehash",e.prehash)}class Zi extends Error{constructor(e=""){super(e)}}const ji={Err:Zi,_tlv:{encode:(e,t)=>{const{Err:n}=ji;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const a=t.length/2,i=ra(a);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const r=a>127?ra(i.length/2|128):"";return ra(e)+r+i+t},decode(e,t){const{Err:n}=ji;let a=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[a++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[a++];let r=0;if(!!(128&i)){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const s=t.subarray(a,a+e);if(s.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===s[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of s)r=r<<8|e;if(a+=e,r<128)throw new n("tlv.decode(long): not minimal encoding")}else r=i;const s=t.subarray(a,a+r);if(s.length!==r)throw new n("tlv.decode: wrong value length");return{v:s,l:t.subarray(a+r)}}},_int:{encode(e){const{Err:t}=ji;if(e<Qi)throw new t("integer: negative integers are not allowed");let n=ra(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=ji;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return ha(e)}},toSig(e){const{Err:t,_int:n,_tlv:a}=ji,i=Ia("signature",e),{v:r,l:s}=a.decode(48,i);if(s.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:p}=a.decode(2,r),{v:y,l:u}=a.decode(2,p);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(o),s:n.decode(y)}},hexFromSig(e){const{_tlv:t,_int:n}=ji,a=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,a)}};function Xi(e,t){return ya(wa(e,t))}const Qi=BigInt(0),Yi=BigInt(1);BigInt(2);const Ji=BigInt(3),er=BigInt(4);function tr(e){const t=function(e){const t=Wi(e);Ca(t,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:n,Fp:a,a:i}=t;if(n){if(!a.eql(i,a.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...t})}(e),{Fp:n}=t,a=Di(t.n,t.nBitLength),i=t.toBytes||((e,t,a)=>{const i=t.toAffine();return xa(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),r=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function s(e){const{a:a,b:i}=t,r=n.sqr(e),s=n.mul(r,e);return n.add(n.add(s,n.mul(e,a)),i)}function o(e,t){const a=n.sqr(t),i=s(e);return n.eql(a,i)}if(!o(t.Gx,t.Gy))throw new Error("bad curve params: generator point");const p=n.mul(n.pow(t.a,Ji),er),y=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(p,y)))throw new Error("bad curve params: a or b");function u(e){const{allowedPrivateKeyLengths:n,nByteLength:a,wrapPrivateKey:i,n:r}=t;if(n&&"bigint"!=typeof e){if(na(e)&&(e=ya(e)),"string"!=typeof e||!n.includes(e.length))throw new Error("invalid private key");e=e.padStart(2*a,"0")}let s;try{s="bigint"==typeof e?e:ha(Ia("private key",e,a))}catch(t){throw new Error("invalid private key, expected hex or "+a+" bytes, got "+typeof e)}return i&&(s=xi(s,r)),Pa("private key",s,Yi,r),s}function l(e){if(!(e instanceof m))throw new Error("ProjectivePoint expected")}const d=Ea((e,t)=>{const{px:a,py:i,pz:r}=e;if(n.eql(r,n.ONE))return{x:a,y:i};const s=e.is0();null==t&&(t=s?n.ONE:n.inv(r));const o=n.mul(a,t),p=n.mul(i,t),y=n.mul(r,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(y,n.ONE))throw new Error("invZ was invalid");return{x:o,y:p}}),c=Ea(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:a,y:i}=e.toAffine();if(!n.isValid(a)||!n.isValid(i))throw new Error("bad point: x or y not FE");if(!o(a,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class m{constructor(e,t,a){if(null==e||!n.isValid(e))throw new Error("x required");if(null==t||!n.isValid(t)||n.is0(t))throw new Error("y required");if(null==a||!n.isValid(a))throw new Error("z required");this.px=e,this.py=t,this.pz=a,Object.freeze(this)}static fromAffine(e){const{x:t,y:a}=e||{};if(!e||!n.isValid(t)||!n.isValid(a))throw new Error("invalid affine point");if(e instanceof m)throw new Error("projective point not allowed");const i=e=>n.eql(e,n.ZERO);return i(t)&&i(a)?m.ZERO:new m(t,a,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=Si(n,e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(m.fromAffine)}static fromHex(e){const t=m.fromAffine(r(Ia("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return m.BASE.multiply(u(e))}static msm(e,t){return Ki(m,a,e,t)}_setWindowSize(e){T.setWindowSize(this,e)}assertValidity(){c(this)}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){l(e);const{px:t,py:a,pz:i}=this,{px:r,py:s,pz:o}=e,p=n.eql(n.mul(t,o),n.mul(r,i)),y=n.eql(n.mul(a,o),n.mul(s,i));return p&&y}negate(){return new m(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:a}=t,i=n.mul(a,Ji),{px:r,py:s,pz:o}=this;let p=n.ZERO,y=n.ZERO,u=n.ZERO,l=n.mul(r,r),d=n.mul(s,s),c=n.mul(o,o),f=n.mul(r,s);return f=n.add(f,f),u=n.mul(r,o),u=n.add(u,u),p=n.mul(e,u),y=n.mul(i,c),y=n.add(p,y),p=n.sub(d,y),y=n.add(d,y),y=n.mul(p,y),p=n.mul(f,p),u=n.mul(i,u),c=n.mul(e,c),f=n.sub(l,c),f=n.mul(e,f),f=n.add(f,u),u=n.add(l,l),l=n.add(u,l),l=n.add(l,c),l=n.mul(l,f),y=n.add(y,l),c=n.mul(s,o),c=n.add(c,c),l=n.mul(c,f),p=n.sub(p,l),u=n.mul(c,d),u=n.add(u,u),u=n.add(u,u),new m(p,y,u)}add(e){l(e);const{px:a,py:i,pz:r}=this,{px:s,py:o,pz:p}=e;let y=n.ZERO,u=n.ZERO,d=n.ZERO;const c=t.a,f=n.mul(t.b,Ji);let b=n.mul(a,s),T=n.mul(i,o),h=n.mul(r,p),g=n.add(a,i),w=n.add(s,o);g=n.mul(g,w),w=n.add(b,T),g=n.sub(g,w),w=n.add(a,r);let v=n.add(s,p);return w=n.mul(w,v),v=n.add(b,h),w=n.sub(w,v),v=n.add(i,r),y=n.add(o,p),v=n.mul(v,y),y=n.add(T,h),v=n.sub(v,y),d=n.mul(c,w),y=n.mul(f,h),d=n.add(y,d),y=n.sub(T,d),d=n.add(T,d),u=n.mul(y,d),T=n.add(b,b),T=n.add(T,b),h=n.mul(c,h),w=n.mul(f,w),T=n.add(T,h),h=n.sub(b,h),h=n.mul(c,h),w=n.add(w,h),b=n.mul(T,w),u=n.add(u,b),b=n.mul(v,w),y=n.mul(g,y),y=n.sub(y,b),b=n.mul(g,T),d=n.mul(v,d),d=n.add(d,b),new m(y,u,d)}subtract(e){return this.add(e.negate())}is0(){return this.equals(m.ZERO)}wNAF(e){return T.wNAFCached(this,e,m.normalizeZ)}multiplyUnsafe(e){const{endo:a,n:i}=t;Pa("scalar",e,Qi,i);const r=m.ZERO;if(e===Qi)return r;if(this.is0()||e===Yi)return this;if(!a||T.hasPrecomputes(this))return T.wNAFCachedUnsafe(this,e,m.normalizeZ);let{k1neg:s,k1:o,k2neg:p,k2:y}=a.splitScalar(e),u=r,l=r,d=this;for(;o>Qi||y>Qi;)o&Yi&&(u=u.add(d)),y&Yi&&(l=l.add(d)),d=d.double(),o>>=Yi,y>>=Yi;return s&&(u=u.negate()),p&&(l=l.negate()),l=new m(n.mul(l.px,a.beta),l.py,l.pz),u.add(l)}multiply(e){const{endo:a,n:i}=t;let r,s;if(Pa("scalar",e,Yi,i),a){const{k1neg:t,k1:i,k2neg:o,k2:p}=a.splitScalar(e);let{p:y,f:u}=this.wNAF(i),{p:l,f:d}=this.wNAF(p);y=T.constTimeNegate(t,y),l=T.constTimeNegate(o,l),l=new m(n.mul(l.px,a.beta),l.py,l.pz),r=y.add(l),s=u.add(d)}else{const{p:t,f:n}=this.wNAF(e);r=t,s=n}return m.normalizeZ([r,s])[0]}multiplyAndAddUnsafe(e,t,n){const a=m.BASE,i=(e,t)=>t!==Qi&&t!==Yi&&e.equals(a)?e.multiply(t):e.multiplyUnsafe(t),r=i(this,t).add(i(e,n));return r.is0()?void 0:r}toAffine(e){return d(this,e)}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===Yi)return!0;if(n)return n(m,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===Yi?this:n?n(m,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return ia("isCompressed",e),this.assertValidity(),i(m,this,e)}toHex(e=!0){return ia("isCompressed",e),ya(this.toRawBytes(e))}}m.BASE=new m(t.Gx,t.Gy,n.ONE),m.ZERO=new m(n.ZERO,n.ONE,n.ZERO);const{endo:f,nBitLength:b}=t,T=(h=m,g=f?Math.ceil(b/2):b,{constTimeNegate:Ri,hasPrecomputes:e=>1!==$i(e),unsafeLadder(e,t,n=h.ZERO){let a=e;for(;t>Ui;)t&Li&&(n=n.add(a)),a=a.double(),t>>=Li;return n},precomputeWindow(e,t){const{windows:n,windowSize:a}=zi(t,g),i=[];let r=e,s=r;for(let e=0;e<n;e++){s=r,i.push(s);for(let e=1;e<a;e++)s=s.add(r),i.push(s);r=s.double()}return i},wNAF(e,t,n){let a=h.ZERO,i=h.BASE;const r=zi(e,g);for(let e=0;e<r.windows;e++){const{nextN:s,offset:o,isZero:p,isNeg:y,isNegF:u,offsetF:l}=Hi(n,e,r);n=s,p?i=i.add(Ri(u,t[l])):a=a.add(Ri(y,t[o]))}return{p:a,f:i}},wNAFUnsafe(e,t,n,a=h.ZERO){const i=zi(e,g);for(let e=0;e<i.windows&&n!==Ui;e++){const{nextN:r,offset:s,isZero:o,isNeg:p}=Hi(n,e,i);if(n=r,!o){const e=t[s];a=a.add(p?e.negate():e)}}return a},getPrecomputes(e,t,n){let a=qi.get(t);return a||(a=this.precomputeWindow(t,e),1!==e&&qi.set(t,n(a))),a},wNAFCached(e,t,n){const a=$i(e);return this.wNAF(a,this.getPrecomputes(a,e,n),t)},wNAFCachedUnsafe(e,t,n,a){const i=$i(e);return 1===i?this.unsafeLadder(e,t,a):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,a)},setWindowSize(e,t){Ni(t,g),Vi.set(e,t),qi.delete(e)}});var h,g;return{CURVE:t,ProjectivePoint:m,normPrivateKeyToScalar:u,weierstrassEquation:s,isWithinCurveOrder:function(e){return ka(e,Yi,t.n)}}}function nr(e){const t=function(e){const t=Wi(e);return Ca(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:a,nByteLength:i,nBitLength:r}=t,s=n.BYTES+1,o=2*n.BYTES+1;function p(e){return xi(e,a)}function y(e){return ki(e,a)}const{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:d,isWithinCurveOrder:c}=tr({...t,toBytes(e,t,a){const i=t.toAffine(),r=n.toBytes(i.x),s=xa;return ia("isCompressed",a),a?s(Uint8Array.from([t.hasEvenY()?2:3]),r):s(Uint8Array.from([4]),r,n.toBytes(i.y))},fromBytes(e){const t=e.length,a=e[0],i=e.subarray(1);if(t!==s||2!==a&&3!==a){if(t===o&&4===a){return{x:n.fromBytes(i.subarray(0,n.BYTES)),y:n.fromBytes(i.subarray(n.BYTES,2*n.BYTES))}}throw new Error("invalid Point, expected length of "+s+", or uncompressed "+o+", got "+t)}{const e=ha(i);if(!ka(e,Yi,n.ORDER))throw new Error("Point is not on curve");const t=d(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("Point is not on curve"+t)}return!(1&~a)!==((r&Yi)===Yi)&&(r=n.neg(r)),{x:e,y:r}}}});function m(e){return e>a>>Yi}const f=(e,t,n)=>ha(e.slice(t,n));class b{constructor(e,t,n){Pa("r",e,Yi,a),Pa("s",t,Yi,a),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){const t=i;return e=Ia("compactSignature",e,2*t),new b(f(e,0,t),f(e,t,2*t))}static fromDER(e){const{r:t,s:n}=ji.toSig(Ia("DER",e));return new b(t,n)}assertValidity(){}addRecoveryBit(e){return new b(this.r,this.s,e)}recoverPublicKey(e){const{r:a,s:i,recovery:r}=this,s=w(Ia("msgHash",e));if(null==r||![0,1,2,3].includes(r))throw new Error("recovery id invalid");const o=2===r||3===r?a+t.n:a;if(o>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const l=1&r?"03":"02",d=u.fromHex(l+Xi(o,n.BYTES)),c=y(o),m=p(-s*c),f=p(i*c),b=u.BASE.multiplyAndAddUnsafe(d,m,f);if(!b)throw new Error("point at infinify");return b.assertValidity(),b}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,p(-this.s),this.recovery):this}toDERRawBytes(){return Ta(this.toDERHex())}toDERHex(){return ji.hexFromSig(this)}toCompactRawBytes(){return Ta(this.toCompactHex())}toCompactHex(){const e=i;return Xi(this.r,e)+Xi(this.s,e)}}const T={isValidPrivateKey(e){try{return l(e),!0}catch(e){return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const e=Bi(t.n);return function(e,t,n=!1){const a=e.length,i=Oi(t),r=Bi(t);if(a<16||a<r||a>1024)throw new Error("expected "+r+"-1024 bytes of input, got "+a);const s=xi(n?ga(e):ha(e),t-Ti)+Ti;return n?va(s,i):wa(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=u.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function h(e){if("bigint"==typeof e)return!1;if(e instanceof u)return!0;const a=Ia("key",e).length,r=n.BYTES,s=r+1,o=2*r+1;return t.allowedPrivateKeyLengths||i===s?void 0:a===s||a===o}const g=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=ha(e),n=8*e.length-r;return n>0?t>>BigInt(n):t},w=t.bits2int_modN||function(e){return p(g(e))},v=_a(r);function I(e){return Pa("num < 2^"+r,e,Qi,v),wa(e,i)}function x(e,a,i=M){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{hash:r,randomBytes:s}=t;let{lowS:o,prehash:d,extraEntropy:f}=i;null==o&&(o=!0),e=Ia("msgHash",e),Gi(i),d&&(e=Ia("prehashed msgHash",r(e)));const T=w(e),h=l(a),v=[I(h),I(T)];if(null!=f&&!1!==f){const e=!0===f?s(n.BYTES):f;v.push(Ia("extraEntropy",e))}const x=xa(...v),k=T;return{seed:x,k2sig:function(e){const t=g(e);if(!c(t))return;const n=y(t),a=u.BASE.multiply(t).toAffine(),i=p(a.x);if(i===Qi)return;const r=p(n*p(k+i*h));if(r===Qi)return;let s=(a.x===i?0:2)|Number(a.y&Yi),l=r;return o&&m(r)&&(l=function(e){return m(e)?p(-e):e}(r),s^=1),new b(i,l,s)}}}const M={lowS:t.lowS,prehash:!1},k={lowS:t.lowS,prehash:!1};return u.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return u.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(!0===h(e))throw new Error("first arg must be private key");if(!1===h(t))throw new Error("second arg must be public key");return u.fromHex(t).multiply(l(e)).toRawBytes(n)},sign:function(e,n,a=M){const{seed:i,k2sig:r}=x(e,n,a),s=t,o=function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let a=Aa(e),i=Aa(e),r=0;const s=()=>{a.fill(1),i.fill(0),r=0},o=(...e)=>n(i,a,...e),p=(e=Aa(0))=>{i=o(Fa([0]),e),a=o(),0!==e.length&&(i=o(Fa([1]),e),a=o())},y=()=>{if(r++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){a=o();const t=a.slice();n.push(t),e+=a.length}return xa(...n)};return(e,t)=>{let n;for(s(),p(e);!(n=t(y()));)p();return s(),n}}(s.hash.outputLen,s.nByteLength,s.hmac);return o(i,r)},verify:function(e,n,a,i=k){const r=e;n=Ia("msgHash",n),a=Ia("publicKey",a);const{lowS:s,prehash:o,format:l}=i;if(Gi(i),"strict"in i)throw new Error("options.strict was renamed to lowS");if(void 0!==l&&"compact"!==l&&"der"!==l)throw new Error("format must be compact or der");const d="string"==typeof r||na(r),c=!d&&!l&&"object"==typeof r&&null!==r&&"bigint"==typeof r.r&&"bigint"==typeof r.s;if(!d&&!c)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let m,f;try{if(c&&(m=new b(r.r,r.s)),d){try{"compact"!==l&&(m=b.fromDER(r))}catch(e){if(!(e instanceof ji.Err))throw e}m||"der"===l||(m=b.fromCompact(r))}f=u.fromHex(a)}catch(e){return!1}if(!m)return!1;if(s&&m.hasHighS())return!1;o&&(n=t.hash(n));const{r:T,s:h}=m,g=w(n),v=y(h),I=p(g*v),x=p(T*v),M=u.BASE.multiplyAndAddUnsafe(f,I,x)?.toAffine();return!!M&&p(M.x)===T},ProjectivePoint:u,Signature:b,utils:T}}function ar(e){return{hash:e,hmac:(t,...n)=>Jn(e,t,function(...e){let t=0;for(let n=0;n<e.length;n++){const a=e[n];me(a),t+=a.length}const n=new Uint8Array(t);for(let t=0,a=0;t<e.length;t++){const i=e[t];n.set(i,a),a+=i.length}return n}(...n)),randomBytes:Pe}}function ir(e,t){const n=t=>nr({...e,...ar(t)});return{...n(t),create:n}}const rr=Di(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"));ir({a:rr.create(BigInt("-3")),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Fp:rr,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},st);const sr=Di(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"));ir({a:sr.create(BigInt("-3")),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Fp:sr,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},pt);const or=Di(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));ir({a:or.create(BigInt("-3")),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Fp:or,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},ot);const pr=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),yr=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ur=BigInt(0),lr=BigInt(1),dr=BigInt(2),cr=(e,t)=>(e+t/dr)/t;const mr=Di(pr,void 0,void 0,{sqrt:function(e){const t=pr,n=BigInt(3),a=BigInt(6),i=BigInt(11),r=BigInt(22),s=BigInt(23),o=BigInt(44),p=BigInt(88),y=e*e*e%t,u=y*y*e%t,l=Mi(u,n,t)*u%t,d=Mi(l,n,t)*u%t,c=Mi(d,dr,t)*y%t,m=Mi(c,i,t)*c%t,f=Mi(m,r,t)*m%t,b=Mi(f,o,t)*f%t,T=Mi(b,p,t)*b%t,h=Mi(T,o,t)*f%t,g=Mi(h,n,t)*u%t,w=Mi(g,s,t)*m%t,v=Mi(w,a,t)*y%t,I=Mi(v,dr,t);if(!mr.eql(mr.sqr(I),e))throw new Error("Cannot find square root");return I}}),fr=ir({a:ur,b:BigInt(7),Fp:mr,n:yr,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=yr,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),a=-lr*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),r=n,s=BigInt("0x100000000000000000000000000000000"),o=cr(r*e,t),p=cr(-a*e,t);let y=xi(e-o*n-p*i,t),u=xi(-o*a-p*r,t);const l=y>s,d=u>s;if(l&&(y=t-y),d&&(u=t-u),y>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:y,k2neg:d,k2:u}}}},st),br=/^(.*)\[([0-9]*)\]$/,Tr=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,hr=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((e,t)=>[t,e.charCodeAt(0)]),Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((e,t)=>[e.charCodeAt(0),t])),"=".charCodeAt(0),"-".charCodeAt(0),"_".charCodeAt(0);class gr extends Da{constructor({majorType:e}){super(`Invalid CBOR major type: ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.InvalidMajorTypeError"})}}class wr extends Da{constructor({additionalInfo:e}){super(`Invalid CBOR additional info: ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.InvalidAdditionalInfoError"})}}class vr extends Da{constructor(){super("64-bit integers are not supported in CBOR decoding."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.Unsupported64BitIntegerError"})}}class Ir extends Da{constructor({tag:e}){super(`CBOR tagged data (tag ${e}) is not yet supported.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.UnsupportedTagError"})}}class xr extends Da{constructor({type:e}){super(`Invalid chunk type in indefinite-length ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.InvalidIndefiniteLengthChunkError"})}}class Mr extends Da{constructor({value:e}){super(`Invalid CBOR simple value: ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.InvalidSimpleValueError"})}}class kr extends Da{constructor(){super("BigInt values are not supported in CBOR encoding."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.UnsupportedBigIntError"})}}class Pr extends Da{constructor({token:e}){super(`Unexpected token: ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.UnexpectedTokenError"})}}class _r extends Da{constructor({number:e}){super(`Number exceeds maximum safe integer (${Number.MAX_SAFE_INTEGER}): ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.NumberTooLargeError"})}}class Ar extends Da{constructor({size:e}){super(`String length exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.StringTooLargeError"})}}class Fr extends Da{constructor({size:e}){super(`Array length exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.ArrayTooLargeError"})}}class Sr extends Da{constructor({size:e}){super(`Object size exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.ObjectTooLargeError"})}}class Cr extends Da{constructor({size:e}){super(`Byte string length exceeds maximum (4294967295): ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cbor.ByteStringTooLargeError"})}}function Er(e){if(void 0===e)return{length:1,encode:e=>e.pushUint8(247)};if(null===e)return{length:1,encode:e=>e.pushUint8(246)};if("boolean"==typeof e)return{length:1,encode:t=>t.pushUint8(e?245:244)};if("number"==typeof e)return Er.number(e);if("bigint"==typeof e)throw new kr;if("string"==typeof e)return Er.string(e);if(Array.isArray(e))return Er.array(e);if(e instanceof Uint8Array)return Er.byteString(e);if(e instanceof ArrayBuffer)return Er.byteString(new Uint8Array(e));if(ArrayBuffer.isView(e))return Er.byteString(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));if(e instanceof Map)return Er.map(e);if("object"==typeof e)return Er.object(e);throw new Pr({token:String(e)})}function Dr(e){const t=e.readUint8(),n=t>>5,a=31&t;switch(n){case 0:return Dr.readUnsignedInteger(e,a);case 1:return Dr.readNegativeInteger(e,a);case 2:return Dr.readByteString(e,a);case 3:return Dr.readTextString(e,a);case 4:return Dr.readArray(e,a);case 5:return Dr.readMap(e,a);case 6:throw new Ir({tag:a});case 7:return Dr.readSimpleOrFloat(e,a);default:throw new gr({majorType:n})}}function Or(e,t){if(e.length!==t.length)throw new Ur({expectedLength:e.length,givenLength:t.length});const n=[];for(let a=0;a<e.length;a++){const i=e[a],r=t[a];n.push(Or.encode(i,r))}return Ga(...n)}!function(e){e.number=function(e){if(!Number.isSafeInteger(e)){const t=Math.fround(e);return Number.isNaN(e)||e===t?{length:5,encode(t){t.pushUint8(250),t.dataView.setFloat32(t.position,e,!1),t.position+=4}}:{length:9,encode(t){t.pushUint8(251),t.dataView.setFloat64(t.position,e,!1),t.position+=8}}}if(e>=0){if(e<=23)return{length:1,encode:t=>t.pushUint8(e)};if(e<=255)return{length:2,encode:t=>{t.pushUint8(24),t.pushUint8(e)}};if(e<=65535)return{length:3,encode:t=>{t.pushUint8(25),t.pushUint16(e)}};if(e<=4294967295)return{length:5,encode:t=>{t.pushUint8(26),t.pushUint32(e)}};throw new _r({number:e.toString(10)})}const t=-1-e;if(e>=-24)return{length:1,encode:e=>e.pushUint8(32+t)};if(t<=255)return{length:2,encode:e=>{e.pushUint8(56),e.pushUint8(t)}};if(t<=65535)return{length:3,encode:e=>{e.pushUint8(57),e.pushUint16(t)}};if(t<=4294967295)return{length:5,encode:e=>{e.pushUint8(58),e.pushUint32(t)}};throw new _r({number:e.toString(10)})},e.string=function(e){const t=ii(e),n=t.length;if(n<=23)return{length:1+n,encode(e){e.pushUint8(96+n),n>0&&e.pushBytes(t)}};if(n<=255)return{length:2+n,encode(e){e.pushUint8(120),e.pushUint8(n),e.pushBytes(t)}};if(n<=65535)return{length:3+n,encode(e){e.pushUint8(121),e.pushUint16(n),e.pushBytes(t)}};if(n<=4294967295)return{length:5+n,encode(e){e.pushUint8(122),e.pushUint32(n),e.pushBytes(t)}};throw new Ar({size:n})},e.array=function(t){const n=t.map(t=>e(t)),a=n.reduce((e,t)=>e+t.length,0),i=t.length;if(i<=23)return{length:1+a,encode(e){e.pushUint8(128+i);for(const t of n)t.encode(e)}};if(i<=255)return{length:2+a,encode(e){e.pushUint8(152),e.pushUint8(i);for(const t of n)t.encode(e)}};if(i<=65535)return{length:3+a,encode(e){e.pushUint8(153),e.pushUint16(i);for(const t of n)t.encode(e)}};if(i<=4294967295)return{length:5+a,encode(e){e.pushUint8(154),e.pushUint32(i);for(const t of n)t.encode(e)}};throw new Fr({size:i})},e.byteString=function(e){const t=e.byteLength;if(t<=23)return{length:1+t,encode(n){n.pushUint8(64+t),n.pushBytes(e)}};if(t<=255)return{length:2+t,encode(n){n.pushUint8(88),n.pushUint8(t),n.pushBytes(e)}};if(t<=65535)return{length:3+t,encode(n){n.pushUint8(89),n.pushUint16(t),n.pushBytes(e)}};if(t<=4294967295)return{length:5+t,encode(n){n.pushUint8(90),n.pushUint32(t),n.pushBytes(e)}};throw new Cr({size:t})},e.object=function(t){const n=Object.keys(t),a=n.map(n=>({key:e(n),value:e(t[n])})),i=a.reduce((e,t)=>e+t.key.length+t.value.length,0),r=n.length;if(r<=23)return{length:1+i,encode(e){e.pushUint8(160+r);for(const t of a)t.key.encode(e),t.value.encode(e)}};if(r<=255)return{length:2+i,encode(e){e.pushUint8(184),e.pushUint8(r);for(const t of a)t.key.encode(e),t.value.encode(e)}};if(r<=65535)return{length:3+i,encode(e){e.pushUint8(185),e.pushUint16(r);for(const t of a)t.key.encode(e),t.value.encode(e)}};if(r<=4294967295)return{length:5+i,encode(e){e.pushUint8(186),e.pushUint32(r);for(const t of a)t.key.encode(e),t.value.encode(e)}};throw new Sr({size:r})},e.map=function(t){const n=[];for(const[a,i]of t)n.push({key:e(a),value:e(i)});const a=n.reduce((e,t)=>e+t.key.length+t.value.length,0),i=t.size;if(i<=23)return{length:1+a,encode(e){e.pushUint8(160+i);for(const t of n)t.key.encode(e),t.value.encode(e)}};if(i<=255)return{length:2+a,encode(e){e.pushUint8(184),e.pushUint8(i);for(const t of n)t.key.encode(e),t.value.encode(e)}};if(i<=65535)return{length:3+a,encode(e){e.pushUint8(185),e.pushUint16(i);for(const t of n)t.key.encode(e),t.value.encode(e)}};if(i<=4294967295)return{length:5+a,encode(e){e.pushUint8(186),e.pushUint32(i);for(const t of n)t.key.encode(e),t.value.encode(e)}};throw new Sr({size:i})}}(Er||(Er={})),function(e){function t(e,t){if(t<24)return t;if(24===t)return e.readUint8();if(25===t)return e.readUint16();if(26===t)return e.readUint32();if(27===t)throw new vr;throw new wr({additionalInfo:t})}e.readUnsignedInteger=function(e,n){return t(e,n)},e.readNegativeInteger=function(e,n){return-1-t(e,n)},e.readByteString=function(n,a){if(31===a){const t=[];let a=0;for(;;){if(255===n.inspectUint8()){n.readUint8();break}const i=e(n);if(!(i instanceof Uint8Array))throw new xr({type:"byte string"});t.push(i),a+=i.length}const i=new Uint8Array(a);let r=0;for(const e of t)i.set(e,r),r+=e.length;return i}const i=t(n,a);return n.readBytes(i)},e.readTextString=function(n,a){if(31===a){const t=[];for(;;){if(255===n.inspectUint8()){n.readUint8();break}const a=e(n);if("string"!=typeof a)throw new xr({type:"text string"});t.push(a)}return t.join("")}const i=t(n,a);return si(n.readBytes(i))},e.readArray=function(n,a){if(31===a){const t=[];for(;;){if(255===n.inspectUint8()){n.readUint8();break}t.push(e(n))}return t}const i=t(n,a),r=[];for(let t=0;t<i;t++)r.push(e(n));return r},e.readMap=function(n,a){if(31===a){const t={};for(;;){if(255===n.inspectUint8()){n.readUint8();break}const a=e(n),i="string"==typeof a?a:String(a),r=e(n);t[i]=r}return t}const i=t(n,a),r={};for(let t=0;t<i;t++){const t=e(n),a="string"==typeof t?t:String(t),i=e(n);r[a]=i}return r},e.readSimpleOrFloat=function(e,t){if(20===t)return!1;if(21===t)return!0;if(22===t)return null;if(23!==t){if(25===t){return function(e){const t=e>>15&1,n=e>>10&31,a=1023&e;if(0===n){if(0===a)return t?-0:0;const e=2**-14*(a/1024);return t?-e:e}if(31===n)return 0===a?t?-1/0:1/0:NaN;const i=2**(n-15)*(1+a/1024);return t?-i:i}(e.readUint16())}if(26===t){const t=e.dataView.getFloat32(e.position,!1);return e.position+=4,t}if(27===t){const t=e.dataView.getFloat64(e.position,!1);return e.position+=8,t}if(24===t){const t=e.readUint8();if(t<32)throw new Mr({value:t});return}throw new wr({additionalInfo:t})}}}(Dr||(Dr={})),function(e){e.encode=function e(t,n,a=!1){if("address"===t){const e=n;return di(e),ja(e.toLowerCase(),a?32:0)}if("string"===t)return function(e,t={}){return Za(Ka.encode(e),t)}(n);if("bytes"===t)return n;if("bool"===t)return ja(function(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?(Va(n,t.size),ja(n,t.size)):n}(n),a?32:1);const i=t.match(hr);if(i){const[e,t,r="256"]=i,s=Number.parseInt(r,10)/8;return function(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 Ya({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const o=`0x${(n&&i<0?BigInt.asUintN(8*a,BigInt(i)):i).toString(16)}`;return a?ja(o,a):o}(n,{size:a?32:s,signed:"int"===t})}const r=t.match(Tr);if(r){const[e,t]=r;if(Number.parseInt(t,10)!==(n.length-2)/2)throw new Br({expectedSize:Number.parseInt(t,10),value:n});return Xa(n,a?32:0)}const s=t.match(br);if(s&&Array.isArray(n)){const[t,a]=s,i=[];for(let t=0;t<n.length;t++)i.push(e(a,n[t],!0));return 0===i.length?"0x":Ga(...i)}throw new Lr(t)}}(Or||(Or={}));class Br extends Da{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${Qa(t)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class Ur extends Da{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${t}`].join("\n")),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class Lr extends Da{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}var Rr;function Nr(e){const{chainId:t,nonce:n,to:a}=e,i=e.contractAddress??e.address,r=zt(j(["0x05",te([t?P(t):"0x",i,n?P(n):"0x"])]));return"bytes"===a?D(r):r}Rr="(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data",(Array.isArray(Rr)&&"string"==typeof Rr[0]||"string"==typeof Rr)&&Wn(Rr);const zr={[an.id]:"0x39112541720078c70164EA4Deb61F0A4811910F9",[sn.id]:"0x25b747aeca2612b9804b5c3bb272a3daefdc6eaa"},Hr={[an.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[sn.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},qr={[an.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[sn.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},Vr={[an.id]:"0x23321f11a6d44fd1ab790044fdfde5758c902fdc",[sn.id]:"0x4e7cb1e6800a7b297b38bddcecaf9ca5b6616fdc"},$r={[an.id]:"0x8DC3b85e1dc1C846ebf3971179a751896842e5dC",[sn.id]:"0xB4A535B9D35851972736495CC52FBfDaCF32e5dc"},Kr={[an.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[sn.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},Wr={[an.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[sn.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},Gr={[an.id]:"0x516af52d0c629b5e378da4dc64ecb0744ce10109",[sn.id]:"0xe2ef58a54ee79dac0D4A130ea58b340124DF9438"},Zr={[an.id]:"0xc5B2E8F197407263F4B62a35C71bFc394ecF95D5",[sn.id]:"0x67Ee6C83956a75f67bD3Fc8Ca4080D95a145c7C9"},jr={[an.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[sn.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},Xr={[an.id]:"0x4dc442403e8c758425b93C59Dc737da522f32640",[sn.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},Qr={[an.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[sn.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},Yr={[an.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[sn.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},Jr={[an.id]:"0x2154c604df568A5285284D1c4918DC98C39240df",[sn.id]:"0xcfF222eA42E43F46A98755db237E4c9C2CA9B772"},es={[an.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[sn.id]:"0xD2F3C6185e06925dCBE794C6574315b2202E9CcD"},ts={[an.id]:"0xc8d4B2Ca8eD6868eE768beAb1f932d7eecCc1b50",[sn.id]:"0xA8153b14c8CfdDfb02627807D84AB02D12A85477"},ns={[an.id]:"0xfAB4BA48a322Efc8b25815448BE6018D211e89f3",[sn.id]:"0x0A3AF63cd86E68a852A1D4923FEfC4e855D8499d"},as={[an.id]:"0x9b332EA14a99B74cAB03A3D3178964eD9CE35fc8",[sn.id]:"0x4882075542626721C8743D80DC9528e2f54d8A46"},is={[an.id]:"0xec0069F8DBbbC94058dc895000dd38ef40b3125d",[sn.id]:"0xB8f1cb6B4Ff8f07149276bbfA617aed7bd32d20D"},rs={[an.id]:"0x3AAF3b1D8cD5b61C77f99bA7cdf41E9eC0Ba8a3f",[sn.id]:"0xc3947EC9d687053bBA72b36Fd6b2567e775E82C7"},ss={[an.id]:"0x6fb66f4fc262dc86e12136c481ba7c411e668197",[sn.id]:"0x7981369D21975F39773f289F759F7d7CE1097139"},os={[an.id]:"0xFe55dFf581b665479ABe9Fc0A0578FB222cB4Dda",[sn.id]:"0x2874F9A30348aCAaaD55D74B0BEc9C18f04b471a"},ps={[an.id]:"0xedd66b080b8e9425c39d349a3fb69f480580f993",[sn.id]:"0x6428b5C4da36ecB070aBdcB5E1939244A3cC7fb5"},ys={[an.id]:"0xba28ac1540893a34476c24b2c4fa32e0506c9055",[sn.id]:"0x47226918e518f205584bd75bf81e0b532b0b3ea7"},us={[an.id]:"0x06a089fa231aca48d2aa77365123ad9aca43d3a4",[sn.id]:"0x6582d2bc6a7eba3b40bdf46b3868fc7ec2ff96ec"},ls={[an.id]:"0x7a04367563a65db574d6b7d084fdbcf4a570c5a6",[sn.id]:"0xfde5b79e3e2814edd5f91e8694ae400954d9cfaa"},ds={[an.id]:"0x656047fd43d2c3a121f2ef859d7171d7dd59f8b9",[sn.id]:"0x05a5763e9199b88bb591c6b112d0424b2cd7a99e"},cs={[an.id]:"0x4dfc76A31A2a0110739611683a8b6C5201480fa1",[sn.id]:"0x551aeD820CAfaca2f9cD1C637AAc076D05a03AC2"},ms={[an.id]:"0x828B58B2B2df8ff3221Fbe2b07e75a56a84493Cc",[sn.id]:"0xe8691E8f576A98c41EBB5E984207d4F51386621f"},fs={[an.id]:"0x72e6f7948b1B1A343B477F39aAbd2E35E6D27dde",[sn.id]:"0x73E27908b7d35A9251a54799A8ef4C17e4ED9FF9"},bs={[an.id]:"0xd381f8ea57df43c57cfe6e5b19a0a4700396f28c",[sn.id]:"0xd3d9047CaBE3346C70b510435866565176e8CE12"},Ts={[an.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[sn.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},hs={[an.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[sn.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},gs={[an.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[sn.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},ws={[an.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[sn.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},vs={[an.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[sn.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},Is={[an.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[sn.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},xs={[an.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[sn.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Ms={[an.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[sn.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},ks={[an.id]:"0x7C5f5A4bBd8fD63184577525326123B519429bDc",[sn.id]:"0x4B2C77d209D3405F41a037Ec6c77F7F5b8e2ca80"},Ps={[an.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[sn.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},_s=[{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"}],As=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let Fs=0;const Ss=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=As[Fs];return Fs=(Fs+1)%As.length,`${n}${t}`}return e},Cs=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}},Es=async e=>{try{const t=new FormData,n=e.base64Image.split(",")[1]||e.base64Image,a=atob(n),i=[];for(let e=0;e<a.length;e+=1024){const t=a.slice(e,e+1024),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const r=new Uint8Array(n);i.push(r)}let r="image/png";e.base64Image.startsWith("data:")&&(r=e.base64Image.split(";")[0].split(":")[1]);const o=new Blob(i,{type:r}),p=e.name||`image.${r.split("/")[1]}`,y=new File([o],p,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:d.data.IpfsHash,PinSize:d.data.PinSize,Timestamp:d.data.Timestamp,isDuplicate:d.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Ds=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-image",{base64Image:e},{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},Os=async e=>{try{const t=await s.default.post("https://web2-api.flaunch.gg/api/v1/upload-metadata",e,{headers:{"Content-Type":"application/json"}});return{ipfsHash:t.data.ipfsHash,...t.data}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload metadata to Flaunch API: ${e.response?.data?.message||e.message}`);throw e}},Bs=async(e,t,n)=>{let a,i;if(n.pinataConfig){a=(await Es({pinataConfig:n.pinataConfig,base64Image:n.metadata.base64Image})).IpfsHash;const t={name:e,description:n.metadata.description,image:`ipfs://${a}`,external_link:n.metadata.websiteUrl||"",collaborators:[],discordUrl:n.metadata.discordUrl||"",twitterUrl:n.metadata.twitterUrl||"",telegramUrl:n.metadata.telegramUrl||""};i=(await Cs({pinataConfig:n.pinataConfig,json:t})).IpfsHash}else{a=(await Ds(n.metadata.base64Image)).ipfsHash;const r={name:e,symbol:t,description:n.metadata.description,imageIpfs:a,websiteUrl:n.metadata.websiteUrl,discordUrl:n.metadata.discordUrl,twitterUrl:n.metadata.twitterUrl,telegramUrl:n.metadata.telegramUrl};i=(await Os(r)).ipfsHash}return`ipfs://${i}`},Us=[{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"}],Ls=[{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"}]}],Rs=[{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"}]}],Ns="07",zs="09",Hs="0c",qs="0f",Vs="10",$s="04",Ks="0a",Ws=({amount:e,slippage:t,swapType:a})=>{if(null==e)return 0n;return(e<0n?-e:e)*("EXACT_IN"===a?BigInt(1e18)-n.parseEther(t):BigInt(1e18)+n.parseEther(t))/BigInt(1e18)},Gs=n.zeroAddress,Zs=e=>{const t=Ts[e.chainId],a=hs[e.chainId],i=e.positionManagerAddress,r="0x"+("EXACT_IN"===e.swapType?Ns:zs)+Hs+qs;let s;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==Gs&&e.intermediatePoolKey.currency1!==Gs)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=e.intermediatePoolKey?e.intermediatePoolKey.currency0===Gs?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:Gs;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");const r=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(Ls,[{currencyIn:o,path:e.intermediatePoolKey?[{intermediateCurrency:Gs,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData},...r]:r,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");const r=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:Gs},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:e.hookData??n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}];s=n.encodeAbiParameters(Rs,[{currencyOut:e.memecoin,path:e.intermediatePoolKey?[{fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hookData:e.intermediatePoolKey.hookData,hooks:e.intermediatePoolKey.hooks,intermediateCurrency:o},...r]:r,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[o,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,y]]);if(e.intermediatePoolKey&&e.signature&&e.permitSingle){const t="0x"+Ks+Vs,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),u];return{calldata:n.encodeFunctionData({abi:Us,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const t="0x"+Vs+$s,a=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[Gs,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:Us,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}},js=e=>{const t=Ts[e.chainId],a=hs[e.chainId],i=e.positionManagerAddress,r="0x"+Ns+Hs+qs;if(e.intermediatePoolKey&&e.intermediatePoolKey.currency0!==Gs&&e.intermediatePoolKey.currency1!==Gs)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const s=e.intermediatePoolKey?e.intermediatePoolKey.currency0===Gs?e.intermediatePoolKey.currency1:e.intermediatePoolKey.currency0:Gs,o=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:Gs,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],p=n.encodeAbiParameters(Ls,[{currencyIn:e.memecoin,path:e.intermediatePoolKey?[...o,{intermediateCurrency:s,fee:e.intermediatePoolKey.fee,tickSpacing:e.intermediatePoolKey.tickSpacing,hooks:e.intermediatePoolKey.hooks,hookData:e.intermediatePoolKey.hookData}]:o,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),u=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[s,e.amountOutMin]),l=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[p,y,u]]);if(e.signature&&e.permitSingle){const t="0x"+Ks+Vs,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),l];return{calldata:n.encodeFunctionData({abi:Us,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+Vs,t=[l];return{calldata:n.encodeFunctionData({abi:Us,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}},Xs=[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}],Qs={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:Xs},Ys=({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Ms[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:vs[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:Qs,message:s},permitSingle:s}};function Js(e,t){const{flAmount0:n,flAmount1:a,flFee0:i,flFee1:r,ispAmount0:s,ispAmount1:o,ispFee0:p,ispFee1:y,uniAmount0:u,uniAmount1:l,uniFee0:d,uniFee1:c}=e,m=n+s+u,f=a+o+l,b=i+p+d,T=r+y+c;let h,g;t?(g=m<0?"BUY":"SELL",h=b<0):(g=f<0?"BUY":"SELL",h=T<0);const w=m<0?-m:m,v=f<0?-f:f,I=b<0?-b:b,x=T<0?-T:T,M={isInFLETH:h,amount:t?h?I:x:h?x:I};return"BUY"===g?{type:g,delta:{coinsBought:t?v-(M.isInFLETH?0n:M.amount):w-(M.isInFLETH?0n:M.amount),flETHSold:t?w-(M.isInFLETH?M.amount:0n):v-(M.isInFLETH?M.amount:0n),fees:M}}:{type:g,delta:{coinsSold:t?v-(M.isInFLETH?0n:M.amount):w-(M.isInFLETH?0n:M.amount),flETHBought:t?w-(M.isInFLETH?M.amount:0n):v-(M.isInFLETH?M.amount:0n),fees:M}}}const eo=[{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 to{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:eo,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}getSqrtPriceX96(e){return this.contract.read("getSqrtPriceX96",{_flipped:!e.isFLETHZero,_initialPriceParams:e.initialPriceParams,0:n.zeroAddress})}}class no{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:_s,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}creatorBalance(e){return this.contract.read("balances",{_recipient:e})}async getFlaunchingFee(e){const t=new to(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Ws({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=Js(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=Js(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class ao extends no{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,initialMarketCapUSD:r,creator:s,creatorFeeAllocationPercent:o,flaunchAt:p}){if(0!==i)throw new Error("FairLaunch has been deprecated. Please set fairLaunchPercent to 0.");const y=n.parseUnits(r.toString(),6),u=n.encodeAbiParameters([{type:"uint256"}],[y]),l=BigInt(100*i),d=100*o;let c=n.zeroAddress;this.drift.adapter.getSignerAddress&&(c=await this.drift.adapter.getSignerAddress());const m=await this.getFlaunchingFee({sender:c,initialPriceParams:u,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*l/10000n,premineAmount:0n,creator:s,creatorFeeAllocation:d,flaunchAt:p??0n,initialPriceParams:u,feeCalculatorParams:"0x"}},{value:m,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s,metadata:o,pinataConfig:p}){const y=await Bs(e,t,{metadata:o,pinataConfig:p});return this.flaunch({name:e,symbol:t,tokenUri:y,fairLaunchPercent:n,initialMarketCapUSD:a,creator:i,creatorFeeAllocationPercent:r,flaunchAt:s})}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const io=e=>n.hexToBigInt(e),ro=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),so=[{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 oo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:so,address:e})}poolStateSlot({poolId:e}){const t=ro(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,o=BigInt("0xFFFFFF"),p=Number(s&o),y=p>8388607?p-16777216:p,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),o=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),p=this.poolStateSlot({poolId:e}),y=ro(io(p)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[o,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const po=[{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 yo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:po,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 uo=[{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 lo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:uo,address:e})}fairLaunchDuration({poolId:e}){return 1800}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const co=[{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 mo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:co,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const fo=[{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 bo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:fo,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const To=[{type:"constructor",inputs:[{name:"_positionManager",type:"address",internalType:"contract PositionManager"},{name:"_flaunchContract",type:"address",internalType:"contract Flaunch"},{name:"_flETH",type:"address",internalType:"contract IFLETH"},{name:"_poolSwap",type:"address",internalType:"contract PoolSwap"},{name:"_treasuryManagerFactory",type:"address",internalType:"contract ITreasuryManagerFactory"},{name:"_merkleAirdrop",type:"address",internalType:"contract IMerkleAirdrop"},{name:"_whitelistFairLaunch",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"calculateFee",inputs:[{name:"_premineAmount",type:"uint256",internalType:"uint256"},{name:"_slippage",type:"uint256",internalType:"uint256"},{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"ethRequired_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"},{name:"_permissions",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"flETH",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFLETH"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"},{name:"_whitelistParams",type:"tuple",internalType:"struct FlaunchZap.WhitelistParams",components:[{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"},{name:"maxTokens",type:"uint256",internalType:"uint256"}]},{name:"_airdropParams",type:"tuple",internalType:"struct FlaunchZap.AirdropParams",components:[{name:"airdropIndex",type:"uint256",internalType:"uint256"},{name:"airdropAmount",type:"uint256",internalType:"uint256"},{name:"airdropEndTime",type:"uint256",internalType:"uint256"},{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"}]},{name:"_treasuryManagerParams",type:"tuple",internalType:"struct FlaunchZap.TreasuryManagerParams",components:[{name:"manager",type:"address",internalType:"address"},{name:"permissions",type:"address",internalType:"address"},{name:"initializeData",type:"bytes",internalType:"bytes"},{name:"depositData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"deployedManager_",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunchContract",inputs:[],outputs:[{name:"",type:"address",internalType:"contract Flaunch"}],stateMutability:"view"},{type:"function",name:"merkleAirdrop",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMerkleAirdrop"}],stateMutability:"view"},{type:"function",name:"poolSwap",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PoolSwap"}],stateMutability:"view"},{type:"function",name:"positionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PositionManager"}],stateMutability:"view"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITreasuryManagerFactory"}],stateMutability:"view"},{type:"function",name:"whitelistFairLaunch",inputs:[],outputs:[{name:"",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"view"},{type:"error",name:"CreatorCannotBeZero",inputs:[]},{type:"error",name:"InsufficientMemecoinsForAirdrop",inputs:[]}];var ho,go,wo,vo;function Io(t,a){switch(t){case e.Permissions.CLOSED:return cs[a];case e.Permissions.WHITELISTED:return ms[a];case e.Permissions.OPEN:default:return n.zeroAddress}}e.FlaunchVersion=void 0,(ho=e.FlaunchVersion||(e.FlaunchVersion={})).V1="V1",ho.V1_1="V1_1",ho.V1_2="V1_2",ho.ANY="ANY",e.Verifier=void 0,(go=e.Verifier||(e.Verifier={})).CLANKER="clanker",go.DOPPLER="doppler",go.SOLANA="solana",go.VIRTUALS="virtuals",go.WHITELIST="whitelist",go.ZORA="zora",e.LiquidityMode=void 0,(wo=e.LiquidityMode||(e.LiquidityMode={})).FULL_RANGE="full-range",wo.CONCENTRATED="concentrated",e.Permissions=void 0,(vo=e.Permissions||(e.Permissions={})).OPEN="open",vo.CLOSED="closed",vo.WHITELISTED="whitelisted";const xo=[{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 Mo{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:xo,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new to(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Ws({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=Js(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=Js(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}class ko extends Mo{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:o,creatorFeeAllocationPercent:p,flaunchAt:y}){if(0!==i)throw new Error("FairLaunch has been deprecated. Please set fairLaunchPercent to 0.");const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*p;let m=n.zeroAddress;this.drift.adapter.getSignerAddress&&(m=await this.drift.adapter.getSignerAddress());const f=await this.getFlaunchingFee({sender:m,initialPriceParams:l,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*d/10000n,fairLaunchDuration:r,premineAmount:0n,creator:o,creatorFeeAllocation:c,flaunchAt:y??0n,initialPriceParams:l,feeCalculatorParams:"0x"}},{value:f,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o,metadata:p,pinataConfig:y}){const u=await Bs(e,t,{metadata:p,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o})}}const Po={MIN_TICK:-887220,MAX_TICK:887220},_o=2n**96n,Ao=2n**192n,Fo=60,So=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)},Co=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},Eo=({tick:e,tickSpacing:t,roundDown:n=!0})=>{if(e%t===0)return e;let a=Math.trunc(e/t)*t;return e<0&&e%t!==0&&(a-=t),n||(a+=t),a},Do=({tick:e,tickSpacing:t})=>{const n=Math.round(e/t)*t;return Math.max(Po.MIN_TICK,Math.min(Po.MAX_TICK,n))},Oo=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},Bo=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},Uo=e=>{const t=e<0?BigInt(-e):BigInt(e);if(t>Po.MAX_TICK)throw new Error("Tick out of range");let n=0n!=(1n&t)?0xfffcb933bd6fad37aa2d162d1a594001n:0x100000000000000000000000000000000n;0n!=(2n&t)&&(n=0xfff97272373d413259a46990580e213an*n>>128n),0n!=(4n&t)&&(n=0xfff2e50f5f656932ef12357cf3c7fdccn*n>>128n),0n!=(8n&t)&&(n=0xffe5caca7e10e4e61c3624eaa0941cd0n*n>>128n),0n!=(16n&t)&&(n=0xffcb9843d60f6159c9db58835c926644n*n>>128n),0n!=(32n&t)&&(n=0xff973b41fa98c081472e6896dfb254c0n*n>>128n),0n!=(64n&t)&&(n=0xff2ea16466c96a3843ec78b326b52861n*n>>128n),0n!=(128n&t)&&(n=0xfe5dee046a99a2a811c461f1969c3053n*n>>128n),0n!=(256n&t)&&(n=0xfcbe86c7900a88aedcffc83b479aa3a4n*n>>128n),0n!=(512n&t)&&(n=0xf987a7253ac413176f2b074cf7815e54n*n>>128n),0n!=(1024n&t)&&(n=0xf3392b0822b70005940c7a398e4b70f3n*n>>128n),0n!=(2048n&t)&&(n=0xe7159475a2c29b7443b29c7fa6e889d9n*n>>128n),0n!=(4096n&t)&&(n=0xd097f3bdfd2022b8845ad8f792aa5825n*n>>128n),0n!=(8192n&t)&&(n=0xa9f746462d870fdf8a65dc1f90e061e5n*n>>128n),0n!=(16384n&t)&&(n=0x70d869a156d2a1b890bb3df62baf32f7n*n>>128n),0n!=(32768n&t)&&(n=0x31be135f97d08fd981231505542fcfa6n*n>>128n),0n!=(65536n&t)&&(n=0x9aa508b5b7a84e1c677de54f3e99bc9n*n>>128n),0n!=(131072n&t)&&(n=0x5d6af8dedb81196699c329225ee604n*n>>128n),0n!=(262144n&t)&&(n=0x2216e584f5fa1ea926041bedfe98n*n>>128n),0n!=(524288n&t)&&(n=0x48a170391f7dc42444e8fa2n*n>>128n),e>0&&(n=(2n**256n-1n)/n);const a=n>>32n;return n%(1n<<32n)==0n?a:a+1n},Lo=(e,t,n,a)=>{const i=Uo(a),r=Uo(t),s=Uo(n);let o=0n,p=0n;return i<=r?o=Oo(r,s,e):i<s?(o=Oo(i,s,e),p=Bo(r,i,e)):p=Bo(r,s,e),{amount0:o,amount1:p}},Ro=({priceInput:e,isDirection1Per0:t,decimals0:n,decimals1:a,spacing:i,shouldGetNearestUsableTick:r=!0})=>{if(!e||isNaN(Number(e)))return 0;const s=Number(e);try{let e;e=t?s/Math.pow(10,n-a):1/s/Math.pow(10,n-a);const o=Math.log(e)/Math.log(1.0001);return r?Eo({tick:Math.round(o),tickSpacing:i}):Math.round(o)}catch(e){console.error("Error converting price to tick:",e);const t=Math.floor(Math.log(s)/Math.log(1.0001));return r?Eo({tick:t,tickSpacing:i}):t}},No=e=>{const t=Uo(e.currentTick);let n=Uo(e.tickLower),a=Uo(e.tickUpper);if(n>a&&([n,a]=[a,n]),t<=n)return zo(n,a,e.amount0);if(t<a){const i=zo(t,a,e.amount0),r=Ho(n,t,e.amount1);return i<r?i:r}return Ho(n,a,e.amount1)};function zo(e,t,n){if(e>t&&([e,t]=[t,e]),e===t)return 0n;return n*e*t/(2n**96n*(t-e))}function Ho(e,t,n){if(e>t&&([e,t]=[t,e]),e===t)return 0n;return n*2n**96n/(t-e)}const qo=e=>{if(0n===e.liquidity)return{amount0:0n,amount1:0n};const t=Uo(e.currentTick);let n=Uo(e.tickLower),a=Uo(e.tickUpper);n>a&&([n,a]=[a,n]);let i=0n,r=0n;return t<=n?i=Oo(n,a,e.liquidity):t<a?(i=Oo(t,a,e.liquidity),r=Bo(n,t,e.liquidity)):r=Bo(n,a,e.liquidity),{amount0:i,amount1:r}};class Vo{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:To,address:n}),this.readPositionManagerV1_1=new Mo(qr[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return Ws({amount:t,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async getFlaunchingFee(e){const t=new to(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return Ws({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}ethRequiredToFlaunch(e){return this.contract.read("calculateFee",{_premineAmount:e.premineAmount??0n,_slippage:e.slippagePercent?BigInt(100*e.slippagePercent):0n,_initialPriceParams:e.initialPriceParams})}}class $o extends Vo{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(t){if(0!==t.fairLaunchPercent)throw new Error("FairLaunch has been deprecated. Please set fairLaunchPercent to 0.");const a=n.parseUnits(t.initialMarketCapUSD.toString(),6),i=n.encodeAbiParameters([{type:"uint256"}],[a]),r=BigInt(100*t.fairLaunchPercent),s=100*t.creatorFeeAllocationPercent,o=await this.ethRequiredToFlaunch({premineAmount:t.premineAmount??0n,initialPriceParams:i,slippagePercent:5}),p=t.treasuryManagerParams?{manager:t.treasuryManagerParams.manager??n.zeroAddress,permissions:t.treasuryManagerParams.permissions??e.Permissions.OPEN,initializeData:t.treasuryManagerParams.initializeData??"0x",depositData:t.treasuryManagerParams.depositData??"0x"}:{manager:n.zeroAddress,permissions:e.Permissions.OPEN,initializeData:"0x",depositData:"0x"},y=t.trustedSignerSettings?n.encodeAbiParameters([{type:"bool",name:"enabled"},{type:"uint256",name:"walletCap"},{type:"uint256",name:"txCap"}],[t.trustedSignerSettings.enabled,t.trustedSignerSettings.walletCap??0n,t.trustedSignerSettings.txCap??0n]):"0x",u=t.trustedSignerSettings?.enabled?n.encodeAbiParameters([{type:"address",name:"referrer"},{type:"tuple",components:[{type:"uint256",name:"deadline"},{type:"bytes",name:"signature"}]}],[n.zeroAddress,{deadline:BigInt(t.trustedSignerSettings.premineSignedMessage?.deadline??0),signature:t.trustedSignerSettings.premineSignedMessage?.signature??"0x"}]):"0x";return this.contract.write("flaunch",{_flaunchParams:{name:t.name,symbol:t.symbol,tokenUri:t.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*r/10000n,fairLaunchDuration:BigInt(t.fairLaunchDuration),premineAmount:t.premineAmount??0n,creator:t.creator,creatorFeeAllocation:s,flaunchAt:t.flaunchAt??0n,initialPriceParams:i,feeCalculatorParams:y},_trustedFeeSigner:t.trustedSignerSettings?.trustedFeeSigner??n.zeroAddress,_premineSwapHookData:u,_treasuryManagerParams:{...p,permissions:Io(p.permissions,this.chainId)},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:o})}async flaunchIPFS(e){const t=await Bs(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(t){return this.flaunch({...t,treasuryManagerParams:{manager:t.revenueManagerInstanceAddress,permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:"0x",depositData:"0x"}})}async flaunchIPFSWithRevenueManager(e){const t=await Bs(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}async flaunchWithSplitManager(t){const a=10000000n;let i=BigInt(t.creatorSplitPercent)*a/100n;const r=BigInt(t.managerOwnerSplitPercent)*a/100n,s=t.splitReceivers.map(e=>({recipient:e.address,share:BigInt(e.percent)*a/100n})),o=s.reduce((e,t)=>e+t.share,0n);i+=a-o-r;const p=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:i,ownerShare:r,recipientShares:s}]);return this.flaunch({...t,treasuryManagerParams:{manager:ns[this.chainId],permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:p,depositData:"0x"}})}async flaunchIPFSWithSplitManager(e){const t=await Bs(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithSplitManager({...e,tokenUri:t})}async flaunchWithDynamicSplitManager(t){if(t.moderator===n.zeroAddress)throw new Error("Dynamic split moderator cannot be zero address");if(t.creatorShare<0n||t.managerOwnerShare<0n)throw new Error("Creator and manager owner shares cannot be negative");if(t.creatorShare+t.managerOwnerShare>10000000n)throw new Error("Creator and manager owner shares must be less than or equal to 100_00000");const a=new Set,i=t.splitReceivers.map(e=>{if(e.address===n.zeroAddress)throw new Error("Recipient address cannot be zero address");if(e.share<=0n)throw new Error("Recipient share must be greater than zero");const t=n.getAddress(e.address);if(a.has(t))throw new Error("Duplicate recipient found in split receivers");return a.add(t),{recipient:t,share:e.share}}),r=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"},{type:"address",name:"moderator"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:t.creatorShare,ownerShare:t.managerOwnerShare,moderator:t.moderator,recipientShares:i}]);return this.flaunch({...t,treasuryManagerParams:{manager:as[this.chainId],permissions:t.treasuryManagerParams?.permissions??e.Permissions.OPEN,initializeData:r,depositData:"0x"}})}async flaunchIPFSWithDynamicSplitManager(e){const t=await Bs(e.name,e.symbol,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithDynamicSplitManager({...e,tokenUri:t})}deployRevenueManager(t){const a=Io(t.permissions??e.Permissions.OPEN,this.chainId);return this.contract.write("deployAndInitializeManager",{_managerImplementation:ts[this.chainId],_owner:t.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:t.protocolRecipient,protocolFee:BigInt(100*t.protocolFeePercent)}]),_permissions:a})}deployStakingManager(t){const a=Io(t.permissions??e.Permissions.OPEN,this.chainId),i=10000000n,r=is[this.chainId];if(r===n.zeroAddress)throw new Error(`StakingManager not deployed on chainId: ${this.chainId}`);return this.contract.write("deployAndInitializeManager",{_managerImplementation:r,_owner:t.managerOwner,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"stakingToken"},{type:"uint256",name:"minEscrowDuration"},{type:"uint256",name:"minStakeDuration"},{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"}]}],[{stakingToken:t.stakingToken,minEscrowDuration:t.minEscrowDuration,minStakeDuration:t.minStakeDuration,creatorShare:BigInt(t.creatorSharePercent)*i/100n,ownerShare:BigInt(t.ownerSharePercent)*i/100n}]),_permissions:a})}deployBuyBackManager(t){const a=Io(t.permissions??e.Permissions.OPEN,this.chainId),i=10000000n,r=rs[this.chainId];if(r===n.zeroAddress)throw new Error(`BuyBackManager not deployed on chainId: ${this.chainId}`);return this.contract.write("deployAndInitializeManager",{_managerImplementation:r,_owner:t.managerOwner,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"},{type:"tuple",name:"buyBackPoolKey",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"}]}]}],[{creatorShare:BigInt(t.creatorSharePercent)*i/100n,ownerShare:BigInt(t.ownerSharePercent)*i/100n,buyBackPoolKey:Co({currency0:t.buyBackPoolKey.currency0,currency1:t.buyBackPoolKey.currency1,fee:t.buyBackPoolKey.fee,tickSpacing:t.buyBackPoolKey.tickSpacing,hooks:t.buyBackPoolKey.hooks})}]),_permissions:a})}}const Ko=[{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 Wo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ko,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 Go=[{inputs:[{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:"BaseURICannotBeEmpty",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",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:[],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"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_newBaseURI",type:"string"}],name:"BaseURIUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinTreasuryImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!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:[{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"}],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:"address",name:"_memecoin",type:"address"}],name:"creator",outputs:[{internalType:"address",name:"creator_",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{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 AnyPositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",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:[{internalType:"address",name:"_memecoin",type:"address"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",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 AnyPositionManager",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:"_memecoinTreasuryImplementation",type:"address"}],name:"setMemecoinTreasuryImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Zo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Go,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 jo=[{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 Xo{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:jo,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}decimals(){return this.contract.read("decimals")}totalSupply(){return this.contract.read("totalSupply")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}allowance(e,t){return this.contract.read("allowance",{owner:e,spender:t})}}class Qo extends Xo{constructor(e,n=t.createDrift()){super(e,n)}approve(e,t){return this.contract.write("approve",{spender:e,amount:t})}}const Yo=[{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 Jo{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:Yo,address:n})}async getSellQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const r=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:Ts[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:hs[this.chainId],intermediateCurrency:n.zeroAddress},{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:r}]}})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:Ts[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:hs[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:o,path:[{fee:i.fee,tickSpacing:i.tickSpacing,hooks:i.hooks,hookData:i.hookData,intermediateCurrency:n.zeroAddress},{fee:0,tickSpacing:60,hookData:"0x",hooks:hs[this.chainId],intermediateCurrency:Ts[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:hs[this.chainId],intermediateCurrency:Ts[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:r??"0x",intermediateCurrency:e}]}},{from:s})).amountOut}async getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:a,intermediatePoolKey:i,hookData:r,userWallet:s}){if(i){if(i.currency0!==n.zeroAddress&&i.currency1!==n.zeroAddress)throw new Error("ETH must be one of the currencies in the intermediatePoolKey");const o=i.currency0===n.zeroAddress?i.currency1:i.currency0;return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:o,fee:i.fee,tickSpacing:i.tickSpacing,hookData:i.hookData,hooks:i.hooks},{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:hs[this.chainId]},{intermediateCurrency:Ts[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:hs[this.chainId]},{intermediateCurrency:Ts[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:r??"0x"}],exactCurrency:e,exactAmount:t}},{from:s})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:Ps[this.chainId].fee,tickSpacing:Ps[this.chainId].tickSpacing,hooks:Ps[this.chainId].hooks,hookData:"0x",intermediateCurrency:Ps[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const ep=[{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 tp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ep,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class np extends tp{constructor(e,n=t.createDrift()){super(e,n)}approve(e){return this.contract.write("approve",e)}}const ap=[{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 ip{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:ap,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new to(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return Ws({amount:n,slippage:(e.slippagePercent??0).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=Js(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=Js(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}const rp=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"address",name:"bidWall",type:"address"}],internalType:"struct AnyPositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyFlaunched",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotApprovedCreator",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_creator",type:"address"},{indexed:!1,internalType:"bool",name:"_isApproved",type:"bool"}],name:"CreatorApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"},{internalType:"bool",name:"_isApproved",type:"bool"}],name:"approveCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"approvedMemecoinCreator",outputs:[{internalType:"bool",name:"isApproved",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"memecoin",type:"address"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct AnyPositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IAnyFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class sp{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:rp,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}async getFlaunchingFee(e){return 0n}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=Js(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=Js(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}class op extends sp{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({memecoin:e,initialMarketCapUSD:t,creator:a,creatorFeeAllocationPercent:i}){const r=n.parseUnits(t.toString(),6),s=n.encodeAbiParameters([{type:"uint256"},{type:"address"}],[r,e]),o=100*i;return this.contract.write("flaunch",{_params:{memecoin:e,creator:a,creatorFeeAllocation:o,initialPriceParams:s,feeCalculatorParams:"0x"}},{onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}}const pp=[{type:"constructor",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"anyPositionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract AnyPositionManager"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"getAllVerifiers",inputs:[],outputs:[{name:"verifiers_",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"},{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"},{name:"_totalSupply",type:"uint256",internalType:"uint256"},{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"_creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"_initialMarketCap",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"removeVerifier",inputs:[{name:"_verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setAnyPositionManager",inputs:[{name:"_anyPositionManager",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"verifyMemecoin",inputs:[{name:"_memecoin",type:"address",internalType:"address"}],outputs:[{name:"verifier_",type:"address",internalType:"address"}],stateMutability:"view"},{type:"event",name:"AnyPositionManagerSet",inputs:[{name:"_anyPositionManager",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"TokenImported",inputs:[{name:"_memecoin",type:"address",indexed:!0,internalType:"address"},{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierAdded",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"VerifierRemoved",inputs:[{name:"_verifier",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"InvalidMemecoin",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"VerifierAlreadyAdded",inputs:[]},{type:"error",name:"VerifierNotAdded",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}];class yp{constructor(e,n,a=t.createDrift()){this.chainId=e,this.drift=a,this.contract=a.contract({abi:pp,address:n})}async verifyMemecoin(e){const t=await this.contract.read("verifyMemecoin",{_memecoin:e});return{isValid:t!==n.zeroAddress,verifier:t}}verifierAddress(t){switch(t){case e.Verifier.CLANKER:return os[this.chainId];case e.Verifier.DOPPLER:return ps[this.chainId];case e.Verifier.SOLANA:return ys[this.chainId];case e.Verifier.VIRTUALS:return us[this.chainId];case e.Verifier.WHITELIST:return ls[this.chainId];case e.Verifier.ZORA:return ds[this.chainId];default:throw new Error(`Unknown verifier: ${t}`)}}}class up extends yp{constructor(e,n,a=t.createDrift()){super(e,n,a)}async initialize(e){return this.contract.write("initialize",await this.getInitializeParams(e))}async getInitializeParams(e){let t;if("initialMarketCapUSD"in e)t=e.initialMarketCapUSD;else{const a=new Xo(e.coinAddress,this.drift),i=await a.totalSupply(),r=await a.decimals(),s=parseFloat(n.formatUnits(i,r));t=e.initialPriceUSD*s}const a=n.parseUnits(t.toString(),6),i=100*e.creatorFeeAllocationPercent;let r=e.verifier?this.verifierAddress(e.verifier):await this.contract.read("verifyMemecoin",{_memecoin:e.coinAddress});const s={_memecoin:e.coinAddress,_creatorFeeAllocation:i,_initialMarketCap:a,_verifier:r};return void 0!==e.tokenSupply?{...s,_totalSupply:e.tokenSupply}:s}}const lp=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_indexer",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"InvalidRecipient",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"PoolIdNotIndexed",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_recipient",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"allocateFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"indexer",outputs:[{internalType:"contract IndexerSubscriber",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_indexer",type:"address"}],name:"setIndexer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"totalFeesAllocated",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class dp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:lp,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}}class cp extends dp{constructor(e,n=t.createDrift()){super(e,n)}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const mp=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"MismatchedTokensAndLimits",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensAssigned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokensClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_user",type:"address"},{indexed:!0,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenIn",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_ethOut",type:"uint256"}],name:"TokensSwapped",type:"event"},{inputs:[{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"}],name:"allocations",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"assignTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"uint160[]",name:"_sqrtPriceX96Limits",type:"uint160[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimAndSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"_tokens",type:"address[]"},{internalType:"address payable",name:"_recipient",type:"address"}],name:"claimTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_poolSwap",type:"address"}],name:"setPoolSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];class fp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:mp,address:e})}allocations(e,t){return this.contract.read("allocations",{_user:e,_token:t})}}class bp extends fp{constructor(e,n=t.createDrift()){super(e,n)}claimTokens(e,t){return this.contract.write("claimTokens",{_tokens:e,_recipient:t})}}const Tp=[{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 hp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Tp,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const gp=[{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 wp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:gp,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 vp=[{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 Ip{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:vp,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const xp=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyBridging",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_newBaseURI",type:"string"}],name:"BaseURIUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_newImplementation",type:"address"}],name:"MemecoinTreasuryImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_BRIDGING_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingFinalized",outputs:[{internalType:"bool",name:"_finalized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStarted",outputs:[{internalType:"uint256",name:"_startedAt",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"}],name:"setMemecoinImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"setMemecoinTreasuryImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Mp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:xp,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const kp=[{type:"constructor",inputs:[{name:"_protocolOwner",type:"address",internalType:"address"},{name:"_feeEscrow",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"approveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"approvedManagerImplementation",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"_approved",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"deployManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"feeEscrow",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrow"}],stateMutability:"view"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"managerImplementation",inputs:[{name:"_manager",type:"address",internalType:"address"}],outputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"unapproveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"ManagerDeployed",inputs:[{name:"_manager",type:"address",indexed:!0,internalType:"address"},{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationApproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationUnapproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnknownManagerImplemention",inputs:[]}];class Pp{constructor(e,n,a=t.createDrift(),i){if(!n)throw new Error("Address is required");this.contract=a.contract({abi:kp,address:n}),this.chainId=e,this.publicClient=i}async getManagerDeployedAddressFromTx(e){if(!this.publicClient)throw new Error("Public client is required");const t=await this.publicClient.waitForTransactionReceipt({hash:e}),a=n.parseEventLogs({abi:kp,eventName:"ManagerDeployed",logs:t.logs}).find(e=>e.address.toLowerCase()===this.contract.address.toLowerCase());if(!a)throw new Error("ManagerDeployed event not found in transaction logs");return a.args._manager}}class _p extends Pp{constructor(e,n,a=t.createDrift(),i){super(e,n,a,i)}}const Ap=[{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"}],Fp=[{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 Sp{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:Fp,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map(e=>({target:e.target,allowFailure:!0,callData:e.callData}))})}}class Cp{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:Ap,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 Sp(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 Ep extends Cp{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 Dp=[{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"}];class Op{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Dp,address:e})}permissions(){return this.contract.read("permissions")}managerOwner(){return this.contract.read("managerOwner")}}class Bp extends Op{constructor(e,n=t.createDrift()){super(e,n)}deposit(e,t,n){return this.contract.write("deposit",{_flaunchToken:e,_creator:t,_data:n})}setPermissions(e){return this.contract.write("setPermissions",{_permissions:e})}transferManagerOwnership(e){return this.contract.write("transferManagerOwnership",{_newManagerOwner:e})}}const Up={[an.id]:an,[sn.id]:sn},Lp=[{type:"constructor",inputs:[{name:"_treasuryManagerFactory",type:"address",internalType:"address"},{name:"_feeEscrowRegistry",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"MAX_CREATOR_SHARE",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"MAX_OWNER_SHARE",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"VALID_SHARE_TOTAL",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"accumulatorPerShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balances",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"balance_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"claim",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claim",inputs:[{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claimableOwnerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creator",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_creator",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"creatorFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creatorShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creatorTotalClaimed",inputs:[{name:"_creator",type:"address",internalType:"address"}],outputs:[{name:"_claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"feeEscrowRegistry",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrowRegistry"}],stateMutability:"view"},{type:"function",name:"flaunchTokenInternalIds",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCreatorFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"creatorFee_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOwnerFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"ownerFee_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPoolId",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]}],outputs:[{name:"poolId_",type:"bytes32",internalType:"PoolId"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialized",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"internalIds",inputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],outputs:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"isValidCreator",inputs:[{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidRecipient",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"lastProcessedManagerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"managerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"moderator",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextInternalId",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"ownerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"ownerShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingCreatorFees",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"balance_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwnerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"recipientAt",inputs:[{name:"_index",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"recipientCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"recipientShare",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"recipients",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"share",type:"uint256",internalType:"uint256"},{name:"debtPerShare",type:"uint256",internalType:"uint256"},{name:"snapshotBalance",type:"uint256",internalType:"uint256"},{name:"claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setCreator",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setModerator",inputs:[{name:"_moderator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"splitFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokenPoolId",inputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],stateMutability:"view"},{type:"function",name:"tokenTimelock",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokenTotalClaimed",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokens",inputs:[{name:"_creator",type:"address",internalType:"address"}],outputs:[{name:"flaunchTokens_",type:"tuple[]",internalType:"struct ITreasuryManager.FlaunchToken[]",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"totalActiveShares",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferRecipientShare",inputs:[{name:"_newRecipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract TreasuryManagerFactory"}],stateMutability:"view"},{type:"function",name:"updateRecipients",inputs:[{name:"_recipients",type:"tuple[]",internalType:"struct DynamicAddressFeeSplitManager.RecipientShare[]",components:[{name:"recipient",type:"address",internalType:"address"},{name:"share",type:"uint256",internalType:"uint256"}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"CreatorShareInitialized",inputs:[{name:"_creatorShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"CreatorUpdated",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_creator",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ETHReceivedFromUnknownSource",inputs:[{name:"_sender",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ManagerInitialized",inputs:[{name:"_owner",type:"address",indexed:!1,internalType:"address"},{name:"_params",type:"tuple",indexed:!1,internalType:"struct DynamicAddressFeeSplitManager.InitializeParams",components:[{name:"creatorShare",type:"uint256",internalType:"uint256"},{name:"ownerShare",type:"uint256",internalType:"uint256"},{name:"moderator",type:"address",internalType:"address"},{name:"recipientShares",type:"tuple[]",internalType:"struct DynamicAddressFeeSplitManager.RecipientShare[]",components:[{name:"recipient",type:"address",internalType:"address"},{name:"share",type:"uint256",internalType:"uint256"}]}]}],anonymous:!1},{type:"event",name:"ManagerOwnershipTransferred",inputs:[{name:"_previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"_newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ModeratorUpdated",inputs:[{name:"_oldModerator",type:"address",indexed:!0,internalType:"address"},{name:"_newModerator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerShareInitialized",inputs:[{name:"_ownerShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PermissionsUpdated",inputs:[{name:"_permissions",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RecipientAdded",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_share",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RecipientRemoved",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_snapshotBalance",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RecipientShareTransferred",inputs:[{name:"_oldRecipient",type:"address",indexed:!0,internalType:"address"},{name:"_newRecipient",type:"address",indexed:!0,internalType:"address"},{name:"_share",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RecipientShareUpdated",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_oldShare",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_newShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RevenueClaimed",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_amountClaimed",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RoundingDustAllocated",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TreasuryEscrowed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_owner",type:"address",indexed:!1,internalType:"address"},{name:"_sender",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryReclaimed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_sender",type:"address",indexed:!1,internalType:"address"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryTimelocked",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_unlockedAt",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyDeposited",inputs:[]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"CreatorShareAlreadyInitialized",inputs:[]},{type:"error",name:"FlaunchContractNotValid",inputs:[]},{type:"error",name:"InsufficientSharesToTransfer",inputs:[]},{type:"error",name:"InvalidClaimer",inputs:[]},{type:"error",name:"InvalidCreator",inputs:[]},{type:"error",name:"InvalidCreatorAddress",inputs:[]},{type:"error",name:"InvalidCreatorShare",inputs:[]},{type:"error",name:"InvalidOwnerShare",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRecipientShareTotal",inputs:[{name:"_share",type:"uint256",internalType:"uint256"},{name:"_validShare",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidShareAmount",inputs:[]},{type:"error",name:"InvalidShareTotal",inputs:[]},{type:"error",name:"InvalidShareTransferRecipient",inputs:[]},{type:"error",name:"NotInitialized",inputs:[]},{type:"error",name:"NotManagerOwner",inputs:[]},{type:"error",name:"NotOwnerOrModerator",inputs:[]},{type:"error",name:"OwnerShareAlreadyInitialized",inputs:[]},{type:"error",name:"RecipientAlreadyActive",inputs:[]},{type:"error",name:"RecipientNotActive",inputs:[]},{type:"error",name:"Reentrancy",inputs:[]},{type:"error",name:"TokenTimelocked",inputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UnableToSendRevenue",inputs:[{name:"_reason",type:"bytes",internalType:"bytes"}]},{type:"error",name:"UnknownFlaunchToken",inputs:[]},{type:"error",name:"UnknownPoolId",inputs:[]}],Rp=[{inputs:[{internalType:"uint256",name:"wethAmount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"}],Np=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerNotPositionManager",type:"error"},{inputs:[{internalType:"uint256",name:"_deadline",type:"uint256"}],name:"DeadlineExpired",type:"error"},{inputs:[],name:"InvalidPoolKey",type:"error"},{inputs:[{internalType:"address",name:"_invalidSigner",type:"address"}],name:"InvalidSigner",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Reentrancy",type:"error"},{inputs:[],name:"SignatureAlreadyUsed",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerAlreadyAdded",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"SignerDoesNotExist",type:"error"},{inputs:[{internalType:"uint256",name:"_requestedAmount",type:"uint256"},{internalType:"uint256",name:"_maxTokensOut",type:"uint256"}],name:"TransactionCapExceeded",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],indexed:!1,internalType:"struct TrustedSignerFeeCalculator.FairLaunchSettings",name:"_settings",type:"tuple"}],name:"PoolKeyFairLaunchSettingsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"PoolKeySignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_signer",type:"address"},{indexed:!1,internalType:"bool",name:"_isTrusted",type:"bool"}],name:"TrustedSignerUpdated",type:"event"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"addTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"",type:"tuple"},{internalType:"uint24",name:"_baseFee",type:"uint24"}],name:"determineSwapFee",outputs:[{internalType:"uint24",name:"swapFee_",type:"uint24"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchSettings",outputs:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint256",name:"walletCap",type:"uint256"},{internalType:"uint256",name:"txCap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"isTrustedSigner",outputs:[{internalType:"bool",name:"valid_",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_origin",type:"address"}],name:"maxTokensOut",outputs:[{internalType:"bool",name:"hasCap_",type:"bool"},{internalType:"uint256",name:"maxTokensOut_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"removeTrustedSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"bytes",name:"_params",type:"bytes"}],name:"setFlaunchParams",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"address",name:"_signer",type:"address"}],name:"setTrustedPoolKeySigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"trackSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"trustedPoolKeySigner",outputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"address",name:"_wallet",type:"address"}],name:"walletPurchasedAmount",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"}];class zp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Np,address:e})}trustedPoolKeySigner({poolId:e}){return this.contract.read("trustedPoolKeySigner",{_poolId:e})}}class Hp{constructor(e,n=t.createDrift(),a){this.TICK_SPACING=Fo,this.chainId=e,this.drift=n,this.publicClient=a,this.resolveIPFS=Ss,this.readPositionManager=new no(Hr[this.chainId],n),this.readPositionManagerV1_1=new Mo(qr[this.chainId],n),this.readPositionManagerV1_2=new ip(Vr[this.chainId],n),this.readAnyPositionManager=new sp($r[this.chainId],n),this.readTokenImporter=new yp(this.chainId,ss[this.chainId],n),this.readFeeEscrow=new dp(fs[this.chainId],n),this.readReferralEscrow=new fp(bs[this.chainId],n),this.readFlaunchZap=new Vo(this.chainId,zr[this.chainId],n),this.readPoolManager=new oo(ws[this.chainId],n),this.readStateView=new yo(xs[this.chainId],n),this.readFairLaunch=new lo(jr[this.chainId],n),this.readFairLaunchV1_1=new wp(Xr[this.chainId],n),this.readBidWall=new mo(Qr[this.chainId],n),this.readBidWallV1_1=new hp(Yr[this.chainId],n),this.readAnyBidWall=new bo(Jr[this.chainId],n),this.readFlaunch=new Wo(Kr[this.chainId],n),this.readFlaunchV1_1=new Ip(Wr[this.chainId],n),this.readFlaunchV1_2=new Mp(Gr[this.chainId],n),this.readAnyFlaunch=new Zo(Zr[this.chainId],n),this.readQuoter=new Jo(this.chainId,Is[this.chainId],n),this.readPermit2=new tp(Ms[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_2.isValidCoin(e)||await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)||await this.readAnyPositionManager.isValidCoin(e)}async getCoinVersion(t){if(await this.readPositionManagerV1_2.isValidCoin(t))return e.FlaunchVersion.V1_2;if(await this.readPositionManagerV1_1.isValidCoin(t))return e.FlaunchVersion.V1_1;if(await this.readPositionManager.isValidCoin(t))return e.FlaunchVersion.V1;if(await this.readAnyPositionManager.isValidCoin(t))return e.FlaunchVersion.ANY;throw new Error(`Unknown coin version for address: ${t}`)}getPositionManager(t){switch(t){case e.FlaunchVersion.V1:return this.readPositionManager;case e.FlaunchVersion.V1_1:return this.readPositionManagerV1_1;case e.FlaunchVersion.V1_2:return this.readPositionManagerV1_2;case e.FlaunchVersion.ANY:return this.readAnyPositionManager;default:return this.readPositionManagerV1_2}}getFairLaunch(t){switch(t){case e.FlaunchVersion.V1:return this.readFairLaunch;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:case e.FlaunchVersion.ANY:default:return this.readFairLaunchV1_1}}getBidWall(t){switch(t){case e.FlaunchVersion.V1:return this.readBidWall;case e.FlaunchVersion.V1_1:case e.FlaunchVersion.V1_2:return this.readBidWallV1_1;case e.FlaunchVersion.ANY:return this.readAnyBidWall;default:return this.readBidWallV1_1}}getFlaunch(t){switch(t){case e.FlaunchVersion.V1:return this.readFlaunch;case e.FlaunchVersion.V1_1:return this.readFlaunchV1_1;case e.FlaunchVersion.V1_2:return this.readFlaunchV1_2;case e.FlaunchVersion.ANY:return this.readAnyFlaunch;default:return this.readFlaunchV1_2}}getFlaunchAddress(e){return this.getFlaunch(e).contract.address}getPositionManagerAddress(e){return this.getPositionManager(e).contract.address}getFairLaunchAddress(e){return this.getFairLaunch(e).contract.address}getBidWallAddress(e){return this.getBidWall(e).contract.address}async getFlaunchTokenIdForMemecoin(e){const t=await this.getCoinVersion(e),n=this.getFlaunch(t),a=await n.tokenId(e);return{flaunchAddress:n.contract.address,tokenId:a}}async getCoinMetadata(e){const t=new Xo(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 Wo(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new Sp(this.drift),i=e.map(e=>this.readFlaunch.contract.encodeFunctionData("memecoin",{_tokenId:e.tokenId})),r=(await a.aggregate3(i.map((t,n)=>({target:e[n].flaunch,callData:t})))).map(e=>this.readFlaunch.contract.decodeFunctionReturn("memecoin",e.returnData)),o=[];r.forEach(()=>{o.push(this.drift.adapter.encodeFunctionData({abi:jo,fn:"name"})),o.push(this.drift.adapter.encodeFunctionData({abi:jo,fn:"symbol"})),o.push(this.drift.adapter.encodeFunctionData({abi:jo,fn:"tokenURI"}))});const p=await a.aggregate3(o.map((e,t)=>({target:r[Math.floor(t/3)],callData:e}))),y=[];for(let e=0;e<r.length;e++){const t=this.drift.adapter.decodeFunctionReturn({abi:jo,fn:"name",data:p[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:jo,fn:"symbol",data:p[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:jo,fn:"tokenURI",data:p[3*e+2].returnData});y.push({name:t,symbol:n,tokenURI:a,coinAddress:r[e]})}const u=[];for(let e=0;e<y.length;e+=t){const a=y.slice(e,e+t),i=await Promise.all(a.map(async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=(await s.default.get(this.resolveIPFS(n))).data;return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?this.resolveIPFS(i.image):"",external_link:i.websiteUrl??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??"",telegramUrl:i.telegramUrl??""}}));u.push(...i),e+t<y.length&&await new Promise(e=>setTimeout(e,n))}return u}watchPoolCreated(t,n=e.FlaunchVersion.V1_1){return n===e.FlaunchVersion.V1?this.readPositionManager.watchPoolCreated(t):this.readPositionManagerV1_1.watchPoolCreated(t)}pollPoolCreatedNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolCreatedNow;if(n)return n()}async getPoolCreatedFromTx(e){if(!this.publicClient)throw new Error("Public client is required to fetch transaction data");const t=await this.publicClient.getTransactionReceipt({hash:e});if(!t)throw new Error(`Transaction not found: ${e}`);for(const e of t.logs)try{const t=n.decodeEventLog({abi:ap,data:e.data,topics:e.topics});if("PoolCreated"===t.eventName)return{poolId:t.args._poolId,memecoin:t.args._memecoin,memecoinTreasury:t.args._memecoinTreasury,tokenId:t.args._tokenId,currencyFlipped:t.args._currencyFlipped,flaunchFee:t.args._flaunchFee,params:t.args._params}}catch(e){continue}return null}async watchPoolSwap(t,n=e.FlaunchVersion.V1_1){return(n===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).watchPoolSwap({...t,filterByPoolId:t.filterByCoin?await this.poolId(t.filterByCoin,n):void 0,flETHIsCurrencyZero:t.filterByCoin?this.flETHIsCurrencyZero(t.filterByCoin):void 0})}pollPoolSwapNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolSwapNow;if(n)return n()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return(await this.readStateView.poolSlot0({poolId:a})).tick}async coinPriceInETH(e,t){const n=await this.determineCoinVersion(e,t),a=this.flETHIsCurrencyZero(e),i=await this.currentTick(e,n),r=Math.pow(1.0001,i);let s=0;return s=a?1/r:r,s.toFixed(18)}async coinPriceInUSD({coinAddress:e,version:t,drift:n}){const a=await this.determineCoinVersion(e,t),i=await this.coinPriceInETH(e,a),r=await this.getETHUSDCPrice(n);return(parseFloat(i)*r).toFixed(18)}async coinMarketCapInUSD({coinAddress:e,version:t,drift:n}){const a=await this.coinPriceInUSD({coinAddress:e,version:t,drift:n});return(1e11*parseFloat(a)).toFixed(2)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new Jo(t,Is[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async initialSqrtPriceX96(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=this.flETHIsCurrencyZero(e.coinAddress);return new to(await this.readPositionManagerV1_1.initialPrice(),this.drift).getSqrtPriceX96({isFLETHZero:i,initialPriceParams:a})}async fairLaunchInfo(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchInfo({poolId:a})}async isFairLaunchActive(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return this.getFairLaunch(n).isFairLaunchActive({poolId:a})}async trustedPoolKeySignerStatus(t,a){const i=await this.determineCoinVersion(t,a);if(i===e.FlaunchVersion.ANY)throw new Error("AnyPositionManager is not supported for TrustedSigner");const r=await this.fairLaunchInfo(t,i);let s;r.closed&&(s=!1),(new Date).getTime()/1e3>r.endsAt&&(s=!1),s=!0;const o={isFairLaunchActive:s,fairLaunchStartsAt:Number(r.startsAt),fairLaunchEndsAt:Number(r.endsAt)},p=await this.getPositionManager(i).getFeeCalculator({forFairLaunch:!0});try{const e=new zp(p,this.drift),n=await this.poolId(t,i),a=await e.trustedPoolKeySigner({poolId:n});return{isCurrentlyEnabled:a.enabled&&s,trustedSignerEnabled:a.enabled,signer:a.signer,...o}}catch{return{isCurrentlyEnabled:!1,trustedSignerEnabled:!1,signer:n.zeroAddress,...o}}}async fairLaunchDuration(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchDuration({poolId:a})}async initialTick(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n);return(await this.getFairLaunch(n).fairLaunchInfo({poolId:a})).initialTick}async fairLaunchETHOnlyPosition(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=Eo({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=o+this.TICK_SPACING):(p=Eo({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),o=p-this.TICK_SPACING);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Lo(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let o,p;s?(o=Po.MIN_TICK,p=Eo({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(o=Eo({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=Po.MAX_TICK);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:o,tickUpper:p,salt:""}),{amount0:u,amount1:l}=Lo(y,o,p,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:o,tickUpper:p}}async bidWallPosition(e,t){const n=await this.determineCoinVersion(e,t),a=await this.poolId(e,n),i=this.flETHIsCurrencyZero(e),{amount0_:r,amount1_:s,pendingEth_:o}=await this.getBidWall(n).position({poolId:a}),{tickLower:p,tickUpper:y}=await this.getBidWall(n).poolInfo({poolId:a}),[u,l]=i?[r,s]:[s,r];return{flETHAmount:u,coinAmount:l,pendingEth:o,tickLower:p,tickUpper:y}}creatorRevenue(e,t){return t?this.readPositionManager.creatorBalance(e):this.readFeeEscrow.balances(e)}referralBalance(e,t){return this.readReferralEscrow.allocations(e,t)}revenueManagerBalance(e){return new Cp(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new Cp(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new Cp(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new Cp(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new Cp(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async treasuryManagerInfo(e){const t=new Op(e,this.drift),[n,a]=await Promise.all([t.managerOwner(),t.permissions()]);return{managerOwner:n,permissions:a}}async poolId(e,t){let n;const a=await this.determineCoinVersion(e,t);return n=this.getPositionManagerAddress(a),So(Co({currency0:Ts[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:n}))}getFlaunchingFee(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readPositionManagerV1_1.getFlaunchingFee({sender:e.sender,initialPriceParams:a,slippagePercent:e.slippagePercent})}ethRequiredToFlaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readFlaunchZap.ethRequiredToFlaunch({premineAmount:e.premineAmount,initialPriceParams:a,slippagePercent:e.slippagePercent})}async getSellQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a}){const i=await this.determineCoinVersion(e,t);return this.readQuoter.getSellQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(i),intermediatePoolKey:a})}async getBuyQuoteExactInput({coinAddress:e,version:t,amountIn:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=await this.determineCoinVersion(e,t);return this.readQuoter.getBuyQuoteExactInput({coinAddress:e,amountIn:n,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}async getBuyQuoteExactOutput({coinAddress:e,amountOut:t,version:n,intermediatePoolKey:a,hookData:i,userWallet:r}){const s=await this.determineCoinVersion(e,n);return this.readQuoter.getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:this.getPositionManagerAddress(s),intermediatePoolKey:a,hookData:i,userWallet:r})}flETHIsCurrencyZero(e){return e>Ts[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}async parseSwapTx(e){return this.getPositionManager(e.version).parseSwapTx(e.txHash,e.flETHIsCurrencyZero)}tokenImporterVerifyMemecoin(e){return this.readTokenImporter.verifyMemecoin(e)}async getCoinInfo(e){const t=new Xo(e,this.drift),[a,i]=await Promise.all([t.totalSupply(),t.decimals()]);return{totalSupply:a,decimals:i,formattedTotalSupplyInDecimals:parseFloat(n.formatUnits(a,i))}}async getMarketContext(e,t){const n=await this.getETHUSDCPrice(),a=this.flETHIsCurrencyZero(e);return{ethUsdPrice:n,isFlethZero:a,decimals0:a?18:t,decimals1:a?t:18}}marketCapToTokenPriceEth(e,t,n){return e/t/n}convertPriceToTick(e,t,n,a){return Ro({priceInput:e.toString(),isDirection1Per0:!t,decimals0:n,decimals1:a,spacing:Fo})}calculateCurrentTickFromMarketCap(e,t,n){if(!e)return;const a=parseFloat(e),i=this.marketCapToTokenPriceEth(a,t,n.ethUsdPrice);return this.convertPriceToTick(i,n.isFlethZero,n.decimals0,n.decimals1)}async calculateAddLiquidityTicks({coinAddress:t,liquidityMode:n,minMarketCap:a,maxMarketCap:i,currentMarketCap:r}){const{totalSupply:s,decimals:o,formattedTotalSupplyInDecimals:p}=await this.getCoinInfo(t);if(n===e.LiquidityMode.FULL_RANGE){let e;if(r){const n=await this.getMarketContext(t,o);e=this.calculateCurrentTickFromMarketCap(r,p,n)}return{tickLower:Do({tick:Po.MIN_TICK,tickSpacing:Fo}),tickUpper:Do({tick:Po.MAX_TICK,tickSpacing:Fo}),currentTick:e,coinTotalSupply:s,coinDecimals:o}}{const e=await this.getMarketContext(t,o),n=parseFloat(a),y=parseFloat(i);if(n<=0||y<=0||n>=y)throw new Error("[ReadFlaunchSDK.addLiquidityCalculateTicks]: Invalid market cap range");const u=this.marketCapToTokenPriceEth(n,p,e.ethUsdPrice),l=this.marketCapToTokenPriceEth(y,p,e.ethUsdPrice),d=this.convertPriceToTick(u,e.isFlethZero,e.decimals0,e.decimals1),c=this.convertPriceToTick(l,e.isFlethZero,e.decimals0,e.decimals1),m=this.calculateCurrentTickFromMarketCap(r,p,e);return{tickLower:Math.min(d,c),tickUpper:Math.max(d,c),currentTick:m,coinTotalSupply:s,coinDecimals:o}}}async checkSingleSidedAddLiquidity(e){const{coinAddress:t,liquidityMode:n}=e;let a,i,r;if("minMarketCap"in e)a=e.minMarketCap,i=e.maxMarketCap,r=e.currentMarketCap;else{const{formattedTotalSupplyInDecimals:n}=await this.getCoinInfo(t);a=(parseFloat(e.minPriceUSD)*n).toString(),i=(parseFloat(e.maxPriceUSD)*n).toString(),e.currentPriceUSD&&(r=(e.currentPriceUSD*n).toString())}let{tickLower:s,tickUpper:o,currentTick:p}=await this.calculateAddLiquidityTicks({coinAddress:t,liquidityMode:n,minMarketCap:a,maxMarketCap:i,currentMarketCap:r});if(!p){const n=await this.determineCoinVersion(t,e.version);p=(await this.readStateView.poolSlot0({poolId:So(this.createPoolKey(t,n))})).tick}const y=this.flETHIsCurrencyZero(t);if(!(p<=s||p>=o))return{isSingleSided:!1,shouldHideCoinInput:!1,shouldHideETHInput:!1};let u=!1,l=!1;return p<=s?y?u=!0:l=!0:p>=o&&(y?l=!0:u=!0),{isSingleSided:!0,shouldHideCoinInput:u,shouldHideETHInput:l}}async calculateAddLiquidityAmounts(e){const{coinAddress:t,liquidityMode:n,inputToken:a,coinOrEthInputAmount:i}=e;let r,s,o;if("minMarketCap"in e)r=e.minMarketCap,s=e.maxMarketCap,o=e.currentMarketCap;else{const{formattedTotalSupplyInDecimals:n}=await this.getCoinInfo(t);r=(parseFloat(e.minPriceUSD)*n).toString(),s=(parseFloat(e.maxPriceUSD)*n).toString(),e.currentPriceUSD&&(o=(e.currentPriceUSD*n).toString())}let{tickLower:p,tickUpper:y,currentTick:u}=await this.calculateAddLiquidityTicks({coinAddress:t,liquidityMode:n,minMarketCap:r,maxMarketCap:s,currentMarketCap:o});if(!u){const n=await this.determineCoinVersion(t,e.version);u=(await this.readStateView.poolSlot0({poolId:So(this.createPoolKey(t,n))})).tick}const l=this.flETHIsCurrencyZero(t);try{const e=Uo(u);let t,n,r=Uo(p),s=Uo(y);r>s&&([r,s]=[s,r]);const o="coin"===a;if(o&&!l||!o&&l)if(t=i,e<=r)n=0n;else if(e>=s){n=i*(s*s/_o)/_o}else{const t=Ao*(s-e)/_o;n=t>0n?i*(s*e*(e-r)/_o)/t:0n}else if(n=i,e<=r){t=i*_o/(r*r/_o)}else if(e>=s)t=0n;else{const n=s*e*(e-r)/_o;t=n>0n?i*(Ao*(s-e)/_o)/n:0n}let[d,c]=l?[t,n]:[n,t];return(u<=p||u>=y)&&(u<=p?l?c=0n:d=0n:u>=y&&(l?d=0n:c=0n)),{coinAmount:c,ethAmount:d,tickLower:p,tickUpper:y,currentTick:u}}catch(e){throw console.error("Error calculating liquidity amounts:",e),e}}async isMemecoinImported(e){const t=Co({currency0:e,currency1:Ts[this.chainId],fee:0,tickSpacing:Fo,hooks:$r[this.chainId]});return 0n!==(await this.readStateView.poolSlot0({poolId:So(t)})).sqrtPriceX96}async isFlaunchTokenApprovedForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.read({abi:n.erc721Abi,address:i,fn:"isApprovedForAll",args:{owner:t,operator:a}})}async determineCoinVersion(t,n){if(!n)try{n=await this.getCoinVersion(t)}catch{n=e.FlaunchVersion.ANY}return n}createPoolKey(e,t){const n=Ts[this.chainId];return Co({currency0:e,currency1:n,fee:0,tickSpacing:this.TICK_SPACING,hooks:this.getPositionManagerAddress(t)})}}class qp extends Hp{constructor(e,n=t.createDrift(),a){super(e,n,a),this.readWritePositionManager=new ao(Hr[this.chainId],n),this.readWritePositionManagerV1_1=new ko(qr[this.chainId],n),this.readWriteAnyPositionManager=new op($r[this.chainId],n),this.readWriteTokenImporter=new up(this.chainId,ss[this.chainId],n),this.readWriteFeeEscrow=new cp(fs[this.chainId],n),this.readWriteReferralEscrow=new bp(bs[this.chainId],n),this.readWriteFlaunchZap=new $o(this.chainId,zr[this.chainId],n),this.readWriteTreasuryManagerFactory=new _p(this.chainId,es[this.chainId],n,this.publicClient),this.readWritePermit2=new np(Ms[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteFlaunchZap.deployRevenueManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}async deployStakingManager(e){const t=await this.readWriteFlaunchZap.deployStakingManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}async deployBuyBackManager(e){const t=await this.readWriteFlaunchZap.deployBuyBackManager(e);return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(t)}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}flaunchWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchWithRevenueManager(e)}async flaunchIPFSWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchIPFSWithRevenueManager(e)}flaunchWithSplitManager(e){return this.readWriteFlaunchZap.flaunchWithSplitManager(e)}flaunchIPFSWithSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithSplitManager(e)}flaunchWithDynamicSplitManager(e){return this.readWriteFlaunchZap.flaunchWithDynamicSplitManager(e)}flaunchIPFSWithDynamicSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithDynamicSplitManager(e)}anyFlaunch(e){return this.readWriteAnyPositionManager.flaunch(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new Xo(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){const n=await this.determineCoinVersion(e.coinAddress,t),a=await this.drift.getSignerAddress();let i,r,s,o;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?Ws({amount:await this.readQuoter.getBuyQuoteExactInput({coinAddress:e.coinAddress,amountIn:i,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountOutMin):(s=e.amountOut,o=void 0===e.amountInMax?Ws({amount:await this.readQuoter.getBuyQuoteExactOutput({coinAddress:e.coinAddress,coinOut:s,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,hookData:e.hookData,userWallet:a}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:e.swapType}):e.amountInMax);const{commands:p,inputs:y}=Zs({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer??null,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:o,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey,permitSingle:e.permitSingle,signature:e.signature,hookData:e.hookData});return this.drift.adapter.write({abi:Us,address:vs[this.chainId],fn:"execute",args:{commands:p,inputs:y},value:e.intermediatePoolKey?0n:"EXACT_IN"===e.swapType?i:o})}async sellCoin(e,t){const n=await this.determineCoinVersion(e.coinAddress,t);let a;await this.readQuoter.contract.cache.clear(),a=void 0===e.amountOutMin?Ws({amount:await this.readQuoter.getSellQuoteExactInput({coinAddress:e.coinAddress,amountIn:e.amountIn,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey}),slippage:(e.slippagePercent/100).toFixed(18).toString(),swapType:"EXACT_IN"}):e.amountOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=js({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,amountOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer??null,positionManagerAddress:this.getPositionManagerAddress(n),intermediatePoolKey:e.intermediatePoolKey});return this.drift.write({abi:Us,address:vs[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:n}=await this.getPermit2AllowanceAndNonce(e),a=BigInt(Math.floor(Date.now()/1e3)+31536e4);return Ys({chainId:this.chainId,coinAddress:e,nonce:n,deadline:void 0!==t?t:a})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,vs[this.chainId]);return{allowance:t,nonce:n}}async getERC20AllowanceToPermit2(e){return new Xo(e,this.drift).allowance(await this.drift.getSignerAddress(),Ms[this.chainId])}async setERC20AllowanceToPermit2(e,t){return new Qo(e,this.drift).approve(Ms[this.chainId],t)}async withdrawCreatorRevenue(e){const t=e.recipient??await this.drift.getSignerAddress();return e.isV1?this.readWritePositionManager.withdrawFees(t):this.readWriteFeeEscrow.withdrawFees(t)}claimReferralBalance(e,t){return this.readWriteReferralEscrow.claimTokens(e,t)}revenueManagerProtocolClaim(e){return new Ep(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new Ep(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new Ep(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}treasuryManagerSetPermissions(e,t){const n=new Bp(e,this.drift),a=Io(t,this.chainId);return n.setPermissions(a)}treasuryManagerTransferOwnership(e,t){return new Bp(e,this.drift).transferManagerOwnership(t)}async setFlaunchTokenApprovalForAll(e,t,a){const i=this.getFlaunchAddress(e);return this.drift.write({abi:n.erc721Abi,address:i,fn:"setApprovalForAll",args:{operator:t,approved:a}})}async addToTreasuryManager(e,t,n,a,i="0x"){const r=new Bp(e,this.drift),s={flaunch:this.getFlaunchAddress(t),tokenId:n},o=a??await this.drift.getSignerAddress();return r.deposit(s,o,i)}importMemecoin(e){return this.readWriteTokenImporter.initialize(e)}async getAddLiquidityCalls(e){const{coinAddress:t}=e,a=Ts[this.chainId];let i,r,s,o,p;const y=await this.determineCoinVersion(t,e.version),u=this.createPoolKey(t,y);if("tickLower"in e)if(i=e.coinAmount,r=e.flethAmount,s=e.tickLower,o=e.tickUpper,e.currentTick)p=e.currentTick;else{p=(await this.readStateView.poolSlot0({poolId:So(u)})).tick}else{let n,a,u;if("minMarketCap"in e)n=e.minMarketCap,a=e.maxMarketCap,u=e.initialMarketCapUSD;else{const{formattedTotalSupplyInDecimals:i}=await this.getCoinInfo(t);n=(parseFloat(e.minPriceUSD)*i).toString(),a=(parseFloat(e.maxPriceUSD)*i).toString(),e.initialPriceUSD&&(u=e.initialPriceUSD*i)}const l=await this.calculateAddLiquidityAmounts({coinAddress:t,liquidityMode:e.liquidityMode,coinOrEthInputAmount:e.coinOrEthInputAmount,inputToken:e.inputToken,minMarketCap:n,maxMarketCap:a,currentMarketCap:u?.toString(),version:y});i=l.coinAmount,r=l.ethAmount,s=l.tickLower,o=l.tickUpper,p=l.currentTick}const l=await this.drift.getSignerAddress(),d=Ms[this.chainId],c=await this.drift.multicall({calls:[{address:t,abi:n.erc20Abi,fn:"allowance",args:{owner:l,spender:d}},{address:a,abi:n.erc20Abi,fn:"allowance",args:{owner:l,spender:d}},{address:d,abi:ep,fn:"allowance",args:{0:l,1:t,2:ks[this.chainId]}},{address:d,abi:ep,fn:"allowance",args:{0:l,1:a,2:ks[this.chainId]}},{address:t,abi:n.erc20Abi,fn:"symbol"}]}),m=c[0].value,f=c[1].value,b=c[2].value,T=c[3].value,h=c[4].value,g=m<i,w=f<r,v=Math.floor(Date.now()/1e3),I=b.amount<i||b.expiration<=v,x=r>0n&&(T.amount<r||T.expiration<=v),M=[];g&&M.push({to:t,description:`Approve ${h} for Permit2`,data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[d,i]})}),w&&M.push({to:a,description:"Approve flETH for Permit2",data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[d,r]})});const k=Math.floor(Date.now()/1e3)+3600;I&&M.push({to:d,description:`Permit2 approval for ${h} to UniV4PositionManager`,data:n.encodeFunctionData({abi:ep,functionName:"approve",args:[t,ks[this.chainId],i,k]})}),x&&M.push({to:d,description:"Permit2 approval for flETH to UniV4PositionManager",data:n.encodeFunctionData({abi:ep,functionName:"approve",args:[a,ks[this.chainId],r,k]})}),r>0n&&M.push({to:a,description:"Wrap ETH to flETH",data:n.encodeFunctionData({abi:Rp,functionName:"deposit",args:[0n]}),value:r});const P=u.currency0===t?i:r,_=u.currency0===t?r:i,A=e.slippagePercent,{finalLiquidity:F,finalAmount0:S,finalAmount1:C}=this.calculateConstrainedLiquidity(p,s,o,P,_,A);return M.push(this.createLiquidityCall(u,s,o,F,S,C,l)),M}async getImportAndAddLiquidityCalls(t){let n;if("initialMarketCapUSD"in t){const e=t;n=await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialMarketCapUSD:e.initialMarketCapUSD,verifier:e.verifier})}else{const e=t;n=await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialPriceUSD:e.initialPriceUSD,verifier:e.verifier})}const a=await this.getAddLiquidityCalls({...t,version:e.FlaunchVersion.ANY});return[{to:this.readWriteTokenImporter.contract.address,data:this.readWriteTokenImporter.contract.encodeFunctionData("initialize",n),description:"Import Memecoin to Flaunch"},...a]}async getSingleSidedCoinAddLiquidityCalls(e){const{coinAddress:t,coinAmount:a}=e,i=await this.determineCoinVersion(t,e.version),r=this.createPoolKey(t,i);let s;const o=await this.readStateView.poolSlot0({poolId:So(r)});if(s=o.tick,0n===o.sqrtPriceX96&&("initialMarketCapUSD"in e&&e.initialMarketCapUSD||"initialPriceUSD"in e&&e.initialPriceUSD)){let a,{decimals:i,formattedTotalSupplyInDecimals:r}=await this.getCoinInfo(t);if("tokenSupply"in e&&void 0!==e.tokenSupply&&(r=parseFloat(n.formatUnits(e.tokenSupply,i))),"initialMarketCapUSD"in e&&e.initialMarketCapUSD)a=e.initialMarketCapUSD;else{if(!("initialPriceUSD"in e)||!e.initialPriceUSD)throw new Error("Either initialMarketCapUSD or initialPriceUSD must be provided");a=e.initialPriceUSD*r}const o=await this.getMarketContext(t,i),p=this.calculateCurrentTickFromMarketCap(a.toString(),r,o);if(void 0===p)throw new Error("Failed to calculate current tick from market cap");s=p}let p,y;this.flETHIsCurrencyZero(t)?(p=Po.MIN_TICK,y=Eo({tick:s,tickSpacing:this.TICK_SPACING,roundDown:!0})):(p=Eo({tick:s,tickSpacing:this.TICK_SPACING,roundDown:!1}),y=Po.MAX_TICK);const u=await this.drift.getSignerAddress(),l=Ms[this.chainId],d=await this.drift.multicall({calls:[{address:t,abi:n.erc20Abi,fn:"allowance",args:{owner:u,spender:l}},{address:l,abi:ep,fn:"allowance",args:{0:u,1:t,2:ks[this.chainId]}},{address:t,abi:n.erc20Abi,fn:"symbol"}]}),c=d[0].value,m=d[1].value,f=d[2].value,b=c<a,T=Math.floor(Date.now()/1e3),h=m.amount<a||m.expiration<=T,g=[];b&&g.push({to:t,description:`Approve ${f} for Permit2`,data:n.encodeFunctionData({abi:n.erc20Abi,functionName:"approve",args:[l,a]})});const w=Math.floor(Date.now()/1e3)+3600;h&&g.push({to:l,description:`Permit2 approval for ${f} to UniV4PositionManager`,data:n.encodeFunctionData({abi:ep,functionName:"approve",args:[t,ks[this.chainId],a,w]})});const v=r.currency0===t?a:0n,I=r.currency0===t?0n:a,x=e.slippagePercent,{finalLiquidity:M,finalAmount0:k,finalAmount1:P}=this.calculateConstrainedLiquidity(s,p,y,v,I,x);return g.push(this.createLiquidityCall(r,p,y,M,k,P,u)),g}async getImportAndSingleSidedCoinAddLiquidityCalls(t){let n;if("initialMarketCapUSD"in t){const e=t;n="tokenSupply"in e&&void 0!==e.tokenSupply?await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialMarketCapUSD:e.initialMarketCapUSD,verifier:e.verifier,tokenSupply:e.tokenSupply}):await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialMarketCapUSD:e.initialMarketCapUSD,verifier:e.verifier})}else{const e=t;n="tokenSupply"in e&&void 0!==e.tokenSupply?await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialPriceUSD:e.initialPriceUSD,verifier:e.verifier,tokenSupply:e.tokenSupply}):await this.readWriteTokenImporter.getInitializeParams({coinAddress:e.coinAddress,creatorFeeAllocationPercent:e.creatorFeeAllocationPercent,initialPriceUSD:e.initialPriceUSD,verifier:e.verifier})}const a=await this.getSingleSidedCoinAddLiquidityCalls({...t,..."_totalSupply"in n&&{tokenSupply:n._totalSupply},version:e.FlaunchVersion.ANY});return[{to:this.readWriteTokenImporter.contract.address,data:this.readWriteTokenImporter.contract.encodeFunctionData("initialize",n),description:"Import Memecoin to Flaunch"},...a]}calculateConstrainedLiquidity(e,t,n,a,i,r=.05){const s=No({currentTick:e,tickLower:t,tickUpper:n,amount0:a,amount1:i}),o=qo({currentTick:e,tickLower:t,tickUpper:n,liquidity:s});let p=s,y=o.amount0,u=o.amount1;if(o.amount0>a||o.amount1>i){console.log("Actual amounts exceed user input, constraining...");const r=No({currentTick:e,tickLower:t,tickUpper:n,amount0:a,amount1:0n}),s=No({currentTick:e,tickLower:t,tickUpper:n,amount0:0n,amount1:i});p=r<s?r:s;const o=qo({currentTick:e,tickLower:t,tickUpper:n,liquidity:p});y=o.amount0,u=o.amount1}const l=r/100,d=p/BigInt(Math.floor(1/l));return void 0!==e&&(p=p-(d>1n?d:1n)),y=a,u=i,{finalLiquidity:p,finalAmount0:y,finalAmount1:u}}createLiquidityCall(e,t,a,i,r,s,o){const p="0x"+"02"+"0d",y=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"}]},{type:"int24",name:"tickLower"},{type:"int24",name:"tickUpper"},{type:"uint256",name:"liquidity"},{type:"uint128",name:"amount0Max"},{type:"uint128",name:"amount1Max"},{type:"address",name:"owner"},{type:"bytes",name:"hookData"}],[e,t,a,i,r,s,o,"0x"]),u=n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"currency0"},{type:"address",name:"currency1"}]}],[{currency0:e.currency0,currency1:e.currency1}]);return{to:ks[this.chainId],data:n.encodeFunctionData({abi:[{inputs:[{internalType:"bytes",name:"unlockData",type:"bytes"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"modifyLiquidities",outputs:[],stateMutability:"payable",type:"function"}],functionName:"modifyLiquidities",args:[n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[p,[y,u]]),BigInt(Math.floor(Date.now()/1e3)+3600)]}),value:0n,description:"Add Liquidity"}}}class Vp{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Lp,address:e})}permissions(){return this.contract.read("permissions")}managerOwner(){return this.contract.read("managerOwner")}moderator(){return this.contract.read("moderator")}creatorShare(){return this.contract.read("creatorShare")}ownerShare(){return this.contract.read("ownerShare")}totalActiveShares(){return this.contract.read("totalActiveShares")}accumulatorPerShare(){return this.contract.read("accumulatorPerShare")}lastProcessedManagerFees(){return this.contract.read("lastProcessedManagerFees")}recipientCount(){return this.contract.read("recipientCount")}recipientAt(e){return this.contract.read("recipientAt",{_index:e})}recipients(e){return this.contract.read("recipients",{_recipient:e})}balances(e){return this.contract.read("balances",{_recipient:e})}recipientShare(e,t="0x"){return this.contract.read("recipientShare",{_recipient:e,1:t})}pendingCreatorFees(e){return this.contract.read("pendingCreatorFees",{_recipient:e})}pendingOwnerFees(){return this.contract.read("pendingOwnerFees")}claimableOwnerFees(){return this.contract.read("claimableOwnerFees")}async allRecipients(e=!1){const t=await this.recipientCount(),n=await Promise.all(Array.from({length:Number(t)},(e,t)=>this.recipientAt(BigInt(t))));if(e)return n;return(await Promise.all(n.map(async e=>({recipient:e,data:await this.recipients(e)})))).filter(({data:e})=>e.share>0n).map(({recipient:e})=>e)}}function $p(e){const{publicClient:n,walletClient:a}=e;if(!n.chain)throw new Error("publicClient must be configured with a chain");return a?t.createDrift({adapter:i.viemAdapter({publicClient:n,walletClient:a})}):t.createDrift({adapter:i.viemAdapter({publicClient:n})})}const Kp=n.parseAbi(["function call(address to, uint256 value, bytes data)"]);function Wp(e,t){if(!e.chain)throw new Error("publicClient must be configured with a chain");return n.createWalletClient({chain:e.chain,transport:n.http()}).extend(e=>({get account(){return{address:t,type:"json-rpc"}},getAddresses:async()=>[t],requestAddresses:async()=>[t],async writeContract(e){const t=e.address,a=e.value??0n,i=n.encodeFunctionData({abi:e.abi,functionName:e.functionName,args:e.args});return n.encodeFunctionData({abi:Kp,functionName:"call",args:[t,a,i]})},async sendTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:Kp,functionName:"call",args:[t,a,i]})},async signTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:Kp,functionName:"call",args:[t,a,i]})}}))}function Gp(e){const t=n.decodeFunctionData({abi:Kp,data:e});return{to:t.args[0],value:t.args[1],data:t.args[2]}}
|
|
3
|
+
const rr=BigInt(0),sr=BigInt(1);function or(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function pr(e){if(!or(e))throw new Error("Uint8Array expected")}function yr(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function ur(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function lr(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?rr:BigInt("0x"+e)}const dr="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,cr=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function mr(e){if(pr(e),dr)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=cr[e[n]];return t}const Tr=48,fr=57,br=65,hr=70,wr=97,gr=102;function Ir(e){return e>=Tr&&e<=fr?e-Tr:e>=br&&e<=hr?e-(br-10):e>=wr&&e<=gr?e-(wr-10):void 0}function vr(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(dr)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const a=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){const n=Ir(e.charCodeAt(i)),r=Ir(e.charCodeAt(i+1));if(void 0===n||void 0===r){const t=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+i)}a[t]=16*n+r}return a}function xr(e){return lr(mr(e))}function Mr(e){return pr(e),lr(mr(Uint8Array.from(e).reverse()))}function kr(e,t){return vr(e.toString(16).padStart(2*t,"0"))}function Pr(e,t){return kr(e,t).reverse()}function _r(e,t,n){let a;if("string"==typeof t)try{a=vr(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!or(t))throw new Error(e+" must be hex string or Uint8Array");a=Uint8Array.from(t)}const i=a.length;if("number"==typeof n&&i!==n)throw new Error(e+" of length "+n+" expected, got "+i);return a}function Ar(...e){let t=0;for(let n=0;n<e.length;n++){const a=e[n];pr(a),t+=a.length}const n=new Uint8Array(t);for(let t=0,a=0;t<e.length;t++){const i=e[t];n.set(i,a),a+=i.length}return n}const Fr=e=>"bigint"==typeof e&&rr<=e;function Cr(e,t,n){return Fr(e)&&Fr(t)&&Fr(n)&&t<=e&&e<n}function Sr(e,t,n,a){if(!Cr(t,n,a))throw new Error("expected valid "+e+": "+n+" <= n < "+a+", got "+t)}const Er=e=>(sr<<BigInt(e))-sr,Dr=e=>new Uint8Array(e),Or=e=>Uint8Array.from(e);const Br={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||or(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Lr(e,t,n={}){const a=(t,n,a)=>{const i=Br[n];if("function"!=typeof i)throw new Error("invalid validator function");const r=e[t];if(!(a&&void 0===r||i(r,e)))throw new Error("param "+String(t)+" is invalid. Expected "+n+", got "+r)};for(const[e,n]of Object.entries(t))a(e,n,!1);for(const[e,t]of Object.entries(n))a(e,t,!0);return e}function Ur(e){const t=new WeakMap;return(n,...a)=>{const i=t.get(n);if(void 0!==i)return i;const r=e(n,...a);return t.set(n,r),r}}const Rr=BigInt(0),Nr=BigInt(1),Hr=BigInt(2),zr=BigInt(3),qr=BigInt(4),Vr=BigInt(5),Kr=BigInt(8);function Wr(e,t){const n=e%t;return n>=Rr?n:t+n}function $r(e,t,n){let a=e;for(;t-- >Rr;)a*=a,a%=n;return a}function Gr(e,t){if(e===Rr)throw new Error("invert: expected non-zero number");if(t<=Rr)throw new Error("invert: expected positive modulus, got "+t);let n=Wr(e,t),a=t,i=Rr,r=Nr;for(;n!==Rr;){const e=a%n,t=i-r*(a/n);a=n,n=e,i=r,r=t}if(a!==Nr)throw new Error("invert: does not exist");return Wr(i,t)}function Zr(e,t){const n=(e.ORDER+Nr)/qr,a=e.pow(t,n);if(!e.eql(e.sqr(a),t))throw new Error("Cannot find square root");return a}function Xr(e,t){const n=(e.ORDER-Vr)/Kr,a=e.mul(t,Hr),i=e.pow(a,n),r=e.mul(t,i),s=e.mul(e.mul(r,Hr),i),o=e.mul(r,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),t))throw new Error("Cannot find square root");return o}function jr(e){return e%qr===zr?Zr:e%Kr===Vr?Xr:function(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let t=e-Nr,n=0;for(;t%Hr===Rr;)t/=Hr,n++;let a=Hr;const i=ts(e);for(;1===Jr(i,a);)if(a++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return Zr;let r=i.pow(a,t);const s=(t+Nr)/Hr;return function(e,a){if(e.is0(a))return a;if(1!==Jr(e,a))throw new Error("Cannot find square root");let i=n,o=e.mul(e.ONE,r),p=e.pow(a,t),y=e.pow(a,s);for(;!e.eql(p,e.ONE);){if(e.is0(p))return e.ZERO;let t=1,n=e.sqr(p);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw new Error("Cannot find square root");const a=Nr<<BigInt(i-t-1),r=e.pow(o,a);i=t,o=e.sqr(r),p=e.mul(p,o),y=e.mul(y,r)}return y}}(e)}const Qr=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Yr(e,t,n=!1){const a=new Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(a[i]=t,e.mul(t,n)),e.ONE),r=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(a[i]=e.mul(t,a[i]),e.mul(t,n)),r),a}function Jr(e,t){const n=(e.ORDER-Nr)/Hr,a=e.pow(t,n),i=e.eql(a,e.ONE),r=e.eql(a,e.ZERO),s=e.eql(a,e.neg(e.ONE));if(!i&&!r&&!s)throw new Error("invalid Legendre symbol result");return i?1:r?0:-1}function es(e,t){void 0!==t&&ce(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function ts(e,t,n=!1,a={}){if(e<=Rr)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:r}=es(e,t);if(r>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let s;const o=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:r,MASK:Er(i),ZERO:Rr,ONE:Nr,create:t=>Wr(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return Rr<=t&&t<e},is0:e=>e===Rr,isOdd:e=>(e&Nr)===Nr,neg:t=>Wr(-t,e),eql:(e,t)=>e===t,sqr:t=>Wr(t*t,e),add:(t,n)=>Wr(t+n,e),sub:(t,n)=>Wr(t-n,e),mul:(t,n)=>Wr(t*n,e),pow:(e,t)=>function(e,t,n){if(n<Rr)throw new Error("invalid exponent, negatives unsupported");if(n===Rr)return e.ONE;if(n===Nr)return t;let a=e.ONE,i=t;for(;n>Rr;)n&Nr&&(a=e.mul(a,i)),i=e.sqr(i),n>>=Nr;return a}(o,e,t),div:(t,n)=>Wr(t*Gr(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Gr(t,e),sqrt:a.sqrt||(t=>(s||(s=jr(e)),s(o,t))),toBytes:e=>n?Pr(e,r):kr(e,r),fromBytes:e=>{if(e.length!==r)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+e.length);return n?Mr(e):xr(e)},invertBatch:e=>Yr(o,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(o)}function ns(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function as(e){const t=ns(e);return t+Math.ceil(t/2)}class is extends Me{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");ce(e.outputLen),ce(e.blockLen)}(e);const n=xe(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const a=this.blockLen,i=new Uint8Array(a);i.set(n.length>a?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),be(i)}update(e){return Te(this),this.iHash.update(e),this}digestInto(e){Te(this),me(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:a,destroyed:i,blockLen:r,outputLen:s}=this;return e.finished=a,e.destroyed=i,e.blockLen=r,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const rs=(e,t,n)=>new is(e,t).update(n).digest();rs.create=(e,t)=>new is(e,t);const ss=BigInt(0),os=BigInt(1);function ps(e,t){const n=t.negate();return e?n:t}function ys(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function us(e,t){ys(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:Er(e),maxNumber:n,shiftBy:BigInt(e)}}function ls(e,t,n){const{windowSize:a,mask:i,maxNumber:r,shiftBy:s}=n;let o=Number(e&i),p=e>>s;o>a&&(o-=r,p+=os);const y=t*a;return{nextN:p,offset:y+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:y}}const ds=new WeakMap,cs=new WeakMap;function ms(e){return cs.get(e)||1}function Ts(e,t,n,a){!function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(a,t);const i=n.length,r=a.length;if(i!==r)throw new Error("arrays of points and scalars must have equal length");const s=e.ZERO,o=function(e){let t;for(t=0;e>rr;e>>=sr,t+=1);return t}(BigInt(i));let p=1;o>12?p=o-3:o>4?p=o-2:o>0&&(p=2);const y=Er(p),u=new Array(Number(y)+1).fill(s);let l=s;for(let e=Math.floor((t.BITS-1)/p)*p;e>=0;e-=p){u.fill(s);for(let t=0;t<r;t++){const i=a[t],r=Number(i>>BigInt(e)&y);u[r]=u[r].add(n[t])}let t=s;for(let e=u.length-1,n=s;e>0;e--)n=n.add(u[e]),t=t.add(n);if(l=l.add(t),0!==e)for(let e=0;e<p;e++)l=l.double()}return l}function fs(e){return Lr(e.Fp,Qr.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Lr(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...es(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}function bs(e){void 0!==e.lowS&&yr("lowS",e.lowS),void 0!==e.prehash&&yr("prehash",e.prehash)}class hs extends Error{constructor(e=""){super(e)}}const ws={Err:hs,_tlv:{encode:(e,t)=>{const{Err:n}=ws;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const a=t.length/2,i=ur(a);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const r=a>127?ur(i.length/2|128):"";return ur(e)+r+i+t},decode(e,t){const{Err:n}=ws;let a=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[a++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[a++];let r=0;if(!!(128&i)){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const s=t.subarray(a,a+e);if(s.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===s[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of s)r=r<<8|e;if(a+=e,r<128)throw new n("tlv.decode(long): not minimal encoding")}else r=i;const s=t.subarray(a,a+r);if(s.length!==r)throw new n("tlv.decode: wrong value length");return{v:s,l:t.subarray(a+r)}}},_int:{encode(e){const{Err:t}=ws;if(e<Is)throw new t("integer: negative integers are not allowed");let n=ur(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=ws;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return xr(e)}},toSig(e){const{Err:t,_int:n,_tlv:a}=ws,i=_r("signature",e),{v:r,l:s}=a.decode(48,i);if(s.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:p}=a.decode(2,r),{v:y,l:u}=a.decode(2,p);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(o),s:n.decode(y)}},hexFromSig(e){const{_tlv:t,_int:n}=ws,a=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,a)}};function gs(e,t){return mr(kr(e,t))}const Is=BigInt(0),vs=BigInt(1);BigInt(2);const xs=BigInt(3),Ms=BigInt(4);function ks(e){const t=function(e){const t=fs(e);Lr(t,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:n,Fp:a,a:i}=t;if(n){if(!a.eql(i,a.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...t})}(e),{Fp:n}=t,a=ts(t.n,t.nBitLength),i=t.toBytes||((e,t,a)=>{const i=t.toAffine();return Ar(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),r=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function s(e){const{a:a,b:i}=t,r=n.sqr(e),s=n.mul(r,e);return n.add(n.add(s,n.mul(e,a)),i)}function o(e,t){const a=n.sqr(t),i=s(e);return n.eql(a,i)}if(!o(t.Gx,t.Gy))throw new Error("bad curve params: generator point");const p=n.mul(n.pow(t.a,xs),Ms),y=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(p,y)))throw new Error("bad curve params: a or b");function u(e){const{allowedPrivateKeyLengths:n,nByteLength:a,wrapPrivateKey:i,n:r}=t;if(n&&"bigint"!=typeof e){if(or(e)&&(e=mr(e)),"string"!=typeof e||!n.includes(e.length))throw new Error("invalid private key");e=e.padStart(2*a,"0")}let s;try{s="bigint"==typeof e?e:xr(_r("private key",e,a))}catch(t){throw new Error("invalid private key, expected hex or "+a+" bytes, got "+typeof e)}return i&&(s=Wr(s,r)),Sr("private key",s,vs,r),s}function l(e){if(!(e instanceof m))throw new Error("ProjectivePoint expected")}const d=Ur((e,t)=>{const{px:a,py:i,pz:r}=e;if(n.eql(r,n.ONE))return{x:a,y:i};const s=e.is0();null==t&&(t=s?n.ONE:n.inv(r));const o=n.mul(a,t),p=n.mul(i,t),y=n.mul(r,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(y,n.ONE))throw new Error("invZ was invalid");return{x:o,y:p}}),c=Ur(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:a,y:i}=e.toAffine();if(!n.isValid(a)||!n.isValid(i))throw new Error("bad point: x or y not FE");if(!o(a,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class m{constructor(e,t,a){if(null==e||!n.isValid(e))throw new Error("x required");if(null==t||!n.isValid(t)||n.is0(t))throw new Error("y required");if(null==a||!n.isValid(a))throw new Error("z required");this.px=e,this.py=t,this.pz=a,Object.freeze(this)}static fromAffine(e){const{x:t,y:a}=e||{};if(!e||!n.isValid(t)||!n.isValid(a))throw new Error("invalid affine point");if(e instanceof m)throw new Error("projective point not allowed");const i=e=>n.eql(e,n.ZERO);return i(t)&&i(a)?m.ZERO:new m(t,a,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=Yr(n,e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(m.fromAffine)}static fromHex(e){const t=m.fromAffine(r(_r("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return m.BASE.multiply(u(e))}static msm(e,t){return Ts(m,a,e,t)}_setWindowSize(e){b.setWindowSize(this,e)}assertValidity(){c(this)}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){l(e);const{px:t,py:a,pz:i}=this,{px:r,py:s,pz:o}=e,p=n.eql(n.mul(t,o),n.mul(r,i)),y=n.eql(n.mul(a,o),n.mul(s,i));return p&&y}negate(){return new m(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:a}=t,i=n.mul(a,xs),{px:r,py:s,pz:o}=this;let p=n.ZERO,y=n.ZERO,u=n.ZERO,l=n.mul(r,r),d=n.mul(s,s),c=n.mul(o,o),T=n.mul(r,s);return T=n.add(T,T),u=n.mul(r,o),u=n.add(u,u),p=n.mul(e,u),y=n.mul(i,c),y=n.add(p,y),p=n.sub(d,y),y=n.add(d,y),y=n.mul(p,y),p=n.mul(T,p),u=n.mul(i,u),c=n.mul(e,c),T=n.sub(l,c),T=n.mul(e,T),T=n.add(T,u),u=n.add(l,l),l=n.add(u,l),l=n.add(l,c),l=n.mul(l,T),y=n.add(y,l),c=n.mul(s,o),c=n.add(c,c),l=n.mul(c,T),p=n.sub(p,l),u=n.mul(c,d),u=n.add(u,u),u=n.add(u,u),new m(p,y,u)}add(e){l(e);const{px:a,py:i,pz:r}=this,{px:s,py:o,pz:p}=e;let y=n.ZERO,u=n.ZERO,d=n.ZERO;const c=t.a,T=n.mul(t.b,xs);let f=n.mul(a,s),b=n.mul(i,o),h=n.mul(r,p),w=n.add(a,i),g=n.add(s,o);w=n.mul(w,g),g=n.add(f,b),w=n.sub(w,g),g=n.add(a,r);let I=n.add(s,p);return g=n.mul(g,I),I=n.add(f,h),g=n.sub(g,I),I=n.add(i,r),y=n.add(o,p),I=n.mul(I,y),y=n.add(b,h),I=n.sub(I,y),d=n.mul(c,g),y=n.mul(T,h),d=n.add(y,d),y=n.sub(b,d),d=n.add(b,d),u=n.mul(y,d),b=n.add(f,f),b=n.add(b,f),h=n.mul(c,h),g=n.mul(T,g),b=n.add(b,h),h=n.sub(f,h),h=n.mul(c,h),g=n.add(g,h),f=n.mul(b,g),u=n.add(u,f),f=n.mul(I,g),y=n.mul(w,y),y=n.sub(y,f),f=n.mul(w,b),d=n.mul(I,d),d=n.add(d,f),new m(y,u,d)}subtract(e){return this.add(e.negate())}is0(){return this.equals(m.ZERO)}wNAF(e){return b.wNAFCached(this,e,m.normalizeZ)}multiplyUnsafe(e){const{endo:a,n:i}=t;Sr("scalar",e,Is,i);const r=m.ZERO;if(e===Is)return r;if(this.is0()||e===vs)return this;if(!a||b.hasPrecomputes(this))return b.wNAFCachedUnsafe(this,e,m.normalizeZ);let{k1neg:s,k1:o,k2neg:p,k2:y}=a.splitScalar(e),u=r,l=r,d=this;for(;o>Is||y>Is;)o&vs&&(u=u.add(d)),y&vs&&(l=l.add(d)),d=d.double(),o>>=vs,y>>=vs;return s&&(u=u.negate()),p&&(l=l.negate()),l=new m(n.mul(l.px,a.beta),l.py,l.pz),u.add(l)}multiply(e){const{endo:a,n:i}=t;let r,s;if(Sr("scalar",e,vs,i),a){const{k1neg:t,k1:i,k2neg:o,k2:p}=a.splitScalar(e);let{p:y,f:u}=this.wNAF(i),{p:l,f:d}=this.wNAF(p);y=b.constTimeNegate(t,y),l=b.constTimeNegate(o,l),l=new m(n.mul(l.px,a.beta),l.py,l.pz),r=y.add(l),s=u.add(d)}else{const{p:t,f:n}=this.wNAF(e);r=t,s=n}return m.normalizeZ([r,s])[0]}multiplyAndAddUnsafe(e,t,n){const a=m.BASE,i=(e,t)=>t!==Is&&t!==vs&&e.equals(a)?e.multiply(t):e.multiplyUnsafe(t),r=i(this,t).add(i(e,n));return r.is0()?void 0:r}toAffine(e){return d(this,e)}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===vs)return!0;if(n)return n(m,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===vs?this:n?n(m,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return yr("isCompressed",e),this.assertValidity(),i(m,this,e)}toHex(e=!0){return yr("isCompressed",e),mr(this.toRawBytes(e))}}m.BASE=new m(t.Gx,t.Gy,n.ONE),m.ZERO=new m(n.ZERO,n.ONE,n.ZERO);const{endo:T,nBitLength:f}=t,b=(h=m,w=T?Math.ceil(f/2):f,{constTimeNegate:ps,hasPrecomputes:e=>1!==ms(e),unsafeLadder(e,t,n=h.ZERO){let a=e;for(;t>ss;)t&os&&(n=n.add(a)),a=a.double(),t>>=os;return n},precomputeWindow(e,t){const{windows:n,windowSize:a}=us(t,w),i=[];let r=e,s=r;for(let e=0;e<n;e++){s=r,i.push(s);for(let e=1;e<a;e++)s=s.add(r),i.push(s);r=s.double()}return i},wNAF(e,t,n){let a=h.ZERO,i=h.BASE;const r=us(e,w);for(let e=0;e<r.windows;e++){const{nextN:s,offset:o,isZero:p,isNeg:y,isNegF:u,offsetF:l}=ls(n,e,r);n=s,p?i=i.add(ps(u,t[l])):a=a.add(ps(y,t[o]))}return{p:a,f:i}},wNAFUnsafe(e,t,n,a=h.ZERO){const i=us(e,w);for(let e=0;e<i.windows&&n!==ss;e++){const{nextN:r,offset:s,isZero:o,isNeg:p}=ls(n,e,i);if(n=r,!o){const e=t[s];a=a.add(p?e.negate():e)}}return a},getPrecomputes(e,t,n){let a=ds.get(t);return a||(a=this.precomputeWindow(t,e),1!==e&&ds.set(t,n(a))),a},wNAFCached(e,t,n){const a=ms(e);return this.wNAF(a,this.getPrecomputes(a,e,n),t)},wNAFCachedUnsafe(e,t,n,a){const i=ms(e);return 1===i?this.unsafeLadder(e,t,a):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,a)},setWindowSize(e,t){ys(t,w),cs.set(e,t),ds.delete(e)}});var h,w;return{CURVE:t,ProjectivePoint:m,normPrivateKeyToScalar:u,weierstrassEquation:s,isWithinCurveOrder:function(e){return Cr(e,vs,t.n)}}}function Ps(e){const t=function(e){const t=fs(e);return Lr(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:a,nByteLength:i,nBitLength:r}=t,s=n.BYTES+1,o=2*n.BYTES+1;function p(e){return Wr(e,a)}function y(e){return Gr(e,a)}const{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:d,isWithinCurveOrder:c}=ks({...t,toBytes(e,t,a){const i=t.toAffine(),r=n.toBytes(i.x),s=Ar;return yr("isCompressed",a),a?s(Uint8Array.from([t.hasEvenY()?2:3]),r):s(Uint8Array.from([4]),r,n.toBytes(i.y))},fromBytes(e){const t=e.length,a=e[0],i=e.subarray(1);if(t!==s||2!==a&&3!==a){if(t===o&&4===a){return{x:n.fromBytes(i.subarray(0,n.BYTES)),y:n.fromBytes(i.subarray(n.BYTES,2*n.BYTES))}}throw new Error("invalid Point, expected length of "+s+", or uncompressed "+o+", got "+t)}{const e=xr(i);if(!Cr(e,vs,n.ORDER))throw new Error("Point is not on curve");const t=d(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("Point is not on curve"+t)}return!(1&~a)!==((r&vs)===vs)&&(r=n.neg(r)),{x:e,y:r}}}});function m(e){return e>a>>vs}const T=(e,t,n)=>xr(e.slice(t,n));class f{constructor(e,t,n){Sr("r",e,vs,a),Sr("s",t,vs,a),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){const t=i;return e=_r("compactSignature",e,2*t),new f(T(e,0,t),T(e,t,2*t))}static fromDER(e){const{r:t,s:n}=ws.toSig(_r("DER",e));return new f(t,n)}assertValidity(){}addRecoveryBit(e){return new f(this.r,this.s,e)}recoverPublicKey(e){const{r:a,s:i,recovery:r}=this,s=g(_r("msgHash",e));if(null==r||![0,1,2,3].includes(r))throw new Error("recovery id invalid");const o=2===r||3===r?a+t.n:a;if(o>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const l=1&r?"03":"02",d=u.fromHex(l+gs(o,n.BYTES)),c=y(o),m=p(-s*c),T=p(i*c),f=u.BASE.multiplyAndAddUnsafe(d,m,T);if(!f)throw new Error("point at infinify");return f.assertValidity(),f}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new f(this.r,p(-this.s),this.recovery):this}toDERRawBytes(){return vr(this.toDERHex())}toDERHex(){return ws.hexFromSig(this)}toCompactRawBytes(){return vr(this.toCompactHex())}toCompactHex(){const e=i;return gs(this.r,e)+gs(this.s,e)}}const b={isValidPrivateKey(e){try{return l(e),!0}catch(e){return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const e=as(t.n);return function(e,t,n=!1){const a=e.length,i=ns(t),r=as(t);if(a<16||a<r||a>1024)throw new Error("expected "+r+"-1024 bytes of input, got "+a);const s=Wr(n?Mr(e):xr(e),t-Nr)+Nr;return n?Pr(s,i):kr(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=u.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function h(e){if("bigint"==typeof e)return!1;if(e instanceof u)return!0;const a=_r("key",e).length,r=n.BYTES,s=r+1,o=2*r+1;return t.allowedPrivateKeyLengths||i===s?void 0:a===s||a===o}const w=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=xr(e),n=8*e.length-r;return n>0?t>>BigInt(n):t},g=t.bits2int_modN||function(e){return p(w(e))},I=Er(r);function v(e){return Sr("num < 2^"+r,e,Is,I),kr(e,i)}function x(e,a,i=M){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{hash:r,randomBytes:s}=t;let{lowS:o,prehash:d,extraEntropy:T}=i;null==o&&(o=!0),e=_r("msgHash",e),bs(i),d&&(e=_r("prehashed msgHash",r(e)));const b=g(e),h=l(a),I=[v(h),v(b)];if(null!=T&&!1!==T){const e=!0===T?s(n.BYTES):T;I.push(_r("extraEntropy",e))}const x=Ar(...I),k=b;return{seed:x,k2sig:function(e){const t=w(e);if(!c(t))return;const n=y(t),a=u.BASE.multiply(t).toAffine(),i=p(a.x);if(i===Is)return;const r=p(n*p(k+i*h));if(r===Is)return;let s=(a.x===i?0:2)|Number(a.y&vs),l=r;return o&&m(r)&&(l=function(e){return m(e)?p(-e):e}(r),s^=1),new f(i,l,s)}}}const M={lowS:t.lowS,prehash:!1},k={lowS:t.lowS,prehash:!1};return u.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return u.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(!0===h(e))throw new Error("first arg must be private key");if(!1===h(t))throw new Error("second arg must be public key");return u.fromHex(t).multiply(l(e)).toRawBytes(n)},sign:function(e,n,a=M){const{seed:i,k2sig:r}=x(e,n,a),s=t,o=function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let a=Dr(e),i=Dr(e),r=0;const s=()=>{a.fill(1),i.fill(0),r=0},o=(...e)=>n(i,a,...e),p=(e=Dr(0))=>{i=o(Or([0]),e),a=o(),0!==e.length&&(i=o(Or([1]),e),a=o())},y=()=>{if(r++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){a=o();const t=a.slice();n.push(t),e+=a.length}return Ar(...n)};return(e,t)=>{let n;for(s(),p(e);!(n=t(y()));)p();return s(),n}}(s.hash.outputLen,s.nByteLength,s.hmac);return o(i,r)},verify:function(e,n,a,i=k){const r=e;n=_r("msgHash",n),a=_r("publicKey",a);const{lowS:s,prehash:o,format:l}=i;if(bs(i),"strict"in i)throw new Error("options.strict was renamed to lowS");if(void 0!==l&&"compact"!==l&&"der"!==l)throw new Error("format must be compact or der");const d="string"==typeof r||or(r),c=!d&&!l&&"object"==typeof r&&null!==r&&"bigint"==typeof r.r&&"bigint"==typeof r.s;if(!d&&!c)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let m,T;try{if(c&&(m=new f(r.r,r.s)),d){try{"compact"!==l&&(m=f.fromDER(r))}catch(e){if(!(e instanceof ws.Err))throw e}m||"der"===l||(m=f.fromCompact(r))}T=u.fromHex(a)}catch(e){return!1}if(!m)return!1;if(s&&m.hasHighS())return!1;o&&(n=t.hash(n));const{r:b,s:h}=m,w=g(n),I=y(h),v=p(w*I),x=p(b*I),M=u.BASE.multiplyAndAddUnsafe(T,v,x)?.toAffine();return!!M&&p(M.x)===b},ProjectivePoint:u,Signature:f,utils:b}}function _s(e){return{hash:e,hmac:(t,...n)=>rs(e,t,function(...e){let t=0;for(let n=0;n<e.length;n++){const a=e[n];me(a),t+=a.length}const n=new Uint8Array(t);for(let t=0,a=0;t<e.length;t++){const i=e[t];n.set(i,a),a+=i.length}return n}(...n)),randomBytes:Pe}}const As=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Fs=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Cs=BigInt(0),Ss=BigInt(1),Es=BigInt(2),Ds=(e,t)=>(e+t/Es)/t;const Os=ts(As,void 0,void 0,{sqrt:function(e){const t=As,n=BigInt(3),a=BigInt(6),i=BigInt(11),r=BigInt(22),s=BigInt(23),o=BigInt(44),p=BigInt(88),y=e*e*e%t,u=y*y*e%t,l=$r(u,n,t)*u%t,d=$r(l,n,t)*u%t,c=$r(d,Es,t)*y%t,m=$r(c,i,t)*c%t,T=$r(m,r,t)*m%t,f=$r(T,o,t)*T%t,b=$r(f,p,t)*f%t,h=$r(b,o,t)*T%t,w=$r(h,n,t)*u%t,g=$r(w,s,t)*m%t,I=$r(g,a,t)*y%t,v=$r(I,Es,t);if(!Os.eql(Os.sqr(v),e))throw new Error("Cannot find square root");return v}}),Bs=function(e,t){const n=t=>Ps({...e,..._s(t)});return{...n(t),create:n}}({a:Cs,b:BigInt(7),Fp:Os,n:Fs,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=Fs,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),a=-Ss*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),r=n,s=BigInt("0x100000000000000000000000000000000"),o=Ds(r*e,t),p=Ds(-a*e,t);let y=Wr(e-o*n-p*i,t),u=Wr(-o*a-p*r,t);const l=y>s,d=u>s;if(l&&(y=t-y),d&&(u=t-u),y>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:y,k2neg:d,k2:u}}}},Ue);
|
|
4
4
|
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
5
|
-
function Zp(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function jp(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function Xp(e){if("function"!=typeof e)throw new Error("function expected");return!0}function Qp(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function Yp(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function Jp(e){if(!Array.isArray(e))throw new Error("array expected")}function ey(e,t){if(!jp(!0,t))throw new Error(`${e}: array of strings expected`)}function ty(e,t){if(!jp(!1,t))throw new Error(`${e}: array of numbers expected`)}function ny(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function ay(e){const t="string"==typeof e?e.split(""):e,n=t.length;ey("alphabet",t);const a=new Map(t.map((e,t)=>[e,t]));return{encode:a=>(Jp(a),a.map(a=>{if(!Number.isSafeInteger(a)||a<0||a>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${a}". Allowed: ${e}`);return t[a]})),decode:t=>(Jp(t),t.map(t=>{Qp("alphabet.decode",t);const n=a.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function iy(e=""){return Qp("join",e),{encode:t=>(ey("join.decode",t),t.join(e)),decode:t=>(Qp("join.decode",t),t.split(e))}}function ry(e,t="="){return Yp(e),Qp("padding",t),{encode(n){for(ey("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){ey("padding.decode",n);let a=n.length;if(a*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;a>0&&n[a-1]===t;a--){if((a-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,a)}}}function sy(e){return Xp(e),{encode:e=>e,decode:t=>e(t)}}function oy(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(Jp(e),!e.length)return[];let a=0;const i=[],r=Array.from(e,e=>{if(Yp(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e}),s=r.length;for(;;){let e=0,o=!0;for(let i=a;i<s;i++){const s=r[i],p=t*e,y=p+s;if(!Number.isSafeInteger(y)||p/t!==e||y-s!==p)throw new Error("convertRadix: carry overflow");const u=y/n;e=y%n;const l=Math.floor(u);if(r[i]=l,!Number.isSafeInteger(l)||l*n+e!==y)throw new Error("convertRadix: carry overflow");o&&(l?o=!1:a=i)}if(i.push(e),o)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}const py=(e,t)=>0===t?e:py(t,e%t),yy=(e,t)=>e+(t-py(e,t)),uy=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function ly(e,t,n,a){if(Jp(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(yy(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${yy(t,n)}`);let i=0,r=0;const s=uy[t],o=uy[n]-1,p=[];for(const a of e){if(Yp(a),a>=s)throw new Error(`convertRadix2: invalid data word=${a} from=${t}`);if(i=i<<t|a,r+t>32)throw new Error(`convertRadix2: carry overflow pos=${r} from=${t}`);for(r+=t;r>=n;r-=n)p.push((i>>r-n&o)>>>0);const e=uy[r];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<<n-r&o,!a&&r>=t)throw new Error("Excess padding");if(!a&&i>0)throw new Error(`Non-zero padding: ${i}`);return a&&r>0&&p.push(i>>>0),p}function dy(e,t=!1){if(Yp(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(yy(8,e)>32||yy(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Zp(n))throw new Error("radix2.encode input should be Uint8Array");return ly(Array.from(n),8,e,!t)},decode:n=>(ty("radix2.decode",n),Uint8Array.from(ly(n,e,8,t)))}}function cy(e){return Xp(e),function(...t){try{return e.apply(null,t)}catch(e){}}}ny(dy(4),ay("0123456789ABCDEF"),iy("")),ny(dy(5),ay("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),ry(5),iy("")),ny(dy(5),ay("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),iy("")),ny(dy(5),ay("0123456789ABCDEFGHIJKLMNOPQRSTUV"),ry(5),iy("")),ny(dy(5),ay("0123456789ABCDEFGHIJKLMNOPQRSTUV"),iy("")),ny(dy(5),ay("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),iy(""),sy(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const my=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();my||ny(dy(6),ay("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),ry(6),iy("")),ny(dy(6),ay("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),iy("")),my||ny(dy(6),ay("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),ry(6),iy("")),ny(dy(6),ay("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),iy(""));const fy=e=>{return ny((Yp(t=58),{encode:e=>{if(!Zp(e))throw new Error("radix.encode input should be Uint8Array");return oy(Array.from(e),256,t)},decode:e=>(ty("radix.decode",e),Uint8Array.from(oy(e,t,256)))}),ay(e),iy(""));var t},by=fy("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");fy("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),fy("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const Ty=ny(ay("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),iy("")),hy=[996825010,642813549,513874426,1027748829,705979059];function gy(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<hy.length;e++)1==(t>>e&1)&&(n^=hy[e]);return n}function wy(e,t,n=1){const a=e.length;let i=1;for(let t=0;t<a;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=gy(i)^n>>5}i=gy(i);for(let t=0;t<a;t++)i=gy(i)^31&e.charCodeAt(t);for(let e of t)i=gy(i)^e;for(let e=0;e<6;e++)i=gy(i);return i^=n,Ty.encode(ly([i%uy[30]],30,5,!1))}function vy(e){const t="bech32"===e?1:734539939,n=dy(5),a=n.decode,i=n.encode,r=cy(a);function s(e,n,a=90){Qp("bech32.encode prefix",e),Zp(n)&&(n=Array.from(n)),ty("bech32.encode",n);const i=e.length;if(0===i)throw new TypeError(`Invalid prefix length ${i}`);const r=i+7+n.length;if(!1!==a&&r>a)throw new TypeError(`Length ${r} exceeds limit ${a}`);const s=e.toLowerCase(),o=wy(s,n,t);return`${s}1${Ty.encode(n)}${o}`}function o(e,n=90){Qp("bech32.decode input",e);const a=e.length;if(a<8||!1!==n&&a>n)throw new TypeError(`invalid string length: ${a} (${e}). Expected (8..${n})`);const i=e.toLowerCase();if(e!==i&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const r=i.lastIndexOf("1");if(0===r||-1===r)throw new Error('Letter "1" must be present between prefix and data only');const s=i.slice(0,r),o=i.slice(r+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const p=Ty.decode(o).slice(0,-6),y=wy(s,p,t);if(!o.endsWith(y))throw new Error(`Invalid checksum in ${e}: expected "${y}"`);return{prefix:s,words:p}}return{encode:s,decode:o,encodeFromBytes:function(e,t){return s(e,i(t))},decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:a(n)}},decodeUnsafe:cy(o),fromWords:a,fromWordsUnsafe:r,toWords:i}}vy("bech32"),vy("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||ny(dy(4),ay("0123456789abcdef"),iy(""),sy(e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),fr.ProjectivePoint,(e=>{return ny((n=t=>e(e(t)),Yp(t=4),Xp(n),{encode(e){if(!Zp(e))throw new Error("checksum.encode: input should be Uint8Array");const a=n(e).slice(0,t),i=new Uint8Array(e.length+t);return i.set(e),i.set(a,e.length),i},decode(e){if(!Zp(e))throw new Error("checksum.decode: input should be Uint8Array");const a=e.slice(0,-t),i=e.slice(-t),r=n(a).slice(0,t);for(let e=0;e<t;e++)if(r[e]!==i[e])throw new Error("Invalid checksum");return a}}),by);var t,n})(st),Ie("Bitcoin seed");let Iy=!1;async function xy({hash:e,privateKey:t,to:n="object"}){const{r:a,s:i,recovery:r}=fr.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:f(Iy,{strict:!1})?D(Iy):Iy}),s={r:P(a,{size:32}),s:P(i,{size:32}),v:r?28n:27n,yParity:r};return"bytes"===n||"hex"===n?function({r:e,s:t,to:n="hex",v:a,yParity:i}){const r=(()=>{if(0===i||1===i)return i;if(a&&(27n===a||28n===a||a>=35n))return a%2n==0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),s=`0x${new fr.Signature(U(e),U(t)).toCompactHex()}${0===r?"1b":"1c"}`;return"hex"===n?s:D(s)}({...s,to:n}):s}function My(e,t){return zt(function(e){const t="string"==typeof e?A(e):"string"==typeof e.raw?e.raw:k(e.raw);return Z([A(`Ethereum Signed Message:\n${b(t)}`),t])}(e),t)}class ky extends l{constructor({domain:e}){var t,n,a;super(`Invalid domain "${t=e,JSON.stringify(t,(e,t)=>{const a="bigint"==typeof t?t.toString():t;return"function"==typeof n?n(e,a):a},a)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class Py extends l{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class _y extends l{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function Ay({domain:e}){return["string"==typeof e?.name&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},("number"==typeof e?.chainId||"bigint"==typeof e?.chainId)&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function Fy(e){if("address"===e||"bool"===e||"string"===e||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new _y({type:e})}function Sy(e){const{domain:t={},message:n,primaryType:a}=e,i={EIP712Domain:Ay({domain:t}),...e.types};!function(e){const{domain:t,message:n,primaryType:a,types:i}=e,r=(e,t)=>{for(const n of e){const{name:e,type:a}=n,s=t[e],o=a.match(Zn);if(o&&("number"==typeof s||"bigint"==typeof s)){const[e,t,n]=o;P(s,{signed:"int"===t,size:Number.parseInt(n,10)/8})}if("address"===a&&"string"==typeof s&&!Kt(s))throw new gt({address:s});const p=a.match(Gn);if(p){const[e,t]=p;if(t&&b(s)!==Number.parseInt(t,10))throw new ln({expectedSize:Number.parseInt(t,10),givenSize:b(s)})}const y=i[a];y&&(Fy(a),r(y,s))}};if(i.EIP712Domain&&t){if("object"!=typeof t)throw new ky({domain:t});r(i.EIP712Domain,t)}if("EIP712Domain"!==a){if(!i[a])throw new Py({primaryType:a,types:i});r(i[a],n)}}({domain:t,message:n,primaryType:a,types:i});const r=["0x1901"];return t&&r.push(function({domain:e,types:t}){return Cy({data:e,primaryType:"EIP712Domain",types:t})}({domain:t,types:i})),"EIP712Domain"!==a&&r.push(Cy({data:n,primaryType:a,types:i})),zt(Z(r))}function Cy({data:e,primaryType:t,types:n}){return zt(Ey({data:e,primaryType:t,types:n}))}function Ey({data:e,primaryType:t,types:n}){const a=[{type:"bytes32"}],i=[Dy({primaryType:t,types:n})];for(const r of n[t]){const[t,s]=By({types:n,name:r.name,type:r.type,value:e[r.name]});a.push(t),i.push(s)}return jn(a,i)}function Dy({primaryType:e,types:t}){const n=x(function({primaryType:e,types:t}){let n="";const a=Oy({primaryType:e,types:t});a.delete(e);const i=[e,...Array.from(a).sort()];for(const e of i)n+=`${e}(${t[e].map(({name:e,type:t})=>`${t} ${e}`).join(",")})`;return n}({primaryType:e,types:t}));return zt(n)}function Oy({primaryType:e,types:t},n=new Set){const a=e.match(/^\w*/u),i=a?.[0];if(n.has(i)||void 0===t[i])return n;n.add(i);for(const e of t[i])Oy({primaryType:e.type,types:t},n);return n}function By({types:e,name:t,type:n,value:a}){if(void 0!==e[n])return[{type:"bytes32"},zt(Ey({data:a,primaryType:n,types:e}))];if("bytes"===n)return[{type:"bytes32"},zt(a)];if("string"===n)return[{type:"bytes32"},zt(x(a))];if(n.lastIndexOf("]")===n.length-1){const i=n.slice(0,n.lastIndexOf("[")),r=a.map(n=>By({name:t,type:i,types:e,value:n}));return[{type:"bytes32"},zt(jn(r.map(([e])=>e),r.map(([,e])=>e)))]}return[{type:n},a]}function Uy(e,t={}){const{nonceManager:n}=t,a=x(fr.getPublicKey(e.slice(2),!1)),i=function(e){return qt(`0x${zt(`0x${e.substring(4)}`).substring(26)}`)}(a),r=function(e){if("string"==typeof e){if(!Kt(e,{strict:!1}))throw new gt({address:e});return{address:e,type:"json-rpc"}}if(!Kt(e.address,{strict:!1}))throw new gt({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}({address:i,nonceManager:n,sign:async({hash:t})=>xy({hash:t,privateKey:e,to:"hex"}),signAuthorization:async t=>async function(e){const{chainId:t,nonce:n,privateKey:a,to:i="object"}=e,r=e.contractAddress??e.address,s=await xy({hash:Nr({address:r,chainId:t,nonce:n}),privateKey:a,to:i});return"object"===i?{address:r,chainId:t,nonce:n,...s}:s}({...t,privateKey:e}),signMessage:async({message:t})=>async function({message:e,privateKey:t}){return await xy({hash:My(e),privateKey:t,to:"hex"})}({message:t,privateKey:e}),signTransaction:async(t,{serializer:n}={})=>async function(e){const{privateKey:t,transaction:n,serializer:a=Qt}=e,i="eip4844"===n.type?{...n,sidecars:!1}:n,r=await xy({hash:zt(await a(i)),privateKey:t});return await a(n,r)}({privateKey:e,transaction:t,serializer:n}),signTypedData:async t=>async function(e){const{privateKey:t,...n}=e;return await xy({hash:Sy(n),privateKey:t,to:"hex"})}({...t,privateKey:e})});return{...r,publicKey:a,source:"privateKey"}}const Ly=async({userWallet:e,poolId:t,deadline:a,privateKey:i})=>{const r=n.keccak256(n.encodePacked(["address","bytes32","uint256"],[e,t,a])),s=n.keccak256(n.encodePacked(["string","bytes32"],["Ethereum Signed Message:\n32",r])),o=Uy(i);return await o.sign({hash:s})},Ry={ReadFlaunchSDK:Hp,ReadWriteFlaunchSDK:qp};e.AddressFeeSplitManagerAddress=ns,e.AnyBidWallAddress=Jr,e.AnyFlaunchAddress=Zr,e.AnyPositionManagerAbi=rp,e.AnyPositionManagerAddress=$r,e.BidWallAddress=Qr,e.BidWallV1_1Abi=Tp,e.BidWallV1_1Address=Yr,e.BidwallAbi=co,e.BuyBackManagerAddress=rs,e.ClankerWorldVerifierAddress=os,e.ClosedPermissionsAddress=cs,e.DopplerVerifierAddress=ps,e.DynamicAddressFeeSplitManagerAbi=Lp,e.DynamicAddressFeeSplitManagerAddress=as,e.FLETHAddress=Ts,e.FLETHHooksAddress=hs,e.FairLaunchAbi=uo,e.FairLaunchAddress=jr,e.FairLaunchV1_1Abi=gp,e.FairLaunchV1_1Address=Xr,e.FastFlaunchZapAbi=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CREATOR_FEE_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"FAIR_LAUNCH_SUPPLY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"address",name:"creator",type:"address"}],internalType:"struct FastFlaunchZap.FastFlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"}],e.FastFlaunchZapAddress=gs,e.FeeEscrowAbi=lp,e.FeeEscrowAddress=fs,e.FlaunchAbi=Ko,e.FlaunchAddress=Kr,e.FlaunchBackend=class{constructor(e,t){this.signerPrivateKey=e,this.chainId=t}async generateHookDataWithSignature({userWallet:e,coinAddress:t,deadlineFromNowInSeconds:a,version:i,referrer:r}){const s=So(Co({currency0:Ts[this.chainId],currency1:t,fee:0,tickSpacing:Fo,hooks:this.getPositionManagerAddress(i)})),o=Math.floor(Date.now()/1e3),p=BigInt(o+a),y=await Ly({userWallet:e,poolId:s,deadline:p,privateKey:this.signerPrivateKey});r||(r=n.zeroAddress);return{hookData:n.encodeAbiParameters([{name:"referrer",type:"address"},{name:"signedMessage",type:"tuple",components:[{name:"poolId",type:"bytes32"},{name:"deadline",type:"uint256"},{name:"signature",type:"bytes"}]}],[r,{poolId:s,deadline:p,signature:y}]),deadline:Number(p),signature:y}}getPositionManagerAddress(t){const n=Vr[this.chainId];if(!t)return n;switch(t){case e.FlaunchVersion.V1:return Hr[this.chainId];case e.FlaunchVersion.V1_1:return qr[this.chainId];case e.FlaunchVersion.V1_2:return Vr[this.chainId];case e.FlaunchVersion.ANY:throw Error("AnyPositionManager is not supported for TrustedSigner");default:return n}}},e.FlaunchPositionManagerAbi=_s,e.FlaunchPositionManagerAddress=Hr,e.FlaunchPositionManagerV1_1Abi=xo,e.FlaunchPositionManagerV1_1Address=qr,e.FlaunchPositionManagerV1_2Address=Vr,e.FlaunchSDK=Ry,e.FlaunchV1_1Abi=vp,e.FlaunchV1_1Address=Wr,e.FlaunchV1_2Address=Gr,e.FlaunchZapAbi=To,e.FlaunchZapAddress=zr,e.InitialPriceAbi=eo,e.MemecoinAbi=jo,e.MulticallAbi=Fp,e.PERMIT_DETAILS=Xs,e.PERMIT_TYPES=Qs,e.Permit2Abi=ep,e.Permit2Address=Ms,e.PoolManagerAbi=so,e.PoolManagerAddress=ws,e.Q192=Ao,e.Q96=_o,e.QuoterAbi=Yo,e.QuoterAddress=Is,e.ReadDynamicAddressFeeSplitManager=Vp,e.ReadFlaunchSDK=Hp,e.ReadWriteDynamicAddressFeeSplitManager=class extends Vp{constructor(e,n=t.createDrift()){super(e,n)}setPermissions(e){return this.contract.write("setPermissions",{_permissions:e})}transferManagerOwnership(e){return this.contract.write("transferManagerOwnership",{_newManagerOwner:e})}setModerator(e){return this.contract.write("setModerator",{_moderator:e})}updateRecipients(e){return this.contract.write("updateRecipients",{_recipients:e})}transferRecipientShare(e){return this.contract.write("transferRecipientShare",{_newRecipient:e})}claim(){return this.contract.write("claim",{})}claimForData(e){return this.contract.write("claim",{_data:e})}deposit(e,t,n){return this.contract.write("deposit",{_flaunchToken:e,_creator:t,_data:n})}setCreator(e,t){return this.contract.write("setCreator",{_flaunchToken:e,_creator:t})}rescue(e,t){return this.contract.write("rescue",{_flaunchToken:e,_recipient:t})}},e.ReadWriteFlaunchSDK=qp,e.ReferralEscrowAbi=mp,e.ReferralEscrowAddress=bs,e.RevenueManagerAbi=Ap,e.RevenueManagerAddress=ts,e.SolanaVerifierAddress=ys,e.StakingManagerAddress=is,e.StateViewAbi=po,e.StateViewAddress=xs,e.TICK_SPACING=Fo,e.TickFinder=Po,e.TokenImporterAddress=ss,e.TreasuryManagerFactoryAbi=kp,e.TreasuryManagerFactoryAddress=es,e.USDCETHPoolKeys=Ps,e.UniV4PositionManagerAddress=ks,e.UniversalRouterAbi=Us,e.UniversalRouterAddress=vs,e.VirtualsVerifierAddress=us,e.WhitelistVerifierAddress=ls,e.WhitelistedPermissionsAddress=ms,e.ZoraVerifierAddress=ds,e.buyMemecoin=Zs,e.bytes32ToUint256=io,e.calculateUnderlyingTokenBalances=Lo,e.chainIdToChain=Up,e.createCallDataWalletClient=Wp,e.createDrift=$p,e.createFlaunch=function(e){const{publicClient:t,walletClient:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;return n?new qp(a,$p({publicClient:t,walletClient:n}),t):new Hp(a,$p({publicClient:t}),t)},e.createFlaunchCalldata=function(e){const{publicClient:t,walletAddress:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;if(n){const e=$p({publicClient:t,walletClient:Wp(t,n)});return new qp(a,e)}{const e=$p({publicClient:t});return new Hp(a,e)}},e.decodeCallData=Gp,e.encodedCallAbi=Kp,e.generateTokenUri=Bs,e.getAmountWithSlippage=Ws,e.getAmountsForLiquidity=qo,e.getLiquidityFromAmounts=No,e.getNearestUsableTick=Do,e.getPermissionsAddress=Io,e.getPermit2TypedData=Ys,e.getPoolId=So,e.getSqrtPriceX96FromTick=Uo,e.getValidTick=Eo,e.maxLiquidityForAmount0Precise=zo,e.maxLiquidityForAmount1=Ho,e.orderPoolKey=Co,e.parseCall=async function(e){return Gp(await e())},e.parseSwapData=Js,e.priceRatioToTick=Ro,e.resolveIPFS=Ss,e.sellMemecoinWithPermit2=js,e.uint256ToBytes32=ro,e.uploadFileToIPFS=async e=>{try{const t=new FormData;t.append("file",e.file);const n={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(n));const a={cidVersion:1};t.append("pinataOptions",JSON.stringify(a));const i=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:i.data.IpfsHash,PinSize:i.data.PinSize,Timestamp:i.data.Timestamp,isDuplicate:i.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToFlaunchAPI=Ds,e.uploadImageToIPFS=Es,e.uploadJsonToIPFS=Cs,e.uploadMetadataToFlaunchAPI=Os,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
5
|
+
function Ls(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Us(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function Rs(e){if("function"!=typeof e)throw new Error("function expected");return!0}function Ns(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function Hs(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function zs(e){if(!Array.isArray(e))throw new Error("array expected")}function qs(e,t){if(!Us(!0,t))throw new Error(`${e}: array of strings expected`)}function Vs(e,t){if(!Us(!1,t))throw new Error(`${e}: array of numbers expected`)}function Ks(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function Ws(e){const t="string"==typeof e?e.split(""):e,n=t.length;qs("alphabet",t);const a=new Map(t.map((e,t)=>[e,t]));return{encode:a=>(zs(a),a.map(a=>{if(!Number.isSafeInteger(a)||a<0||a>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${a}". Allowed: ${e}`);return t[a]})),decode:t=>(zs(t),t.map(t=>{Ns("alphabet.decode",t);const n=a.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function $s(e=""){return Ns("join",e),{encode:t=>(qs("join.decode",t),t.join(e)),decode:t=>(Ns("join.decode",t),t.split(e))}}function Gs(e,t="="){return Hs(e),Ns("padding",t),{encode(n){for(qs("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){qs("padding.decode",n);let a=n.length;if(a*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;a>0&&n[a-1]===t;a--){if((a-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,a)}}}function Zs(e){return Rs(e),{encode:e=>e,decode:t=>e(t)}}function Xs(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(zs(e),!e.length)return[];let a=0;const i=[],r=Array.from(e,e=>{if(Hs(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e}),s=r.length;for(;;){let e=0,o=!0;for(let i=a;i<s;i++){const s=r[i],p=t*e,y=p+s;if(!Number.isSafeInteger(y)||p/t!==e||y-s!==p)throw new Error("convertRadix: carry overflow");const u=y/n;e=y%n;const l=Math.floor(u);if(r[i]=l,!Number.isSafeInteger(l)||l*n+e!==y)throw new Error("convertRadix: carry overflow");o&&(l?o=!1:a=i)}if(i.push(e),o)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}const js=(e,t)=>0===t?e:js(t,e%t),Qs=(e,t)=>e+(t-js(e,t)),Ys=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Js(e,t,n,a){if(zs(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Qs(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Qs(t,n)}`);let i=0,r=0;const s=Ys[t],o=Ys[n]-1,p=[];for(const a of e){if(Hs(a),a>=s)throw new Error(`convertRadix2: invalid data word=${a} from=${t}`);if(i=i<<t|a,r+t>32)throw new Error(`convertRadix2: carry overflow pos=${r} from=${t}`);for(r+=t;r>=n;r-=n)p.push((i>>r-n&o)>>>0);const e=Ys[r];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<<n-r&o,!a&&r>=t)throw new Error("Excess padding");if(!a&&i>0)throw new Error(`Non-zero padding: ${i}`);return a&&r>0&&p.push(i>>>0),p}function eo(e,t=!1){if(Hs(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Qs(8,e)>32||Qs(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Ls(n))throw new Error("radix2.encode input should be Uint8Array");return Js(Array.from(n),8,e,!t)},decode:n=>(Vs("radix2.decode",n),Uint8Array.from(Js(n,e,8,t)))}}function to(e){return Rs(e),function(...t){try{return e.apply(null,t)}catch(e){}}}Ks(eo(4),Ws("0123456789ABCDEF"),$s("")),Ks(eo(5),Ws("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Gs(5),$s("")),Ks(eo(5),Ws("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),$s("")),Ks(eo(5),Ws("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Gs(5),$s("")),Ks(eo(5),Ws("0123456789ABCDEFGHIJKLMNOPQRSTUV"),$s("")),Ks(eo(5),Ws("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),$s(""),Zs(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const no=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)();no||Ks(eo(6),Ws("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Gs(6),$s("")),Ks(eo(6),Ws("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),$s("")),no||Ks(eo(6),Ws("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Gs(6),$s("")),Ks(eo(6),Ws("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),$s(""));const ao=e=>{return Ks((Hs(t=58),{encode:e=>{if(!Ls(e))throw new Error("radix.encode input should be Uint8Array");return Xs(Array.from(e),256,t)},decode:e=>(Vs("radix.decode",e),Uint8Array.from(Xs(e,t,256)))}),Ws(e),$s(""));var t},io=ao("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");ao("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),ao("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const ro=Ks(Ws("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),$s("")),so=[996825010,642813549,513874426,1027748829,705979059];function oo(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<so.length;e++)1==(t>>e&1)&&(n^=so[e]);return n}function po(e,t,n=1){const a=e.length;let i=1;for(let t=0;t<a;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=oo(i)^n>>5}i=oo(i);for(let t=0;t<a;t++)i=oo(i)^31&e.charCodeAt(t);for(let e of t)i=oo(i)^e;for(let e=0;e<6;e++)i=oo(i);return i^=n,ro.encode(Js([i%Ys[30]],30,5,!1))}function yo(e){const t="bech32"===e?1:734539939,n=eo(5),a=n.decode,i=n.encode,r=to(a);function s(e,n,a=90){Ns("bech32.encode prefix",e),Ls(n)&&(n=Array.from(n)),Vs("bech32.encode",n);const i=e.length;if(0===i)throw new TypeError(`Invalid prefix length ${i}`);const r=i+7+n.length;if(!1!==a&&r>a)throw new TypeError(`Length ${r} exceeds limit ${a}`);const s=e.toLowerCase(),o=po(s,n,t);return`${s}1${ro.encode(n)}${o}`}function o(e,n=90){Ns("bech32.decode input",e);const a=e.length;if(a<8||!1!==n&&a>n)throw new TypeError(`invalid string length: ${a} (${e}). Expected (8..${n})`);const i=e.toLowerCase();if(e!==i&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const r=i.lastIndexOf("1");if(0===r||-1===r)throw new Error('Letter "1" must be present between prefix and data only');const s=i.slice(0,r),o=i.slice(r+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const p=ro.decode(o).slice(0,-6),y=po(s,p,t);if(!o.endsWith(y))throw new Error(`Invalid checksum in ${e}: expected "${y}"`);return{prefix:s,words:p}}return{encode:s,decode:o,encodeFromBytes:function(e,t){return s(e,i(t))},decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:a(n)}},decodeUnsafe:to(o),fromWords:a,fromWordsUnsafe:r,toWords:i}}yo("bech32"),yo("bech32m");(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Ks(eo(4),Ws("0123456789abcdef"),$s(""),Zs(e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),Bs.ProjectivePoint,(e=>{return Ks((n=t=>e(e(t)),Hs(t=4),Rs(n),{encode(e){if(!Ls(e))throw new Error("checksum.encode: input should be Uint8Array");const a=n(e).slice(0,t),i=new Uint8Array(e.length+t);return i.set(e),i.set(a,e.length),i},decode(e){if(!Ls(e))throw new Error("checksum.decode: input should be Uint8Array");const a=e.slice(0,-t),i=e.slice(-t),r=n(a).slice(0,t);for(let e=0;e<t;e++)if(r[e]!==i[e])throw new Error("Invalid checksum");return a}}),io);var t,n})(Ue),ve("Bitcoin seed");let uo=!1;async function lo({hash:e,privateKey:t,to:n="object"}){const{r:a,s:i,recovery:r}=Bs.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:T(uo,{strict:!1})?D(uo):uo}),s={r:P(a,{size:32}),s:P(i,{size:32}),v:r?28n:27n,yParity:r};return"bytes"===n||"hex"===n?function({r:e,s:t,to:n="hex",v:a,yParity:i}){const r=(()=>{if(0===i||1===i)return i;if(a&&(27n===a||28n===a||a>=35n))return a%2n==0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),s=`0x${new Bs.Signature(L(e),L(t)).toCompactHex()}${0===r?"1b":"1c"}`;return"hex"===n?s:D(s)}({...s,to:n}):s}function co(e){const{chainId:t,nonce:n,to:a}=e,i=e.contractAddress??e.address,r=Tt(X(["0x05",te([t?P(t):"0x",i,n?P(n):"0x"])]));return"bytes"===a?D(r):r}function mo(e,t){return Tt(function(e){const t="string"==typeof e?A(e):"string"==typeof e.raw?e.raw:k(e.raw);return Z([A(`Ethereum Signed Message:\n${f(t)}`),t])}(e),t)}class To extends l{constructor({domain:e}){var t,n,a;super(`Invalid domain "${t=e,JSON.stringify(t,(e,t)=>{const a="bigint"==typeof t?t.toString():t;return"function"==typeof n?n(e,a):a},a)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class fo extends l{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class bo extends l{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function ho({domain:e}){return["string"==typeof e?.name&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},("number"==typeof e?.chainId||"bigint"==typeof e?.chainId)&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function wo(e){if("address"===e||"bool"===e||"string"===e||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new bo({type:e})}function go(e){const{domain:t={},message:n,primaryType:a}=e,i={EIP712Domain:ho({domain:t}),...e.types};!function(e){const{domain:t,message:n,primaryType:a,types:i}=e,r=(e,t)=>{for(const n of e){const{name:e,type:a}=n,s=t[e],o=a.match(Wt);if(o&&("number"==typeof s||"bigint"==typeof s)){const[e,t,n]=o;P(s,{signed:"int"===t,size:Number.parseInt(n,10)/8})}if("address"===a&&"string"==typeof s&&!gt(s))throw new Ze({address:s});const p=a.match(Kt);if(p){const[e,t]=p;if(t&&f(s)!==Number.parseInt(t,10))throw new zt({expectedSize:Number.parseInt(t,10),givenSize:f(s)})}const y=i[a];y&&(wo(a),r(y,s))}};if(i.EIP712Domain&&t){if("object"!=typeof t)throw new To({domain:t});r(i.EIP712Domain,t)}if("EIP712Domain"!==a){if(!i[a])throw new fo({primaryType:a,types:i});r(i[a],n)}}({domain:t,message:n,primaryType:a,types:i});const r=["0x1901"];return t&&r.push(function({domain:e,types:t}){return Io({data:e,primaryType:"EIP712Domain",types:t})}({domain:t,types:i})),"EIP712Domain"!==a&&r.push(Io({data:n,primaryType:a,types:i})),Tt(Z(r))}function Io({data:e,primaryType:t,types:n}){return Tt(vo({data:e,primaryType:t,types:n}))}function vo({data:e,primaryType:t,types:n}){const a=[{type:"bytes32"}],i=[xo({primaryType:t,types:n})];for(const r of n[t]){const[t,s]=ko({types:n,name:r.name,type:r.type,value:e[r.name]});a.push(t),i.push(s)}return $t(a,i)}function xo({primaryType:e,types:t}){const n=x(function({primaryType:e,types:t}){let n="";const a=Mo({primaryType:e,types:t});a.delete(e);const i=[e,...Array.from(a).sort()];for(const e of i)n+=`${e}(${t[e].map(({name:e,type:t})=>`${t} ${e}`).join(",")})`;return n}({primaryType:e,types:t}));return Tt(n)}function Mo({primaryType:e,types:t},n=new Set){const a=e.match(/^\w*/u),i=a?.[0];if(n.has(i)||void 0===t[i])return n;n.add(i);for(const e of t[i])Mo({primaryType:e.type,types:t},n);return n}function ko({types:e,name:t,type:n,value:a}){if(void 0!==e[n])return[{type:"bytes32"},Tt(vo({data:a,primaryType:n,types:e}))];if("bytes"===n){return[{type:"bytes32"},Tt(a=`0x${(a.length%2?"0":"")+a.slice(2)}`)]}if("string"===n)return[{type:"bytes32"},Tt(x(a))];if(n.lastIndexOf("]")===n.length-1){const i=n.slice(0,n.lastIndexOf("[")),r=a.map(n=>ko({name:t,type:i,types:e,value:n}));return[{type:"bytes32"},Tt($t(r.map(([e])=>e),r.map(([,e])=>e)))]}return[{type:n},a]}function Po(e,t={}){const{nonceManager:n}=t,a=x(Bs.getPublicKey(e.slice(2),!1)),i=function(e){return bt(`0x${Tt(`0x${e.substring(4)}`).substring(26)}`)}(a),r=function(e){if("string"==typeof e){if(!gt(e,{strict:!1}))throw new Ze({address:e});return{address:e,type:"json-rpc"}}if(!gt(e.address,{strict:!1}))throw new Ze({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}({address:i,nonceManager:n,sign:async({hash:t})=>lo({hash:t,privateKey:e,to:"hex"}),signAuthorization:async t=>async function(e){const{chainId:t,nonce:n,privateKey:a,to:i="object"}=e,r=e.contractAddress??e.address,s=await lo({hash:co({address:r,chainId:t,nonce:n}),privateKey:a,to:i});return"object"===i?{address:r,chainId:t,nonce:n,...s}:s}({...t,privateKey:e}),signMessage:async({message:t})=>async function({message:e,privateKey:t}){return await lo({hash:mo(e),privateKey:t,to:"hex"})}({message:t,privateKey:e}),signTransaction:async(t,{serializer:n}={})=>async function(e){const{privateKey:t,transaction:n,serializer:a=Pt}=e,i="eip4844"===n.type?{...n,sidecars:!1}:n,r=await lo({hash:Tt(await a(i)),privateKey:t});return await a(n,r)}({privateKey:e,transaction:t,serializer:n}),signTypedData:async t=>async function(e){const{privateKey:t,...n}=e;return await lo({hash:go(n),privateKey:t,to:"hex"})}({...t,privateKey:e})});return{...r,publicKey:a,source:"privateKey"}}const _o=async({userWallet:e,poolId:t,deadline:a,privateKey:i})=>{const r=n.keccak256(n.encodePacked(["address","bytes32","uint256"],[e,t,a])),s=n.keccak256(n.encodePacked(["string","bytes32"],["Ethereum Signed Message:\n32",r])),o=Po(i);return await o.sign({hash:s})},Ao={ReadFlaunchSDK:Yi,ReadWriteFlaunchSDK:Ji};e.AddressFeeSplitManagerAddress=mn,e.AnyBidWallAddress=ln,e.AnyFlaunchAddress=sn,e.AnyPositionManagerAbi=fi,e.AnyPositionManagerAddress=tn,e.BidWallAddress=yn,e.BidWallV1_1Abi=Ai,e.BidWallV1_1Address=un,e.BidwallAbi=Ma,e.BuyBackManagerAddress=bn,e.ClankerWorldVerifierAddress=wn,e.ClosedPermissionsAddress=kn,e.DopplerVerifierAddress=gn,e.DynamicAddressFeeSplitManagerAbi=Zi,e.DynamicAddressFeeSplitManagerAddress=Tn,e.FLETHAddress=Fn,e.FLETHHooksAddress=Cn,e.FairLaunchAbi=va,e.FairLaunchAddress=on,e.FairLaunchV1_1Abi=Ci,e.FairLaunchV1_1Address=pn,e.FastFlaunchZapAbi=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CREATOR_FEE_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"FAIR_LAUNCH_SUPPLY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"address",name:"creator",type:"address"}],internalType:"struct FastFlaunchZap.FastFlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"}],e.FastFlaunchZapAddress=Sn,e.FeeEscrowAbi=vi,e.FeeEscrowAddress=_n,e.FlaunchAbi=ni,e.FlaunchAddress=nn,e.FlaunchBackend=class{constructor(e,t){this.signerPrivateKey=e,this.chainId=t}async generateHookDataWithSignature({userWallet:e,coinAddress:t,deadlineFromNowInSeconds:a,version:i,referrer:r}){const s=za(qa({currency0:Fn[this.chainId],currency1:t,fee:0,tickSpacing:Ha,hooks:this.getPositionManagerAddress(i)})),o=Math.floor(Date.now()/1e3),p=BigInt(o+a),y=await _o({userWallet:e,poolId:s,deadline:p,privateKey:this.signerPrivateKey});r||(r=n.zeroAddress);return{hookData:n.encodeAbiParameters([{name:"referrer",type:"address"},{name:"signedMessage",type:"tuple",components:[{name:"poolId",type:"bytes32"},{name:"deadline",type:"uint256"},{name:"signature",type:"bytes"}]}],[r,{poolId:s,deadline:p,signature:y}]),deadline:Number(p),signature:y}}getPositionManagerAddress(t){const n=en[this.chainId];if(!t)return n;switch(t){case e.FlaunchVersion.V1:return Yt[this.chainId];case e.FlaunchVersion.V1_1:return Jt[this.chainId];case e.FlaunchVersion.V1_2:return en[this.chainId];case e.FlaunchVersion.ANY:throw Error("AnyPositionManager is not supported for TrustedSigner");default:return n}}},e.FlaunchPositionManagerAbi=Nn,e.FlaunchPositionManagerAddress=Yt,e.FlaunchPositionManagerV1_1Abi=Oa,e.FlaunchPositionManagerV1_1Address=Jt,e.FlaunchPositionManagerV1_2Address=en,e.FlaunchSDK=Ao,e.FlaunchV1_1Abi=Ei,e.FlaunchV1_1Address=an,e.FlaunchV1_2Address=rn,e.FlaunchZapAbi=Aa,e.FlaunchZapAddress=Qt,e.InitialPriceAbi=da,e.MemecoinAbi=si,e.MulticallAbi=Hi,e.PERMIT_DETAILS=pa,e.PERMIT_TYPES=ya,e.Permit2Abi=li,e.Permit2Address=Ln,e.PoolManagerAbi=ha,e.PoolManagerAddress=En,e.Q192=Na,e.Q96=Ra,e.QuoterAbi=yi,e.QuoterAddress=On,e.ReadDynamicAddressFeeSplitManager=er,e.ReadFlaunchSDK=Yi,e.ReadWriteDynamicAddressFeeSplitManager=class extends er{constructor(e,n=t.createDrift()){super(e,n)}setPermissions(e){return this.contract.write("setPermissions",{_permissions:e})}transferManagerOwnership(e){return this.contract.write("transferManagerOwnership",{_newManagerOwner:e})}setModerator(e){return this.contract.write("setModerator",{_moderator:e})}updateRecipients(e){return this.contract.write("updateRecipients",{_recipients:e})}transferRecipientShare(e){return this.contract.write("transferRecipientShare",{_newRecipient:e})}claim(){return this.contract.write("claim",{})}claimForData(e){return this.contract.write("claim",{_data:e})}deposit(e,t,n){return this.contract.write("deposit",{_flaunchToken:e,_creator:t,_data:n})}setCreator(e,t){return this.contract.write("setCreator",{_flaunchToken:e,_creator:t})}rescue(e,t){return this.contract.write("rescue",{_flaunchToken:e,_recipient:t})}},e.ReadWriteFlaunchSDK=Ji,e.ReferralEscrowAbi=ki,e.ReferralEscrowAddress=An,e.RevenueManagerAbi=Ni,e.RevenueManagerAddress=cn,e.SolanaVerifierAddress=In,e.StakingManagerAddress=fn,e.StateViewAbi=ga,e.StateViewAddress=Bn,e.TICK_SPACING=Ha,e.TickFinder=Ua,e.TokenImporterAddress=hn,e.TreasuryManagerFactoryAbi=Li,e.TreasuryManagerFactoryAddress=dn,e.USDCETHPoolKeys=Rn,e.UniV4PositionManagerAddress=Un,e.UniversalRouterAbi=Zn,e.UniversalRouterAddress=Dn,e.VirtualsVerifierAddress=vn,e.WhitelistVerifierAddress=xn,e.WhitelistedPermissionsAddress=Pn,e.ZoraVerifierAddress=Mn,e.buyMemecoin=sa,e.bytes32ToUint256=fa,e.calculateUnderlyingTokenBalances=Za,e.chainIdToChain=Gi,e.createCallDataWalletClient=ar,e.createDrift=tr,e.createFlaunch=function(e){const{publicClient:t,walletClient:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;return n?new Ji(a,tr({publicClient:t,walletClient:n}),t):new Yi(a,tr({publicClient:t}),t)},e.createFlaunchCalldata=function(e){const{publicClient:t,walletAddress:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;if(n){const e=tr({publicClient:t,walletClient:ar(t,n)});return new Ji(a,e)}{const e=tr({publicClient:t});return new Yi(a,e)}},e.decodeCallData=ir,e.encodedCallAbi=nr,e.generateTokenUri=Gn,e.getAmountWithSlippage=ia,e.getAmountsForLiquidity=Ja,e.getLiquidityFromAmounts=ja,e.getNearestUsableTick=Ka,e.getPermissionsAddress=Da,e.getPermit2TypedData=ua,e.getPoolId=za,e.getSqrtPriceX96FromTick=Ga,e.getValidTick=Va,e.maxLiquidityForAmount0Precise=Qa,e.maxLiquidityForAmount1=Ya,e.orderPoolKey=qa,e.parseCall=async function(e){return ir(await e())},e.parseSwapData=la,e.priceRatioToTick=Xa,e.resolveIPFS=qn,e.sellMemecoinWithPermit2=oa,e.uint256ToBytes32=ba,e.uploadFileToIPFS=async e=>{try{const t=new FormData;t.append("file",e.file);const n={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(n));const a={cidVersion:1};t.append("pinataOptions",JSON.stringify(a));const i=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:i.data.IpfsHash,PinSize:i.data.PinSize,Timestamp:i.data.Timestamp,isDuplicate:i.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToFlaunchAPI=Wn,e.uploadImageToIPFS=Kn,e.uploadJsonToIPFS=Vn,e.uploadMetadataToFlaunchAPI=$n,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
6
6
|
//# sourceMappingURL=index.umd.js.map
|