August 2019
Intermediate to advanced
486 pages
13h 52m
English
This library provides some basic aggregate functions that can be used in a contract.
The OpenZeppelin contract present at Chapter09/openzeppelin-solidity/contracts/math/Math.sol is defined as follows:
library Math { function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow, so we distribute return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); }}
Let's review the preceding code in more detail. The contract contains the following library functions: