* feat: add wrapper function for low level calls * add error message parameter * adding unit tests and required mocks * implement error message on SafeERC20 * fixed variable name in tests * Add missing tests * Improve docs. * Add functionCallWithValue * Add functionCallWithValue * Skip balance check on non-value functionCall variants * Increase out of gas test timeout * Fix compile errors * Apply suggestions from code review Co-authored-by: Francisco Giordano <frangio.1@gmail.com> * Add missing tests * Add changelog entry Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com> Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
41 lines
841 B
Solidity
41 lines
841 B
Solidity
// SPDX-License-Identifier: MIT
|
|
|
|
pragma solidity ^0.6.0;
|
|
|
|
contract CallReceiverMock {
|
|
|
|
event MockFunctionCalled();
|
|
|
|
uint256[] private _array;
|
|
|
|
function mockFunction() public payable returns (string memory) {
|
|
emit MockFunctionCalled();
|
|
|
|
return "0x1234";
|
|
}
|
|
|
|
function mockFunctionNonPayable() public returns (string memory) {
|
|
emit MockFunctionCalled();
|
|
|
|
return "0x1234";
|
|
}
|
|
|
|
function mockFunctionRevertsNoReason() public payable {
|
|
revert();
|
|
}
|
|
|
|
function mockFunctionRevertsReason() public payable {
|
|
revert("CallReceiverMock: reverting");
|
|
}
|
|
|
|
function mockFunctionThrows() public payable {
|
|
assert(false);
|
|
}
|
|
|
|
function mockFunctionOutOfGas() public payable {
|
|
for (uint256 i = 0; ; ++i) {
|
|
_array.push(i);
|
|
}
|
|
}
|
|
}
|