SafeMath
Functions
add
*Returns the addition of two unsigned integers, reverting on
overflow.
Counterpart to Solidity's +
operator.
Requirements:
- Addition cannot overflow.*
function add(uint256 a, uint256 b) internal pure returns (uint256);
sub
*Returns the subtraction of two unsigned integers, reverting on
overflow (when the result is negative).
Counterpart to Solidity's -
operator.
Requirements:
- Subtraction cannot overflow.*
function sub(uint256 a, uint256 b) internal pure returns (uint256);
sub
*Returns the subtraction of two unsigned integers, reverting with custom message on
overflow (when the result is negative).
Counterpart to Solidity's -
operator.
Requirements:
- Subtraction cannot overflow.*
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256);
mul
*Returns the multiplication of two unsigned integers, reverting on
overflow.
Counterpart to Solidity's *
operator.
Requirements:
- Multiplication cannot overflow.*
function mul(uint256 a, uint256 b) internal pure returns (uint256);
div
*Returns the integer division of two unsigned integers. Reverts on
division by zero. The result is rounded towards zero.
Counterpart to Solidity's /
operator. Note: this function uses a
revert
opcode (which leaves remaining gas untouched) while Solidity
uses an invalid opcode to revert (consuming all remaining gas).
Requirements:
- The divisor cannot be zero.*
function div(uint256 a, uint256 b) internal pure returns (uint256);
div
*Returns the integer division of two unsigned integers. Reverts with custom message on
division by zero. The result is rounded towards zero.
Counterpart to Solidity's /
operator. Note: this function uses a
revert
opcode (which leaves remaining gas untouched) while Solidity
uses an invalid opcode to revert (consuming all remaining gas).
Requirements:
- The divisor cannot be zero.*
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256);
mod
*Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
Reverts when dividing by zero.
Counterpart to Solidity's %
operator. This function uses a revert
opcode (which leaves remaining gas untouched) while Solidity uses an
invalid opcode to revert (consuming all remaining gas).
Requirements:
- The divisor cannot be zero.*
function mod(uint256 a, uint256 b) internal pure returns (uint256);
mod
*Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
Reverts with custom message when dividing by zero.
Counterpart to Solidity's %
operator. This function uses a revert
opcode (which leaves remaining gas untouched) while Solidity uses an
invalid opcode to revert (consuming all remaining gas).
Requirements:
- The divisor cannot be zero.*
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256);
sqrrt
function sqrrt(uint256 a) internal pure returns (uint256 c);
percentageAmount
function percentageAmount(uint256 total_, uint8 percentage_) internal pure returns (uint256 percentAmount_);
substractPercentage
function substractPercentage(uint256 total_, uint8 percentageToSub_) internal pure returns (uint256 result_);
percentageOfTotal
function percentageOfTotal(uint256 part_, uint256 total_) internal pure returns (uint256 percent_);
average
Taken from Hypersonic https://github.com/M2629/HyperSonic/blob/main/Math.sol
Returns the average of two numbers. The result is rounded towards zero.
function average(uint256 a, uint256 b) internal pure returns (uint256);
quadraticPricing
function quadraticPricing(uint256 payment_, uint256 multiplier_) internal pure returns (uint256);
bondingCurve
function bondingCurve(uint256 supply_, uint256 multiplier_) internal pure returns (uint256);