SafeMath.sol 780 B

1234567891011121314151617181920212223242526272829303132
  1. pragma solidity ^0.4.11;
  2. /**
  3. * @title SafeMath
  4. * @dev Math operations with safety checks that throw on error
  5. */
  6. library SafeMath {
  7. function mul(uint256 a, uint256 b) internal returns (uint256) {
  8. uint256 c = a * b;
  9. assert(a == 0 || c / a == b);
  10. return c;
  11. }
  12. function div(uint256 a, uint256 b) internal returns (uint256) {
  13. // assert(b > 0); // Solidity automatically throws when dividing by 0
  14. uint256 c = a / b;
  15. // assert(a == b * c + a % b); // There is no case in which this doesn't hold
  16. return c;
  17. }
  18. function sub(uint256 a, uint256 b) internal returns (uint256) {
  19. assert(b <= a);
  20. return a - b;
  21. }
  22. function add(uint256 a, uint256 b) internal returns (uint256) {
  23. uint256 c = a + b;
  24. assert(c >= a);
  25. return c;
  26. }
  27. }