[
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "targetSqrtPrice",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "sqrtLowerTickPrice",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "sqrtUpperTickPrice",
                "type": "uint256"
            }
        ],
        "name": "LensTargetPriceOutOfBounds",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "bool",
                "name": "targetIsA",
                "type": "bool"
            },
            {
                "internalType": "uint256",
                "name": "deltaA",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "deltaB",
                "type": "uint256"
            }
        ],
        "name": "LensTargetingTokenWithNoDelta",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "relativeLiquidityAmount",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "deltaA",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "deltaB",
                "type": "uint256"
            }
        ],
        "name": "LensTooLittleLiquidity",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "LiquidityUtilitiesFailedToFindDeltaAmounts",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "initialTargetB",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "deltaLpBalance",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "minimumRequiredLpBalance",
                "type": "uint256"
            }
        ],
        "name": "LiquidityUtilitiesInitialTargetBTooSmall",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "LiquidityUtilitiesNoSwapLiquidity",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "targetSqrtPrice",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "sqrtLowerTickPrice",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "sqrtUpperTickPrice",
                "type": "uint256"
            }
        ],
        "name": "LiquidityUtilitiesTargetPriceOutOfBounds",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "MathOverflowedMulDiv",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint8",
                "name": "bits",
                "type": "uint8"
            },
            {
                "internalType": "uint256",
                "name": "value",
                "type": "uint256"
            }
        ],
        "name": "SafeCastOverflowedUintDowncast",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "int256",
                "name": "tick",
                "type": "int256"
            }
        ],
        "name": "TickMaxExceeded",
        "type": "error"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "contract IMaverickV2Pool",
                        "name": "pool",
                        "type": "address"
                    },
                    {
                        "internalType": "uint8",
                        "name": "kind",
                        "type": "uint8"
                    },
                    {
                        "internalType": "int32[]",
                        "name": "ticks",
                        "type": "int32[]"
                    },
                    {
                        "internalType": "uint128[]",
                        "name": "relativeLiquidityAmounts",
                        "type": "uint128[]"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "slippageFactorD18",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "numberOfPriceBreaksPerSide",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "targetAmount",
                                "type": "uint256"
                            },
                            {
                                "internalType": "bool",
                                "name": "targetIsA",
                                "type": "bool"
                            }
                        ],
                        "internalType": "struct IMaverickV2PoolLens.AddParamsSpecification",
                        "name": "addSpec",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.AddParamsViewInputs",
                "name": "params",
                "type": "tuple"
            }
        ],
        "name": "getAddLiquidityParams",
        "outputs": [
            {
                "internalType": "bytes",
                "name": "packedSqrtPriceBreaks",
                "type": "bytes"
            },
            {
                "internalType": "bytes[]",
                "name": "packedArgs",
                "type": "bytes[]"
            },
            {
                "internalType": "uint88[]",
                "name": "sqrtPriceBreaks",
                "type": "uint88[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint8",
                        "name": "kind",
                        "type": "uint8"
                    },
                    {
                        "internalType": "int32[]",
                        "name": "ticks",
                        "type": "int32[]"
                    },
                    {
                        "internalType": "uint128[]",
                        "name": "amounts",
                        "type": "uint128[]"
                    }
                ],
                "internalType": "struct IMaverickV2Pool.AddLiquidityParams[]",
                "name": "addParams",
                "type": "tuple[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "deltaAOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "deltaBOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "deltaAs",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "deltaBs",
                        "type": "uint256[]"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.TickDeltas[]",
                "name": "tickDeltas",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2BoostedPosition",
                "name": "boostedPosition",
                "type": "address"
            },
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "slippageFactorD18",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "numberOfPriceBreaksPerSide",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "targetAmount",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bool",
                        "name": "targetIsA",
                        "type": "bool"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.AddParamsSpecification",
                "name": "addSpec",
                "type": "tuple"
            }
        ],
        "name": "getAddLiquidityParamsForBoostedPosition",
        "outputs": [
            {
                "internalType": "bytes",
                "name": "packedSqrtPriceBreaks",
                "type": "bytes"
            },
            {
                "internalType": "bytes[]",
                "name": "packedArgs",
                "type": "bytes[]"
            },
            {
                "internalType": "uint88[]",
                "name": "sqrtPriceBreaks",
                "type": "uint88[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint8",
                        "name": "kind",
                        "type": "uint8"
                    },
                    {
                        "internalType": "int32[]",
                        "name": "ticks",
                        "type": "int32[]"
                    },
                    {
                        "internalType": "uint128[]",
                        "name": "amounts",
                        "type": "uint128[]"
                    }
                ],
                "internalType": "struct IMaverickV2Pool.AddLiquidityParams[]",
                "name": "addParams",
                "type": "tuple[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "deltaAOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "deltaBOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "deltaAs",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "deltaBs",
                        "type": "uint256[]"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.TickDeltas[]",
                "name": "tickDeltas",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "contract IMaverickV2Pool",
                        "name": "pool",
                        "type": "address"
                    },
                    {
                        "internalType": "uint32[]",
                        "name": "binIds",
                        "type": "uint32[]"
                    },
                    {
                        "internalType": "uint128[]",
                        "name": "ratios",
                        "type": "uint128[]"
                    },
                    {
                        "internalType": "uint8",
                        "name": "kind",
                        "type": "uint8"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.BoostedPositionSpecification",
                "name": "bpSpec",
                "type": "tuple"
            },
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "slippageFactorD18",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "numberOfPriceBreaksPerSide",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "targetAmount",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bool",
                        "name": "targetIsA",
                        "type": "bool"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.AddParamsSpecification",
                "name": "addSpec",
                "type": "tuple"
            }
        ],
        "name": "getCreateBoostedPositionParams",
        "outputs": [
            {
                "internalType": "bytes",
                "name": "packedSqrtPriceBreaks",
                "type": "bytes"
            },
            {
                "internalType": "bytes[]",
                "name": "packedArgs",
                "type": "bytes[]"
            },
            {
                "internalType": "uint88[]",
                "name": "sqrtPriceBreaks",
                "type": "uint88[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint8",
                        "name": "kind",
                        "type": "uint8"
                    },
                    {
                        "internalType": "int32[]",
                        "name": "ticks",
                        "type": "int32[]"
                    },
                    {
                        "internalType": "uint128[]",
                        "name": "amounts",
                        "type": "uint128[]"
                    }
                ],
                "internalType": "struct IMaverickV2Pool.AddLiquidityParams[]",
                "name": "addParams",
                "type": "tuple[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "deltaAOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "deltaBOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "deltaAs",
                        "type": "uint256[]"
                    },
                    {
                        "internalType": "uint256[]",
                        "name": "deltaBs",
                        "type": "uint256[]"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.TickDeltas[]",
                "name": "tickDeltas",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "components": [
                    {
                        "internalType": "uint64",
                        "name": "feeAIn",
                        "type": "uint64"
                    },
                    {
                        "internalType": "uint64",
                        "name": "feeBIn",
                        "type": "uint64"
                    },
                    {
                        "internalType": "uint16",
                        "name": "tickSpacing",
                        "type": "uint16"
                    },
                    {
                        "internalType": "uint32",
                        "name": "lookback",
                        "type": "uint32"
                    },
                    {
                        "internalType": "contract IERC20",
                        "name": "tokenA",
                        "type": "address"
                    },
                    {
                        "internalType": "contract IERC20",
                        "name": "tokenB",
                        "type": "address"
                    },
                    {
                        "internalType": "int32",
                        "name": "activeTick",
                        "type": "int32"
                    },
                    {
                        "internalType": "uint8",
                        "name": "kinds",
                        "type": "uint8"
                    },
                    {
                        "internalType": "uint256",
                        "name": "initialTargetB",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "sqrtPrice",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint8",
                        "name": "kind",
                        "type": "uint8"
                    },
                    {
                        "internalType": "int32[]",
                        "name": "ticks",
                        "type": "int32[]"
                    },
                    {
                        "internalType": "uint128[]",
                        "name": "relativeLiquidityAmounts",
                        "type": "uint128[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "targetAmount",
                        "type": "uint256"
                    },
                    {
                        "internalType": "bool",
                        "name": "targetIsA",
                        "type": "bool"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.CreateAndAddParamsViewInputs",
                "name": "params",
                "type": "tuple"
            },
            {
                "internalType": "contract IMaverickV2Factory",
                "name": "factory",
                "type": "address"
            }
        ],
        "name": "getCreatePoolAtPriceAndAddLiquidityParams",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "uint64",
                        "name": "feeAIn",
                        "type": "uint64"
                    },
                    {
                        "internalType": "uint64",
                        "name": "feeBIn",
                        "type": "uint64"
                    },
                    {
                        "internalType": "uint16",
                        "name": "tickSpacing",
                        "type": "uint16"
                    },
                    {
                        "internalType": "uint32",
                        "name": "lookback",
                        "type": "uint32"
                    },
                    {
                        "internalType": "contract IERC20",
                        "name": "tokenA",
                        "type": "address"
                    },
                    {
                        "internalType": "contract IERC20",
                        "name": "tokenB",
                        "type": "address"
                    },
                    {
                        "internalType": "int32",
                        "name": "activeTick",
                        "type": "int32"
                    },
                    {
                        "internalType": "uint8",
                        "name": "kinds",
                        "type": "uint8"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint8",
                                "name": "kind",
                                "type": "uint8"
                            },
                            {
                                "internalType": "int32[]",
                                "name": "ticks",
                                "type": "int32[]"
                            },
                            {
                                "internalType": "uint128[]",
                                "name": "amounts",
                                "type": "uint128[]"
                            }
                        ],
                        "internalType": "struct IMaverickV2Pool.AddLiquidityParams",
                        "name": "donateParams",
                        "type": "tuple"
                    },
                    {
                        "internalType": "uint256",
                        "name": "swapAmount",
                        "type": "uint256"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint8",
                                "name": "kind",
                                "type": "uint8"
                            },
                            {
                                "internalType": "int32[]",
                                "name": "ticks",
                                "type": "int32[]"
                            },
                            {
                                "internalType": "uint128[]",
                                "name": "amounts",
                                "type": "uint128[]"
                            }
                        ],
                        "internalType": "struct IMaverickV2Pool.AddLiquidityParams",
                        "name": "addParams",
                        "type": "tuple"
                    },
                    {
                        "internalType": "bytes[]",
                        "name": "packedAddParams",
                        "type": "bytes[]"
                    },
                    {
                        "internalType": "uint256",
                        "name": "deltaAOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "deltaBOut",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "preAddReserveA",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "preAddReserveB",
                        "type": "uint256"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.CreateAndAddParamsInputs",
                "name": "output",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            },
            {
                "internalType": "uint32",
                "name": "binStart",
                "type": "uint32"
            },
            {
                "internalType": "uint32",
                "name": "binEnd",
                "type": "uint32"
            }
        ],
        "name": "getFullPoolState",
        "outputs": [
            {
                "components": [
                    {
                        "components": [
                            {
                                "internalType": "uint128",
                                "name": "reserveA",
                                "type": "uint128"
                            },
                            {
                                "internalType": "uint128",
                                "name": "reserveB",
                                "type": "uint128"
                            },
                            {
                                "internalType": "uint128",
                                "name": "totalSupply",
                                "type": "uint128"
                            },
                            {
                                "internalType": "uint32[4]",
                                "name": "binIdsByTick",
                                "type": "uint32[4]"
                            }
                        ],
                        "internalType": "struct IMaverickV2Pool.TickState[]",
                        "name": "tickStateMapping",
                        "type": "tuple[]"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint128",
                                "name": "mergeBinBalance",
                                "type": "uint128"
                            },
                            {
                                "internalType": "uint128",
                                "name": "tickBalance",
                                "type": "uint128"
                            },
                            {
                                "internalType": "uint128",
                                "name": "totalSupply",
                                "type": "uint128"
                            },
                            {
                                "internalType": "uint8",
                                "name": "kind",
                                "type": "uint8"
                            },
                            {
                                "internalType": "int32",
                                "name": "tick",
                                "type": "int32"
                            },
                            {
                                "internalType": "uint32",
                                "name": "mergeId",
                                "type": "uint32"
                            }
                        ],
                        "internalType": "struct IMaverickV2Pool.BinState[]",
                        "name": "binStateMapping",
                        "type": "tuple[]"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint128[4]",
                                "name": "values",
                                "type": "uint128[4]"
                            }
                        ],
                        "internalType": "struct IMaverickV2PoolLens.BinPositionKinds[]",
                        "name": "binIdByTickKindMapping",
                        "type": "tuple[]"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint128",
                                "name": "reserveA",
                                "type": "uint128"
                            },
                            {
                                "internalType": "uint128",
                                "name": "reserveB",
                                "type": "uint128"
                            },
                            {
                                "internalType": "int64",
                                "name": "lastTwaD8",
                                "type": "int64"
                            },
                            {
                                "internalType": "int64",
                                "name": "lastLogPriceD8",
                                "type": "int64"
                            },
                            {
                                "internalType": "uint40",
                                "name": "lastTimestamp",
                                "type": "uint40"
                            },
                            {
                                "internalType": "int32",
                                "name": "activeTick",
                                "type": "int32"
                            },
                            {
                                "internalType": "bool",
                                "name": "isLocked",
                                "type": "bool"
                            },
                            {
                                "internalType": "uint32",
                                "name": "binCounter",
                                "type": "uint32"
                            },
                            {
                                "internalType": "uint8",
                                "name": "protocolFeeRatioD3",
                                "type": "uint8"
                            }
                        ],
                        "internalType": "struct IMaverickV2Pool.State",
                        "name": "state",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint256",
                                "name": "amountA",
                                "type": "uint256"
                            },
                            {
                                "internalType": "uint256",
                                "name": "amountB",
                                "type": "uint256"
                            }
                        ],
                        "internalType": "struct IMaverickV2PoolLens.Reserves",
                        "name": "protocolFees",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct IMaverickV2PoolLens.PoolState",
                "name": "poolState",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            }
        ],
        "name": "getPoolPrice",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "price",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            }
        ],
        "name": "getPoolSqrtPrice",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "sqrtPrice",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            },
            {
                "internalType": "int32",
                "name": "tick",
                "type": "int32"
            }
        ],
        "name": "getTickSqrtPriceAndL",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "sqrtPrice",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "liquidity",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            },
            {
                "internalType": "int32",
                "name": "tickStart",
                "type": "int32"
            },
            {
                "internalType": "int32",
                "name": "tickEnd",
                "type": "int32"
            }
        ],
        "name": "getTicks",
        "outputs": [
            {
                "internalType": "int32[]",
                "name": "ticks",
                "type": "int32[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint128",
                        "name": "reserveA",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "reserveB",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "totalSupply",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint32[4]",
                        "name": "binIdsByTick",
                        "type": "uint32[4]"
                    }
                ],
                "internalType": "struct IMaverickV2Pool.TickState[]",
                "name": "tickStates",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            },
            {
                "internalType": "int32",
                "name": "tickRadius",
                "type": "int32"
            }
        ],
        "name": "getTicksAroundActive",
        "outputs": [
            {
                "internalType": "int32[]",
                "name": "ticks",
                "type": "int32[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint128",
                        "name": "reserveA",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "reserveB",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "totalSupply",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint32[4]",
                        "name": "binIdsByTick",
                        "type": "uint32[4]"
                    }
                ],
                "internalType": "struct IMaverickV2Pool.TickState[]",
                "name": "tickStates",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            },
            {
                "internalType": "int32",
                "name": "tickRadius",
                "type": "int32"
            }
        ],
        "name": "getTicksAroundActiveWLiquidity",
        "outputs": [
            {
                "internalType": "int32[]",
                "name": "ticks",
                "type": "int32[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint128",
                        "name": "reserveA",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "reserveB",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "totalSupply",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint32[4]",
                        "name": "binIdsByTick",
                        "type": "uint32[4]"
                    }
                ],
                "internalType": "struct IMaverickV2Pool.TickState[]",
                "name": "tickStates",
                "type": "tuple[]"
            },
            {
                "internalType": "uint256[]",
                "name": "liquidities",
                "type": "uint256[]"
            },
            {
                "internalType": "uint256[]",
                "name": "sqrtLowerTickPrices",
                "type": "uint256[]"
            },
            {
                "internalType": "uint256[]",
                "name": "sqrtUpperTickPrices",
                "type": "uint256[]"
            },
            {
                "components": [
                    {
                        "internalType": "uint128",
                        "name": "reserveA",
                        "type": "uint128"
                    },
                    {
                        "internalType": "uint128",
                        "name": "reserveB",
                        "type": "uint128"
                    },
                    {
                        "internalType": "int64",
                        "name": "lastTwaD8",
                        "type": "int64"
                    },
                    {
                        "internalType": "int64",
                        "name": "lastLogPriceD8",
                        "type": "int64"
                    },
                    {
                        "internalType": "uint40",
                        "name": "lastTimestamp",
                        "type": "uint40"
                    },
                    {
                        "internalType": "int32",
                        "name": "activeTick",
                        "type": "int32"
                    },
                    {
                        "internalType": "bool",
                        "name": "isLocked",
                        "type": "bool"
                    },
                    {
                        "internalType": "uint32",
                        "name": "binCounter",
                        "type": "uint32"
                    },
                    {
                        "internalType": "uint8",
                        "name": "protocolFeeRatioD3",
                        "type": "uint8"
                    }
                ],
                "internalType": "struct IMaverickV2Pool.State",
                "name": "poolState",
                "type": "tuple"
            },
            {
                "internalType": "uint256",
                "name": "sqrtPrice",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "feeAIn",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "feeBIn",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IMaverickV2Pool",
                "name": "pool",
                "type": "address"
            }
        ],
        "name": "tokenScales",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "tokenAScale",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "tokenBScale",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    }
]
