mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			800 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			800 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| pragma solidity ^0.4.11;
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * @title SafeMath
 | |
|  * @dev Math operations with safety checks that throw on error
 | |
|  */
 | |
| library SafeMath {
 | |
|   function mul(uint256 a, uint256 b) internal pure returns (uint256) {
 | |
|     uint256 c = a * b;
 | |
|     assert(a == 0 || c / a == b);
 | |
|     return c;
 | |
|   }
 | |
| 
 | |
|   function div(uint256 a, uint256 b) internal pure returns (uint256) {
 | |
|     // assert(b > 0); // Solidity automatically throws when dividing by 0
 | |
|     uint256 c = a / b;
 | |
|     // assert(a == b * c + a % b); // There is no case in which this doesn't hold
 | |
|     return c;
 | |
|   }
 | |
| 
 | |
|   function sub(uint256 a, uint256 b) internal pure returns (uint256) {
 | |
|     assert(b <= a);
 | |
|     return a - b;
 | |
|   }
 | |
| 
 | |
|   function add(uint256 a, uint256 b) internal pure returns (uint256) {
 | |
|     uint256 c = a + b;
 | |
|     assert(c >= a);
 | |
|     return c;
 | |
|   }
 | |
| }
 |