mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0-or-later
 | |
| pragma solidity >=0.5.0;
 | |
| 
 | |
| /// @title Safe casting methods
 | |
| /// @notice Contains methods for safely casting between types
 | |
| library SafeCast {
 | |
|     /// @notice Cast a uint256 to a uint160, revert on overflow
 | |
|     /// @param y The uint256 to be downcasted
 | |
|     /// @return z The downcasted integer, now type uint160
 | |
|     function toUint160(uint256 y) internal pure returns (uint160 z) {
 | |
|         require((z = uint160(y)) == y);
 | |
|     }
 | |
| 
 | |
|     /// @notice Cast a int256 to a int128, revert on overflow or underflow
 | |
|     /// @param y The int256 to be downcasted
 | |
|     /// @return z The downcasted integer, now type int128
 | |
|     function toInt128(int256 y) internal pure returns (int128 z) {
 | |
|         require((z = int128(y)) == y);
 | |
|     }
 | |
| 
 | |
|     /// @notice Cast a uint256 to a int256, revert on overflow
 | |
|     /// @param y The uint256 to be casted
 | |
|     /// @return z The casted integer, now type int256
 | |
|     function toInt256(uint256 y) internal pure returns (int256 z) {
 | |
|         require(y < 2**255);
 | |
|         z = int256(y);
 | |
|     }
 | |
| }
 | 
