MulticallTestUpgradeable.sol 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "./MulticallTokenMockUpgradeable.sol";
  4. import "../proxy/utils/Initializable.sol";
  5. contract MulticallTestUpgradeable is Initializable {
  6. function __MulticallTest_init() internal onlyInitializing {
  7. __MulticallTest_init_unchained();
  8. }
  9. function __MulticallTest_init_unchained() internal onlyInitializing {
  10. }
  11. function testReturnValues(
  12. MulticallTokenMockUpgradeable multicallToken,
  13. address[] calldata recipients,
  14. uint256[] calldata amounts
  15. ) external {
  16. bytes[] memory calls = new bytes[](recipients.length);
  17. for (uint256 i = 0; i < recipients.length; i++) {
  18. calls[i] = abi.encodeWithSignature("transfer(address,uint256)", recipients[i], amounts[i]);
  19. }
  20. bytes[] memory results = multicallToken.multicall(calls);
  21. for (uint256 i = 0; i < results.length; i++) {
  22. require(abi.decode(results[i], (bool)));
  23. }
  24. }
  25. uint256[50] private __gap;
  26. }