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);
 | 
						|
    }
 | 
						|
}
 |