123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- pragma solidity ^0.4.4;
- /**
- * 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;
- }
- }
|