UniswapV3Factory.sol is responsible for creating and managing swap pools with different fee parameters. The factory smart contract tracks all existing pools and their addresses. When a new token pool is created, the factory deploys a new UniswapV3Pool.sol smart contract through the helper contract UniswapV3PoolDeployer.sol.
uniswap-v3-periphery
The uniswap-v3-periphery repository contains auxiliary smart contracts: NonfungiblePositionManager.sol, NonfungibleTokenPositionDescriptor.sol, SwapRouter.sol, and libraries like PoolAddress.sol, LiquidityAmounts.sol, and others. They interact with the core smart contracts from uniswap-v3-core. These smart contracts simplify interaction with the protocol for users and developers.
The following needs to be deployed:
SwapRouter.sol. Provides an interface for swapping tokens through Uniswap V3 pools. NonfungiblePositionManager.sol. Manages liquidity positions represented as NFT tokens. NonfungibleTokenPositionDescriptor.sol. Provides metadata for position NFT tokens. QuoterV2.sol. Allows fetching preliminary swap quote information. UniswapInterfaceMulticall.sol. Enables aggregation of multiple calls into a single transaction.
Important! The Multicall2.sol contract also needs to be deployed. It is not part of the uniswap-v3-periphery repository. It is located in a separate repository. It enables executing multiple read-only calls in a single request.
To complete our task, we’ll need several steps – preparing the codebase, configuring the smart contracts, and deploying the smart contracts.