mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
Merge pull request #274 from Instadapp/uniswap-v3-createpool-func
[Mainnet][Uniswap-v3] Added Create Pool function
This commit is contained in:
commit
b96cb2649d
|
@ -32,4 +32,11 @@ contract Events {
|
||||||
);
|
);
|
||||||
|
|
||||||
event LogBurnPosition(uint256 tokenId);
|
event LogBurnPosition(uint256 tokenId);
|
||||||
|
|
||||||
|
event LogcreateAndInitializePool (
|
||||||
|
address tokenA,
|
||||||
|
address tokenB,
|
||||||
|
uint24 fee,
|
||||||
|
int24 initialTick
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,6 +66,27 @@ abstract contract Helpers is DSMath, Basic {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _createAndInitializePoolIfNecessary (
|
||||||
|
address tokenA,
|
||||||
|
address tokenB,
|
||||||
|
uint24 fee,
|
||||||
|
int24 initialTick
|
||||||
|
) internal returns (address pool) {
|
||||||
|
(TokenInterface token0Contract_, TokenInterface token1Contract_) = changeEthAddress(
|
||||||
|
tokenA,
|
||||||
|
tokenB
|
||||||
|
);
|
||||||
|
|
||||||
|
(address token0_, address token1_) = sortTokenAddress(address(token0Contract_), address(token1Contract_));
|
||||||
|
|
||||||
|
return nftManager.createAndInitializePoolIfNecessary(
|
||||||
|
token0_,
|
||||||
|
token1_,
|
||||||
|
fee,
|
||||||
|
TickMath.getSqrtRatioAtTick(initialTick)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dev Mint function which interact with Uniswap v3
|
* @dev Mint function which interact with Uniswap v3
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,6 +12,43 @@ import {Helpers} from "./helpers.sol";
|
||||||
import {Events} from "./events.sol";
|
import {Events} from "./events.sol";
|
||||||
|
|
||||||
abstract contract UniswapResolver is Helpers, Events {
|
abstract contract UniswapResolver is Helpers, Events {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dev Create and Initialize pool
|
||||||
|
* @notice Create and Initialize new pool if required
|
||||||
|
* @param tokenA tokenA addreess
|
||||||
|
* @param tokenB tokenB addreess
|
||||||
|
* @param fee fee percentage
|
||||||
|
* @param initialTick Initial tick for the pool
|
||||||
|
*/
|
||||||
|
function createAndInitializePool (
|
||||||
|
address tokenA,
|
||||||
|
address tokenB,
|
||||||
|
uint24 fee,
|
||||||
|
int24 initialTick
|
||||||
|
)
|
||||||
|
external
|
||||||
|
payable
|
||||||
|
returns (string memory _eventName, bytes memory _eventParam)
|
||||||
|
{
|
||||||
|
|
||||||
|
address pool = _createAndInitializePoolIfNecessary(
|
||||||
|
tokenA,
|
||||||
|
tokenB,
|
||||||
|
fee,
|
||||||
|
initialTick
|
||||||
|
);
|
||||||
|
|
||||||
|
_eventName = "LogcreateAndInitializePool(address,address,address,uint24,int24)";
|
||||||
|
_eventParam = abi.encode(
|
||||||
|
tokenA,
|
||||||
|
tokenB,
|
||||||
|
pool,
|
||||||
|
fee,
|
||||||
|
initialTick
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dev Mint New Position
|
* @dev Mint New Position
|
||||||
* @notice Mint New NFT LP Position
|
* @notice Mint New NFT LP Position
|
||||||
|
|
Loading…
Reference in New Issue
Block a user