35 lines
1.6 KiB
Solidity
35 lines
1.6 KiB
Solidity
|
|
pragma solidity 0.8.26;
|
|
|
|
import "../../lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol";
|
|
import "../../lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol";
|
|
import "../../lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol";
|
|
import {IUniswapV3Pool} from "../../lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
|
|
import {IWETH9} from "../../lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol";
|
|
|
|
|
|
library UniswapV3 {
|
|
function getPool( IUniswapV3Factory factory, address tokenA, address tokenB, uint24 fee) internal pure
|
|
returns (IUniswapV3Pool) {
|
|
PoolAddress.PoolKey memory key = PoolAddress.getPoolKey(tokenA, tokenB, fee);
|
|
return IUniswapV3Pool(PoolAddress.computeAddress(address(factory), key));
|
|
}
|
|
}
|
|
|
|
|
|
// Uniswap v3 on Arbitrum One
|
|
library UniswapV3Arbitrum {
|
|
IWETH9 public constant weth9 = IWETH9(0x82aF49447D8a07e3bd95BD0d56f35241523fBab1);
|
|
IUniswapV3Factory public constant factory = IUniswapV3Factory(0x1F98431c8aD98523631AE4a59f267346ea31F984);
|
|
ISwapRouter public constant swapRouter = ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564);
|
|
INonfungiblePositionManager public constant nfpm = INonfungiblePositionManager(0xC36442b4a4522E871399CD717aBDD847Ab11FE88);
|
|
}
|
|
|
|
// TESTNET
|
|
library UniswapV3ArbitrumSepolia {
|
|
IUniswapV3Factory public constant factory = IUniswapV3Factory(0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e);
|
|
ISwapRouter public constant swapRouter = ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564);
|
|
INonfungiblePositionManager public constant nfpm = INonfungiblePositionManager(0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65);
|
|
}
|
|
|