@flaunch/sdk 0.7.1 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +7 -7
  2. package/dist/abi/AnyBidWall.d.ts +740 -0
  3. package/dist/abi/AnyBidWall.d.ts.map +1 -0
  4. package/dist/abi/AnyPositionManager.d.ts +1922 -0
  5. package/dist/abi/AnyPositionManager.d.ts.map +1 -0
  6. package/dist/abi/FeeEscrow.d.ts +282 -0
  7. package/dist/abi/FeeEscrow.d.ts.map +1 -0
  8. package/dist/abi/ReferralEscrow.d.ts +321 -0
  9. package/dist/abi/ReferralEscrow.d.ts.map +1 -0
  10. package/dist/abi/index.cjs +10599 -1327
  11. package/dist/abi/index.cjs.map +1 -1
  12. package/dist/abi/index.d.ts +18 -0
  13. package/dist/abi/index.d.ts.map +1 -1
  14. package/dist/abi/index.js +10582 -1328
  15. package/dist/abi/index.js.map +1 -1
  16. package/dist/addresses/index.cjs +34 -0
  17. package/dist/addresses/index.cjs.map +1 -1
  18. package/dist/addresses/index.js +29 -1
  19. package/dist/addresses/index.js.map +1 -1
  20. package/dist/addresses.d.ts +6 -0
  21. package/dist/addresses.d.ts.map +1 -1
  22. package/dist/clients/AnyBidWall.d.ts +46 -0
  23. package/dist/clients/AnyBidWall.d.ts.map +1 -0
  24. package/dist/clients/AnyPositionManagerClient.d.ts +95 -0
  25. package/dist/clients/AnyPositionManagerClient.d.ts.map +1 -0
  26. package/dist/clients/FairLaunchClient.d.ts +3 -0
  27. package/dist/clients/FairLaunchClient.d.ts.map +1 -1
  28. package/dist/clients/FeeEscrowClient.d.ts +39 -0
  29. package/dist/clients/FeeEscrowClient.d.ts.map +1 -0
  30. package/dist/clients/FlaunchPositionManagerClient.d.ts +20 -0
  31. package/dist/clients/FlaunchPositionManagerClient.d.ts.map +1 -1
  32. package/dist/clients/FlaunchPositionManagerV1_1Client.d.ts +8 -0
  33. package/dist/clients/FlaunchPositionManagerV1_1Client.d.ts.map +1 -1
  34. package/dist/clients/FlaunchZapClient.d.ts +35 -0
  35. package/dist/clients/FlaunchZapClient.d.ts.map +1 -1
  36. package/dist/clients/InitialPriceClient.d.ts +4 -0
  37. package/dist/clients/InitialPriceClient.d.ts.map +1 -1
  38. package/dist/clients/MemecoinClient.d.ts +5 -0
  39. package/dist/clients/MemecoinClient.d.ts.map +1 -1
  40. package/dist/clients/QuoterClient.d.ts +6 -6
  41. package/dist/clients/QuoterClient.d.ts.map +1 -1
  42. package/dist/clients/ReferralEscrowClient.d.ts +40 -0
  43. package/dist/clients/ReferralEscrowClient.d.ts.map +1 -0
  44. package/dist/hooks/index.cjs +2 -2
  45. package/dist/hooks/index.cjs.map +1 -1
  46. package/dist/hooks/index.js +2 -2
  47. package/dist/hooks/index.js.map +1 -1
  48. package/dist/index.cjs.js +5214 -1905
  49. package/dist/index.cjs.js.map +1 -1
  50. package/dist/index.d.ts +4 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.esm.js +5079 -1796
  53. package/dist/index.esm.js.map +1 -1
  54. package/dist/index.umd.js +1 -1
  55. package/dist/index.umd.js.map +1 -1
  56. package/dist/sdk/FlaunchSDK.d.ts +195 -91
  57. package/dist/sdk/FlaunchSDK.d.ts.map +1 -1
  58. package/dist/sdk/drift.d.ts +21 -0
  59. package/dist/sdk/drift.d.ts.map +1 -0
  60. package/dist/types.d.ts +9 -0
  61. package/dist/types.d.ts.map +1 -1
  62. package/dist/utils/parseSwap.d.ts +43 -0
  63. package/dist/utils/parseSwap.d.ts.map +1 -0
  64. package/dist/utils/universalRouter.d.ts +2 -2
  65. package/dist/utils/universalRouter.d.ts.map +1 -1
  66. package/package.json +1 -1
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@uniswap/v3-sdk"),require("@delvtech/drift-viem")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@uniswap/v3-sdk","@delvtech/drift-viem"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.v3Sdk,e.driftViem)}(this,(function(e,t,n,a,i,r){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=s(a);function o(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const y="2.29.2";let u=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,l=`viem@${y}`;class d extends Error{constructor(e,t={}){const n=t.cause instanceof d?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof d&&t.cause.docsPath||t.docsPath,i=u?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...l?[`Version: ${l}`]:[]].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=y}walk(e){return c(this,e)}}function c(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?c(e.cause,t):t?null:e}class m extends d{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 T extends d{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function b(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function f(e){return b(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function h(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 g extends d{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 d{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 I(e,{dir:t,size:n=32}={}){return"string"==typeof e?function(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new w({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new 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})}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?M(e,t):"string"==typeof e?function(e,t={}){const n=P.encode(e);return k(n,t)}(e,t):"boolean"==typeof e?function(e,t={}){const n=`0x${Number(e)}`;if("number"==typeof t.size)return E(n,{size:t.size}),I(n,{size:t.size});return n}(e,t):k(e,t)}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?(E(a,{size:t.size}),I(a,{dir:"right",size:t.size})):a}function M(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 m({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const p=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?I(p,{size:a}):p}const P=new TextEncoder;const F=new TextEncoder;function _(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=M(e,t);return S(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return E(n,{size:t.size}),I(n,{size:t.size});return n}(e,t):b(e)?S(e,t):D(e,t)}const A={zero:48,nine:57,A:65,F:70,a:97,f:102};function C(e){return e>=A.zero&&e<=A.nine?e-A.zero:e>=A.A&&e<=A.F?e-(A.A-10):e>=A.a&&e<=A.f?e-(A.a-10):void 0}function S(e,t={}){let n=e;t.size&&(E(n,{size:t.size}),n=I(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=C(a.charCodeAt(t++)),i=C(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new d(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function D(e,t={}){const n=F.encode(e);return"number"==typeof t.size?(E(n,{size:t.size}),I(n,{dir:"right",size:t.size})):n}function E(e,{size:t}){if(f(e)>t)throw new T({givenSize:f(e),maxSize:t})}function B(e,t={}){const{signed:n}=t;t.size&&E(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function L(e,t={}){return Number(B(e,t))}function O(e,t){return({exclude:n,format:a})=>({exclude:n,format:e=>{const i=t(e);if(n)for(const e of n)delete i[e];return{...i,...a(e)}},type:e})}const U={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function R(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?L(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?L(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?U[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=e.authorizationList.map((e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)})))),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof t.v){if(0n===t.v||27n===t.v)return 0;if(1n===t.v||28n===t.v)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),"legacy"===t.type&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),"eip2930"===t.type&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),"eip1559"===t.type&&delete t.maxFeePerBlobGas,t}const H=O("transaction",R);function N(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:R(e)));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const z=O("block",N);const q={"0x0":"reverted","0x1":"success"};function G(e){const t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map((e=>function(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}(e))):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?L(e.transactionIndex):null,status:e.status?q[e.status]:null,type:e.type?U[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const V=O("transactionReceipt",G);const $=2n**256n-1n;function K(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class W extends d{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class Z extends d{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class X extends d{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const Q={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 X({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Z({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new W({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 W({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 j(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(Q);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function Y(e,t="hex"){const n=J(e),a=j(new Uint8Array(n.length));return n.encode(a),"hex"===t?k(a.bytes):a.bytes}function J(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=ee(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=>J(e)))):function(e){const t="string"==typeof e?S(e):e,n=ee(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 ee(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 d("Length is too large.")}const te={ether:-9,wei:9};function ne(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,te[t])}function ae(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 ie extends d{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class re extends d{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",ae(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 se extends d{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 pe(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>S(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 oe(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=>S(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>S(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)))}function ye(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ue(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 le(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 de(e,t){ue(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function ce(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function me(e,t){return e<<32-t|e>>>t}const Te=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function be(e){for(let n=0;n<e.length;n++)e[n]=(t=e[n])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function fe(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),ue(e),e}"function"==typeof Uint8Array.from([]).toHex&&Uint8Array.fromHex;class he{clone(){return this._cloneInto()}}function ge(e){const t=t=>e().update(fe(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function we(e,t,n){return e&t^e&n^t&n}class Ie extends he{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=ce(this.buffer)}update(e){le(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=fe(e)).length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s!==a)n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0);else{const t=ce(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){le(this),de(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),p=Number(n&r),o=a?4:0,y=a?0:4;e.setUint32(t+o,s,a),e.setUint32(t+y,p,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=ce(e),p=this.outputLen;if(p%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const o=p/4,y=this.get();if(o>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<o;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.length=a,e.pos=s,e.finished=i,e.destroyed=r,a%t&&e.buffer.set(n),e}}const ve=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),xe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ke=new Uint32Array(64);class Me extends Ie{constructor(e=32){super(64,e,8,!1),this.A=0|xe[0],this.B=0|xe[1],this.C=0|xe[2],this.D=0|xe[3],this.E=0|xe[4],this.F=0|xe[5],this.G=0|xe[6],this.H=0|xe[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:p}=this;return[e,t,n,a,i,r,s,p]}set(e,t,n,a,i,r,s,p){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|p}process(e,t){for(let n=0;n<16;n++,t+=4)ke[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=ke[e-15],n=ke[e-2],a=me(t,7)^me(t,18)^t>>>3,i=me(n,17)^me(n,19)^n>>>10;ke[e]=i+ke[e-7]+a+ke[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:p,G:o,H:y}=this;for(let e=0;e<64;e++){const t=y+(me(s,6)^me(s,11)^me(s,25))+((u=s)&p^~u&o)+ve[e]+ke[e]|0,l=(me(n,2)^me(n,13)^me(n,22))+we(n,a,i)|0;y=o,o=p,p=s,s=r+t|0,r=i,i=a,a=n,n=t+l|0}var u;n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,p=p+this.F|0,o=o+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,p,o,y)}roundClean(){ke.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Pe=ge((()=>new Me));function Fe(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=Pe(b(e,{strict:!1})?_(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:k(i)}const _e=4096,Ae=131072,Ce=761855;class Se extends d{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class De extends d{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class Ee extends d{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class Be extends d{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function Le(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?S(e.data):e.data,a=f(n);if(!a)throw new De;if(a>Ce)throw new Se({maxSize:Ce,size:a});const i=[];let r=!0,s=0;for(;r;){const e=j(new Uint8Array(Ae));let t=0;for(;t<_e;){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??pe({blobs:i,kzg:n,to:a}),s=e.proofs??oe({blobs:i,commitments:r,kzg:n,to:a}),p=[];for(let e=0;e<i.length;e++)p.push({blob:i[e],commitment:r[e],proof:s[e]});return p}class Oe extends d{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 Ue extends d{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Re extends d{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${ne(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Re,"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 He extends d{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${ne(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${ne(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(He,"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 Ne 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 ze=BigInt(2**32-1),qe=BigInt(32);function Ge(e,t=!1){return t?{h:Number(e&ze),l:Number(e>>qe&ze)}:{h:0|Number(e>>qe&ze),l:0|Number(e&ze)}}function Ve(e,t=!1){let n=new Uint32Array(e.length),a=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:r,l:s}=Ge(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const $e=[],Ke=[],We=[],Ze=BigInt(0),Xe=BigInt(1),Qe=BigInt(2),je=BigInt(7),Ye=BigInt(256),Je=BigInt(113);for(let e=0,t=Xe,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],$e.push(2*(5*a+n)),Ke.push((e+1)*(e+2)/2%64);let i=Ze;for(let e=0;e<7;e++)t=(t<<Xe^(t>>je)*Je)%Ye,t&Qe&&(i^=Xe<<(Xe<<BigInt(e))-Xe);We.push(i)}const[et,tt]=Ve(We,!0),nt=(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),at=(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 it extends he{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,ye(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}keccak(){Te||be(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],p=nt(r,s,1)^n[a],o=at(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=p,e[t+n+1]^=o}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=Ke[n],r=nt(t,i,a),s=at(t,i,a),p=$e[n];t=e[p],i=e[p+1],e[p]=r,e[p+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=et[a],e[1]^=tt[a]}n.fill(0)}(this.state32,this.rounds),Te||be(this.state32),this.posOut=0,this.pos=0}update(e){le(this);const{blockLen:t,state:n}=this,a=(e=fe(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){le(this,!1),ue(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 ye(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(de(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new it(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 rt=((e,t,n)=>ge((()=>new it(t,e,n))))(1,136,32);const st=new Ne(8192);function pt(e,t){if(st.has(`${e}.${t}`))return st.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=function(e,t){const n=t||"hex",a=rt(b(e,{strict:!1})?_(e):e);return"bytes"===n?a:x(a)}(D(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 st.set(`${e}.${t}`,r),r}const ot=/^0x[a-fA-F0-9]{40}$/,yt=new Ne(8192);function ut(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(yt.has(a))return yt.get(a);const i=!(!ot.test(e)||e.toLowerCase()!==e&&n&&pt(e)!==e);return yt.set(a,i),i}function lt(e,t,n,{strict:a}={}){return b(e,{strict:!1})?function(e,t,n,{strict:a}={}){dt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&ct(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){dt(e,t);const i=e.slice(t,n);a&&ct(i,t,n);return i}(e,t,n,{strict:a})}function dt(e,t){if("number"==typeof t&&t>0&&t>f(e)-1)throw new g({offset:t,position:"start",size:f(e)})}function ct(e,t,n){if("number"==typeof t&&"number"==typeof n&&f(e)!==n-t)throw new g({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 Ue({chainId:t});if(i&&!ut(i))throw new Oe({address:i});if(a&&a>$)throw new Re({maxFeePerGas:a});if(n&&a&&n>a)throw new He({maxFeePerGas:a,maxPriorityFeePerGas:n})}function Tt(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 se({storageKey:i[e]});if(!ut(a,{strict:!1}))throw new Oe({address:a});t.push([a,i])}return t}function bt(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 re({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:p,maxPriorityFeePerGas:o,accessList:y,data:u}=e;mt(e);const l=Tt(y),d=[x(n),i?x(i):"0x",o?x(o):"0x",p?x(p):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",u??"0x",l,...ft(e,t)];return K(["0x02",Y(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:p,accessList:o,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Ue({chainId:t});if(r&&!ut(r))throw new Oe({address:r});if(n||i)throw new d("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>$)throw new Re({maxFeePerGas:a})}(e);const u=Tt(o),l=[x(n),r?x(r):"0x",y?x(y):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x",u,...ft(e,t)];return K(["0x01",Y(l)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new De;for(const e of t){const t=f(e),n=L(lt(e,0,1));if(32!==t)throw new Ee({hash:e,size:t});if(1!==n)throw new Be({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=pe({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(Fe({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=Le({blobs:t,commitments:a,proofs:oe({blobs:t,commitments:a,kzg:n})})}}const m=Tt(u),T=[x(n),i?x(i):"0x",y?x(y):"0x",o?x(o):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",l??"0x",m,p?x(p):"0x",d??[],...ft(e,t)],b=[],h=[],g=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];b.push(t),h.push(n),g.push(a)}return K(["0x03",Y(c?[T,b,h,g]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{chainId:t}=e,n=e.address;if(!ut(n))throw new Oe({address:n});if(t<0)throw new Ue({chainId:t})}mt(e)}(e);const d=Tt(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",...ft({},i)])}return t}(n);return K(["0x04",Y([x(a),r?x(r):"0x",y?x(y):"0x",o?x(o):"0x",i?x(i):"0x",s??"0x",p?x(p):"0x",l??"0x",d,c,...ft(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:p,gasPrice:o}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!ut(r))throw new Oe({address:r});if(void 0!==t&&t<=0)throw new Ue({chainId:t});if(n||i)throw new d("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>$)throw new Re({maxFeePerGas:a})}(e);let y=[r?x(r):"0x",o?x(o):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new ie({v:t.v});return e})(),a=h(t.r),i=h(t.s);y=[...y,x(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,x(n),"0x","0x"]);return Y(y)}(e,t)}function ft(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=h(n.r),s=h(n.s);return["number"==typeof i?i?x(1):"0x":0n===a?"0x":1n===a?x(1):27n===a?"0x":x(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const ht={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function gt(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&&!ut(t))throw new Oe({address:t});if(n&&!ut(n))throw new Oe({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:p,value:o}=e;return K(["0x7e",Y([t,a,p??"0x",s?x(s):"0x",o?x(o):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):bt(e,t)}const wt={contracts:ht,formatters:{block:z({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=R(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?B(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?B(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:V({format:e=>({l1GasPrice:e.l1GasPrice?B(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?B(e.l1GasUsed):null,l1Fee:e.l1Fee?B(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:gt}},It=1,vt=o({...wt,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:{...wt.contracts,disputeGameFactory:{[It]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[It]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[It]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[It]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),xt=11155111,kt=o({...wt,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:{...wt.contracts,disputeGameFactory:{[xt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[xt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[xt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[xt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:xt});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 Mt=1;o({...wt,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:{...wt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[Mt]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[Mt]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Pt=11155111;o({...wt,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:{...wt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Pt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Pt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Pt});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({...wt,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:{...wt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const Ft=17e3;o({...wt,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:Ft,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:{...wt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Ft]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[Ft]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[Ft]:{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});const _t=11155111;o({...wt,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:_t,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.pyropechain.com"],webSocket:["wss://rpc.pyropechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://pyrope.blockscout.com"}},contracts:{...wt.contracts,l1StandardBridge:{[_t]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const At=1;o({...wt,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:{...wt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[At]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[At]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[At]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const Ct={[vt.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[kt.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},St={[vt.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[kt.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},Dt={[vt.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[kt.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},Et={[vt.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[kt.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Bt={[vt.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[kt.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},Lt={[vt.id]:"0x4dc442403e8c758425b93c59dc737da522f32640",[kt.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},Ot={[vt.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[kt.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},Ut={[vt.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[kt.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},Rt={[vt.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[kt.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},Ht={[vt.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[kt.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},Nt={[vt.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[kt.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},zt={[vt.id]:"0xfa9e8528ee95eb109bffd1a2d59cb95b300a672a",[kt.id]:"0xb2f5d987de90e026b61805e60b6002d367461474"},qt={[vt.id]:"0x712fa8ddc7347b4b6b029aa21710f365cd02d898",[kt.id]:"0x17E02501dE3e420347e7C5fCAe3AD787C5aea690"},Gt={[vt.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[kt.id]:"0xd2f3c6185e06925dcbe794c6574315b2202e9ccd"},Vt={[vt.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[kt.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},$t={[vt.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[kt.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},Kt={[vt.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[kt.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},Wt={[vt.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[kt.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Zt={[vt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[kt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},Xt={[vt.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[kt.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},Qt=[{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"}],jt=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let Yt=0;const Jt=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=jt[Yt];return Yt=(Yt+1)%jt.length,`${n}${t}`}return e},en=async e=>{try{const t={pinataOptions:{cidVersion:1},pinataMetadata:{name:e.name||null,keyvalues:e.metadata||{}},pinataContent:e.json},n=await p.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(p.default.isAxiosError(e))throw new Error(`Failed to upload JSON to IPFS: ${e.response?.data?.message||e.message}`);throw e}},tn=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 s=new Blob(i,{type:r}),o=e.name||`image.${r.split("/")[1]}`,y=new File([s],o,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await p.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(p.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},nn=async(e,t)=>{const n=await tn({pinataConfig:t.pinataConfig,base64Image:t.metadata.base64Image}),a={name:e,description:t.metadata.description,image:`ipfs://${n.IpfsHash}`,external_link:t.metadata.websiteUrl||"",collaborators:[],discordUrl:t.metadata.discordUrl||"",twitterUrl:t.metadata.twitterUrl||"",telegramUrl:t.metadata.telegramUrl||""};return`ipfs://${(await en({pinataConfig:t.pinataConfig,json:a})).IpfsHash}`},an=[{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"}],rn=[{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"}]}],sn=[{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"}]}],pn="07",on="09",yn="0c",un="0f",ln="10",dn="04",cn="0a",mn=(e,t,a)=>{if(null==e)return 0n;return(e<0n?-e:e)*("EXACT_IN"===a?BigInt(1e18)-n.parseEther(t):BigInt(1e18)+n.parseEther(t))/BigInt(1e18)},Tn=n.zeroAddress,bn={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]},fn=[{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 hn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:fn,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}}class gn{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:Qt,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}async getFlaunchingFee(e){const t=new hn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return mn(n,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const v=b<0?-b:b,x=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?x-(P.isInFLETH?0n:P.amount):v-(P.isInFLETH?0n:P.amount),flETHSold:t?v-(P.isInFLETH?P.amount:0n):x-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?x-(P.isInFLETH?0n:P.amount):v-(P.isInFLETH?0n:P.amount),flETHBought:t?v-(P.isInFLETH?P.amount:0n):x-(P.isInFLETH?P.amount:0n),fees:P}}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}const wn=e=>n.hexToBigInt(e),In=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),vn=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyUnlocked",type:"error"},{inputs:[{internalType:"address",name:"currency0",type:"address"},{internalType:"address",name:"currency1",type:"address"}],name:"CurrenciesOutOfOrderOrEqual",type:"error"},{inputs:[],name:"CurrencyNotSettled",type:"error"},{inputs:[],name:"DelegateCallNotAllowed",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"ManagerLocked",type:"error"},{inputs:[],name:"MustClearExactPositiveDelta",type:"error"},{inputs:[],name:"NonzeroNativeValue",type:"error"},{inputs:[],name:"PoolNotInitialized",type:"error"},{inputs:[],name:"ProtocolFeeCurrencySynced",type:"error"},{inputs:[{internalType:"uint24",name:"fee",type:"uint24"}],name:"ProtocolFeeTooLarge",type:"error"},{inputs:[],name:"SwapAmountCannotBeZero",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooLarge",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooSmall",type:"error"},{inputs:[],name:"UnauthorizedDynamicLPFeeUpdate",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Donate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"Currency",name:"currency0",type:"address"},{indexed:!0,internalType:"Currency",name:"currency1",type:"address"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"},{indexed:!1,internalType:"int24",name:"tickSpacing",type:"int24"},{indexed:!1,internalType:"contract IHooks",name:"hooks",type:"address"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"int256",name:"liquidityDelta",type:"int256"},{indexed:!1,internalType:"bytes32",name:"salt",type:"bytes32"}],name:"ModifyLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"OperatorSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"protocolFeeController",type:"address"}],name:"ProtocolFeeControllerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"protocolFee",type:"uint24"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"}],name:"Swap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"caller",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"allowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"clear",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"collectProtocolFees",outputs:[{internalType:"uint256",name:"amountCollected",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"donate",outputs:[{internalType:"BalanceDelta",name:"delta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"extsload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"startSlot",type:"bytes32"},{internalType:"uint256",name:"nSlots",type:"uint256"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"exttload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"exttload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[{internalType:"int24",name:"tick",type:"int24"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isOperator",outputs:[{internalType:"bool",name:"isOperator",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"modifyLiquidity",outputs:[{internalType:"BalanceDelta",name:"callerDelta",type:"int256"},{internalType:"BalanceDelta",name:"feesAccrued",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeController",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"protocolFeesAccrued",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setOperator",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newProtocolFee",type:"uint24"}],name:"setProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"controller",type:"address"}],name:"setProtocolFeeController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"settle",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"}],name:"settleFor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"swap",outputs:[{internalType:"BalanceDelta",name:"swapDelta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"sync",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"take",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlock",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newDynamicLPFee",type:"uint24"}],name:"updateDynamicLPFee",outputs:[],stateMutability:"nonpayable",type:"function"}];class xn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:vn,address:e})}poolStateSlot({poolId:e}){const t=In(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,p=BigInt("0xFFFFFF"),o=Number(s&p),y=o>8388607?o-16777216:o,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),p=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),o=this.poolStateSlot({poolId:e}),y=In(wn(o)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[p,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const kn=[{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 Mn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:kn,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 Pn=[{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 Fn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Pn,address:e})}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const _n=[{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 An{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:_n,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Cn=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CREATOR_FEE_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"FAIR_LAUNCH_SUPPLY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"address",name:"creator",type:"address"}],internalType:"struct FastFlaunchZap.FastFlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Sn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Cn,address:e})}}class Dn extends Sn{constructor(e,n=t.createDrift()){super(e,n)}fastFlaunch({name:e,symbol:t,tokenUri:n,creator:a}){return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:n,creator:a}})}async fastFlaunchIPFS({name:e,symbol:t,creator:n,metadata:a,pinataConfig:i}){const r=await nn(e,{metadata:a,pinataConfig:i});return this.fastFlaunch({name:e,symbol:t,tokenUri:r,creator:n})}}const En=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"contract Flaunch",name:"_flaunchContract",type:"address"},{internalType:"contract IFLETH",name:"_flETH",type:"address"},{internalType:"contract PoolSwap",name:"_poolSwap",type:"address"},{internalType:"contract ITreasuryManagerFactory",name:"_treasuryManagerFactory",type:"address"},{internalType:"contract IMerkleAirdrop",name:"_merkleAirdrop",type:"address"},{internalType:"contract WhitelistFairLaunch",name:"_whitelistFairLaunch",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CreatorCannotBeZero",type:"error"},{inputs:[],name:"InsufficientMemecoinsForAirdrop",type:"error"},{inputs:[{internalType:"uint256",name:"_premineAmount",type:"uint256"},{internalType:"uint256",name:"_slippage",type:"uint256"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"ethRequired_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flETH",outputs:[{internalType:"contract IFLETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_flaunchParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_flaunchParams",type:"tuple"},{components:[{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"},{internalType:"uint256",name:"maxTokens",type:"uint256"}],internalType:"struct FlaunchZap.WhitelistParams",name:"_whitelistParams",type:"tuple"},{components:[{internalType:"uint256",name:"airdropIndex",type:"uint256"},{internalType:"uint256",name:"airdropAmount",type:"uint256"},{internalType:"uint256",name:"airdropEndTime",type:"uint256"},{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"}],internalType:"struct FlaunchZap.AirdropParams",name:"_airdropParams",type:"tuple"},{components:[{internalType:"address",name:"manager",type:"address"},{internalType:"bytes",name:"initializeData",type:"bytes"},{internalType:"bytes",name:"depositData",type:"bytes"}],internalType:"struct FlaunchZap.TreasuryManagerParams",name:"_treasuryManagerParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"deployedManager_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"merkleAirdrop",outputs:[{internalType:"contract IMerkleAirdrop",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract ITreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"whitelistFairLaunch",outputs:[{internalType:"contract WhitelistFairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],Bn=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"contract BidWall",name:"bidWall",type:"address"},{internalType:"contract FairLaunch",name:"fairLaunch",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_unsoldSupply",type:"uint256"}],name:"FairLaunchBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_donateAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_creatorAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_bidWallAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_governanceAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_protocolAmount",type:"uint256"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"flAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"flAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"flFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"ispFee1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniAmount1",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee0",type:"int256"},{indexed:!1,internalType:"int256",name:"uniFee1",type:"int256"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"BURN_ADDRESS",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",name:"beforeInitialize",type:"bool"},{internalType:"bool",name:"afterInitialize",type:"bool"},{internalType:"bool",name:"beforeAddLiquidity",type:"bool"},{internalType:"bool",name:"afterAddLiquidity",type:"bool"},{internalType:"bool",name:"beforeRemoveLiquidity",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidity",type:"bool"},{internalType:"bool",name:"beforeSwap",type:"bool"},{internalType:"bool",name:"afterSwap",type:"bool"},{internalType:"bool",name:"beforeDonate",type:"bool"},{internalType:"bool",name:"afterDonate",type:"bool"},{internalType:"bool",name:"beforeSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterSwapReturnDelta",type:"bool"},{internalType:"bool",name:"afterAddLiquidityReturnDelta",type:"bool"},{internalType:"bool",name:"afterRemoveLiquidityReturnDelta",type:"bool"}],internalType:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Ln{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Bn,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new hn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return mn(n,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map((async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const v=b<0?-b:b,x=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?x-(P.isInFLETH?0n:P.amount):v-(P.isInFLETH?0n:P.amount),flETHSold:t?v-(P.isInFLETH?P.amount:0n):x-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?x-(P.isInFLETH?0n:P.amount):v-(P.isInFLETH?0n:P.amount),flETHBought:t?v-(P.isInFLETH?P.amount:0n):x-(P.isInFLETH?P.amount:0n),fees:P}}})));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}initialPrice(){return this.contract.read("initialPrice")}}class On extends Ln{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:p,creatorFeeAllocationPercent:o,flaunchAt:y}){const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*o;let m=n.zeroAddress;this.drift.adapter.getSignerAddress&&(m=await this.drift.adapter.getSignerAddress());const T=await this.getFlaunchingFee({sender:m,initialPriceParams:l,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*d/10000n,fairLaunchDuration:r,premineAmount:0n,creator:p,creatorFeeAllocation:c,flaunchAt:y??0n,initialPriceParams:l,feeCalculatorParams:"0x"}},{value:T,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:p,metadata:o,pinataConfig:y}){const u=await nn(e,{metadata:o,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:p})}}class Un{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:En,address:n}),this.readPositionManagerV1_1=new Ln(St[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return mn(t,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async getFlaunchingFee(e){const t=new hn(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return mn(n,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}ethRequiredToFlaunch(e){return this.contract.read("calculateFee",{_premineAmount:e.premineAmount??0n,_slippage:e.slippagePercent?BigInt(100*e.slippagePercent):0n,_initialPriceParams:e.initialPriceParams})}}class Rn extends Un{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:n.zeroAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:s})}async flaunchIPFS(e){const t=await nn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:e.revenueManagerInstanceAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:s})}async flaunchIPFSWithRevenueManager(e){const t=await nn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}}const Hn=[{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 Nn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Hn,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 zn=[{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 qn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:zn,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}}const Gn=[{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 Vn{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:Gn,address:n})}async getSellQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a?Ct[this.chainId]:St[this.chainId],hookData:"0x",intermediateCurrency:Dt[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:Et[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:Et[this.chainId],intermediateCurrency:Dt[this.chainId]},{fee:0,tickSpacing:60,hooks:a?Ct[this.chainId]:St[this.chainId],hookData:"0x",intermediateCurrency:e}]}})).amountOut}async getBuyQuoteExactOutput(e,t,a){return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:Et[this.chainId]},{intermediateCurrency:Dt[this.chainId],fee:0,tickSpacing:60,hooks:a?Ct[this.chainId]:St[this.chainId],hookData:"0x"}],exactCurrency:e,exactAmount:t}})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:Xt[this.chainId].fee,tickSpacing:Xt[this.chainId].tickSpacing,hooks:Xt[this.chainId].hooks,hookData:"0x",intermediateCurrency:Xt[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const $n=[{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 Kn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:$n,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class Wn extends Kn{constructor(e,n=t.createDrift()){super(e,n)}approve(e){return this.contract.write("approve",e)}}const Zn=[{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 Xn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Zn,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Qn=[{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 jn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Qn,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 Yn=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Jn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Yn,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const ea=[{inputs:[{internalType:"address",name:"_protocolOwner",type:"address"},{internalType:"address",name:"_feeEscrow",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownManagerImplemention",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_manager",type:"address"},{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationUnapproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approveManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approvedManagerImplementation",outputs:[{internalType:"bool",name:"_approved",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"},{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deployAndInitializeManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"deployManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract IFeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_manager",type:"address"}],name:"managerImplementation",outputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"unapproveManager",outputs:[],stateMutability:"nonpayable",type:"function"}];class ta{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ea,address:e})}}class na extends ta{constructor(e,n,a=t.createDrift()){super(n,a),this.chainId=e}deployRevenueManager(e){return this.contract.write("deployAndInitializeManager",{_managerImplementation:qt[this.chainId],_owner:e.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:e.protocolRecipient,protocolFee:BigInt(100*e.protocolFeePercent)}])})}}const aa=[{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"}],ia=[{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 ra{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:ia,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map((e=>({target:e.target,allowFailure:!0,callData:e.callData})))})}}class sa{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:aa,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 ra(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 pa extends sa{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 oa={MIN_TICK:-887220,MAX_TICK:887220},ya=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)},ua=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},la=({tick:e,tickSpacing:t,roundDown:n})=>{if(e%t==0)return e;let a=Math.trunc(e/t)*t;return e<0&&e%t!=0&&(a-=t),n||(a+=t),a},da=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},ca=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},ma=e=>BigInt(i.TickMath.getSqrtRatioAtTick(e).toString()),Ta=(e,t,n,a)=>{const i=ma(a),r=ma(t),s=ma(n);let p=0n,o=0n;return i<=r?p=da(r,s,e):i<s?(p=da(i,s,e),o=ca(r,i,e)):o=ca(r,s,e),{amount0:p,amount1:o}},ba={[vt.id]:vt,[kt.id]:kt};class fa{constructor(e,n=t.createDrift()){this.TICK_SPACING=60,this.chainId=e,this.drift=n,this.resolveIPFS=Jt,this.readPositionManager=new gn(Ct[this.chainId],n),this.readPositionManagerV1_1=new Ln(St[this.chainId],n),this.readFlaunchZap=new Un(this.chainId,zt[this.chainId],n),this.readPoolManager=new xn(Vt[this.chainId],n),this.readStateView=new Mn(Wt[this.chainId],n),this.readFairLaunch=new Fn(Bt[this.chainId],n),this.readFairLaunchV1_1=new jn(Lt[this.chainId],n),this.readBidWall=new An(Rt[this.chainId],n),this.readBidWallV1_1=new Xn(Ht[this.chainId],n),this.readFlaunch=new Nn(Ot[this.chainId],n),this.readFlaunchV1_1=new Jn(Ut[this.chainId],n),this.readQuoter=new Vn(this.chainId,Kt[this.chainId],n),this.readPermit2=new Kn(Zt[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)}async isV1Coin(e){return this.readPositionManager.isValidCoin(e)}async getCoinMetadata(e){const t=new qn(e,this.drift),n=await t.name(),a=await t.symbol(),i=await t.tokenURI(),r=(await p.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 Nn(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new ra(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))),s=[];r.forEach((()=>{s.push(this.drift.adapter.encodeFunctionData({abi:zn,fn:"name"})),s.push(this.drift.adapter.encodeFunctionData({abi:zn,fn:"symbol"})),s.push(this.drift.adapter.encodeFunctionData({abi:zn,fn:"tokenURI"}))}));const o=await a.aggregate3(s.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:zn,fn:"name",data:o[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:zn,fn:"symbol",data:o[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:zn,fn:"tokenURI",data:o[3*e+2].returnData});y.push({name:t,symbol:n,tokenURI:a,coinAddress:r[e]})}const u=[];for(let e=0;e<y.length;e+=t){const a=y.slice(e,e+t),i=await Promise.all(a.map((async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=(await p.default.get(this.resolveIPFS(n))).data;return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?this.resolveIPFS(i.image):"",external_link:i.websiteUrl??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??"",telegramUrl:i.telegramUrl??""}})));u.push(...i),e+t<y.length&&await new Promise((e=>setTimeout(e,n)))}return u}watchPoolCreatedV1(e){return this.readPositionManager.watchPoolCreated(e)}watchPoolCreated(e){return this.readPositionManagerV1_1.watchPoolCreated(e)}pollPoolCreatedNowV1(){const e=this.readPositionManager.pollPoolCreatedNow;if(e)return e()}pollPoolCreatedNow(){const e=this.readPositionManagerV1_1.pollPoolCreatedNow;if(e)return e()}async watchPoolSwapV1(e){return this.readPositionManager.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin,!0):void 0,flETHIsCurrencyZero:e.filterByCoin?this.flETHIsCurrencyZero(e.filterByCoin):void 0})}async watchPoolSwap(e){return this.readPositionManagerV1_1.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin):void 0,flETHIsCurrencyZero:e.filterByCoin?this.flETHIsCurrencyZero(e.filterByCoin):void 0})}pollPoolSwapNowV1(){const e=this.readPositionManager.pollPoolSwapNow;if(e)return e()}pollPoolSwapNow(){const e=this.readPositionManagerV1_1.pollPoolSwapNow;if(e)return e()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(await this.readStateView.poolSlot0({poolId:n})).tick}async coinPriceInETH(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=this.flETHIsCurrencyZero(e),a=await this.currentTick(e,t),i=Math.pow(1.0001,a);let r=0;return r=n?1/i:i,r.toFixed(18)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new Vn(t,Kt[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async fairLaunchInfo(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.fairLaunchInfo({poolId:n}):this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})}async isFairLaunchActive(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.isFairLaunchActive({poolId:n}):this.readFairLaunchV1_1.isFairLaunchActive({poolId:n})}async fairLaunchDuration(e,t){if(void 0===t&&(t=await this.isV1Coin(e)),t)return 1800;const n=await this.poolId(e,t);return this.readFairLaunchV1_1.fairLaunchDuration({poolId:n})}async initialTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(t?await this.readFairLaunch.fairLaunchInfo({poolId:n}):await this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})).initialTick}async fairLaunchETHOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=la({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=s+this.TICK_SPACING):(p=la({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),s=p-this.TICK_SPACING);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Bt[this.chainId]:Lt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=Ta(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=oa.MIN_TICK,p=la({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(s=la({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=oa.MAX_TICK);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Bt[this.chainId]:Lt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=Ta(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async bidWallPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=this.flETHIsCurrencyZero(e),{amount0_:i,amount1_:r,pendingEth_:s}=t?await this.readBidWall.position({poolId:n}):await this.readBidWallV1_1.position({poolId:n}),{tickLower:p,tickUpper:o}=t?await this.readBidWall.poolInfo({poolId:n}):await this.readBidWallV1_1.poolInfo({poolId:n}),[y,u]=a?[i,r]:[r,i];return{flETHAmount:y,coinAmount:u,pendingEth:s,tickLower:p,tickUpper:o}}revenueManagerBalance(e){return new sa(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new sa(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new sa(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new sa(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new sa(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async poolId(e,t){return void 0===t&&(t=await this.isV1Coin(e)),ya(ua({currency0:Dt[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:t?Ct[this.chainId]:St[this.chainId]}))}getFlaunchingFee(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readPositionManagerV1_1.getFlaunchingFee({sender:e.sender,initialPriceParams:a,slippagePercent:e.slippagePercent})}ethRequiredToFlaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readFlaunchZap.ethRequiredToFlaunch({premineAmount:e.premineAmount,initialPriceParams:a,slippagePercent:e.slippagePercent})}async getSellQuoteExactInput(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getSellQuoteExactInput(e,t,n)}async getBuyQuoteExactInput(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getBuyQuoteExactInput(e,t,n)}async getBuyQuoteExactOutput(e,t,n){return void 0===n&&(n=await this.isV1Coin(e)),this.readQuoter.getBuyQuoteExactOutput(e,t,n)}flETHIsCurrencyZero(e){return e>Dt[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}}class ha extends fa{constructor(e,n=t.createDrift()){super(e,n),this.readWritePositionManagerV1_1=new On(Ct[this.chainId],n),this.readWriteFastFlaunchZap=new Dn(Nt[this.chainId],n),this.readWriteFlaunchZap=new Rn(this.chainId,zt[this.chainId],n),this.readWriteTreasuryManagerFactory=new na(this.chainId,Gt[this.chainId],n),this.readWritePermit2=new Wn(Zt[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteTreasuryManagerFactory.deployRevenueManager(e),a=n.createPublicClient({chain:ba[this.chainId],transport:n.http()}),i=await a.waitForTransactionReceipt({hash:t}),r=(await a.getContractEvents({address:this.readWriteTreasuryManagerFactory.contract.address,abi:ea,eventName:"ManagerDeployed",fromBlock:i.blockNumber,toBlock:i.blockNumber})).find((e=>e.transactionHash===t));if(!r)throw new Error("ManagerDeployed event not found in transaction logs");return r.args._manager}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}fastFlaunch(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunch(e)}fastFlaunchIPFS(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunchIPFS(e)}flaunchWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchWithRevenueManager(e)}async flaunchIPFSWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchIPFSWithRevenueManager(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new qn(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){void 0===t&&(t=await this.isV1Coin(e.coinAddress));const a=await this.drift.getSignerAddress();let i,r,s,p;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?mn(await this.readQuoter.getBuyQuoteExactInput(e.coinAddress,i,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountOutMin):(s=e.amountOut,p=void 0===e.amountInMax?mn(await this.readQuoter.getBuyQuoteExactOutput(e.coinAddress,s,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountInMax);const{commands:o,inputs:y}=(e=>{const t=Dt[e.chainId],a=Et[e.chainId],i=e.isV1Coin?Ct[e.chainId]:St[e.chainId],r="0x"+("EXACT_IN"===e.swapType?pn:on)+yn+un;let s,p;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");s=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(rn,[{currencyIn:Tn,path:s,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");s=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:Tn},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(sn,[{currencyOut:e.memecoin,path:s,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[Tn,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[p,o,y]]),l="0x"+ln+dn,d=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[Tn,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:an,functionName:"execute",args:[l,d]}),commands:l,inputs:d}})({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer??null,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:p,isV1Coin:t});return this.drift.adapter.write({abi:an,address:$t[this.chainId],fn:"execute",args:{commands:o,inputs:y},value:"EXACT_IN"===e.swapType?i:p})}async sellCoin(e,t){let a;void 0===t&&(t=await this.isV1Coin(e.coinAddress)),await this.readQuoter.contract.cache.clear(),a=void 0===e.ethOutMin?mn(await this.readQuoter.getSellQuoteExactInput(e.coinAddress,e.amountIn,t),(e.slippagePercent/100).toFixed(18).toString(),"EXACT_IN"):e.ethOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=(e=>{const t=Dt[e.chainId],a=Et[e.chainId],i=e.isV1Coin?Ct[e.chainId]:St[e.chainId],r="0x"+pn+yn+un,s=n.encodeAbiParameters(rn,[{currencyIn:e.memecoin,path:[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:Tn,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],amountIn:e.amountIn,amountOutMinimum:e.ethOutMin}]),p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[Tn,e.ethOutMin]),y=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,o]]);if(e.signature&&e.permitSingle){const t="0x"+cn+ln,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),y];return{calldata:n.encodeFunctionData({abi:an,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+ln,t=[y];return{calldata:n.encodeFunctionData({abi:an,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}})({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,ethOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer??null,isV1Coin:t});return this.drift.write({abi:an,address:$t[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:a}=await this.getPermit2AllowanceAndNonce(e),i=BigInt(Math.floor(Date.now()/1e3)+31536e4);return(({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Zt[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:$t[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:bn,message:s},permitSingle:s}})({chainId:this.chainId,coinAddress:e,nonce:a,deadline:void 0!==t?t:i})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,$t[this.chainId]);return{allowance:t,nonce:n}}revenueManagerProtocolClaim(e){return new pa(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new pa(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new pa(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}}const ga={ReadFlaunchSDK:fa,ReadWriteFlaunchSDK:ha};e.BidWallAddress=Rt,e.BidWallV1_1Address=Ht,e.FLETHAddress=Dt,e.FLETHHooksAddress=Et,e.FairLaunchAbi=Pn,e.FairLaunchAddress=Bt,e.FairLaunchV1_1Address=Lt,e.FastFlaunchZapAbi=Cn,e.FastFlaunchZapAddress=Nt,e.FlaunchAddress=Ot,e.FlaunchPositionManagerAbi=Qt,e.FlaunchPositionManagerAddress=Ct,e.FlaunchPositionManagerV1_1Address=St,e.FlaunchSDK=ga,e.FlaunchV1_1Address=Ut,e.FlaunchZapAddress=zt,e.MemecoinAbi=zn,e.Permit2Address=Zt,e.PoolManagerAbi=vn,e.PoolManagerAddress=Vt,e.QuoterAddress=Kt,e.ReadFlaunchSDK=fa,e.ReadWriteFlaunchSDK=ha,e.RevenueManagerAddress=qt,e.StateViewAddress=Wt,e.TICK_SPACING=60,e.TickFinder=oa,e.TreasuryManagerFactoryAddress=Gt,e.USDCETHPoolKeys=Xt,e.UniversalRouterAddress=$t,e.bytes32ToUint256=wn,e.calculateUnderlyingTokenBalances=Ta,e.chainIdToChain=ba,e.createFlaunch=function(e){const{publicClient:n,walletClient:a}=e;if(!n.chain)throw new Error("publicClient must be configured with a chain");const i=n.chain.id;return a?new ha(i,t.createDrift({adapter:r.viemAdapter({publicClient:n,walletClient:a})})):new fa(i,t.createDrift({adapter:r.viemAdapter({publicClient:n})}))},e.generateTokenUri=nn,e.getPoolId=ya,e.getSqrtPriceX96FromTick=ma,e.getValidTick=la,e.orderPoolKey=ua,e.resolveIPFS=Jt,e.uint256ToBytes32=In,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 p.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(p.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToIPFS=tn,e.uploadJsonToIPFS=en,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@uniswap/v3-sdk"),require("@delvtech/drift-viem")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@uniswap/v3-sdk","@delvtech/drift-viem"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.v3Sdk,e.driftViem)}(this,(function(e,t,n,a,i,r){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=s(a);function o(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const y="2.29.2";let u=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,l=`viem@${y}`;class d extends Error{constructor(e,t={}){const n=t.cause instanceof d?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof d&&t.cause.docsPath||t.docsPath,i=u?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...l?[`Version: ${l}`]:[]].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=y}walk(e){return c(this,e)}}function c(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?c(e.cause,t):t?null:e}class m extends d{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 T extends d{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function b(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function f(e){return b(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function h(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 w extends d{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 d{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 I(e,{dir:t,size:n=32}={}){return"string"==typeof e?function(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new g({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new g({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let i=0;i<n;i++){const r="right"===t;a[r?i:n-i-1]=e[r?i:e.length-i-1]}return a}(e,{dir:t,size:n})}const v=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?M(e,t):"string"==typeof e?function(e,t={}){const n=P.encode(e);return k(n,t)}(e,t):"boolean"==typeof e?function(e,t={}){const n=`0x${Number(e)}`;if("number"==typeof t.size)return E(n,{size:t.size}),I(n,{size:t.size});return n}(e,t):k(e,t)}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?(E(a,{size:t.size}),I(a,{dir:"right",size:t.size})):a}function M(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 m({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const p=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?I(p,{size:a}):p}const P=new TextEncoder;const _=new TextEncoder;function F(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=M(e,t);return S(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return E(n,{size:t.size}),I(n,{size:t.size});return n}(e,t):b(e)?S(e,t):D(e,t)}const A={zero:48,nine:57,A:65,F:70,a:97,f:102};function C(e){return e>=A.zero&&e<=A.nine?e-A.zero:e>=A.A&&e<=A.F?e-(A.A-10):e>=A.a&&e<=A.f?e-(A.a-10):void 0}function S(e,t={}){let n=e;t.size&&(E(n,{size:t.size}),n=I(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=C(a.charCodeAt(t++)),i=C(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new d(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function D(e,t={}){const n=_.encode(e);return"number"==typeof t.size?(E(n,{size:t.size}),I(n,{dir:"right",size:t.size})):n}function E(e,{size:t}){if(f(e)>t)throw new T({givenSize:f(e),maxSize:t})}function O(e,t={}){const{signed:n}=t;t.size&&E(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function B(e,t={}){return Number(O(e,t))}function L(e,t){return({exclude:n,format:a})=>({exclude:n,format:e=>{const i=t(e);if(n)for(const e of n)delete i[e];return{...i,...a(e)}},type:e})}const U={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function R(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?B(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?B(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?U[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=e.authorizationList.map((e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)})))),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof t.v){if(0n===t.v||27n===t.v)return 0;if(1n===t.v||28n===t.v)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),"legacy"===t.type&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),"eip2930"===t.type&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),"eip1559"===t.type&&delete t.maxFeePerBlobGas,t}const H=L("transaction",R);function N(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:R(e)));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const z=L("block",N);const q={"0x0":"reverted","0x1":"success"};function V(e){const t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map((e=>function(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}(e))):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?B(e.transactionIndex):null,status:e.status?q[e.status]:null,type:e.type?U[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const G=L("transactionReceipt",V);const W=2n**256n-1n;function K(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class $ extends d{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class X extends d{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Z extends d{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const Q={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Z({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new X({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new $({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 $({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 j(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(Q);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function Y(e,t="hex"){const n=J(e),a=j(new Uint8Array(n.length));return n.encode(a),"hex"===t?k(a.bytes):a.bytes}function J(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=ee(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=>J(e)))):function(e){const t="string"==typeof e?S(e):e,n=ee(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 ee(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 d("Length is too large.")}const te={ether:-9,wei:9};function ne(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,te[t])}function ae(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 ie extends d{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class re extends d{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",ae(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 se extends d{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 pe(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>S(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 oe(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=>S(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>S(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)))}function ye(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ue(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 le(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 de(e,t){ue(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function ce(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function me(e,t){return e<<32-t|e>>>t}const Te=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function be(e){for(let n=0;n<e.length;n++)e[n]=(t=e[n])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function fe(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),ue(e),e}"function"==typeof Uint8Array.from([]).toHex&&Uint8Array.fromHex;class he{clone(){return this._cloneInto()}}function we(e){const t=t=>e().update(fe(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ge(e,t,n){return e&t^e&n^t&n}class Ie extends he{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=ce(this.buffer)}update(e){le(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=fe(e)).length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s!==a)n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0);else{const t=ce(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){le(this),de(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),p=Number(n&r),o=a?4:0,y=a?0:4;e.setUint32(t+o,s,a),e.setUint32(t+y,p,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=ce(e),p=this.outputLen;if(p%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const o=p/4,y=this.get();if(o>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<o;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.length=a,e.pos=s,e.finished=i,e.destroyed=r,a%t&&e.buffer.set(n),e}}const ve=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),xe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ke=new Uint32Array(64);class Me extends Ie{constructor(e=32){super(64,e,8,!1),this.A=0|xe[0],this.B=0|xe[1],this.C=0|xe[2],this.D=0|xe[3],this.E=0|xe[4],this.F=0|xe[5],this.G=0|xe[6],this.H=0|xe[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:p}=this;return[e,t,n,a,i,r,s,p]}set(e,t,n,a,i,r,s,p){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|p}process(e,t){for(let n=0;n<16;n++,t+=4)ke[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=ke[e-15],n=ke[e-2],a=me(t,7)^me(t,18)^t>>>3,i=me(n,17)^me(n,19)^n>>>10;ke[e]=i+ke[e-7]+a+ke[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:p,G:o,H:y}=this;for(let e=0;e<64;e++){const t=y+(me(s,6)^me(s,11)^me(s,25))+((u=s)&p^~u&o)+ve[e]+ke[e]|0,l=(me(n,2)^me(n,13)^me(n,22))+ge(n,a,i)|0;y=o,o=p,p=s,s=r+t|0,r=i,i=a,a=n,n=t+l|0}var u;n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,p=p+this.F|0,o=o+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,p,o,y)}roundClean(){ke.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Pe=we((()=>new Me));function _e(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=Pe(b(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:k(i)}const Fe=4096,Ae=131072,Ce=761855;class Se extends d{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class De extends d{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class Ee extends d{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class Oe extends d{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function Be(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?S(e.data):e.data,a=f(n);if(!a)throw new De;if(a>Ce)throw new Se({maxSize:Ce,size:a});const i=[];let r=!0,s=0;for(;r;){const e=j(new Uint8Array(Ae));let t=0;for(;t<Fe;){const a=n.slice(s,s+31);if(e.pushByte(0),e.pushBytes(a),a.length<31){e.pushByte(128),r=!1;break}t++,s+=31}i.push(e)}return"bytes"===t?i.map((e=>e.bytes)):i.map((e=>k(e.bytes)))}({data:t,to:a}),r=e.commitments??pe({blobs:i,kzg:n,to:a}),s=e.proofs??oe({blobs:i,commitments:r,kzg:n,to:a}),p=[];for(let e=0;e<i.length;e++)p.push({blob:i[e],commitment:r[e],proof:s[e]});return p}class Le extends d{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 Ue extends d{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Re extends d{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${ne(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Re,"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 He extends d{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${ne(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${ne(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(He,"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 Ne 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 ze=BigInt(2**32-1),qe=BigInt(32);function Ve(e,t=!1){return t?{h:Number(e&ze),l:Number(e>>qe&ze)}:{h:0|Number(e>>qe&ze),l:0|Number(e&ze)}}function Ge(e,t=!1){let n=new Uint32Array(e.length),a=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:r,l:s}=Ve(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const We=[],Ke=[],$e=[],Xe=BigInt(0),Ze=BigInt(1),Qe=BigInt(2),je=BigInt(7),Ye=BigInt(256),Je=BigInt(113);for(let e=0,t=Ze,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],We.push(2*(5*a+n)),Ke.push((e+1)*(e+2)/2%64);let i=Xe;for(let e=0;e<7;e++)t=(t<<Ze^(t>>je)*Je)%Ye,t&Qe&&(i^=Ze<<(Ze<<BigInt(e))-Ze);$e.push(i)}const[et,tt]=Ge($e,!0),nt=(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),at=(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 it extends he{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,ye(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}keccak(){Te||be(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],p=nt(r,s,1)^n[a],o=at(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=p,e[t+n+1]^=o}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=Ke[n],r=nt(t,i,a),s=at(t,i,a),p=We[n];t=e[p],i=e[p+1],e[p]=r,e[p+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=et[a],e[1]^=tt[a]}n.fill(0)}(this.state32,this.rounds),Te||be(this.state32),this.posOut=0,this.pos=0}update(e){le(this);const{blockLen:t,state:n}=this,a=(e=fe(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){le(this,!1),ue(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 ye(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(de(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new it(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 rt=((e,t,n)=>we((()=>new it(t,e,n))))(1,136,32);const st=new Ne(8192);function pt(e,t){if(st.has(`${e}.${t}`))return st.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=function(e,t){const n=t||"hex",a=rt(b(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(D(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 st.set(`${e}.${t}`,r),r}const ot=/^0x[a-fA-F0-9]{40}$/,yt=new Ne(8192);function ut(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(yt.has(a))return yt.get(a);const i=!(!ot.test(e)||e.toLowerCase()!==e&&n&&pt(e)!==e);return yt.set(a,i),i}function lt(e,t,n,{strict:a}={}){return b(e,{strict:!1})?function(e,t,n,{strict:a}={}){dt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&ct(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){dt(e,t);const i=e.slice(t,n);a&&ct(i,t,n);return i}(e,t,n,{strict:a})}function dt(e,t){if("number"==typeof t&&t>0&&t>f(e)-1)throw new w({offset:t,position:"start",size:f(e)})}function ct(e,t,n){if("number"==typeof t&&"number"==typeof n&&f(e)!==n-t)throw new w({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 Ue({chainId:t});if(i&&!ut(i))throw new Le({address:i});if(a&&a>W)throw new Re({maxFeePerGas:a});if(n&&a&&n>a)throw new He({maxFeePerGas:a,maxPriorityFeePerGas:n})}function Tt(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 se({storageKey:i[e]});if(!ut(a,{strict:!1}))throw new Le({address:a});t.push([a,i])}return t}function bt(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 re({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:p,maxPriorityFeePerGas:o,accessList:y,data:u}=e;mt(e);const l=Tt(y),d=[x(n),i?x(i):"0x",o?x(o):"0x",p?x(p):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",u??"0x",l,...ft(e,t)];return K(["0x02",Y(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:p,accessList:o,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Ue({chainId:t});if(r&&!ut(r))throw new Le({address:r});if(n||i)throw new d("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>W)throw new Re({maxFeePerGas:a})}(e);const u=Tt(o),l=[x(n),r?x(r):"0x",y?x(y):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x",u,...ft(e,t)];return K(["0x01",Y(l)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new De;for(const e of t){const t=f(e),n=B(lt(e,0,1));if(32!==t)throw new Ee({hash:e,size:t});if(1!==n)throw new Oe({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=pe({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(_e({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=Be({blobs:t,commitments:a,proofs:oe({blobs:t,commitments:a,kzg:n})})}}const m=Tt(u),T=[x(n),i?x(i):"0x",y?x(y):"0x",o?x(o):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",l??"0x",m,p?x(p):"0x",d??[],...ft(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 K(["0x03",Y(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:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{chainId:t}=e,n=e.address;if(!ut(n))throw new Le({address:n});if(t<0)throw new Ue({chainId:t})}mt(e)}(e);const d=Tt(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",...ft({},i)])}return t}(n);return K(["0x04",Y([x(a),r?x(r):"0x",y?x(y):"0x",o?x(o):"0x",i?x(i):"0x",s??"0x",p?x(p):"0x",l??"0x",d,c,...ft(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:p,gasPrice:o}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!ut(r))throw new Le({address:r});if(void 0!==t&&t<=0)throw new Ue({chainId:t});if(n||i)throw new d("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>W)throw new Re({maxFeePerGas:a})}(e);let y=[r?x(r):"0x",o?x(o):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new ie({v:t.v});return e})(),a=h(t.r),i=h(t.s);y=[...y,x(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,x(n),"0x","0x"]);return Y(y)}(e,t)}function ft(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=h(n.r),s=h(n.s);return["number"==typeof i?i?x(1):"0x":0n===a?"0x":1n===a?x(1):27n===a?"0x":x(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const ht={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function wt(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&&!ut(t))throw new Le({address:t});if(n&&!ut(n))throw new Le({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:p,value:o}=e;return K(["0x7e",Y([t,a,p??"0x",s?x(s):"0x",o?x(o):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):bt(e,t)}const gt={contracts:ht,formatters:{block:z({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=R(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?O(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?O(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:G({format:e=>({l1GasPrice:e.l1GasPrice?O(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?O(e.l1GasUsed):null,l1Fee:e.l1Fee?O(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:wt}},It=1,vt=o({...gt,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...gt.contracts,disputeGameFactory:{[It]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[It]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[It]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[It]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),xt=11155111,kt=o({...gt,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...gt.contracts,disputeGameFactory:{[xt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[xt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[xt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[xt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:xt});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 Mt=1;o({...gt,id:60808,name:"BOB",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.gobob.xyz"],webSocket:["wss://rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Explorer",url:"https://explorer.gobob.xyz"}},contracts:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[Mt]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[Mt]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Pt=11155111;o({...gt,id:808813,name:"BOB Sepolia",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://bob-sepolia.rpc.gobob.xyz"],webSocket:["wss://bob-sepolia.rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Sepolia Explorer",url:"https://bob-sepolia.explorer.gobob.xyz"}},contracts:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Pt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Pt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Pt});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({...gt,id:3397901,network:"funkiSepolia",name:"Funki Sepolia Sandbox",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://funki-testnet.alt.technology"]}},blockExplorers:{default:{name:"Funki Sepolia Sandbox Explorer",url:"https://sepolia-sandbox.funkichain.com/"}},testnet:!0,contracts:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const _t=17e3;o({...gt,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:_t,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.garnetchain.com"],webSocket:["wss://rpc.garnetchain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.garnetchain.com"}},contracts:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[_t]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[_t]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[_t]:{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});const Ft=11155111;o({...gt,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:Ft,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.pyropechain.com"],webSocket:["wss://rpc.pyropechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://pyrope.blockscout.com"}},contracts:{...gt.contracts,l1StandardBridge:{[Ft]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const At=1;o({...gt,name:"Redstone",id:690,sourceId:1,nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.redstonechain.com"],webSocket:["wss://rpc.redstonechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.redstone.xyz"}},contracts:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[At]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[At]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[At]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const Ct={[vt.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[kt.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},St={[vt.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[kt.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},Dt={[vt.id]:n.zeroAddress,[kt.id]:"0xB4A535B9D35851972736495CC52FBfDaCF32e5dc"},Et={[vt.id]:"0x72e6f7948b1B1A343B477F39aAbd2E35E6D27dde",[kt.id]:"0x73E27908b7d35A9251a54799A8ef4C17e4ED9FF9"},Ot={[vt.id]:"0xBD39c7Be6D98BD1a3e4Ad482baF99d738947fE55",[kt.id]:"0xd3d9047CaBE3346C70b510435866565176e8CE12"},Bt={[vt.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[kt.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},Lt={[vt.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[kt.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Ut={[vt.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[kt.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},Rt={[vt.id]:"0x4dc442403e8c758425b93c59dc737da522f32640",[kt.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},Ht={[vt.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[kt.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},Nt={[vt.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[kt.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},zt={[vt.id]:n.zeroAddress,[kt.id]:"0x67Ee6C83956a75f67bD3Fc8Ca4080D95a145c7C9"},qt={[vt.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[kt.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},Vt={[vt.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[kt.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},Gt={[vt.id]:n.zeroAddress,[kt.id]:"0xcfF222eA42E43F46A98755db237E4c9C2CA9B772"},Wt={[vt.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[kt.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},Kt={[vt.id]:"0xfa9e8528ee95eb109bffd1a2d59cb95b300a672a",[kt.id]:"0xb2f5d987de90e026b61805e60b6002d367461474"},$t={[vt.id]:"0x712fa8ddc7347b4b6b029aa21710f365cd02d898",[kt.id]:"0x17E02501dE3e420347e7C5fCAe3AD787C5aea690"},Xt={[vt.id]:"0x6baa4ec493a9698dc7388c0f290e29ea3d149f99",[kt.id]:"0xf72dcdee692c188de6b14c6213e849982e04069b"},Zt={[vt.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[kt.id]:"0xd2f3c6185e06925dcbe794c6574315b2202e9ccd"},Qt={[vt.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[kt.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},jt={[vt.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[kt.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},Yt={[vt.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[kt.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},Jt={[vt.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[kt.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},en={[vt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[kt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},tn={[vt.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[kt.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"}],an=["https://gateway.pinata.cloud/ipfs/","https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let rn=0;const sn=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=an[rn];return rn=(rn+1)%an.length,`${n}${t}`}return e},pn=async e=>{try{const t={pinataOptions:{cidVersion:1},pinataMetadata:{name:e.name||null,keyvalues:e.metadata||{}},pinataContent:e.json},n=await p.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(p.default.isAxiosError(e))throw new Error(`Failed to upload JSON to IPFS: ${e.response?.data?.message||e.message}`);throw e}},on=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 s=new Blob(i,{type:r}),o=e.name||`image.${r.split("/")[1]}`,y=new File([s],o,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await p.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(p.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},yn=async(e,t)=>{const n=await on({pinataConfig:t.pinataConfig,base64Image:t.metadata.base64Image}),a={name:e,description:t.metadata.description,image:`ipfs://${n.IpfsHash}`,external_link:t.metadata.websiteUrl||"",collaborators:[],discordUrl:t.metadata.discordUrl||"",twitterUrl:t.metadata.twitterUrl||"",telegramUrl:t.metadata.telegramUrl||""};return`ipfs://${(await pn({pinataConfig:t.pinataConfig,json:a})).IpfsHash}`},un=[{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"}],ln=[{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"}]}],dn=[{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"}]}],cn="07",mn="09",Tn="0c",bn="0f",fn="10",hn="04",wn="0a",gn=(e,t,a)=>{if(null==e)return 0n;return(e<0n?-e:e)*("EXACT_IN"===a?BigInt(1e18)-n.parseEther(t):BigInt(1e18)+n.parseEther(t))/BigInt(1e18)},In=n.zeroAddress,vn={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]};function xn(e,t){const{flAmount0:n,flAmount1:a,flFee0:i,flFee1:r,ispAmount0:s,ispAmount1:p,ispFee0:o,ispFee1:y,uniAmount0:u,uniAmount1:l,uniFee0:d,uniFee1:c}=e,m=n+s+u,T=a+p+l,b=i+o+d,f=r+y+c;let h,w;t?(w=m<0?"BUY":"SELL",h=b<0):(w=T<0?"BUY":"SELL",h=f<0);const g=m<0?-m:m,I=T<0?-T:T,v=b<0?-b:b,x=f<0?-f:f,k={isInFLETH:h,amount:t?h?v:x:h?x:v};return"BUY"===w?{type:w,delta:{coinsBought:t?I-(k.isInFLETH?0n:k.amount):g-(k.isInFLETH?0n:k.amount),flETHSold:t?g-(k.isInFLETH?k.amount:0n):I-(k.isInFLETH?k.amount:0n),fees:k}}:{type:w,delta:{coinsSold:t?I-(k.isInFLETH?0n:k.amount):g-(k.isInFLETH?0n:k.amount),flETHBought:t?g-(k.isInFLETH?k.amount:0n):I-(k.isInFLETH?k.amount:0n),fees:k}}}const kn=[{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 Mn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:kn,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 Pn{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})}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 Mn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return gn(n,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async 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=xn(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=xn(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 _n extends Pn{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,initialMarketCapUSD:r,creator:s,creatorFeeAllocationPercent:p,flaunchAt:o}){const y=n.parseUnits(r.toString(),6),u=n.encodeAbiParameters([{type:"uint256"}],[y]),l=BigInt(100*i),d=100*p;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:o??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:p,pinataConfig:o}){const y=await yn(e,{metadata:p,pinataConfig:o});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 Fn=e=>n.hexToBigInt(e),An=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),Cn=[{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 Sn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Cn,address:e})}poolStateSlot({poolId:e}){const t=An(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,p=BigInt("0xFFFFFF"),o=Number(s&p),y=o>8388607?o-16777216:o,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),p=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),o=this.poolStateSlot({poolId:e}),y=An(Fn(o)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[p,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const Dn=[{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 En{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Dn,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 On=[{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 Bn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:On,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 Ln=[{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 Un{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ln,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Rn=[{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 Hn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Rn,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Nn=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"contract Flaunch",name:"_flaunchContract",type:"address"},{internalType:"contract IFLETH",name:"_flETH",type:"address"},{internalType:"contract PoolSwap",name:"_poolSwap",type:"address"},{internalType:"contract ITreasuryManagerFactory",name:"_treasuryManagerFactory",type:"address"},{internalType:"contract IMerkleAirdrop",name:"_merkleAirdrop",type:"address"},{internalType:"contract WhitelistFairLaunch",name:"_whitelistFairLaunch",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CreatorCannotBeZero",type:"error"},{inputs:[],name:"InsufficientMemecoinsForAirdrop",type:"error"},{inputs:[{internalType:"uint256",name:"_premineAmount",type:"uint256"},{internalType:"uint256",name:"_slippage",type:"uint256"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"ethRequired_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flETH",outputs:[{internalType:"contract IFLETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_flaunchParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_flaunchParams",type:"tuple"},{components:[{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"},{internalType:"uint256",name:"maxTokens",type:"uint256"}],internalType:"struct FlaunchZap.WhitelistParams",name:"_whitelistParams",type:"tuple"},{components:[{internalType:"uint256",name:"airdropIndex",type:"uint256"},{internalType:"uint256",name:"airdropAmount",type:"uint256"},{internalType:"uint256",name:"airdropEndTime",type:"uint256"},{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"}],internalType:"struct FlaunchZap.AirdropParams",name:"_airdropParams",type:"tuple"},{components:[{internalType:"address",name:"manager",type:"address"},{internalType:"bytes",name:"initializeData",type:"bytes"},{internalType:"bytes",name:"depositData",type:"bytes"}],internalType:"struct FlaunchZap.TreasuryManagerParams",name:"_treasuryManagerParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"deployedManager_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"merkleAirdrop",outputs:[{internalType:"contract IMerkleAirdrop",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract ITreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"whitelistFairLaunch",outputs:[{internalType:"contract WhitelistFairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],zn=[{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 qn{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:zn,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}getFlaunchingMarketCap(e){return this.contract.read("getFlaunchingMarketCap",{_initialPriceParams:e})}async getFlaunchingFee(e){const t=new Mn(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return gn(n,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map((async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}})));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async 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=xn(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=xn(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 Vn extends qn{constructor(e,n=t.createDrift()){super(e,n)}async flaunch({name:e,symbol:t,tokenUri:a,fairLaunchPercent:i,fairLaunchDuration:r,initialMarketCapUSD:s,creator:p,creatorFeeAllocationPercent:o,flaunchAt:y}){const u=n.parseUnits(s.toString(),6),l=n.encodeAbiParameters([{type:"uint256"}],[u]),d=BigInt(100*i),c=100*o;let m=n.zeroAddress;this.drift.adapter.getSignerAddress&&(m=await this.drift.adapter.getSignerAddress());const T=await this.getFlaunchingFee({sender:m,initialPriceParams:l,slippagePercent:5});return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:a,initialTokenFairLaunch:this.TOTAL_SUPPLY*d/10000n,fairLaunchDuration:r,premineAmount:0n,creator:p,creatorFeeAllocation:c,flaunchAt:y??0n,initialPriceParams:l,feeCalculatorParams:"0x"}},{value:T,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({name:e,symbol:t,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:p,metadata:o,pinataConfig:y}){const u=await yn(e,{metadata:o,pinataConfig:y});return this.flaunch({name:e,symbol:t,tokenUri:u,fairLaunchPercent:n,fairLaunchDuration:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:p})}}class Gn{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:Nn,address:n}),this.readPositionManagerV1_1=new qn(St[this.chainId],a)}async getPremineCostInWei(e){const t=await this.readPositionManagerV1_1.getFlaunchingMarketCap(e.initialPriceParams)*e.premineAmount/this.TOTAL_SUPPLY;return gn(t,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}async getFlaunchingFee(e){const t=new Mn(await this.readPositionManagerV1_1.initialPrice(),this.drift),n=await t.getFlaunchingFee(e);return gn(n,(e.slippagePercent??0).toFixed(18).toString(),"EXACT_OUT")}ethRequiredToFlaunch(e){return this.contract.read("calculateFee",{_premineAmount:e.premineAmount??0n,_slippage:e.slippagePercent?BigInt(100*e.slippagePercent):0n,_initialPriceParams:e.initialPriceParams})}}class Wn extends Gn{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:n.zeroAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:s})}async flaunchIPFS(e){const t=await yn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunch({...e,tokenUri:t})}async flaunchWithRevenueManager(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5});return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:e.revenueManagerInstanceAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:s})}async flaunchIPFSWithRevenueManager(e){const t=await yn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}async flaunchWithSplitManager(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent,s=await this.ethRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:5}),p=10000000n;let o=BigInt(e.creatorSplitPercent)*p/100n;const y=e.splitReceivers.map((e=>({recipient:e.address,share:BigInt(e.percent)*p/100n}))),u=y.reduce(((e,t)=>e+t.share),0n);o+=p-u;const l=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:o,recipientShares:y}]);return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:Xt[this.chainId],initializeData:l,depositData:"0x"},_whitelistParams:{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:s})}async flaunchIPFSWithSplitManager(e){const t=await yn(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithSplitManager({...e,tokenUri:t})}}const Kn=[{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 $n{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Kn,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 Xn=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotFlaunch",type:"error"},{inputs:[],name:"MintAddressIsZero",type:"error"},{inputs:[],name:"Permit2AllowanceIsFixedAtInfinity",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainMint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateVotesChanged",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_name",type:"string"},{indexed:!1,internalType:"string",name:"_symbol",type:"string"}],name:"MetadataUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"CLOCK_MODE",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"burnFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint32",name:"pos",type:"uint32"}],name:"checkpoints",outputs:[{components:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint224",name:"votes",type:"uint224"}],internalType:"struct ERC20VotesUpgradeable.Checkpoint",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"clock",outputs:[{internalType:"uint48",name:"",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[],name:"creator",outputs:[{internalType:"address",name:"creator_",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainBurn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"}],name:"delegate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"delegateBySig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunch",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"getVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"string",name:"tokenUri_",type:"string"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"numCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];class Zn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Xn,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}totalSupply(){return this.contract.read("totalSupply")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}}const Qn=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"NotEnoughLiquidity",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"QuoteSwap",type:"error"},{inputs:[],name:"UnexpectedCallSuccess",type:"error"},{inputs:[{internalType:"bytes",name:"revertData",type:"bytes"}],name:"UnexpectedRevertBytes",type:"error"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactInput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactInputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactOutput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactOutputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"}];class jn{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:Qn,address:n})}async getSellQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:Bt[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:Lt[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:Lt[this.chainId],intermediateCurrency:Bt[this.chainId]},{fee:0,tickSpacing:60,hooks:a,hookData:"0x",intermediateCurrency:e}]}})).amountOut}async getBuyQuoteExactOutput(e,t,a){return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:Lt[this.chainId]},{intermediateCurrency:Bt[this.chainId],fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],exactCurrency:e,exactAmount:t}})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:tn[this.chainId].fee,tickSpacing:tn[this.chainId].tickSpacing,hooks:tn[this.chainId].hooks,hookData:"0x",intermediateCurrency:tn[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const Yn=[{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 Jn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Yn,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class ea extends Jn{constructor(e,n=t.createDrift()){super(e,n)}approve(e){return this.contract.write("approve",e)}}const ta=[{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 na{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:ta,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=xn(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=xn(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 aa extends na{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"}],[r]),p=100*i;return this.contract.write("flaunch",{_params:{memecoin:e,creator:a,creatorFeeAllocation:p,initialPriceParams:s,feeCalculatorParams:"0x"}},{onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}}const ia=[{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 ra{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ia,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}}class sa extends ra{constructor(e,n=t.createDrift()){super(e,n)}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!0})}}const pa=[{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 oa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:pa,address:e})}allocations(e,t){return this.contract.read("allocations",{_user:e,_token:t})}}class ya extends oa{constructor(e,n=t.createDrift()){super(e,n)}claimTokens(e,t){return this.contract.write("claimTokens",{_tokens:e,_recipient:t})}}const ua=[{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 la{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ua,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const da=[{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 ca{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:da,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 ma=[{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 Ta{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ma,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const ba=[{inputs:[{internalType:"address",name:"_protocolOwner",type:"address"},{internalType:"address",name:"_feeEscrow",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownManagerImplemention",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_manager",type:"address"},{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationUnapproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approveManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approvedManagerImplementation",outputs:[{internalType:"bool",name:"_approved",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"},{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deployAndInitializeManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"deployManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract IFeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_manager",type:"address"}],name:"managerImplementation",outputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"unapproveManager",outputs:[],stateMutability:"nonpayable",type:"function"}];class fa{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ba,address:e})}}class ha extends fa{constructor(e,n,a=t.createDrift()){super(n,a),this.chainId=e}deployRevenueManager(e){return this.contract.write("deployAndInitializeManager",{_managerImplementation:$t[this.chainId],_owner:e.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:e.protocolRecipient,protocolFee:BigInt(100*e.protocolFeePercent)}])})}}const wa=[{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"}],ga=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3[]",name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3Value[]",name:"calls",type:"tuple[]"}],name:"aggregate3Value",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"getBasefee",outputs:[{internalType:"uint256",name:"basefee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getChainId",outputs:[{internalType:"uint256",name:"chainid",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"}];class Ia{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:ga,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map((e=>({target:e.target,allowFailure:!0,callData:e.callData})))})}}class va{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:wa,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}protocolRecipient(){return this.contract.read("protocolRecipient")}async tokensCount(){return await this.contract.read("nextInternalId")-1n}async allTokensByCreator(e,t=!1){const n=await this.contract.read("tokens",{_creator:e});return t?[...n].reverse():n}async allTokensInManager(e=!1){const t=await this.tokensCount(),n=new Ia(this.drift);let a=Array.from({length:Number(t)},((e,t)=>this.contract.encodeFunctionData("internalIds",{_internalId:BigInt(t+1)})));e&&(a=a.reverse());return(await n.aggregate3(a.map((e=>({target:this.contract.address,callData:e}))))).map((e=>this.contract.decodeFunctionReturn("internalIds",e.returnData)))}}class xa extends va{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})}}var ka;e.FlaunchVersion=void 0,(ka=e.FlaunchVersion||(e.FlaunchVersion={})).V1="V1",ka.V1_1="V1_1",ka.V1_1_1="V1_1_1",ka.ANY="ANY";const Ma={MIN_TICK:-887220,MAX_TICK:887220},Pa=e=>{const t=n.concat([n.pad(e.currency0,{size:32}),n.pad(e.currency1,{size:32}),n.pad(n.toHex(e.fee),{size:32}),n.pad(n.toHex(e.tickSpacing),{size:32}),n.pad(e.hooks,{size:32})]);return n.keccak256(t)},_a=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},Fa=({tick:e,tickSpacing:t,roundDown:n})=>{if(e%t==0)return e;let a=Math.trunc(e/t)*t;return e<0&&e%t!=0&&(a-=t),n||(a+=t),a},Aa=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},Ca=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},Sa=e=>BigInt(i.TickMath.getSqrtRatioAtTick(e).toString()),Da=(e,t,n,a)=>{const i=Sa(a),r=Sa(t),s=Sa(n);let p=0n,o=0n;return i<=r?p=Aa(r,s,e):i<s?(p=Aa(i,s,e),o=Ca(r,i,e)):o=Ca(r,s,e),{amount0:p,amount1:o}},Ea={[vt.id]:vt,[kt.id]:kt};class Oa{constructor(e,n=t.createDrift()){this.TICK_SPACING=60,this.chainId=e,this.drift=n,this.resolveIPFS=sn,this.readPositionManager=new Pn(Ct[this.chainId],n),this.readPositionManagerV1_1=new qn(St[this.chainId],n),this.readAnyPositionManager=new na(Dt[this.chainId],n),this.readFeeEscrow=new ra(Et[this.chainId],n),this.readReferralEscrow=new oa(Ot[this.chainId],n),this.readFlaunchZap=new Gn(this.chainId,Kt[this.chainId],n),this.readPoolManager=new Sn(Qt[this.chainId],n),this.readStateView=new En(Jt[this.chainId],n),this.readFairLaunch=new Bn(Ut[this.chainId],n),this.readFairLaunchV1_1=new ca(Rt[this.chainId],n),this.readBidWall=new Un(qt[this.chainId],n),this.readBidWallV1_1=new la(Vt[this.chainId],n),this.readAnyBidWall=new Hn(Gt[this.chainId],n),this.readFlaunch=new $n(Ht[this.chainId],n),this.readFlaunchV1_1=new Ta(Nt[this.chainId],n),this.readQuoter=new jn(this.chainId,Yt[this.chainId],n),this.readPermit2=new Jn(en[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)||await this.readAnyPositionManager.isValidCoin(e)}async getCoinVersion(t){if(await this.readPositionManager.isValidCoin(t))return e.FlaunchVersion.V1;if(await this.readPositionManagerV1_1.isValidCoin(t))return e.FlaunchVersion.V1_1;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.ANY:return this.readAnyPositionManager;default:return this.readPositionManagerV1_1}}getFairLaunch(t){switch(t){case e.FlaunchVersion.V1:return this.readFairLaunch;case e.FlaunchVersion.V1_1: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:return this.readBidWallV1_1;case e.FlaunchVersion.ANY:return this.readAnyBidWall;default:return this.readBidWallV1_1}}getPositionManagerAddress(e){return this.getPositionManager(e).contract.address}getFairLaunchAddress(e){return this.getFairLaunch(e).contract.address}getBidWallAddress(e){return this.getBidWall(e).contract.address}async getCoinMetadata(e){const t=new Zn(e,this.drift),n=await t.name(),a=await t.symbol(),i=await t.tokenURI(),r=(await p.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 $n(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){const a=new Ia(this.drift),i=e.map((e=>this.readFlaunch.contract.encodeFunctionData("memecoin",{_tokenId:e.tokenId}))),r=(await a.aggregate3(i.map(((t,n)=>({target:e[n].flaunch,callData:t}))))).map((e=>this.readFlaunch.contract.decodeFunctionReturn("memecoin",e.returnData))),s=[];r.forEach((()=>{s.push(this.drift.adapter.encodeFunctionData({abi:Xn,fn:"name"})),s.push(this.drift.adapter.encodeFunctionData({abi:Xn,fn:"symbol"})),s.push(this.drift.adapter.encodeFunctionData({abi:Xn,fn:"tokenURI"}))}));const o=await a.aggregate3(s.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:Xn,fn:"name",data:o[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:Xn,fn:"symbol",data:o[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:Xn,fn:"tokenURI",data:o[3*e+2].returnData});y.push({name:t,symbol:n,tokenURI:a,coinAddress:r[e]})}const u=[];for(let e=0;e<y.length;e+=t){const a=y.slice(e,e+t),i=await Promise.all(a.map((async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=(await p.default.get(this.resolveIPFS(n))).data;return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?this.resolveIPFS(i.image):"",external_link:i.websiteUrl??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??"",telegramUrl:i.telegramUrl??""}})));u.push(...i),e+t<y.length&&await new Promise((e=>setTimeout(e,n)))}return u}watchPoolCreated(t,n=e.FlaunchVersion.V1_1){return n===e.FlaunchVersion.V1?this.readPositionManager.watchPoolCreated(t):this.readPositionManagerV1_1.watchPoolCreated(t)}pollPoolCreatedNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolCreatedNow;if(n)return n()}async watchPoolSwap(t,n=e.FlaunchVersion.V1_1){return(n===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).watchPoolSwap({...t,filterByPoolId:t.filterByCoin?await this.poolId(t.filterByCoin,n):void 0,flETHIsCurrencyZero:t.filterByCoin?this.flETHIsCurrencyZero(t.filterByCoin):void 0})}pollPoolSwapNow(t=e.FlaunchVersion.V1_1){const n=(t===e.FlaunchVersion.V1?this.readPositionManager:this.readPositionManagerV1_1).pollPoolSwapNow;if(n)return n()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return(await this.readStateView.poolSlot0({poolId:a})).tick}async coinPriceInETH(e,t){const n=t||await this.getCoinVersion(e),a=this.flETHIsCurrencyZero(e),i=await this.currentTick(e,n),r=Math.pow(1.0001,i);let s=0;return s=a?1/r:r,s.toFixed(18)}async coinPriceInUSD({coinAddress:e,version:t,drift:n}){const a=t||await this.getCoinVersion(e),i=await this.coinPriceInETH(e,a),r=await this.getETHUSDCPrice(n);return(parseFloat(i)*r).toFixed(2)}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 jn(t,Yt[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 Mn(await this.readPositionManagerV1_1.initialPrice(),this.drift).getSqrtPriceX96({isFLETHZero:i,initialPriceParams:a})}async fairLaunchInfo(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchInfo({poolId:a})}async isFairLaunchActive(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).isFairLaunchActive({poolId:a})}async fairLaunchDuration(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return this.getFairLaunch(n).fairLaunchDuration({poolId:a})}async initialTick(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n);return(await this.getFairLaunch(n).fairLaunchInfo({poolId:a})).initialTick}async fairLaunchETHOnlyPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let p,o;s?(p=Fa({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),o=p+this.TICK_SPACING):(o=Fa({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),p=o-this.TICK_SPACING);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:p,tickUpper:o,salt:""}),{amount0:u,amount1:l}=Da(y,p,o,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:p,tickUpper:o}}async fairLaunchCoinOnlyPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=await this.initialTick(e,n),r=await this.currentTick(e,n),s=this.flETHIsCurrencyZero(e);let p,o;s?(p=Ma.MIN_TICK,o=Fa({tick:i-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(p=Fa({tick:i+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),o=Ma.MAX_TICK);const{liquidity:y}=await this.readStateView.positionInfo({poolId:a,owner:this.getFairLaunchAddress(n),tickLower:p,tickUpper:o,salt:""}),{amount0:u,amount1:l}=Da(y,p,o,r),[d,c]=s?[u,l]:[l,u];return{flETHAmount:d,coinAmount:c,tickLower:p,tickUpper:o}}async bidWallPosition(e,t){const n=t||await this.getCoinVersion(e),a=await this.poolId(e,n),i=this.flETHIsCurrencyZero(e),{amount0_:r,amount1_:s,pendingEth_:p}=await this.getBidWall(n).position({poolId:a}),{tickLower:o,tickUpper:y}=await this.getBidWall(n).poolInfo({poolId:a}),[u,l]=i?[r,s]:[s,r];return{flETHAmount:u,coinAmount:l,pendingEth:p,tickLower:o,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 va(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new va(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new va(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new va(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new va(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async poolId(e,t){let n;if(t)n=this.getPositionManagerAddress(t);else{const t=await this.getCoinVersion(e);n=this.getPositionManagerAddress(t)}return Pa(_a({currency0:Bt[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(e,t,n){const a=n||await this.getCoinVersion(e);return this.readQuoter.getSellQuoteExactInput(e,t,this.getPositionManagerAddress(a))}async getBuyQuoteExactInput(e,t,n){const a=n||await this.getCoinVersion(e);return this.readQuoter.getBuyQuoteExactInput(e,t,this.getPositionManagerAddress(a))}async getBuyQuoteExactOutput(e,t,n){const a=n||await this.getCoinVersion(e);return this.readQuoter.getBuyQuoteExactOutput(e,t,this.getPositionManagerAddress(a))}flETHIsCurrencyZero(e){return e>Bt[this.chainId]}setIPFSResolver(e){this.resolveIPFS=e}async parseSwapTx(e){return this.getPositionManager(e.version).parseSwapTx(e.txHash,e.flETHIsCurrencyZero)}}class Ba extends Oa{constructor(e,n=t.createDrift()){super(e,n),this.readWritePositionManager=new _n(Ct[this.chainId],n),this.readWritePositionManagerV1_1=new Vn(St[this.chainId],n),this.readWriteAnyPositionManager=new aa(Dt[this.chainId],n),this.readWriteFeeEscrow=new sa(Et[this.chainId],n),this.readWriteReferralEscrow=new ya(Ot[this.chainId],n),this.readWriteFlaunchZap=new Wn(this.chainId,Kt[this.chainId],n),this.readWriteTreasuryManagerFactory=new ha(this.chainId,Zt[this.chainId],n),this.readWritePermit2=new ea(en[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteTreasuryManagerFactory.deployRevenueManager(e),a=n.createPublicClient({chain:Ea[this.chainId],transport:n.http()}),i=await a.waitForTransactionReceipt({hash:t}),r=(await a.getContractEvents({address:this.readWriteTreasuryManagerFactory.contract.address,abi:ba,eventName:"ManagerDeployed",fromBlock:i.blockNumber,toBlock:i.blockNumber})).find((e=>e.transactionHash===t));if(!r)throw new Error("ManagerDeployed event not found in transaction logs");return r.args._manager}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}flaunchWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchWithRevenueManager(e)}async flaunchIPFSWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchIPFSWithRevenueManager(e)}flaunchWithSplitManager(e){return this.readWriteFlaunchZap.flaunchWithSplitManager(e)}flaunchIPFSWithSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithSplitManager(e)}anyFlaunch(e){return this.readWriteAnyPositionManager.flaunch(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new Zn(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){const a=t||await this.getCoinVersion(e.coinAddress),i=await this.drift.getSignerAddress();let r,s,p,o;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(r=e.amountIn,s=void 0===e.amountOutMin?gn(await this.readQuoter.getBuyQuoteExactInput(e.coinAddress,r,this.getPositionManagerAddress(a)),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountOutMin):(p=e.amountOut,o=void 0===e.amountInMax?gn(await this.readQuoter.getBuyQuoteExactOutput(e.coinAddress,p,this.getPositionManagerAddress(a)),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountInMax);const{commands:y,inputs:u}=(e=>{const t=Bt[e.chainId],a=Lt[e.chainId],i=e.positionManagerAddress,r="0x"+("EXACT_IN"===e.swapType?cn:mn)+Tn+bn;let s,p;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");s=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(ln,[{currencyIn:In,path:s,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");s=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:In},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(dn,[{currencyOut:e.memecoin,path:s,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[In,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[p,o,y]]),l="0x"+fn+hn,d=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[In,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:un,functionName:"execute",args:[l,d]}),commands:l,inputs:d}})({sender:i,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer??null,swapType:e.swapType,amountIn:r,amountOutMin:s,amountOut:p,amountInMax:o,positionManagerAddress:this.getPositionManagerAddress(a)});return this.drift.adapter.write({abi:un,address:jt[this.chainId],fn:"execute",args:{commands:y,inputs:u},value:"EXACT_IN"===e.swapType?r:o})}async sellCoin(e,t){const a=t||await this.getCoinVersion(e.coinAddress);let i;await this.readQuoter.contract.cache.clear(),i=void 0===e.ethOutMin?gn(await this.readQuoter.getSellQuoteExactInput(e.coinAddress,e.amountIn,this.getPositionManagerAddress(a)),(e.slippagePercent/100).toFixed(18).toString(),"EXACT_IN"):e.ethOutMin,await this.readPermit2.contract.cache.clear();const{commands:r,inputs:s}=(e=>{const t=Bt[e.chainId],a=Lt[e.chainId],i=e.positionManagerAddress,r="0x"+cn+Tn+bn,s=n.encodeAbiParameters(ln,[{currencyIn:e.memecoin,path:[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:In,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],amountIn:e.amountIn,amountOutMinimum:e.ethOutMin}]),p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[In,e.ethOutMin]),y=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,o]]);if(e.signature&&e.permitSingle){const t="0x"+wn+fn,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),y];return{calldata:n.encodeFunctionData({abi:un,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+fn,t=[y];return{calldata:n.encodeFunctionData({abi:un,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}})({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,ethOutMin:i,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer??null,positionManagerAddress:this.getPositionManagerAddress(a)});return this.drift.write({abi:un,address:jt[this.chainId],fn:"execute",args:{commands:r,inputs:s}})}async getPermit2TypedData(e,t){const{nonce:a}=await this.getPermit2AllowanceAndNonce(e),i=BigInt(Math.floor(Date.now()/1e3)+31536e4);return(({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:en[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:jt[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:vn,message:s},permitSingle:s}})({chainId:this.chainId,coinAddress:e,nonce:a,deadline:void 0!==t?t:i})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,jt[this.chainId]);return{allowance:t,nonce:n}}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 xa(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new xa(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new xa(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}}function La(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:r.viemAdapter({publicClient:n,walletClient:a})}):t.createDrift({adapter:r.viemAdapter({publicClient:n})})}const Ua={ReadFlaunchSDK:Oa,ReadWriteFlaunchSDK:Ba};e.AddressFeeSplitManagerAddress=Xt,e.AnyBidWallAddress=Gt,e.AnyFlaunchAddress=zt,e.AnyPositionManagerAbi=ta,e.AnyPositionManagerAddress=Dt,e.BidWallAddress=qt,e.BidWallV1_1Abi=ua,e.BidWallV1_1Address=Vt,e.BidwallAbi=Ln,e.FLETHAddress=Bt,e.FLETHHooksAddress=Lt,e.FairLaunchAbi=On,e.FairLaunchAddress=Ut,e.FairLaunchV1_1Abi=da,e.FairLaunchV1_1Address=Rt,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=Wt,e.FeeEscrowAbi=ia,e.FeeEscrowAddress=Et,e.FlaunchAbi=Kn,e.FlaunchAddress=Ht,e.FlaunchPositionManagerAbi=nn,e.FlaunchPositionManagerAddress=Ct,e.FlaunchPositionManagerV1_1Abi=zn,e.FlaunchPositionManagerV1_1Address=St,e.FlaunchSDK=Ua,e.FlaunchV1_1Abi=ma,e.FlaunchV1_1Address=Nt,e.FlaunchZapAbi=Nn,e.FlaunchZapAddress=Kt,e.InitialPriceAbi=kn,e.MemecoinAbi=Xn,e.MulticallAbi=ga,e.Permit2Abi=Yn,e.Permit2Address=en,e.PoolManagerAbi=Cn,e.PoolManagerAddress=Qt,e.QuoterAbi=Qn,e.QuoterAddress=Yt,e.ReadFlaunchSDK=Oa,e.ReadWriteFlaunchSDK=Ba,e.ReferralEscrowAbi=pa,e.ReferralEscrowAddress=Ot,e.RevenueManagerAbi=wa,e.RevenueManagerAddress=$t,e.StateViewAbi=Dn,e.StateViewAddress=Jt,e.TICK_SPACING=60,e.TickFinder=Ma,e.TreasuryManagerFactoryAbi=ba,e.TreasuryManagerFactoryAddress=Zt,e.USDCETHPoolKeys=tn,e.UniversalRouterAbi=un,e.UniversalRouterAddress=jt,e.bytes32ToUint256=Fn,e.calculateUnderlyingTokenBalances=Da,e.chainIdToChain=Ea,e.createDrift=La,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 Ba(a,La({publicClient:t,walletClient:n})):new Oa(a,La({publicClient:t}))},e.generateTokenUri=yn,e.getPoolId=Pa,e.getSqrtPriceX96FromTick=Sa,e.getValidTick=Fa,e.orderPoolKey=_a,e.parseSwapData=xn,e.resolveIPFS=sn,e.uint256ToBytes32=An,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 p.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(p.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToIPFS=on,e.uploadJsonToIPFS=pn,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=index.umd.js.map