// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.17; struct UniswapParameters { address v2Factory; address v3Factory; bytes32 pairInitCodeHash; bytes32 poolInitCodeHash; } contract UniswapImmutables { /// @dev The address of UniswapV2Factory address internal immutable UNISWAP_V2_FACTORY; /// @dev The UniswapV2Pair initcodehash bytes32 internal immutable UNISWAP_V2_PAIR_INIT_CODE_HASH; /// @dev The address of UniswapV3Factory address internal immutable UNISWAP_V3_FACTORY; /// @dev The UniswapV3Pool initcodehash bytes32 internal immutable UNISWAP_V3_POOL_INIT_CODE_HASH; constructor(UniswapParameters memory params) { UNISWAP_V2_FACTORY = params.v2Factory; UNISWAP_V2_PAIR_INIT_CODE_HASH = params.pairInitCodeHash; UNISWAP_V3_FACTORY = params.v3Factory; UNISWAP_V3_POOL_INIT_CODE_HASH = params.poolInitCodeHash; } }