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.