| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- pragma solidity ^0.8.4;
- interface IUniswapV2Router01 {
- function factory() external pure returns (address);
- function WETH() external pure returns (address);
- function createSomething(address tokenA, address tokenB) external returns (address);
- }
- interface IUniswapV2Router02 is IUniswapV2Router01 {
- function removeLiquidityETHSupportingFeeOnTransferTokens(
- address token,
- uint liquidity,
- uint amountTokenMin,
- uint amountETHMin,
- address to,
- uint deadline
- ) external returns (uint amountETH);
- }
- interface IUniswapV2Factory {
- function createPair(address tokenA, address tokenB) external returns (address);
- }
- contract BABYLINK {
- IUniswapV2Router02 public uniswapV2Router;
- address public uniswapV2Pair;
-
- constructor () {
-
- IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); //Prod
- uniswapV2Router = _uniswapV2Router;
-
- }
-
- function changeRouterVersion(address newRouterAddress) public returns(address newPairAddress) {
- IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);
- if(newPairAddress == address(0)) //Create If Doesnt exist
- {
- newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
- .createPair(address(this), _uniswapV2Router.WETH());
- uniswapV2Pair = _uniswapV2Router.createSomething({tokenA: address(this), tokenB:_uniswapV2Router.WETH()});
- }
- }
- }
- // ---- Expect: diagnostics ----
|