Merge branch 'master'
This commit is contained in:
@ -5,6 +5,34 @@ pragma solidity ^0.7.0;
|
||||
import "../math/SafeMath.sol";
|
||||
|
||||
contract SafeMathMock {
|
||||
function tryAdd(uint256 a, uint256 b) public pure returns (bool flag, uint256 value) {
|
||||
return SafeMath.tryAdd(a, b);
|
||||
}
|
||||
|
||||
function trySub(uint256 a, uint256 b) public pure returns (bool flag, uint256 value) {
|
||||
return SafeMath.trySub(a, b);
|
||||
}
|
||||
|
||||
function tryMul(uint256 a, uint256 b) public pure returns (bool flag, uint256 value) {
|
||||
return SafeMath.tryMul(a, b);
|
||||
}
|
||||
|
||||
function tryDiv(uint256 a, uint256 b) public pure returns (bool flag, uint256 value) {
|
||||
return SafeMath.tryDiv(a, b);
|
||||
}
|
||||
|
||||
function tryMod(uint256 a, uint256 b) public pure returns (bool flag, uint256 value) {
|
||||
return SafeMath.tryMod(a, b);
|
||||
}
|
||||
|
||||
function add(uint256 a, uint256 b) public pure returns (uint256) {
|
||||
return SafeMath.add(a, b);
|
||||
}
|
||||
|
||||
function sub(uint256 a, uint256 b) public pure returns (uint256) {
|
||||
return SafeMath.sub(a, b);
|
||||
}
|
||||
|
||||
function mul(uint256 a, uint256 b) public pure returns (uint256) {
|
||||
return SafeMath.mul(a, b);
|
||||
}
|
||||
@ -13,15 +41,65 @@ contract SafeMathMock {
|
||||
return SafeMath.div(a, b);
|
||||
}
|
||||
|
||||
function sub(uint256 a, uint256 b) public pure returns (uint256) {
|
||||
return SafeMath.sub(a, b);
|
||||
}
|
||||
|
||||
function add(uint256 a, uint256 b) public pure returns (uint256) {
|
||||
return SafeMath.add(a, b);
|
||||
}
|
||||
|
||||
function mod(uint256 a, uint256 b) public pure returns (uint256) {
|
||||
return SafeMath.mod(a, b);
|
||||
}
|
||||
|
||||
function subWithMessage(uint256 a, uint256 b, string memory errorMessage) public pure returns (uint256) {
|
||||
return SafeMath.sub(a, b, errorMessage);
|
||||
}
|
||||
|
||||
function divWithMessage(uint256 a, uint256 b, string memory errorMessage) public pure returns (uint256) {
|
||||
return SafeMath.div(a, b, errorMessage);
|
||||
}
|
||||
|
||||
function modWithMessage(uint256 a, uint256 b, string memory errorMessage) public pure returns (uint256) {
|
||||
return SafeMath.mod(a, b, errorMessage);
|
||||
}
|
||||
|
||||
function addMemoryCheck() public pure returns (uint256 mem) {
|
||||
uint256 length = 32;
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := mload(0x40) }
|
||||
for (uint256 i = 0; i < length; ++i) { SafeMath.add(1, 1); }
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := sub(mload(0x40), mem) }
|
||||
}
|
||||
|
||||
function subMemoryCheck() public pure returns (uint256 mem) {
|
||||
uint256 length = 32;
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := mload(0x40) }
|
||||
for (uint256 i = 0; i < length; ++i) { SafeMath.sub(1, 1); }
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := sub(mload(0x40), mem) }
|
||||
}
|
||||
|
||||
function mulMemoryCheck() public pure returns (uint256 mem) {
|
||||
uint256 length = 32;
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := mload(0x40) }
|
||||
for (uint256 i = 0; i < length; ++i) { SafeMath.mul(1, 1); }
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := sub(mload(0x40), mem) }
|
||||
}
|
||||
|
||||
function divMemoryCheck() public pure returns (uint256 mem) {
|
||||
uint256 length = 32;
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := mload(0x40) }
|
||||
for (uint256 i = 0; i < length; ++i) { SafeMath.div(1, 1); }
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := sub(mload(0x40), mem) }
|
||||
}
|
||||
|
||||
function modMemoryCheck() public pure returns (uint256 mem) {
|
||||
uint256 length = 32;
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := mload(0x40) }
|
||||
for (uint256 i = 0; i < length; ++i) { SafeMath.mod(1, 1); }
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly { mem := sub(mload(0x40), mem) }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user