{
  "chainId": 99901,
  "deployBlock": 266498,
  "contracts": {
    "PositionManager": {
      "address": "0x3aB88DDc3CF2A012af88B60828edb4553697E5dC",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "params",
              "type": "tuple",
              "internalType": "struct IPositionManager.ConstructorParams",
              "components": [
                {
                  "name": "poolManager",
                  "type": "address",
                  "internalType": "contract IPoolManager"
                },
                {
                  "name": "initialPrice",
                  "type": "address",
                  "internalType": "contract IInitialPrice"
                },
                {
                  "name": "protocolOwner",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "protocolFeeRecipient",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "feeVault",
                  "type": "address",
                  "internalType": "contract IVoltaFeeVault"
                },
                {
                  "name": "actionManager",
                  "type": "address",
                  "internalType": "contract ITreasuryActionManager"
                },
                {
                  "name": "internalSwapPool",
                  "type": "address",
                  "internalType": "contract IInternalSwapPool"
                },
                {
                  "name": "oracle",
                  "type": "address",
                  "internalType": "contract IOracle"
                },
                {
                  "name": "pairedTokenRegistry",
                  "type": "address",
                  "internalType": "contract IPairedTokenRegistry"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "receive",
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "MAX_ANTI_SNIPE_DURATION",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_ANTI_SNIPE_FEE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_REFERRER_SHARE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_SWAP_FEE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MIN_DISTRIBUTE_THRESHOLD",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MIN_SWAP_FEE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "PROTOCOL_SHARE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "actionManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract TreasuryActionManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "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": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "currentSwapFee",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_isBuy",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [
            {
              "name": "fee_",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "feeSplit",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "creator_",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "buyback_",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "holders_",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "protocol_",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "feeVault",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IVoltaFeeVault"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "flaunch",
          "inputs": [
            {
              "name": "_params",
              "type": "tuple",
              "internalType": "struct IPositionManager.FlaunchParams",
              "components": [
                {
                  "name": "name",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "symbol",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "tokenUri",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "premineAmount",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "creator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "swapFee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "creatorSplit",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.CreatorFeeSplit",
                  "components": [
                    {
                      "name": "creator",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "buyback",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "holders",
                      "type": "uint24",
                      "internalType": "uint24"
                    }
                  ]
                },
                {
                  "name": "antiSnipe",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.AntiSnipe",
                  "components": [
                    {
                      "name": "startFee",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "duration",
                      "type": "uint32",
                      "internalType": "uint32"
                    }
                  ]
                },
                {
                  "name": "flaunchAt",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "initialPriceParams",
                  "type": "bytes",
                  "internalType": "bytes"
                },
                {
                  "name": "pairedToken",
                  "type": "address",
                  "internalType": "address"
                }
              ]
            },
            {
              "name": "_maxPremineCost",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "memecoin_",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "flaunch",
          "inputs": [
            {
              "name": "_params",
              "type": "tuple",
              "internalType": "struct IPositionManager.FlaunchParams",
              "components": [
                {
                  "name": "name",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "symbol",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "tokenUri",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "premineAmount",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "creator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "swapFee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "creatorSplit",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.CreatorFeeSplit",
                  "components": [
                    {
                      "name": "creator",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "buyback",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "holders",
                      "type": "uint24",
                      "internalType": "uint24"
                    }
                  ]
                },
                {
                  "name": "antiSnipe",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.AntiSnipe",
                  "components": [
                    {
                      "name": "startFee",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "duration",
                      "type": "uint32",
                      "internalType": "uint32"
                    }
                  ]
                },
                {
                  "name": "flaunchAt",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "initialPriceParams",
                  "type": "bytes",
                  "internalType": "bytes"
                },
                {
                  "name": "pairedToken",
                  "type": "address",
                  "internalType": "address"
                }
              ]
            }
          ],
          "outputs": [
            {
              "name": "memecoin_",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "flaunchContract",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IFlaunch"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "flaunchesAt",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "_flaunchTime",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getFlaunchingFee",
          "inputs": [
            {
              "name": "_initialPriceParams",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getFlaunchingMarketCap",
          "inputs": [
            {
              "name": "_initialPriceParams",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "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": "initialPoolTick",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "_initialTick",
              "type": "int24",
              "internalType": "int24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "initialPrice",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IInitialPrice"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "internalSwapPool",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IInternalSwapPool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "notifier",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract Notifier"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "oracle",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IOracle"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "pairedToken",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "pairedToken_",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "pairedTokenFeeEscrow",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "escrow_",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "pairedTokenRegistry",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPairedTokenRegistry"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolFees",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct FeeDistributor.PoolFees",
              "components": [
                {
                  "name": "swapFee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "antiSnipeStartFee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "antiSnipeDuration",
                  "type": "uint32",
                  "internalType": "uint32"
                },
                {
                  "name": "tradingOpensAt",
                  "type": "uint64",
                  "internalType": "uint64"
                },
                {
                  "name": "creatorSplit",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.CreatorFeeSplit",
                  "components": [
                    {
                      "name": "creator",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "buyback",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "holders",
                      "type": "uint24",
                      "internalType": "uint24"
                    }
                  ]
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolFees",
          "inputs": [
            {
              "name": "_poolKey",
              "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"
                }
              ]
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct IInternalSwapPool.ClaimableFees",
              "components": [
                {
                  "name": "amount0",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "amount1",
                  "type": "uint256",
                  "internalType": "uint256"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolKey",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "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"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPoolManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "referralEscrow",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract ReferralEscrow"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "referrerShare",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "setFlaunch",
          "inputs": [
            {
              "name": "_flaunchContract",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setInitialPrice",
          "inputs": [
            {
              "name": "_initialPrice",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setReferralEscrow",
          "inputs": [
            {
              "name": "_referralEscrow",
              "type": "address",
              "internalType": "address payable"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setReferrerShare",
          "inputs": [
            {
              "name": "_referrerShare",
              "type": "uint24",
              "internalType": "uint24"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "unlockCallback",
          "inputs": [
            {
              "name": "_data",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "AntiSnipeBurned",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "InitialPriceUpdated",
          "inputs": [
            {
              "name": "_initialPrice",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolCreated",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_memecoin",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_memecoinTreasury",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_tokenId",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_currencyFlipped",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            },
            {
              "name": "_flaunchFee",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_params",
              "type": "tuple",
              "indexed": false,
              "internalType": "struct IPositionManager.FlaunchParams",
              "components": [
                {
                  "name": "name",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "symbol",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "tokenUri",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "premineAmount",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "creator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "swapFee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "creatorSplit",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.CreatorFeeSplit",
                  "components": [
                    {
                      "name": "creator",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "buyback",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "holders",
                      "type": "uint24",
                      "internalType": "uint24"
                    }
                  ]
                },
                {
                  "name": "antiSnipe",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.AntiSnipe",
                  "components": [
                    {
                      "name": "startFee",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "duration",
                      "type": "uint32",
                      "internalType": "uint32"
                    }
                  ]
                },
                {
                  "name": "flaunchAt",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "initialPriceParams",
                  "type": "bytes",
                  "internalType": "bytes"
                },
                {
                  "name": "pairedToken",
                  "type": "address",
                  "internalType": "address"
                }
              ]
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolFeesConfigured",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_swapFee",
              "type": "uint24",
              "indexed": false,
              "internalType": "uint24"
            },
            {
              "name": "_creatorSplit",
              "type": "tuple",
              "indexed": false,
              "internalType": "struct IPositionManager.CreatorFeeSplit",
              "components": [
                {
                  "name": "creator",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "buyback",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "holders",
                  "type": "uint24",
                  "internalType": "uint24"
                }
              ]
            },
            {
              "name": "_antiSnipe",
              "type": "tuple",
              "indexed": false,
              "internalType": "struct IPositionManager.AntiSnipe",
              "components": [
                {
                  "name": "startFee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "duration",
                  "type": "uint32",
                  "internalType": "uint32"
                }
              ]
            },
            {
              "name": "_tradingOpensAt",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolFeesDistributed",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_creatorAmount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_buybackAmount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_holdersAmount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_protocolAmount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolPremine",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_recipient",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_tokensReceived",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_ethSpent",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolScheduled",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_flaunchesAt",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolStateUpdated",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_sqrtPriceX96",
              "type": "uint160",
              "indexed": false,
              "internalType": "uint160"
            },
            {
              "name": "_tick",
              "type": "int24",
              "indexed": false,
              "internalType": "int24"
            },
            {
              "name": "_protocolFee",
              "type": "uint24",
              "indexed": false,
              "internalType": "uint24"
            },
            {
              "name": "_swapFee",
              "type": "uint24",
              "indexed": false,
              "internalType": "uint24"
            },
            {
              "name": "_liquidity",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolSwap",
          "inputs": [
            {
              "name": "poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "flAmount0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "flAmount1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "flFee0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "flFee1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispAmount0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispAmount1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispFee0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispFee1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniAmount0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniAmount1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniFee0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniFee1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ReferralEscrowUpdated",
          "inputs": [
            {
              "name": "_referralEscrow",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ReferrerFeePaid",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_recipient",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_token",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ReferrerShareUpdated",
          "inputs": [
            {
              "name": "_referrerShare",
              "type": "uint24",
              "indexed": false,
              "internalType": "uint24"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "AntiSnipeInvalid",
          "inputs": []
        },
        {
          "type": "error",
          "name": "CannotBeInitializedDirectly",
          "inputs": []
        },
        {
          "type": "error",
          "name": "CreatorSplitInvalid",
          "inputs": []
        },
        {
          "type": "error",
          "name": "HookNotImplemented",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InsufficientFlaunchFee",
          "inputs": [
            {
              "name": "_paid",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_required",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "InsufficientPreminePayment",
          "inputs": [
            {
              "name": "_paid",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_required",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "MissingPairedTokenEscrow",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "NativePayerMustBeSelf",
          "inputs": [
            {
              "name": "_payer",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotPoolManager",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PairedTokenIsMemecoin",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PairedTokenNotApproved",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "PremineCostExceedsMaximum",
          "inputs": [
            {
              "name": "_cost",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_maximum",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "PremineExceedsInitialAmount",
          "inputs": [
            {
              "name": "_buyAmount",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_initialSupply",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "ReferralEscrowNotWired",
          "inputs": [
            {
              "name": "_referralEscrow",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "ReferrerFeeInvalid",
          "inputs": []
        },
        {
          "type": "error",
          "name": "SwapFeeInvalid",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TokenNotFlaunched",
          "inputs": [
            {
              "name": "_flaunchesAt",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "UnknownMemecoin",
          "inputs": [
            {
              "name": "_memecoin",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "UnknownPool",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ]
        },
        {
          "type": "error",
          "name": "UnsupportedLaunchTick",
          "inputs": [
            {
              "name": "_initialTick",
              "type": "int24",
              "internalType": "int24"
            }
          ]
        }
      ]
    },
    "Token": {
      "implementation": "0x541Ef1674D3Cc64D0ab1f14381cA5970FD10B554",
      "abi": [
        {
          "type": "constructor",
          "inputs": [],
          "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": "amount",
              "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": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "creator",
          "inputs": [],
          "outputs": [
            {
              "name": "creator_",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "decimals",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint8",
              "internalType": "uint8"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "decreaseAllowance",
          "inputs": [
            {
              "name": "spender",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "subtractedValue",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "flaunch",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract Flaunch"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "increaseAllowance",
          "inputs": [
            {
              "name": "spender",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "addedValue",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "initialize",
          "inputs": [
            {
              "name": "name_",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "symbol_",
              "type": "string",
              "internalType": "string"
            },
            {
              "name": "tokenUri_",
              "type": "string",
              "internalType": "string"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "mint",
          "inputs": [
            {
              "name": "_to",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "name",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "symbol",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "tokenURI",
          "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": "amount",
              "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": "amount",
              "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": "Initialized",
          "inputs": [
            {
              "name": "version",
              "type": "uint8",
              "indexed": false,
              "internalType": "uint8"
            }
          ],
          "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": "AlreadyMinted",
          "inputs": []
        },
        {
          "type": "error",
          "name": "CallerNotFlaunch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "MintAddressIsZero",
          "inputs": []
        }
      ]
    },
    "CreatorNFT": {
      "address": "0xac466Ee5CEdD012eB750DBDA0B935F8B997402c7",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_memecoinImplementation",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_baseURI",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "MAX_SCHEDULE_DURATION",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "approve",
          "inputs": [
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "balanceOf",
          "inputs": [
            {
              "name": "owner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "baseURI",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "burn",
          "inputs": [
            {
              "name": "_tokenId",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "flaunch",
          "inputs": [
            {
              "name": "_params",
              "type": "tuple",
              "internalType": "struct IPositionManager.FlaunchParams",
              "components": [
                {
                  "name": "name",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "symbol",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "tokenUri",
                  "type": "string",
                  "internalType": "string"
                },
                {
                  "name": "premineAmount",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "creator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "swapFee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "creatorSplit",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.CreatorFeeSplit",
                  "components": [
                    {
                      "name": "creator",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "buyback",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "holders",
                      "type": "uint24",
                      "internalType": "uint24"
                    }
                  ]
                },
                {
                  "name": "antiSnipe",
                  "type": "tuple",
                  "internalType": "struct IPositionManager.AntiSnipe",
                  "components": [
                    {
                      "name": "startFee",
                      "type": "uint24",
                      "internalType": "uint24"
                    },
                    {
                      "name": "duration",
                      "type": "uint32",
                      "internalType": "uint32"
                    }
                  ]
                },
                {
                  "name": "flaunchAt",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "initialPriceParams",
                  "type": "bytes",
                  "internalType": "bytes"
                },
                {
                  "name": "pairedToken",
                  "type": "address",
                  "internalType": "address"
                }
              ]
            }
          ],
          "outputs": [
            {
              "name": "memecoin_",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "memecoinTreasury_",
              "type": "address",
              "internalType": "address payable"
            },
            {
              "name": "tokenId_",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "getApproved",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "initialize",
          "inputs": [
            {
              "name": "_positionManager",
              "type": "address",
              "internalType": "contract IPositionManager"
            },
            {
              "name": "_memecoinTreasuryImplementation",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "isApprovedForAll",
          "inputs": [
            {
              "name": "owner",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "operator",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "memecoin",
          "inputs": [
            {
              "name": "_tokenId",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "memecoinImplementation",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "memecoinTreasury",
          "inputs": [
            {
              "name": "_tokenId",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address payable"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "memecoinTreasuryImplementation",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "name",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "nextTokenId",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownerOf",
          "inputs": [
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolId",
          "inputs": [
            {
              "name": "_tokenId",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "positionManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPositionManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "safeTransferFrom",
          "inputs": [
            {
              "name": "from",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "to",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "safeTransferFrom",
          "inputs": [
            {
              "name": "from",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "to",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "data",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "setApprovalForAll",
          "inputs": [
            {
              "name": "operator",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "isApproved",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setBaseURI",
          "inputs": [
            {
              "name": "_baseURI",
              "type": "string",
              "internalType": "string"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setMemecoinImplementation",
          "inputs": [
            {
              "name": "_memecoinImplementation",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setMemecoinTreasuryImplementation",
          "inputs": [
            {
              "name": "_memecoinTreasuryImplementation",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "supportsInterface",
          "inputs": [
            {
              "name": "interfaceId",
              "type": "bytes4",
              "internalType": "bytes4"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "symbol",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "tokenId",
          "inputs": [
            {
              "name": "_memecoin",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_tokenId",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "tokenURI",
          "inputs": [
            {
              "name": "_tokenId",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "transferFrom",
          "inputs": [
            {
              "name": "from",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "to",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "id",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "event",
          "name": "Approval",
          "inputs": [
            {
              "name": "owner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "account",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ApprovalForAll",
          "inputs": [
            {
              "name": "owner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "operator",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "isApproved",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "BaseURIUpdated",
          "inputs": [
            {
              "name": "_newBaseURI",
              "type": "string",
              "indexed": false,
              "internalType": "string"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Initialized",
          "inputs": [
            {
              "name": "version",
              "type": "uint64",
              "indexed": false,
              "internalType": "uint64"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "MemecoinImplementationUpdated",
          "inputs": [
            {
              "name": "_newImplementation",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "MemecoinTreasuryImplementationUpdated",
          "inputs": [
            {
              "name": "_newImplementation",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Transfer",
          "inputs": [
            {
              "name": "from",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "to",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "id",
              "type": "uint256",
              "indexed": true,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AccountBalanceOverflow",
          "inputs": []
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "BalanceQueryForZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "CallerIsNotPositionManager",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InvalidFlaunchSchedule",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InvalidInitialSupply",
          "inputs": [
            {
              "name": "_initialSupply",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "InvalidInitialization",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotInitializing",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotOwnerNorApproved",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TokenAlreadyExists",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TokenDoesNotExist",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TransferFromIncorrectOwner",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TransferToNonERC721ReceiverImplementer",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TransferToZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        }
      ]
    },
    "FeeVault": {
      "address": "0xB074897161E8b00d97d3F4163f73de12f7B8f4Ba",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_owner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "balanceOf",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_bucket",
              "type": "uint8",
              "internalType": "enum IVoltaFeeVault.Bucket"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "deposit",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_buyback",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_holders",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "isKeeper",
          "inputs": [
            {
              "name": "_keeper",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolToken",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "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": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "setKeeper",
          "inputs": [
            {
              "name": "_keeper",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setPositionManager",
          "inputs": [
            {
              "name": "_positionManager",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "withdraw",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_bucket",
              "type": "uint8",
              "internalType": "enum IVoltaFeeVault.Bucket"
            },
            {
              "name": "_to",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "Deposited",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_buyback",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_holders",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "KeeperUpdated",
          "inputs": [
            {
              "name": "_keeper",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_enabled",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PositionManagerSet",
          "inputs": [
            {
              "name": "_positionManager",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Withdrawn",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_bucket",
              "type": "uint8",
              "indexed": true,
              "internalType": "enum IVoltaFeeVault.Bucket"
            },
            {
              "name": "_to",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "CallerNotKeeper",
          "inputs": [
            {
              "name": "_caller",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "CallerNotPositionManager",
          "inputs": [
            {
              "name": "_caller",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "InsufficientBalance",
          "inputs": [
            {
              "name": "_requested",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_available",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "InvalidNativeValue",
          "inputs": [
            {
              "name": "_sent",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_expected",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PositionManagerAlreadySet",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PositionManagerMismatch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Reentrancy",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TokenMismatch",
          "inputs": [
            {
              "name": "_expected",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_received",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "ZeroAddress",
          "inputs": []
        }
      ]
    },
    "FeeExecutor": {
      "address": "0xD68D650DAFb9BA8517DA430f7f0a94e942E89c41",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_poolManager",
              "type": "address",
              "internalType": "contract IPoolManager"
            },
            {
              "name": "_positionManager",
              "type": "address",
              "internalType": "contract PositionManager"
            },
            {
              "name": "_feeVault",
              "type": "address",
              "internalType": "contract IVoltaFeeVault"
            },
            {
              "name": "_owner",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_roundInterval",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "_holderBalanceFloor",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "receive",
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "MAX_HOLDER_BALANCE_FLOOR",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MAX_ROUND_INTERVAL",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "MIN_ROUND_INTERVAL",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "batchWindow",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "buyback",
          "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": "_amountIn",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_minOut",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "burned_",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "distribute",
          "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": "_holders",
              "type": "address[]",
              "internalType": "address[]"
            },
            {
              "name": "_amounts",
              "type": "uint256[]",
              "internalType": "uint256[]"
            }
          ],
          "outputs": [
            {
              "name": "sent_",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "excluded",
          "inputs": [
            {
              "name": "_account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_excluded",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "feeVault",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IVoltaFeeVault"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "held",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "holderBalanceFloor",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "isContract",
          "inputs": [
            {
              "name": "_account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "isOperator",
          "inputs": [
            {
              "name": "_operator",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPoolManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "positionManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract PositionManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "roundInterval",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "rounds",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "openedAt",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "cursor",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "budget",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "paid",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "setExcluded",
          "inputs": [
            {
              "name": "_account",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_excluded",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setHolderBalanceFloor",
          "inputs": [
            {
              "name": "_floor",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setOperator",
          "inputs": [
            {
              "name": "_operator",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_enabled",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setRoundInterval",
          "inputs": [
            {
              "name": "_roundInterval",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "unlockCallback",
          "inputs": [
            {
              "name": "_data",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "BuybackBurned",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_amountIn",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_burned",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Distributed",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_sent",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_recipients",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ExcludedSet",
          "inputs": [
            {
              "name": "_account",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_excluded",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "HolderBalanceFloorSet",
          "inputs": [
            {
              "name": "_floor",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OperatorSet",
          "inputs": [
            {
              "name": "_operator",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_enabled",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "RoundIntervalSet",
          "inputs": [
            {
              "name": "_interval",
              "type": "uint32",
              "indexed": false,
              "internalType": "uint32"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "RoundOpened",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_budget",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "AntiSnipeActive",
          "inputs": [
            {
              "name": "_endsAt",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "CallerNotOperator",
          "inputs": [
            {
              "name": "_caller",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "CallerNotPoolManager",
          "inputs": []
        },
        {
          "type": "error",
          "name": "HolderBalanceFloorInvalid",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InsufficientOutput",
          "inputs": [
            {
              "name": "_out",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_minOut",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "IntervalInvalid",
          "inputs": []
        },
        {
          "type": "error",
          "name": "LengthMismatch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotAContract",
          "inputs": [
            {
              "name": "_account",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "PartialFill",
          "inputs": [
            {
              "name": "_spent",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_amountIn",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "Reentrancy",
          "inputs": []
        },
        {
          "type": "error",
          "name": "RoundOverspent",
          "inputs": [
            {
              "name": "_paid",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_budget",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "TooSoon",
          "inputs": [
            {
              "name": "_readyAt",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "UnsortedHolders",
          "inputs": []
        },
        {
          "type": "error",
          "name": "ZeroAddress",
          "inputs": []
        }
      ]
    },
    "FeeEscrow": {
      "address": "0x3D36Beb546E451584736957F97E7EE9D2aCbD9a5",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_pairedTokenRegistry",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_indexer",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "receive",
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "allocateFees",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_recipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "balances",
          "inputs": [
            {
              "name": "_recipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "indexer",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IIndexerSubscriber"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "pairedTokenRegistry",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPairedTokenRegistry"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "setIndexer",
          "inputs": [
            {
              "name": "_indexer",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "totalFeesAllocated",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_amount",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "withdrawFees",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_recipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_unwrap",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "withdrawFees",
          "inputs": [
            {
              "name": "_tokens",
              "type": "address[]",
              "internalType": "address[]"
            },
            {
              "name": "_recipient",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_unwrap",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "Deposit",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_payee",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_token",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Withdrawal",
          "inputs": [
            {
              "name": "_sender",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_recipient",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_token",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_deliveredAsset",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "IncorrectNativeDeposit",
          "inputs": []
        },
        {
          "type": "error",
          "name": "IndexerZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InsufficientNativeValue",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "RecipientZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "RegistryZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        }
      ]
    },
    "InternalSwapPool": {
      "address": "0x5C1d9b6Dc78CC31A6D08ada1d1c68dA148759c0C",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_poolManager",
              "type": "address",
              "internalType": "contract IPoolManager"
            },
            {
              "name": "_oracle",
              "type": "address",
              "internalType": "contract IOracle"
            },
            {
              "name": "_admin",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "DEFAULT_ADMIN_ROLE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "depositFees",
          "inputs": [
            {
              "name": "_poolKey",
              "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"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "getRoleAdmin",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "grantRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "hasRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "internalSwap",
          "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": "_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": "_nativeIsZero",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [
            {
              "name": "ethIn_",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "tokenOut_",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "oracle",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IOracle"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolFees",
          "inputs": [
            {
              "name": "_poolKey",
              "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"
                }
              ]
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct IInternalSwapPool.ClaimableFees",
              "components": [
                {
                  "name": "amount0",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "amount1",
                  "type": "uint256",
                  "internalType": "uint256"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPoolManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "callerConfirmation",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "resetNativeFees",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "amount0_",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "revokeRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "supportsInterface",
          "inputs": [
            {
              "name": "interfaceId",
              "type": "bytes4",
              "internalType": "bytes4"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "PoolFeesReceived",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_amount0",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_amount1",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolFeesSwapped",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "zeroForOne",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            },
            {
              "name": "_amount0",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "_amount1",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "RoleAdminChanged",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "previousAdminRole",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "newAdminRole",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "RoleGranted",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "sender",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "RoleRevoked",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "sender",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AccessControlBadConfirmation",
          "inputs": []
        },
        {
          "type": "error",
          "name": "AccessControlUnauthorizedAccount",
          "inputs": [
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "neededRole",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        }
      ]
    },
    "PairedTokenRegistry": {
      "address": "0x738c28deA08643A94d1Bd07AbB9304E23085c182",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_protocolOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "approvePairedToken",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_newConfig",
              "type": "tuple",
              "internalType": "struct IPairedTokenRegistry.PairedToken",
              "components": [
                {
                  "name": "approved",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "tokenType",
                  "type": "uint8",
                  "internalType": "enum IPairedTokenRegistry.PairedTokenType"
                },
                {
                  "name": "decimals",
                  "type": "uint8",
                  "internalType": "uint8"
                },
                {
                  "name": "underlying",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "feeEscrow",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "priceCalculator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "minDistribute",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "bidWallThreshold",
                  "type": "uint256",
                  "internalType": "uint256"
                }
              ]
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "isApproved",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "setPriceCalculator",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_priceCalculator",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "tokenConfig",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct IPairedTokenRegistry.PairedToken",
              "components": [
                {
                  "name": "approved",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "tokenType",
                  "type": "uint8",
                  "internalType": "enum IPairedTokenRegistry.PairedTokenType"
                },
                {
                  "name": "decimals",
                  "type": "uint8",
                  "internalType": "uint8"
                },
                {
                  "name": "underlying",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "feeEscrow",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "priceCalculator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "minDistribute",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "bidWallThreshold",
                  "type": "uint256",
                  "internalType": "uint256"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "unapprovePairedToken",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PairedTokenApproved",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_config",
              "type": "tuple",
              "indexed": false,
              "internalType": "struct IPairedTokenRegistry.PairedToken",
              "components": [
                {
                  "name": "approved",
                  "type": "bool",
                  "internalType": "bool"
                },
                {
                  "name": "tokenType",
                  "type": "uint8",
                  "internalType": "enum IPairedTokenRegistry.PairedTokenType"
                },
                {
                  "name": "decimals",
                  "type": "uint8",
                  "internalType": "uint8"
                },
                {
                  "name": "underlying",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "feeEscrow",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "priceCalculator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "minDistribute",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "bidWallThreshold",
                  "type": "uint256",
                  "internalType": "uint256"
                }
              ]
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PairedTokenUnapproved",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PriceCalculatorUpdated",
          "inputs": [
            {
              "name": "_token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_priceCalculator",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "FeeEscrowRegistryMismatch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InvalidPairedTokenConfig",
          "inputs": []
        },
        {
          "type": "error",
          "name": "MissingDistributionThresholds",
          "inputs": []
        },
        {
          "type": "error",
          "name": "MissingPriceCalculator",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PairedTokenDecimalsMismatch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PairedTokenUnderlyingMismatch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PairedTokenZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PriceCalculatorNotLive",
          "inputs": []
        },
        {
          "type": "error",
          "name": "PriceCalculatorTokenMismatch",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        }
      ]
    },
    "VoltaInitialPrice": {
      "address": "0x3810aB3f74Fe02791d46d36b4F60dA2B7C2D4338",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_owner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "flaunchFee",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getFlaunchingFee",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getMarketCap",
          "inputs": [
            {
              "name": "",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getPairedMarketCap",
          "inputs": [
            {
              "name": "_pairedToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getSqrtPriceX96",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_flipped",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "_pairedToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint160",
              "internalType": "uint160"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "marketCap",
          "inputs": [
            {
              "name": "_pairedToken",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_marketCap",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "setFlaunchFee",
          "inputs": [
            {
              "name": "_flaunchFee",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "setMarketCap",
          "inputs": [
            {
              "name": "_pairedToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_marketCap",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "event",
          "name": "FlaunchFeeUpdated",
          "inputs": [
            {
              "name": "_flaunchFee",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "MarketCapUpdated",
          "inputs": [
            {
              "name": "_pairedToken",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_marketCap",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "MarketCapInvalid",
          "inputs": [
            {
              "name": "_marketCap",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "MarketCapNotSet",
          "inputs": [
            {
              "name": "_pairedToken",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        }
      ]
    },
    "Oracle": {
      "address": "0xa2A5eBE297a141160ca5c513c74fD43cB2c09B2e",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_admin",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "DEFAULT_ADMIN_ROLE",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ORACLE_CONSUMER",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "TWAP_WINDOW",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint32",
              "internalType": "uint32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getRoleAdmin",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "grantRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "hasRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "observationState",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct IOracle.ObservationState",
              "components": [
                {
                  "name": "index",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "cardinality",
                  "type": "uint16",
                  "internalType": "uint16"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "recordObservation",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_tick",
              "type": "int24",
              "internalType": "int24"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "renounceRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "callerConfirmation",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "revokeRole",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "supportsInterface",
          "inputs": [
            {
              "name": "interfaceId",
              "type": "bytes4",
              "internalType": "bytes4"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "twapTick",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_currentTick",
              "type": "int24",
              "internalType": "int24"
            }
          ],
          "outputs": [
            {
              "name": "twapTick_",
              "type": "int24",
              "internalType": "int24"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "RoleAdminChanged",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "previousAdminRole",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "newAdminRole",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "RoleGranted",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "sender",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "RoleRevoked",
          "inputs": [
            {
              "name": "role",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "account",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "sender",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AccessControlBadConfirmation",
          "inputs": []
        },
        {
          "type": "error",
          "name": "AccessControlUnauthorizedAccount",
          "inputs": [
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "neededRole",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ]
        }
      ]
    },
    "TreasuryActionManager": {
      "address": "0x8AC7DA6Da1F01749a6bE48eC7c0Da737B041a0e0",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_protocolOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "approveAction",
          "inputs": [
            {
              "name": "_action",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "approvedActions",
          "inputs": [
            {
              "name": "_action",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "_approved",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "unapproveAction",
          "inputs": [
            {
              "name": "_action",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "ActionApproved",
          "inputs": [
            {
              "name": "_action",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "ActionUnapproved",
          "inputs": [
            {
              "name": "_action",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        }
      ]
    },
    "TokenTreasury": {
      "implementation": "0x1651d6eeCf3b599aF6B24E76300EBe2eFCD8C17E",
      "abi": [
        {
          "type": "receive",
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "actionManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract TreasuryActionManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "claimFees",
          "inputs": [],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "executeAction",
          "inputs": [
            {
              "name": "_action",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_data",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "flETH",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "initialize",
          "inputs": [
            {
              "name": "_positionManager",
              "type": "address",
              "internalType": "address payable"
            },
            {
              "name": "_actionManager",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_flETH",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_poolKey",
              "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"
                }
              ]
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "pairedToken",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolKey",
          "inputs": [],
          "outputs": [
            {
              "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"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "positionManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract PositionManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "ActionExecuted",
          "inputs": [
            {
              "name": "_action",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "_poolKey",
              "type": "tuple",
              "indexed": false,
              "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": "_data",
              "type": "bytes",
              "indexed": false,
              "internalType": "bytes"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Initialized",
          "inputs": [
            {
              "name": "version",
              "type": "uint64",
              "indexed": false,
              "internalType": "uint64"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "ActionNotApproved",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InvalidInitialization",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NotInitializing",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Reentrancy",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "UnreturnedNativeValue",
          "inputs": []
        }
      ]
    },
    "Notifier": {
      "address": "0xCd984fCE53C625A4cFc6b99B34cA5f5463611c40",
      "abi": [
        {
          "type": "constructor",
          "inputs": [
            {
              "name": "_protocolOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "MAX_SUBSCRIBERS",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "cancelOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "completeOwnershipHandover",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "notifySubscribers",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "internalType": "PoolId"
            },
            {
              "name": "_key",
              "type": "bytes4",
              "internalType": "bytes4"
            },
            {
              "name": "_data",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "owner",
          "inputs": [],
          "outputs": [
            {
              "name": "result",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "ownershipHandoverExpiresAt",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "result",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "renounceOwnership",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "requestOwnershipHandover",
          "inputs": [],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "subscribe",
          "inputs": [
            {
              "name": "_subscriber",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "_data",
              "type": "bytes",
              "internalType": "bytes"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "function",
          "name": "transferOwnership",
          "inputs": [
            {
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "payable"
        },
        {
          "type": "function",
          "name": "unsubscribe",
          "inputs": [
            {
              "name": "_subscriber",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [],
          "stateMutability": "nonpayable"
        },
        {
          "type": "event",
          "name": "NotifyFailed",
          "inputs": [
            {
              "name": "_subscriber",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            },
            {
              "name": "_reason",
              "type": "bytes",
              "indexed": false,
              "internalType": "bytes"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverCanceled",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipHandoverRequested",
          "inputs": [
            {
              "name": "pendingOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "OwnershipTransferred",
          "inputs": [
            {
              "name": "oldOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "newOwner",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Subscription",
          "inputs": [
            {
              "name": "_subscriber",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Unsubscription",
          "inputs": [
            {
              "name": "_subscriber",
              "type": "address",
              "indexed": false,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "AlreadyInitialized",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NewOwnerIsZeroAddress",
          "inputs": []
        },
        {
          "type": "error",
          "name": "NoHandoverRequest",
          "inputs": []
        },
        {
          "type": "error",
          "name": "SubscriptionReverted",
          "inputs": []
        },
        {
          "type": "error",
          "name": "TooManySubscribers",
          "inputs": []
        },
        {
          "type": "error",
          "name": "Unauthorized",
          "inputs": []
        }
      ]
    },
    "FlaunchLibrary": {
      "address": "0x8482E4099C5936B511A21d6A1899c14f50E21316",
      "abi": [
        {
          "type": "function",
          "name": "launchTickRanges",
          "inputs": [
            {
              "name": "_initialTick",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "_nativeIsZero",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "outputs": [
            {
              "name": "ethTickLower_",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "ethTickUpper_",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "memeTickLower_",
              "type": "int24",
              "internalType": "int24"
            },
            {
              "name": "memeTickUpper_",
              "type": "int24",
              "internalType": "int24"
            }
          ],
          "stateMutability": "pure"
        },
        {
          "type": "event",
          "name": "HookFee",
          "inputs": [
            {
              "name": "id",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "sender",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "feeAmount0",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            },
            {
              "name": "feeAmount1",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "HookSwap",
          "inputs": [
            {
              "name": "id",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "sender",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "amount0",
              "type": "int128",
              "indexed": false,
              "internalType": "int128"
            },
            {
              "name": "amount1",
              "type": "int128",
              "indexed": false,
              "internalType": "int128"
            },
            {
              "name": "hookLPfeeAmount0",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            },
            {
              "name": "hookLPfeeAmount1",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolStateUpdated",
          "inputs": [
            {
              "name": "_poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "_sqrtPriceX96",
              "type": "uint160",
              "indexed": false,
              "internalType": "uint160"
            },
            {
              "name": "_tick",
              "type": "int24",
              "indexed": false,
              "internalType": "int24"
            },
            {
              "name": "_protocolFee",
              "type": "uint24",
              "indexed": false,
              "internalType": "uint24"
            },
            {
              "name": "_swapFee",
              "type": "uint24",
              "indexed": false,
              "internalType": "uint24"
            },
            {
              "name": "_liquidity",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolSwap",
          "inputs": [
            {
              "name": "poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "flAmount0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "flAmount1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "flFee0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "flFee1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispAmount0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispAmount1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispFee0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "ispFee1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniAmount0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniAmount1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniFee0",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            },
            {
              "name": "uniFee1",
              "type": "int256",
              "indexed": false,
              "internalType": "int256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "error",
          "name": "InsufficientNativeValue",
          "inputs": []
        },
        {
          "type": "error",
          "name": "InsufficientPreminePayment",
          "inputs": [
            {
              "name": "_paid",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_required",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "NativePayerMustBeSelf",
          "inputs": [
            {
              "name": "_payer",
              "type": "address",
              "internalType": "address"
            }
          ]
        },
        {
          "type": "error",
          "name": "PremineCostExceedsMaximum",
          "inputs": [
            {
              "name": "_cost",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "_maximum",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        },
        {
          "type": "error",
          "name": "UnsupportedLaunchTick",
          "inputs": [
            {
              "name": "_initialTick",
              "type": "int24",
              "internalType": "int24"
            }
          ]
        }
      ]
    }
  }
}
