MulticallHelper.sol 737 B

1234567891011121314151617181920212223
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {ERC20MulticallMock} from "./token/ERC20MulticallMock.sol";
  4. contract MulticallHelper {
  5. function checkReturnValues(
  6. ERC20MulticallMock multicallToken,
  7. address[] calldata recipients,
  8. uint256[] calldata amounts
  9. ) external {
  10. bytes[] memory calls = new bytes[](recipients.length);
  11. for (uint256 i = 0; i < recipients.length; i++) {
  12. calls[i] = abi.encodeCall(multicallToken.transfer, (recipients[i], amounts[i]));
  13. }
  14. bytes[] memory results = multicallToken.multicall(calls);
  15. for (uint256 i = 0; i < results.length; i++) {
  16. require(abi.decode(results[i], (bool)));
  17. }
  18. }
  19. }