| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- //SPDX-License-Identifier: Unlicense
- pragma solidity ^0.7.6;
- pragma abicoder v2;
- import '@openzeppelin/contracts/token/ERC20/ERC20.sol';
- import '@uniswap/v3-periphery/contracts/NonfungiblePositionManager.sol';
- import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol';
- contract V3Tool {
- NonfungiblePositionManager private positionManager;
- IUniswapV3Factory private factory;
- constructor(address payable _positionManager, address payable _factory) {
- positionManager = NonfungiblePositionManager(_positionManager);
- factory = IUniswapV3Factory(_factory);
- }
- struct PositionInfo {
- address lp;
- address token0;
- string symbol0;
- uint24 decimals0;
- uint256 r0;
- address token1;
- string symbol1;
- uint24 decimals1;
- uint256 r1;
- uint24 feei;
- }
- function getMoreInfo(address token0, address token1, uint24 fee) public view returns (
- address lp,
- string memory symbol0,
- uint24 decimals0,
- uint256 r0,
- string memory symbol1,
- uint24 decimals1,
- uint256 r1
- ) {
- ERC20 token0Obj = ERC20(token0);
- ERC20 token1Obj = ERC20(token1);
- address lp = factory.getPool(token0, token1, fee);
- return (lp, token0Obj.symbol(), token0Obj.decimals(), token0Obj.balanceOf(lp),
- token1Obj.symbol(), token1Obj.decimals(), token1Obj.balanceOf(lp));
- }
- }
|