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