diff options
Diffstat (limited to 'packages/contracts/src/current/utils/SafeMath/SafeMath.sol')
-rw-r--r-- | packages/contracts/src/current/utils/SafeMath/SafeMath.sol | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/packages/contracts/src/current/utils/SafeMath/SafeMath.sol b/packages/contracts/src/current/utils/SafeMath/SafeMath.sol new file mode 100644 index 000000000..955a9e379 --- /dev/null +++ b/packages/contracts/src/current/utils/SafeMath/SafeMath.sol @@ -0,0 +1,73 @@ +pragma solidity ^0.4.18; + +contract SafeMath { + function safeMul(uint a, uint b) + internal + pure + returns (uint256) + { + uint c = a * b; + assert(a == 0 || c / a == b); + return c; + } + + function safeDiv(uint a, uint b) + internal + pure + returns (uint256) + { + uint c = a / b; + return c; + } + + function safeSub(uint a, uint b) + internal + pure + returns (uint256) + { + assert(b <= a); + return a - b; + } + + function safeAdd(uint a, uint b) + internal + pure + returns (uint256) + { + uint c = a + b; + assert(c >= a); + return c; + } + + function max64(uint64 a, uint64 b) + internal + pure + returns (uint256) + { + return a >= b ? a : b; + } + + function min64(uint64 a, uint64 b) + internal + pure + returns (uint256) + { + return a < b ? a : b; + } + + function max256(uint256 a, uint256 b) + internal + pure + returns (uint256) + { + return a >= b ? a : b; + } + + function min256(uint256 a, uint256 b) + internal + pure + returns (uint256) + { + return a < b ? a : b; + } +} |