diff options
author | Leonid <logvinov.leon@gmail.com> | 2018-02-05 19:00:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-05 19:00:05 +0800 |
commit | f18fa8e9477b5a6e17216b292b70b3bd60a792ef (patch) | |
tree | 6c35f5a813f6bcba9559a7f78186a13c4f40bfbe /packages/contracts/src/current/utils/SafeMath | |
parent | 03b1b12ef1e4cdf9b834ff5cc1312b2eda3d2778 (diff) | |
parent | 44cd185c66b08a5a9b081c972e7cb6764c066506 (diff) | |
download | dexon-sol-tools-f18fa8e9477b5a6e17216b292b70b3bd60a792ef.tar dexon-sol-tools-f18fa8e9477b5a6e17216b292b70b3bd60a792ef.tar.gz dexon-sol-tools-f18fa8e9477b5a6e17216b292b70b3bd60a792ef.tar.bz2 dexon-sol-tools-f18fa8e9477b5a6e17216b292b70b3bd60a792ef.tar.lz dexon-sol-tools-f18fa8e9477b5a6e17216b292b70b3bd60a792ef.tar.xz dexon-sol-tools-f18fa8e9477b5a6e17216b292b70b3bd60a792ef.tar.zst dexon-sol-tools-f18fa8e9477b5a6e17216b292b70b3bd60a792ef.zip |
Merge branch 'development' into feature/build_watch
Diffstat (limited to 'packages/contracts/src/current/utils/SafeMath')
-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; + } +} |