Signed SafeMath (#1559)

* signed safe math

* fix lint errors

* refactor overflow checks and add descriptions

* remove incorrect description

* add test for reversed arguments in multiplication test

* fix power operator

* improve multiplication test descriptions

* Update SafeMath.test.js

* add feature to changelog
This commit is contained in:
Francisco Giordano
2018-12-18 15:54:44 -03:00
committed by GitHub
parent fad30c3d2c
commit d17ae0b806
5 changed files with 325 additions and 121 deletions

View File

@ -1,25 +1,43 @@
pragma solidity ^0.4.24;
import "../math/SafeMath.sol";
contract SafeMathMock {
function mul(uint256 a, uint256 b) public pure returns (uint256) {
function mulUints(uint256 a, uint256 b) public pure returns (uint256) {
return SafeMath.mul(a, b);
}
function div(uint256 a, uint256 b) public pure returns (uint256) {
function mulInts(int256 a, int256 b) public pure returns (int256) {
return SafeMath.mul(a, b);
}
function divUints(uint256 a, uint256 b) public pure returns (uint256) {
return SafeMath.div(a, b);
}
function sub(uint256 a, uint256 b) public pure returns (uint256) {
function divInts(int256 a, int256 b) public pure returns (int256) {
return SafeMath.div(a, b);
}
function subUints(uint256 a, uint256 b) public pure returns (uint256) {
return SafeMath.sub(a, b);
}
function add(uint256 a, uint256 b) public pure returns (uint256) {
function subInts(int256 a, int256 b) public pure returns (int256) {
return SafeMath.sub(a, b);
}
function addUints(uint256 a, uint256 b) public pure returns (uint256) {
return SafeMath.add(a, b);
}
function mod(uint256 a, uint256 b) public pure returns (uint256) {
function addInts(int256 a, int256 b) public pure returns (int256) {
return SafeMath.add(a, b);
}
function modUints(uint256 a, uint256 b) public pure returns (uint256) {
return SafeMath.mod(a, b);
}
}