{
  "LaunchFactory": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "initialOwner",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "poolManager_",
          "type": "address",
          "internalType": "contract IPoolManager"
        },
        {
          "name": "positionManager_",
          "type": "address",
          "internalType": "contract IPositionManager"
        },
        {
          "name": "permit2_",
          "type": "address",
          "internalType": "contract IAllowanceTransfer"
        },
        {
          "name": "locker_",
          "type": "address",
          "internalType": "contract SizeLaunchLocker"
        },
        {
          "name": "memeHook_",
          "type": "address",
          "internalType": "contract SizeMemeHook"
        },
        {
          "name": "feeEscrow_",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        },
        {
          "name": "buybackVault_",
          "type": "address",
          "internalType": "contract SizeBuybackVault"
        },
        {
          "name": "initialLaunchFee",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "receive",
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "CREATOR_FEE_RECIPIENT_EXECUTION_WINDOW",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "CREATOR_FEE_RECIPIENT_TIMELOCK",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "GRADUATION_RESCUE_DELAY",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "addLaunchConfig",
      "inputs": [
        {
          "name": "config",
          "type": "tuple",
          "internalType": "struct SizeLaunchFactory.LaunchConfig",
          "components": [
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "curveFeeBps",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "phantomQuote",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "poolFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "approvedPairTokens",
      "inputs": [
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "approved",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "buybackVault",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeBuybackVault"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "canLaunch",
      "inputs": [
        {
          "name": "launcher",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "cancelCreatorFeeRecipientChange",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "createGraduatedPool",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "positionId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "executeCreatorFeeRecipientChange",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "feeEscrow",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "forceSweptGraduation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "getLaunchConfig",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct SizeLaunchFactory.LaunchConfig",
          "components": [
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "curveFeeBps",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "phantomQuote",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "poolFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getLaunchFeePolicy",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct FeePolicySnapshot",
          "components": [
            {
              "name": "protocolFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "protocolFeeShareBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackBurnBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "hookFeeBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "maxInternalPriceImpactBps",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getLaunchedToken",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct ISizeLaunchFactory.LaunchedToken",
          "components": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "curve",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "deployer",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creatorFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "pairToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "poolFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "creatorTaxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackEnabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "phase",
              "type": "uint8",
              "internalType": "enum GraduationPhase"
            },
            {
              "name": "sweptQuote",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "sweptTokens",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "sweptAt",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "exists",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "graduate",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "graduationExecutor",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeGraduationExecutor"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "graduationGuard",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeGraduationGuard"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchConfigCount",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchDeployer",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeLaunchDeployer"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchEnabled",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchFee",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchForwarder",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchToken",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SizeLaunchFactory.TokenParams",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeLauncherToken.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            },
            {
              "name": "creatorFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creatorTaxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackEnabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "expectedEconomics",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "snipeTaxExemptions",
          "type": "address[]",
          "internalType": "address[]"
        }
      ],
      "outputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "launchToken",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SizeLaunchFactory.TokenParams",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeLauncherToken.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            },
            {
              "name": "creatorFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creatorTaxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackEnabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "expectedEconomics",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "launchTokenFor",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SizeLaunchFactory.TokenParams",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeLauncherToken.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            },
            {
              "name": "creatorFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creatorTaxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackEnabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "expectedEconomics",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "originalDeployer",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "snipeTaxExemptions",
          "type": "address[]",
          "internalType": "address[]"
        }
      ],
      "outputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "locker",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeLaunchLocker"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "maxCreatorTaxBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "memeHook",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeMemeHook"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pairTokenEconomics",
      "inputs": [
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "phantomQuote",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "graduationThreshold",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "decimals",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingCreatorFeeRecipient",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "newRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "effectiveAt",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "expiresAt",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "permit2",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IAllowanceTransfer"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "poolManager",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IPoolManager"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "positionManager",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IPositionManager"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "previewLaunchEconomics",
      "inputs": [
        {
          "name": "launchConfigId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "renounceOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "rescueCurveFees",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "rescueSweptGraduation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setBuybackEnabled",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setCreatorFeeRecipient",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setGraduationExecutor",
      "inputs": [
        {
          "name": "executor",
          "type": "address",
          "internalType": "contract SizeGraduationExecutor"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setLaunchDeployer",
      "inputs": [
        {
          "name": "deployer",
          "type": "address",
          "internalType": "contract SizeLaunchDeployer"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setLaunchEnabled",
      "inputs": [
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setLaunchFee",
      "inputs": [
        {
          "name": "newLaunchFee",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setLaunchForwarder",
      "inputs": [
        {
          "name": "forwarder",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setMaxCreatorTaxBps",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setPairTokenApproved",
      "inputs": [
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "approved",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setPairTokenEconomics",
      "inputs": [
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "phantomQuote",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "graduationThreshold",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "expectedDecimals",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setSnipeTaxSeconds",
      "inputs": [
        {
          "name": "secondsWindow",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setSnipeTaxStartBps",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setWhitelistedLauncher",
      "inputs": [
        {
          "name": "launcher",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "snipeTaxSeconds",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "snipeTaxStartBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "transferCreatorFeeRecipient",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "newOwner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "updateLaunchConfig",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "config",
          "type": "tuple",
          "internalType": "struct SizeLaunchFactory.LaunchConfig",
          "components": [
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "curveFeeBps",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "phantomQuote",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "poolFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "whitelistedLaunchers",
      "inputs": [
        {
          "name": "launcher",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "BuybackEnabledUpdated",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        },
        {
          "name": "controller",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CreatorFeeRecipientChangeCancelled",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "proposedRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CreatorFeeRecipientChangeProposed",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "currentRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "proposedRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "effectiveAt",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "expiresAt",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CreatorFeeRecipientUpdated",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "previousRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "GraduationExecutorSet",
      "inputs": [
        {
          "name": "executor",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "GraduationTokensPermanentlyLocked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchConfigAdded",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchConfigUpdated",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchDeployerSet",
      "inputs": [
        {
          "name": "deployer",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchEnabledUpdated",
      "inputs": [
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchFeeUpdated",
      "inputs": [
        {
          "name": "launchFee",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchForceSwept",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchForwarderSet",
      "inputs": [
        {
          "name": "forwarder",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchGraduationRescued",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "quoteAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokenAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchSwept",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "quoteOut",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokenOut",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "MaxCreatorTaxUpdated",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferStarted",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PairTokenApprovalUpdated",
      "inputs": [
        {
          "name": "pairToken",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "approved",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PairTokenEconomicsUpdated",
      "inputs": [
        {
          "name": "pairToken",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "phantomQuote",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "graduationThreshold",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "decimals",
          "type": "uint8",
          "indexed": false,
          "internalType": "uint8"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PoolGraduated",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "positionId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokenAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "pairTokenAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "SnipeTaxSecondsUpdated",
      "inputs": [
        {
          "name": "secondsWindow",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "SnipeTaxStartBpsUpdated",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "TokenLaunched",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "deployer",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "pairToken",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "graduationThreshold",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "WhitelistedLauncherUpdated",
      "inputs": [
        {
          "name": "launcher",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AlreadySet",
      "inputs": []
    },
    {
      "type": "error",
      "name": "CombinedFeeTooHigh",
      "inputs": []
    },
    {
      "type": "error",
      "name": "CoreLpFeeMustBeZero",
      "inputs": []
    },
    {
      "type": "error",
      "name": "CreatorTaxTooHigh",
      "inputs": []
    },
    {
      "type": "error",
      "name": "CurveFeeTooHigh",
      "inputs": []
    },
    {
      "type": "error",
      "name": "CurveNotQuotable",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ExemptionListTooLong",
      "inputs": []
    },
    {
      "type": "error",
      "name": "FeeTransferFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "GraduationExecutorNotSet",
      "inputs": []
    },
    {
      "type": "error",
      "name": "GraduationRescueTooEarly",
      "inputs": [
        {
          "name": "availableAt",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "GraduationSeedNotViable",
      "inputs": []
    },
    {
      "type": "error",
      "name": "GraduationStillViable",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InexactTransfer",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "expected",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "received",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "InvalidBasisPoints",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidGraduationThreshold",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidLaunchConfigId",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidPhantomQuote",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidSnipeTaxWindow",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidTickSpacing",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidTokenParams",
      "inputs": []
    },
    {
      "type": "error",
      "name": "LaunchConfigDisabled",
      "inputs": []
    },
    {
      "type": "error",
      "name": "LaunchDependenciesNotWired",
      "inputs": []
    },
    {
      "type": "error",
      "name": "LaunchDeployerNotSet",
      "inputs": []
    },
    {
      "type": "error",
      "name": "LaunchEconomicsMismatch",
      "inputs": [
        {
          "name": "expected",
          "type": "bytes32",
          "internalType": "bytes32"
        },
        {
          "name": "actual",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ]
    },
    {
      "type": "error",
      "name": "LaunchFeeNotPaid",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NoPendingChange",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotBuybackController",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotCreatorFeeRecipient",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotLaunchForwarder",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotReadyToGraduate",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotWhitelisted",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NothingToGraduate",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OwnableInvalidOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnableUnauthorizedAccount",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnershipCannotBeRenounced",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PairTokenDecimalsMismatch",
      "inputs": [
        {
          "name": "expected",
          "type": "uint8",
          "internalType": "uint8"
        },
        {
          "name": "actual",
          "type": "uint8",
          "internalType": "uint8"
        }
      ]
    },
    {
      "type": "error",
      "name": "PairTokenDecimalsUnavailable",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PairTokenEconomicsInvalid",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PairTokenNotApproved",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PairTokenValidationFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "SqrtPriceOutOfBounds",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SupplyTooHigh",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SupplyTooLow",
      "inputs": []
    },
    {
      "type": "error",
      "name": "TimelockExpired",
      "inputs": [
        {
          "name": "expiresAt",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "TimelockNotElapsed",
      "inputs": [
        {
          "name": "effectiveAt",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "TokenNotFound",
      "inputs": []
    },
    {
      "type": "error",
      "name": "UnsupportedPrice",
      "inputs": []
    },
    {
      "type": "error",
      "name": "WrongGraduationPhase",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAmount",
      "inputs": []
    }
  ],
  "LaunchAndBuy": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "factory_",
          "type": "address",
          "internalType": "contract SizeLaunchFactory"
        },
        {
          "name": "owner_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "receive",
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeLaunchFactory"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchAndBuy",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SizeLaunchFactory.TokenParams",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeLauncherToken.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            },
            {
              "name": "creatorFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creatorTaxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackEnabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "expectedEconomics",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "quoteIn",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "minTokensOut",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "snipeTaxExemptions",
          "type": "address[]",
          "internalType": "address[]"
        }
      ],
      "outputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tokensOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "renounceOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "rescue",
      "inputs": [
        {
          "name": "asset",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "newOwner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "Launched",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "launcher",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "quoteSpent",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokensReceived",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferStarted",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Rescued",
      "inputs": [
        {
          "name": "asset",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "NativeValueMismatch",
      "inputs": [
        {
          "name": "sent",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "expected",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "NotApprovedLauncher",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OwnableInvalidOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnableUnauthorizedAccount",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "RefundFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAmount",
      "inputs": []
    }
  ],
  "BondingCurve": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "pairToken_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "deployer_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "feePolicy_",
          "type": "address",
          "internalType": "contract ISizeFeePolicy"
        },
        {
          "name": "policy_",
          "type": "tuple",
          "internalType": "struct FeePolicySnapshot",
          "components": [
            {
              "name": "protocolFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "protocolFeeShareBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackBurnBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "hookFeeBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "maxInternalPriceImpactBps",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        },
        {
          "name": "feeEscrow_",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        },
        {
          "name": "buybackVault_",
          "type": "address",
          "internalType": "contract SizeBuybackVault"
        },
        {
          "name": "phantomQuote_",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "feeBps_",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "creatorTaxBps_",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "buybackEnabled_",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "graduationThreshold_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "buy",
      "inputs": [
        {
          "name": "quoteIn",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "minTokensOut",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "tokensOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "buybackBurnBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint16",
          "internalType": "uint16"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "buybackCreatorRecipient",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "buybackEnabled",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "buybackQuoteBalance",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "buybackVault",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeBuybackVault"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "creatorTaxBalance",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "creatorTaxBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "currentSnipeTaxBps",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "deployer",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "exemptFromSnipeTax",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeEscrow",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feePolicy",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract ISizeFeePolicy"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getReserves",
      "inputs": [],
      "outputs": [
        {
          "name": "quoteReserve_",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "tokenReserve_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "graduate",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "quoteOut",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "tokenOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "graduated",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "graduationThreshold",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "initialize",
      "inputs": [
        {
          "name": "token_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "isNativeQuote",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchSupply",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchedAt",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "maxInternalPriceImpactBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint16",
          "internalType": "uint16"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pairToken",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "phantomQuote",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "protocolFeeRecipient",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "protocolFeeShareBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint16",
          "internalType": "uint16"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "quoteFeeBalance",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "quoteReserve",
      "inputs": [],
      "outputs": [
        {
          "name": "quoteReserve_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "readyToGraduate",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "realQuoteReserve",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "rescueFees",
      "inputs": [],
      "outputs": [
        {
          "name": "protocolAmount",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "creatorAmount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "reservedTokens",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "sell",
      "inputs": [
        {
          "name": "tokensIn",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "minQuoteOut",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "quoteOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sellableTokens",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "setBuybackEnabled",
      "inputs": [
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setCreatorFeeRecipient",
      "inputs": [
        {
          "name": "newRecipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "snipeTaxExempt",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "exempt",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "snipeTaxSeconds",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "snipeTaxStartBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "sweepFees",
      "inputs": [
        {
          "name": "minBuybackTokensOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "token",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "tokenReserve",
      "inputs": [],
      "outputs": [
        {
          "name": "tokenReserve_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "trackedQuote",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "trackedTokens",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "AutoGraduationFailed",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "gasRemaining",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "BuybackEnabledUpdated",
      "inputs": [
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "BuybackLocked",
      "inputs": [
        {
          "name": "quoteSpent",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokensLocked",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CreatorFeeRecipientUpdated",
      "inputs": [
        {
          "name": "previousRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CurveBuy",
      "inputs": [
        {
          "name": "buyer",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "quoteIn",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokensOut",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "fee",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tax",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CurveBuyRefunded",
      "inputs": [
        {
          "name": "buyer",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "refund",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CurveCompleted",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "quoteOut",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokenOut",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CurveSell",
      "inputs": [
        {
          "name": "seller",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "tokensIn",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "quoteOut",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "fee",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tax",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FeesRescued",
      "inputs": [
        {
          "name": "protocolRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "creatorRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "protocolAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "creatorAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FeesSwept",
      "inputs": [
        {
          "name": "protocolAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "buybackAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "creatorAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Initialized",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "SnipeTaxCharged",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "SnipeTaxExempted",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AlreadyGraduated",
      "inputs": []
    },
    {
      "type": "error",
      "name": "AlreadyInitialized",
      "inputs": []
    },
    {
      "type": "error",
      "name": "CurveGraduated",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InsufficientInputAmount",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InsufficientLiquidity",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InsufficientOutputAmount",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InternalSwapRequiresOperator",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidFeePolicy",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidLaunchEconomics",
      "inputs": []
    },
    {
      "type": "error",
      "name": "MinimumOutputRequired",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NativeValueMismatch",
      "inputs": [
        {
          "name": "supplied",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "expected",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "NotFactory",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFeeSweepOperator",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotInitialized",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotReadyToGraduate",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "SlippageExceeded",
      "inputs": [
        {
          "name": "actual",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "minimum",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "TransferFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "UnexpectedNativeValue",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAmount",
      "inputs": []
    }
  ],
  "LauncherToken": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "name_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "symbol_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "logo_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "description_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "socials_",
          "type": "tuple",
          "internalType": "struct SizeLauncherToken.Socials",
          "components": [
            {
              "name": "twitter",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "telegram",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "discord",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "website",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "farcaster",
              "type": "string",
              "internalType": "string"
            }
          ]
        },
        {
          "name": "deployer_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "curve_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "launchFactory_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "supply_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "allowance",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "approve",
      "inputs": [
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "balanceOf",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "burn",
      "inputs": [
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "burnFrom",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "curve",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "decimals",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "deployer",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "description",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getTokenInfo",
      "inputs": [],
      "outputs": [
        {
          "name": "tokenDeployer",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tokenLogo",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "tokenDescription",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "tokenSocials",
          "type": "tuple",
          "internalType": "struct SizeLauncherToken.Socials",
          "components": [
            {
              "name": "twitter",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "telegram",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "discord",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "website",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "farcaster",
              "type": "string",
              "internalType": "string"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchFactory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "logo",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "name",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "socials",
      "inputs": [],
      "outputs": [
        {
          "name": "twitter",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "telegram",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "discord",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "website",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "farcaster",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "symbol",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "totalSupply",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "transfer",
      "inputs": [
        {
          "name": "to",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferFrom",
      "inputs": [
        {
          "name": "from",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "to",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "Approval",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "spender",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Transfer",
      "inputs": [
        {
          "name": "from",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "to",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "ERC20InsufficientAllowance",
      "inputs": [
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "allowance",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "needed",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InsufficientBalance",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "balance",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "needed",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidApprover",
      "inputs": [
        {
          "name": "approver",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidReceiver",
      "inputs": [
        {
          "name": "receiver",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidSender",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidSpender",
      "inputs": [
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "FeeEscrow": [
    {
      "type": "function",
      "name": "balanceOf",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "balanceOfToken",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "claim",
      "inputs": [
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "claim",
      "inputs": [],
      "outputs": [
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "claimToken",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "claimToken",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "credit",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "creditToken",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "Claimed",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ClaimedToken",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Credited",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "depositor",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CreditedToken",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "depositor",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "InsufficientBalance",
      "inputs": [
        {
          "name": "requested",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "available",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "NoBalance",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "TransferFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "MemeHook": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "poolManager_",
          "type": "address",
          "internalType": "contract IPoolManager"
        },
        {
          "name": "feeEscrow_",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        },
        {
          "name": "protocolFeeRecipient_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "initialOwner_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "receive",
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "afterAddLiquidity",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct ModifyLiquidityParams",
          "components": [
            {
              "name": "tickLower",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "tickUpper",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "liquidityDelta",
              "type": "int256",
              "internalType": "int256"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "delta",
          "type": "int256",
          "internalType": "BalanceDelta"
        },
        {
          "name": "feesAccrued",
          "type": "int256",
          "internalType": "BalanceDelta"
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        },
        {
          "name": "",
          "type": "int256",
          "internalType": "BalanceDelta"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "afterDonate",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "amount0",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "amount1",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "afterInitialize",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "sqrtPriceX96",
          "type": "uint160",
          "internalType": "uint160"
        },
        {
          "name": "tick",
          "type": "int24",
          "internalType": "int24"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "afterRemoveLiquidity",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct ModifyLiquidityParams",
          "components": [
            {
              "name": "tickLower",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "tickUpper",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "liquidityDelta",
              "type": "int256",
              "internalType": "int256"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "delta",
          "type": "int256",
          "internalType": "BalanceDelta"
        },
        {
          "name": "feesAccrued",
          "type": "int256",
          "internalType": "BalanceDelta"
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        },
        {
          "name": "",
          "type": "int256",
          "internalType": "BalanceDelta"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "afterSwap",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SwapParams",
          "components": [
            {
              "name": "zeroForOne",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "amountSpecified",
              "type": "int256",
              "internalType": "int256"
            },
            {
              "name": "sqrtPriceLimitX96",
              "type": "uint160",
              "internalType": "uint160"
            }
          ]
        },
        {
          "name": "delta",
          "type": "int256",
          "internalType": "BalanceDelta"
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        },
        {
          "name": "",
          "type": "int128",
          "internalType": "int128"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "beforeAddLiquidity",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct ModifyLiquidityParams",
          "components": [
            {
              "name": "tickLower",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "tickUpper",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "liquidityDelta",
              "type": "int256",
              "internalType": "int256"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "beforeDonate",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "amount0",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "amount1",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "beforeInitialize",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "sqrtPriceX96",
          "type": "uint160",
          "internalType": "uint160"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "beforeRemoveLiquidity",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct ModifyLiquidityParams",
          "components": [
            {
              "name": "tickLower",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "tickUpper",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "liquidityDelta",
              "type": "int256",
              "internalType": "int256"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "beforeSwap",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SwapParams",
          "components": [
            {
              "name": "zeroForOne",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "amountSpecified",
              "type": "int256",
              "internalType": "int256"
            },
            {
              "name": "sqrtPriceLimitX96",
              "type": "uint160",
              "internalType": "uint160"
            }
          ]
        },
        {
          "name": "hookData",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        },
        {
          "name": "",
          "type": "int256",
          "internalType": "BeforeSwapDelta"
        },
        {
          "name": "",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "buybackBurnBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "buybackVault",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeBuybackVault"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "currentFeePolicy",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct FeePolicySnapshot",
          "components": [
            {
              "name": "protocolFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "protocolFeeShareBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackBurnBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "hookFeeBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "maxInternalPriceImpactBps",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeEscrow",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeSweepOperator",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getHookPermissions",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct Hooks.Permissions",
          "components": [
            {
              "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": "bool"
            }
          ]
        }
      ],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "hookFeeBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launches",
      "inputs": [
        {
          "name": "",
          "type": "bytes32",
          "internalType": "PoolId"
        }
      ],
      "outputs": [
        {
          "name": "registered",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "memecoinIsCurrency0",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "memecoin",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "quoteToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "creator",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "buybackCreatorRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "protocolFeeRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "creatorTaxBps",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "protocolFeeShareBps",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "buybackBurnBps",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "hookFeeBps",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "maxInternalPriceImpactBps",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "buybackEnabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "maxInternalPriceImpactBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingBuyback",
      "inputs": [
        {
          "name": "",
          "type": "bytes32",
          "internalType": "PoolId"
        },
        {
          "name": "currency",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingCreatorTax",
      "inputs": [
        {
          "name": "",
          "type": "bytes32",
          "internalType": "PoolId"
        },
        {
          "name": "currency",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingFees",
      "inputs": [
        {
          "name": "",
          "type": "bytes32",
          "internalType": "PoolId"
        },
        {
          "name": "currency",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "poolManager",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IPoolManager"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "protocolFeeRecipient",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "protocolFeeShareBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "registerPool",
      "inputs": [
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "memecoin",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "creator",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "buybackCreatorRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "creatorTaxBps",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "buybackEnabled",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "policy",
          "type": "tuple",
          "internalType": "struct FeePolicySnapshot",
          "components": [
            {
              "name": "protocolFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "protocolFeeShareBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "buybackBurnBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "hookFeeBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "maxInternalPriceImpactBps",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "renounceOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "rescuePoolFees",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "internalType": "PoolId"
        }
      ],
      "outputs": [
        {
          "name": "protocolAmount",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "creatorAmount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setBuybackBurnBps",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setBuybackEnabled",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "internalType": "PoolId"
        },
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setBuybackVault",
      "inputs": [
        {
          "name": "buybackVault_",
          "type": "address",
          "internalType": "contract SizeBuybackVault"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setCreatorFeeRecipient",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "internalType": "PoolId"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setFactory",
      "inputs": [
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setFeeSweepOperator",
      "inputs": [
        {
          "name": "operator",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setHookFeeBps",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setMaxInternalPriceImpactBps",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setProtocolFeeRecipient",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setProtocolFeeShareBps",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "sweepPoolFees",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "internalType": "PoolId"
        },
        {
          "name": "minConversionQuoteOut",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "minBuybackTokensOut",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "newOwner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "unlockCallback",
      "inputs": [
        {
          "name": "data",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "BuybackBurnBpsUpdated",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "BuybackEnabledUpdated",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "BuybackVaultSet",
      "inputs": [
        {
          "name": "vault",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "CreatorFeeRecipientUpdated",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "previousRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FactorySet",
      "inputs": [
        {
          "name": "factory",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FeeSweepOperatorUpdated",
      "inputs": [
        {
          "name": "operator",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "HookFeeBpsUpdated",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "HookFeeCollected",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "currency",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "feeAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "taxAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "MaxInternalPriceImpactUpdated",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferStarted",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PoolBuybackSkipped",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "foldedBackQuote",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PoolConversionSkipped",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "retainedMemecoin",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PoolFeesRescued",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "quoteToken",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "protocolAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "creatorAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PoolFeesSwept",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "protocolAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "buybackAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "creatorAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "tokensLocked",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PoolRegistered",
      "inputs": [
        {
          "name": "poolId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "PoolId"
        },
        {
          "name": "memecoin",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "quoteToken",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "creator",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ProtocolFeeRecipientUpdated",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ProtocolFeeShareUpdated",
      "inputs": [
        {
          "name": "bps",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AlreadyRegistered",
      "inputs": []
    },
    {
      "type": "error",
      "name": "AlreadySet",
      "inputs": []
    },
    {
      "type": "error",
      "name": "HookNotImplemented",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InexactQuoteTransfer",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "expected",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "received",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "InternalSwapRequiresOperator",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidBps",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidPoolKey",
      "inputs": []
    },
    {
      "type": "error",
      "name": "MinimumOutputRequired",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFactory",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFeeSweepOperator",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotPoolManager",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NothingToRescue",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OwnableInvalidOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnableUnauthorizedAccount",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnershipCannotBeRenounced",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeCastOverflowedIntToUint",
      "inputs": [
        {
          "name": "value",
          "type": "int256",
          "internalType": "int256"
        }
      ]
    },
    {
      "type": "error",
      "name": "SafeCastOverflowedUintToInt",
      "inputs": [
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "SlippageExceeded",
      "inputs": [
        {
          "name": "actual",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "minimum",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "UnknownPool",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "LaunchLocker": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "initialOwner",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "positionManager_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "isLocked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "lockPosition",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tokenId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "lockTokenSupply",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "lockedPositions",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "tokenId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "lockedTokenSupply",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "onERC721Received",
      "inputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "positionManager",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "renounceOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "setFactory",
      "inputs": [
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "newOwner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "FactorySet",
      "inputs": [
        {
          "name": "factory",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferStarted",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PositionLocked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "tokenId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "TokenSupplyLocked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AlreadyInitialized",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFactory",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotPositionManager",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OwnableInvalidOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnableUnauthorizedAccount",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnershipCannotBeRenounced",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PositionAlreadyLocked",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PositionNotHeld",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "BuybackVault": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "initialOwner",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "feePolicy_",
          "type": "address",
          "internalType": "contract ISizeFeePolicy"
        },
        {
          "name": "feeEscrow_",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "VESTING_DURATION",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeEscrow",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feePolicy",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract ISizeFeePolicy"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "lock",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "creatorRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "protocolRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "protocolFeeShareBps",
          "type": "uint16",
          "internalType": "uint16"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "releasable",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "release",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "released",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "renounceOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "setFactory",
      "inputs": [
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "totalLocked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "totalReleased",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "newOwner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "updateCreatorRecipient",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "vestedAmount",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "vestingStart",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "vestingTerms",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "creatorRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "protocolRecipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "protocolFeeShareBps",
          "type": "uint16",
          "internalType": "uint16"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "CreatorRecipientUpdated",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "previousRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FactorySet",
      "inputs": [
        {
          "name": "factory",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Locked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "depositor",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "newVestingStart",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferStarted",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Released",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "creatorAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "protocolAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "VestingTermsSnapshotted",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "creatorRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "protocolRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "protocolFeeShareBps",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AlreadyInitialized",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidVestingTerms",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotAuthorizedLocker",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFactory",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotVestBeneficiary",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OwnableInvalidOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnableUnauthorizedAccount",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnershipCannotBeRenounced",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "VestingTermsMismatch",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "GraduationExecutor": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "positionManager_",
          "type": "address",
          "internalType": "contract IPositionManager"
        },
        {
          "name": "permit2_",
          "type": "address",
          "internalType": "contract IAllowanceTransfer"
        },
        {
          "name": "locker_",
          "type": "address",
          "internalType": "contract SizeLaunchLocker"
        },
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "receive",
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "locker",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract SizeLaunchLocker"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "mintFullRangePosition",
      "inputs": [
        {
          "name": "launchToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "key",
          "type": "tuple",
          "internalType": "struct PoolKey",
          "components": [
            {
              "name": "currency0",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "currency1",
              "type": "address",
              "internalType": "Currency"
            },
            {
              "name": "fee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "hooks",
              "type": "address",
              "internalType": "contract IHooks"
            }
          ]
        },
        {
          "name": "tickLower",
          "type": "int24",
          "internalType": "int24"
        },
        {
          "name": "tickUpper",
          "type": "int24",
          "internalType": "int24"
        },
        {
          "name": "sqrtPriceX96",
          "type": "uint160",
          "internalType": "uint160"
        },
        {
          "name": "amount0Max",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "amount1Max",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "currency0",
          "type": "address",
          "internalType": "Currency"
        },
        {
          "name": "currency1",
          "type": "address",
          "internalType": "Currency"
        },
        {
          "name": "protocolFeeRecipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "permit2",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IAllowanceTransfer"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "positionManager",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract IPositionManager"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "GraduationDustRetained",
      "inputs": [
        {
          "name": "launchToken",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "currency",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "GraduationDustSwept",
      "inputs": [
        {
          "name": "launchToken",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "currency",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "FeeTransferFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "MintAmountOverflow",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFactory",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "SlippageExceeded",
      "inputs": [
        {
          "name": "actual",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "minimum",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "LaunchDeployer": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "deployLaunch",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct LaunchDeployment",
          "components": [
            {
              "name": "pairToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creatorFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "originalDeployer",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "feePolicy",
              "type": "address",
              "internalType": "contract ISizeFeePolicy"
            },
            {
              "name": "policy",
              "type": "tuple",
              "internalType": "struct FeePolicySnapshot",
              "components": [
                {
                  "name": "protocolFeeRecipient",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "protocolFeeShareBps",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "buybackBurnBps",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "hookFeeBps",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "maxInternalPriceImpactBps",
                  "type": "uint16",
                  "internalType": "uint16"
                }
              ]
            },
            {
              "name": "feeEscrow",
              "type": "address",
              "internalType": "contract ISizeFeeEscrow"
            },
            {
              "name": "buybackVault",
              "type": "address",
              "internalType": "contract SizeBuybackVault"
            },
            {
              "name": "phantomQuote",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "curveFeeBps",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "creatorTaxBps",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "buybackEnabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeLauncherToken.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "predictLaunchAddresses",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct LaunchDeployment",
          "components": [
            {
              "name": "pairToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creatorFeeRecipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "originalDeployer",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "feePolicy",
              "type": "address",
              "internalType": "contract ISizeFeePolicy"
            },
            {
              "name": "policy",
              "type": "tuple",
              "internalType": "struct FeePolicySnapshot",
              "components": [
                {
                  "name": "protocolFeeRecipient",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "protocolFeeShareBps",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "buybackBurnBps",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "hookFeeBps",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "maxInternalPriceImpactBps",
                  "type": "uint16",
                  "internalType": "uint16"
                }
              ]
            },
            {
              "name": "feeEscrow",
              "type": "address",
              "internalType": "contract ISizeFeeEscrow"
            },
            {
              "name": "buybackVault",
              "type": "address",
              "internalType": "contract SizeBuybackVault"
            },
            {
              "name": "phantomQuote",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "curveFeeBps",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "creatorTaxBps",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "buybackEnabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "salt",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeLauncherToken.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "curve",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "error",
      "name": "Create2EmptyBytecode",
      "inputs": []
    },
    {
      "type": "error",
      "name": "FailedDeployment",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InsufficientBalance",
      "inputs": [
        {
          "name": "balance",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "needed",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "MetadataTooLong",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFactory",
      "inputs": []
    }
  ],
  "GraduationGuard": [
    {
      "type": "function",
      "name": "assertSeedable",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "pairToken",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tickSpacing",
          "type": "int24",
          "internalType": "int24"
        },
        {
          "name": "quoteAmount",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "tokenAmount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "assertSeedableEitherOrdering",
      "inputs": [
        {
          "name": "tickSpacing",
          "type": "int24",
          "internalType": "int24"
        },
        {
          "name": "quoteAmount",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "tokenAmount",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "pure"
    },
    {
      "type": "error",
      "name": "GraduationSeedNotViable",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SqrtPriceOutOfBounds",
      "inputs": []
    },
    {
      "type": "error",
      "name": "UnsupportedPrice",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAmount",
      "inputs": []
    }
  ],
  "V3LaunchFactory": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "initialOwner",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "locker_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "wrappedNative_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "initialLaunchFee",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "addDexConfig",
      "inputs": [
        {
          "name": "config",
          "type": "tuple",
          "internalType": "struct SizeV3LaunchFactory.DexConfig",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "factory",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "positionManager",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "swapRouter",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "poolFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "addLaunchConfig",
      "inputs": [
        {
          "name": "config",
          "type": "tuple",
          "internalType": "struct SizeV3LaunchFactory.LaunchConfig",
          "components": [
            {
              "name": "pairToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "initialTick",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "maxWalletBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "maxTxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "restrictionBlocks",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "reservedFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "routerRequiresDeadline",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "dexConfigCount",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getDexConfig",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct SizeV3LaunchFactory.DexConfig",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "factory",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "positionManager",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "swapRouter",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "poolFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "tickSpacing",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getLaunchConfig",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct SizeV3LaunchFactory.LaunchConfig",
          "components": [
            {
              "name": "pairToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "initialTick",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "maxWalletBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "maxTxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "restrictionBlocks",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "reservedFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "routerRequiresDeadline",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getLaunchedToken",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct ISizeV3LaunchFactory.LaunchedToken",
          "components": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "deployer",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "pairedToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "positionManager",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "positionId",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "dexId",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "launchConfigId",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "restrictionsEndBlock",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "isToken0",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "poolFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "exists",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "initialBuyAmount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "graduationStatus",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "pairedPrincipal",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "threshold",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "graduated",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchConfigCount",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchEnabled",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchFee",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchToken",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SizeV3LaunchFactory.TokenParams",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeV3LaunchFactory.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            },
            {
              "name": "feeWallet",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "dexId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "salt",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "outputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "locker",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "predictTokenAddress",
      "inputs": [
        {
          "name": "params",
          "type": "tuple",
          "internalType": "struct SizeV3LaunchFactory.TokenParams",
          "components": [
            {
              "name": "name",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "logo",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "description",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "socials",
              "type": "tuple",
              "internalType": "struct SizeV3LaunchFactory.Socials",
              "components": [
                {
                  "name": "twitter",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "telegram",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "discord",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "website",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "farcaster",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            },
            {
              "name": "feeWallet",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "dexId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "salt",
          "type": "bytes32",
          "internalType": "bytes32"
        },
        {
          "name": "tokenDeployer",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "renounceOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setDexStatus",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setLaunchEnabled",
      "inputs": [
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setLaunchFee",
      "inputs": [
        {
          "name": "newLaunchFee",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setWhitelistedLauncher",
      "inputs": [
        {
          "name": "launcher",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "newOwner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "updateLaunchConfig",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "config",
          "type": "tuple",
          "internalType": "struct SizeV3LaunchFactory.LaunchConfig",
          "components": [
            {
              "name": "pairToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "graduationThreshold",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "initialTick",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "supply",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "maxWalletBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "maxTxBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "restrictionBlocks",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "reservedFee",
              "type": "uint24",
              "internalType": "uint24"
            },
            {
              "name": "enabled",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "routerRequiresDeadline",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "whitelistedLaunchers",
      "inputs": [
        {
          "name": "launcher",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "enabled",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "wrappedNative",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "DexConfigAdded",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "name",
          "type": "string",
          "indexed": false,
          "internalType": "string"
        },
        {
          "name": "factory",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "positionManager",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "swapRouter",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "poolFee",
          "type": "uint24",
          "indexed": false,
          "internalType": "uint24"
        },
        {
          "name": "tickSpacing",
          "type": "int24",
          "indexed": false,
          "internalType": "int24"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "DexStatusUpdated",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchConfigAdded",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "pairToken",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "initialTick",
          "type": "int24",
          "indexed": false,
          "internalType": "int24"
        },
        {
          "name": "supply",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchConfigUpdated",
      "inputs": [
        {
          "name": "id",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "pairToken",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "initialTick",
          "type": "int24",
          "indexed": false,
          "internalType": "int24"
        },
        {
          "name": "supply",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchEnabledUpdated",
      "inputs": [
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "LaunchFeeUpdated",
      "inputs": [
        {
          "name": "launchFee",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferStarted",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "TokenDeployed",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "deployer",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "dexFactory",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "pairToken",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "dexId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "TokenLaunched",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "deployer",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "pool",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "pairToken",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "dexId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "launchConfigId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "positionId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "supply",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "restrictionsEndBlock",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "initialBuyAmount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "WhitelistedLauncherUpdated",
      "inputs": [
        {
          "name": "launcher",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "enabled",
          "type": "bool",
          "indexed": false,
          "internalType": "bool"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "DexDisabled",
      "inputs": []
    },
    {
      "type": "error",
      "name": "FeeTransferFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InitialBuyNotSupported",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidBasisPoints",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidDexConfig",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidDexId",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidInitialTick",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidLaunchConfigId",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidMaxTxBasisPoints",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidTokenParams",
      "inputs": []
    },
    {
      "type": "error",
      "name": "LaunchConfigDisabled",
      "inputs": []
    },
    {
      "type": "error",
      "name": "LaunchFeeNotPaid",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotWhitelisted",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OwnableInvalidOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnableUnauthorizedAccount",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "PoolAlreadyExists",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "RouterNotSet",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "SupplyTooLow",
      "inputs": []
    },
    {
      "type": "error",
      "name": "TokenDeploymentFailed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "TokenNotFound",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "V3LaunchLocker": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "initialOwner",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "positionManager_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "feeEscrow_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "wrappedNative_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "protocolFeeRecipient_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "receive",
      "stateMutability": "payable"
    },
    {
      "type": "function",
      "name": "PROTOCOL_FEE_SHARE_BPS",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "collectFees",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "amount0",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "amount1",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "factory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeEscrow",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "contract ISizeFeeEscrow"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "feeRecipientOf",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "isLocked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "lockPosition",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "lockedPositions",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "tokenId",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "onERC721Received",
      "inputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes4",
          "internalType": "bytes4"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pendingOwner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "positionManager",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "protocolFeeRecipient",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "renounceOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "setFactory",
      "inputs": [
        {
          "name": "factory_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setFeeRecipient",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setFeeRedirect",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "newFeeWallet",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setProtocolFeeRecipient",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "newOwner",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "wrappedNative",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "FactorySet",
      "inputs": [
        {
          "name": "factory",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FeeRecipientUpdated",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "previousRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FeesCollected",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "tokenId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "amount0",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "amount1",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferStarted",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "previousOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "newOwner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "PositionLocked",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "tokenId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "feeRecipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ProtocolFeeRecipientUpdated",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AlreadyInitialized",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFactory",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotFeeRecipient",
      "inputs": []
    },
    {
      "type": "error",
      "name": "NotPositionManager",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OwnableInvalidOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnableUnauthorizedAccount",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "OwnershipCannotBeRenounced",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PositionAlreadyLocked",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PositionNotHeld",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReentrancyGuardReentrantCall",
      "inputs": []
    },
    {
      "type": "error",
      "name": "SafeERC20FailedOperation",
      "inputs": [
        {
          "name": "token",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "TokenNotLocked",
      "inputs": []
    },
    {
      "type": "error",
      "name": "UnexpectedNative",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ],
  "V3LauncherToken": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "name_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "symbol_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "logo_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "description_",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "socials_",
          "type": "tuple",
          "internalType": "struct SizeV3LauncherToken.Socials",
          "components": [
            {
              "name": "twitter",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "telegram",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "discord",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "website",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "farcaster",
              "type": "string",
              "internalType": "string"
            }
          ]
        },
        {
          "name": "deployer_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "dexFactory_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "positionManager_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "pairToken_",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "poolFee_",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "supply_",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "maxWalletBps_",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "maxTxBps_",
          "type": "uint16",
          "internalType": "uint16"
        },
        {
          "name": "restrictionBlocks_",
          "type": "uint32",
          "internalType": "uint32"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "allowance",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "approve",
      "inputs": [
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "balanceOf",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "decimals",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "deployer",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "description",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "dexFactory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getTokenInfo",
      "inputs": [],
      "outputs": [
        {
          "name": "tokenDeployer",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "tokenLogo",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "tokenDescription",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "tokenSocials",
          "type": "tuple",
          "internalType": "struct SizeV3LauncherToken.Socials",
          "components": [
            {
              "name": "twitter",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "telegram",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "discord",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "website",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "farcaster",
              "type": "string",
              "internalType": "string"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchBlock",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "launchFactory",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "liquidityPool",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "logo",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "maxTxBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint16",
          "internalType": "uint16"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "maxTxLimit",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "maxWalletBps",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint16",
          "internalType": "uint16"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "maxWalletLimit",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "name",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "pairToken",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "poolFee",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "positionManager",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "restrictionBlocks",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "restrictionEndBlock",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "setInitialBuyRecipient",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "socials",
      "inputs": [],
      "outputs": [
        {
          "name": "twitter",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "telegram",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "discord",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "website",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "farcaster",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "symbol",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "totalSupply",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "transfer",
      "inputs": [
        {
          "name": "to",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferFrom",
      "inputs": [
        {
          "name": "from",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "to",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "Approval",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "spender",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Transfer",
      "inputs": [
        {
          "name": "from",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "to",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "value",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "ERC20InsufficientAllowance",
      "inputs": [
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "allowance",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "needed",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InsufficientBalance",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "balance",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "needed",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidApprover",
      "inputs": [
        {
          "name": "approver",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidReceiver",
      "inputs": [
        {
          "name": "receiver",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidSender",
      "inputs": [
        {
          "name": "sender",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "ERC20InvalidSpender",
      "inputs": [
        {
          "name": "spender",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "LaunchBlockBuyBlocked",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "MaxTxExceeded",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "attempted",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "limit",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "MaxWalletExceeded",
      "inputs": [
        {
          "name": "account",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "balance",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "limit",
          "type": "uint256",
          "internalType": "uint256"
        }
      ]
    },
    {
      "type": "error",
      "name": "NotLaunchFactory",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ZeroAddress",
      "inputs": []
    }
  ]
}
