Files
openzeppelin-contracts/contracts/mocks/MulticallHelper.sol
Renan Souza 78d5708340 Migrate utils to ethersjs v6 (#4736)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: ernestognw <ernestognw@gmail.com>
2023-11-24 01:32:30 +00:00

24 lines
737 B
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {ERC20MulticallMock} from "./token/ERC20MulticallMock.sol";
contract MulticallHelper {
function checkReturnValues(
ERC20MulticallMock multicallToken,
address[] calldata recipients,
uint256[] calldata amounts
) external {
bytes[] memory calls = new bytes[](recipients.length);
for (uint256 i = 0; i < recipients.length; i++) {
calls[i] = abi.encodeCall(multicallToken.transfer, (recipients[i], amounts[i]));
}
bytes[] memory results = multicallToken.multicall(calls);
for (uint256 i = 0; i < results.length; i++) {
require(abi.decode(results[i], (bool)));
}
}
}