1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- pragma solidity ^0.4.8;
- /**
- * Math operations with safety checks
- */
- contract SafeMath {
- function safeMul(uint a, uint b) internal returns (uint) {
- uint c = a * b;
- assert(a == 0 || c / a == b);
- return c;
- }
- function safeDiv(uint a, uint b) internal returns (uint) {
- assert(b > 0);
- uint c = a / b;
- assert(a == b * c + a % b);
- return c;
- }
- function safeSub(uint a, uint b) internal returns (uint) {
- assert(b <= a);
- return a - b;
- }
- function safeAdd(uint a, uint b) internal returns (uint) {
- uint c = a + b;
- assert(c>=a && c>=b);
- return c;
- }
- function max64(uint64 a, uint64 b) internal constant returns (uint64) {
- return a >= b ? a : b;
- }
- function min64(uint64 a, uint64 b) internal constant returns (uint64) {
- return a < b ? a : b;
- }
- function max256(uint256 a, uint256 b) internal constant returns (uint256) {
- return a >= b ? a : b;
- }
- function min256(uint256 a, uint256 b) internal constant returns (uint256) {
- return a < b ? a : b;
- }
- function assert(bool assertion) internal {
- if (!assertion) {
- throw;
- }
- }
- }
|