Files
uniswap-v2/contracts/libraries/SafeMath.sol
Noah Zinsmeister b6e403ed14 add downcast helpers
add safe transfer for bad tokens

reorder updateData order

refactor tests to be more explicit
2019-10-28 16:24:29 -04:00

40 lines
1.3 KiB
Solidity

// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/2f9ae975c8bdc5c7f7fa26204896f6c717f07164/contracts/math/SafeMath.sol
pragma solidity 0.5.12;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) return 0;
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: division by zero");
uint256 c = a / b;
return c;
}
function downcastTo64(uint256 a) internal pure returns (uint64) {
require(a <= uint64(-1), "SafeMath: downcast overflow");
return uint64(a);
}
function downcastTo128(uint256 a) internal pure returns (uint128) {
require(a <= uint128(-1), "SafeMath: downcast overflow");
return uint128(a);
}
}