Use hardhat-exposed to reduce the need for mocks (#3666)

Co-authored-by: Francisco <fg@frang.io>
This commit is contained in:
Hadrien Croubois
2023-01-03 15:38:13 +01:00
committed by GitHub
parent a81b0d0b21
commit c1d9da4052
190 changed files with 2297 additions and 4311 deletions

View File

@ -0,0 +1,72 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/math/SafeMath.sol";
library SafeMathMemoryCheck {
function addMemoryCheck() internal pure returns (uint256 mem) {
uint256 length = 32;
assembly {
mem := mload(0x40)
}
for (uint256 i = 0; i < length; ++i) {
SafeMath.add(1, 1);
}
assembly {
mem := sub(mload(0x40), mem)
}
}
function subMemoryCheck() internal pure returns (uint256 mem) {
uint256 length = 32;
assembly {
mem := mload(0x40)
}
for (uint256 i = 0; i < length; ++i) {
SafeMath.sub(1, 1);
}
assembly {
mem := sub(mload(0x40), mem)
}
}
function mulMemoryCheck() internal pure returns (uint256 mem) {
uint256 length = 32;
assembly {
mem := mload(0x40)
}
for (uint256 i = 0; i < length; ++i) {
SafeMath.mul(1, 1);
}
assembly {
mem := sub(mload(0x40), mem)
}
}
function divMemoryCheck() internal pure returns (uint256 mem) {
uint256 length = 32;
assembly {
mem := mload(0x40)
}
for (uint256 i = 0; i < length; ++i) {
SafeMath.div(1, 1);
}
assembly {
mem := sub(mload(0x40), mem)
}
}
function modMemoryCheck() internal pure returns (uint256 mem) {
uint256 length = 32;
assembly {
mem := mload(0x40)
}
for (uint256 i = 0; i < length; ++i) {
SafeMath.mod(1, 1);
}
assembly {
mem := sub(mload(0x40), mem)
}
}
}