[
    {
        "inputs": [
            {
                "internalType": "contract IUniswapV3Factory",
                "name": "factory",
                "type": "address"
            },
            { "internalType": "address", "name": "tokenIn", "type": "address" },
            { "internalType": "address", "name": "tokenOut", "type": "address" },
            { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
            { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
            { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
        ],
        "name": "getAdditionalBitmapWithTicks",
        "outputs": [
            {
                "components": [
                    { "internalType": "int16", "name": "index", "type": "int16" },
                    { "internalType": "uint256", "name": "value", "type": "uint256" }
                ],
                "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
                "name": "tickBitmap",
                "type": "tuple[]"
            },
            {
                "components": [
                    { "internalType": "int24", "name": "index", "type": "int24" },
                    {
                        "components": [
                            {
                                "internalType": "uint128",
                                "name": "liquidityGross",
                                "type": "uint128"
                            },
                            {
                                "internalType": "int128",
                                "name": "liquidityNet",
                                "type": "int128"
                            },
                            { "internalType": "bool", "name": "initialized", "type": "bool" }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.TickInfo",
                        "name": "value",
                        "type": "tuple"
                    }
                ],
                "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
                "name": "ticks",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IUniswapV3Factory",
                "name": "factory",
                "type": "address"
            },
            { "internalType": "address", "name": "tokenIn", "type": "address" },
            { "internalType": "address", "name": "tokenOut", "type": "address" },
            { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
            { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
            { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
        ],
        "name": "getAdditionalBitmapWithoutTicks",
        "outputs": [
            {
                "components": [
                    { "internalType": "int16", "name": "index", "type": "int16" },
                    { "internalType": "uint256", "name": "value", "type": "uint256" }
                ],
                "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
                "name": "tickBitmap",
                "type": "tuple[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IUniswapV3Factory",
                "name": "factory",
                "type": "address"
            },
            { "internalType": "address", "name": "tokenIn", "type": "address" },
            { "internalType": "address", "name": "tokenOut", "type": "address" },
            { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
            { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
            { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
        ],
        "name": "getFullState",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "contract IUniswapV3Pool",
                        "name": "pool",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "blockTimestamp",
                        "type": "uint256"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint160",
                                "name": "sqrtPriceX96",
                                "type": "uint160"
                            },
                            { "internalType": "int24", "name": "tick", "type": "int24" },
                            { "internalType": "uint24", "name": "fee", "type": "uint24" },
                            { "internalType": "bool", "name": "unlocked", "type": "bool" }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.Slot0",
                        "name": "slot0",
                        "type": "tuple"
                    },
                    { "internalType": "uint128", "name": "liquidity", "type": "uint128" },
                    { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
                    {
                        "internalType": "uint128",
                        "name": "maxLiquidityPerTick",
                        "type": "uint128"
                    },
                    {
                        "components": [
                            { "internalType": "int16", "name": "index", "type": "int16" },
                            { "internalType": "uint256", "name": "value", "type": "uint256" }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
                        "name": "tickBitmap",
                        "type": "tuple[]"
                    },
                    {
                        "components": [
                            { "internalType": "int24", "name": "index", "type": "int24" },
                            {
                                "components": [
                                    {
                                        "internalType": "uint128",
                                        "name": "liquidityGross",
                                        "type": "uint128"
                                    },
                                    {
                                        "internalType": "int128",
                                        "name": "liquidityNet",
                                        "type": "int128"
                                    },
                                    {
                                        "internalType": "bool",
                                        "name": "initialized",
                                        "type": "bool"
                                    }
                                ],
                                "internalType": "struct IUniswapV3StateMulticall.TickInfo",
                                "name": "value",
                                "type": "tuple"
                            }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
                        "name": "ticks",
                        "type": "tuple[]"
                    }
                ],
                "internalType": "struct IUniswapV3StateMulticall.StateResult",
                "name": "state",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IUniswapV3Factory",
                "name": "factory",
                "type": "address"
            },
            { "internalType": "address", "name": "tokenIn", "type": "address" },
            { "internalType": "address", "name": "tokenOut", "type": "address" },
            { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
            { "internalType": "int16", "name": "leftBitmapAmount", "type": "int16" },
            { "internalType": "int16", "name": "rightBitmapAmount", "type": "int16" }
        ],
        "name": "getFullStateWithRelativeBitmaps",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "contract IUniswapV3Pool",
                        "name": "pool",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "blockTimestamp",
                        "type": "uint256"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint160",
                                "name": "sqrtPriceX96",
                                "type": "uint160"
                            },
                            { "internalType": "int24", "name": "tick", "type": "int24" },
                            { "internalType": "uint24", "name": "fee", "type": "uint24" },
                            { "internalType": "bool", "name": "unlocked", "type": "bool" }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.Slot0",
                        "name": "slot0",
                        "type": "tuple"
                    },
                    { "internalType": "uint128", "name": "liquidity", "type": "uint128" },
                    { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
                    {
                        "internalType": "uint128",
                        "name": "maxLiquidityPerTick",
                        "type": "uint128"
                    },
                    {
                        "components": [
                            { "internalType": "int16", "name": "index", "type": "int16" },
                            { "internalType": "uint256", "name": "value", "type": "uint256" }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
                        "name": "tickBitmap",
                        "type": "tuple[]"
                    },
                    {
                        "components": [
                            { "internalType": "int24", "name": "index", "type": "int24" },
                            {
                                "components": [
                                    {
                                        "internalType": "uint128",
                                        "name": "liquidityGross",
                                        "type": "uint128"
                                    },
                                    {
                                        "internalType": "int128",
                                        "name": "liquidityNet",
                                        "type": "int128"
                                    },
                                    {
                                        "internalType": "bool",
                                        "name": "initialized",
                                        "type": "bool"
                                    }
                                ],
                                "internalType": "struct IUniswapV3StateMulticall.TickInfo",
                                "name": "value",
                                "type": "tuple"
                            }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
                        "name": "ticks",
                        "type": "tuple[]"
                    }
                ],
                "internalType": "struct IUniswapV3StateMulticall.StateResult",
                "name": "state",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "contract IUniswapV3Factory",
                "name": "factory",
                "type": "address"
            },
            { "internalType": "address", "name": "tokenIn", "type": "address" },
            { "internalType": "address", "name": "tokenOut", "type": "address" },
            { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
            { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
            { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
        ],
        "name": "getFullStateWithoutTicks",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "contract IUniswapV3Pool",
                        "name": "pool",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "blockTimestamp",
                        "type": "uint256"
                    },
                    {
                        "components": [
                            {
                                "internalType": "uint160",
                                "name": "sqrtPriceX96",
                                "type": "uint160"
                            },
                            { "internalType": "int24", "name": "tick", "type": "int24" },
                            { "internalType": "uint24", "name": "fee", "type": "uint24" },
                            { "internalType": "bool", "name": "unlocked", "type": "bool" }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.Slot0",
                        "name": "slot0",
                        "type": "tuple"
                    },
                    { "internalType": "uint128", "name": "liquidity", "type": "uint128" },
                    { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
                    {
                        "internalType": "uint128",
                        "name": "maxLiquidityPerTick",
                        "type": "uint128"
                    },
                    {
                        "components": [
                            { "internalType": "int16", "name": "index", "type": "int16" },
                            { "internalType": "uint256", "name": "value", "type": "uint256" }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
                        "name": "tickBitmap",
                        "type": "tuple[]"
                    },
                    {
                        "components": [
                            { "internalType": "int24", "name": "index", "type": "int24" },
                            {
                                "components": [
                                    {
                                        "internalType": "uint128",
                                        "name": "liquidityGross",
                                        "type": "uint128"
                                    },
                                    {
                                        "internalType": "int128",
                                        "name": "liquidityNet",
                                        "type": "int128"
                                    },
                                    {
                                        "internalType": "bool",
                                        "name": "initialized",
                                        "type": "bool"
                                    }
                                ],
                                "internalType": "struct IUniswapV3StateMulticall.TickInfo",
                                "name": "value",
                                "type": "tuple"
                            }
                        ],
                        "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
                        "name": "ticks",
                        "type": "tuple[]"
                    }
                ],
                "internalType": "struct IUniswapV3StateMulticall.StateResult",
                "name": "state",
                "type": "tuple"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    }
]
