Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. pragma solidity ^0.4.15;
  2.  
  3. /**
  4. * @title SafeMath
  5. * @dev Math operations with safety checks that throw on error
  6. */
  7. library SafeMath {
  8. function mul(uint256 a, uint256 b) internal constant returns (uint256) {
  9. uint256 c = a * b;
  10. assert(a == 0 || c / a == b);
  11. return c;
  12. }
  13.  
  14. function div(uint256 a, uint256 b) internal constant returns (uint256) {
  15. // assert(b > 0); // Solidity automatically throws when dividing by 0
  16. uint256 c = a / b;
  17. // assert(a == b * c + a % b); // There is no case in which this doesn't hold
  18. return c;
  19. }
  20.  
  21. function sub(uint256 a, uint256 b) internal constant returns (uint256) {
  22. assert(b <= a);
  23. return a - b;
  24. }
  25.  
  26. function add(uint256 a, uint256 b) internal constant returns (uint256) {
  27. uint256 c = a + b;
  28. assert(c >= a);
  29. return c;
  30. }
  31. }
  32.  
  33.  
  34.  
  35. using SafeMath for uint;
  36.  
  37. mapping(address => uint256) balances;
  38.  
  39. function balanceOf(address _owner) constant returns (uint256 balance) {
  40. return balances[_owner];
  41. }
  42.  
  43. function transfer(address _to, uint256 _value) returns (bool) {
  44. balances[msg.sender] = balances[msg.sender].sub(_value);
  45. balances[_to] = balances[_to].add(_value);
  46. Transfer(msg.sender, _to, _value);
  47. return true;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement