contract TransferHelper {

  // Mainnet
  IWETH internal constant WETH = IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);

  // Ropsten
  // IWETH internal constant WETH = IWETH(0xc778417E063141139Fce010982780140Aa0cD5Ab);

  function _safeTransferFrom(address _token, address _sender, uint _amount) internal returns(uint) {
    IERC20(_token).transferFrom(_sender, address(this), _amount);
    require(_amount > 0, "TransferHelper: amount must be > 0");
  }

  function _wethWithdrawTo(address _to, uint _amount) internal {
    require(_amount > 0, "TransferHelper: amount must be > 0");
    WETH.withdraw(_amount);
    (bool success, ) = _to.call { value: _amount }(new bytes(0));
    require(success, 'TransferHelper: ETH transfer failed');
  }
}
function _safeTransferFrom(address _token, address _sender, uint _amount) internal returns(uint) {
  IERC20(_token).transferFrom(_sender, address(this), _amount);
  require(_amount > 0, "TransferHelper: amount must be > 0");
}

// Ropsten
// IWETH internal constant WETH = IWETH(0xc778417E063141139Fce010982780140Aa0cD5Ab);