SafeERC20Helper.sol 924 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. pragma solidity ^0.4.11;
  2. import '../../contracts/token/ERC20.sol';
  3. import '../../contracts/token/SafeERC20.sol';
  4. contract ERC20FailingMock is ERC20 {
  5. function transfer(address, uint256) returns (bool) {
  6. return false;
  7. }
  8. function transferFrom(address, address, uint256) returns (bool) {
  9. return false;
  10. }
  11. function approve(address, uint256) returns (bool) {
  12. return false;
  13. }
  14. function balanceOf(address) constant returns (uint256) {
  15. return 0;
  16. }
  17. function allowance(address, address) constant returns (uint256) {
  18. return 0;
  19. }
  20. }
  21. contract SafeERC20Helper {
  22. using SafeERC20 for ERC20;
  23. ERC20 token;
  24. function SafeERC20Helper() {
  25. token = new ERC20FailingMock();
  26. }
  27. function doFailingTransfer() {
  28. token.safeTransfer(0, 0);
  29. }
  30. function doFailingTransferFrom() {
  31. token.safeTransferFrom(0, 0, 0);
  32. }
  33. function doFailingApprove() {
  34. token.safeApprove(0, 0);
  35. }
  36. }