Solidity

addliquidity() 函式每次都恢復

  • October 25, 2021

我遇到了 Uniswap addLiquidity() 函式的問題。我嘗試了很多東西,但我沒有。這是我的程式碼。我正在嘗試混音。

編輯:我只是想增加流動性 weth 和 dai 而不是新的貨幣對。

pragma solidity 0.6.6;

import './IERC20.sol';
import './IUniswapV2Factory.sol';
import './IUniswapV2Pair.sol';
import './IUniswapV2Router01.sol';
import './IUniswapV2Router02.sol'; 

contract justLiquidity {
   address private constant UNISWAP_V2_ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

   
   function _addLiquidity (address _token1, address _token2, uint256 _amount1, uint256 _amount2) external {


       IERC20(_token1).transferFrom(msg.sender, address(this), _amount1); 
       IERC20(_token2).transferFrom(msg.sender, address(this), _amount2);
       IERC20(_token2).approve(UNISWAP_V2_ROUTER, _amount2 * 999);
       
       IERC20(_token1).approve(UNISWAP_V2_ROUTER, _amount1 * 999);
       



       IUniswapV2Router02(UNISWAP_V2_ROUTER).addLiquidity(_token1, _token2, _amount1, _amount2, 1, 1, address(this), block.timestamp); 

   }
}

我錯過了什麼?

最後我解決了我的問題。如果我為我的契約呼叫approve() 函式,它就不起作用。當我在我的錢包中呼叫approve() 函式時,它起作用了。

引用自:https://ethereum.stackexchange.com/questions/112123