1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- pragma solidity ^0.4.21;
- import "../token/ERC20/ERC20.sol";
- import "../token/ERC20/SafeERC20.sol";
- contract ERC20FailingMock is ERC20 {
- function totalSupply() public view returns (uint256) {
- return 0;
- }
- function transfer(address, uint256) public returns (bool) {
- return false;
- }
- function transferFrom(address, address, uint256) public returns (bool) {
- return false;
- }
- function approve(address, uint256) public returns (bool) {
- return false;
- }
- function balanceOf(address) public constant returns (uint256) {
- return 0;
- }
- function allowance(address, address) public constant returns (uint256) {
- return 0;
- }
- }
- contract ERC20SucceedingMock is ERC20 {
- function totalSupply() public view returns (uint256) {
- return 0;
- }
-
- function transfer(address, uint256) public returns (bool) {
- return true;
- }
- function transferFrom(address, address, uint256) public returns (bool) {
- return true;
- }
- function approve(address, uint256) public returns (bool) {
- return true;
- }
- function balanceOf(address) public constant returns (uint256) {
- return 0;
- }
- function allowance(address, address) public constant returns (uint256) {
- return 0;
- }
- }
- contract SafeERC20Helper {
- using SafeERC20 for ERC20;
- ERC20 failing;
- ERC20 succeeding;
- function SafeERC20Helper() public {
- failing = new ERC20FailingMock();
- succeeding = new ERC20SucceedingMock();
- }
- function doFailingTransfer() public {
- failing.safeTransfer(0, 0);
- }
- function doFailingTransferFrom() public {
- failing.safeTransferFrom(0, 0, 0);
- }
- function doFailingApprove() public {
- failing.safeApprove(0, 0);
- }
- function doSucceedingTransfer() public {
- succeeding.safeTransfer(0, 0);
- }
- function doSucceedingTransferFrom() public {
- succeeding.safeTransferFrom(0, 0, 0);
- }
- function doSucceedingApprove() public {
- succeeding.safeApprove(0, 0);
- }
- }
|