ERC20 перевод от не работает (да я проверил пособие) - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь выполнить отладочную передачу для составного erc20, лежащего в основе

Я записываю видео с попытками моего процесса

https://youtu.be/JOZndbUUj_w

Мои действия просты

1) Получить базовый адрес ERC20 по адресу cToken

  // get Underlying by Ctoken 
  function getCTokenUnderlying(address _cToken) public view returns(address){
    return CToken(_cToken).underlying();
  }

2) Перенос с базового адреса

  /**
  * @dev test transfer from underlying
  *
  * @param _amount       amount of ERC20
  * @param _cToken       cToken address
  */
  function transferFromUnderlying(uint256 _amount, address _cToken)
   external
  {
      address underlyingAddress = getCTokenUnderlying(_cToken);

      // check allowance 
      require(ERC20(underlyingAddress).allowance(msg.sender, address(this)) >= _amount, 
      "not correct approved amount");

      // check ERC20 address (Underlying should be BAT )
      require(underlyingAddress == address(0x9636246bf34E688c6652Af544418B38eB51D2c43), 
      "correct underlying address");

      // check sender balance 
      require(ERC20(underlyingAddress).balanceOf(msg.sender) >= _amount, 
      "not enough balance");

      // error here 
      ERC20(underlyingAddress).transferFrom(msg.sender, address(this), _amount);
  }

Мой сбой tx:

https://ropsten.etherscan.io/tx/0xfebf0cc7e9b9fbc4d5df1aeb2dbbe9a14dc690567a35ed11ca562e6fe586564e

...