账户
0x66...c17f
0x66...c17F

0x66...c17F

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.8.18+commit.87f61d96
语言
Solidity
合同源代码
文件 1 的 1:MultiFunctionContract.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.6;

contract MultiFunctionContract {
    struct CallData {
        address contractAddress;
        bytes callBytes;
    }

    event CallStatus(address indexed target, bool success);

    modifier onlyOwner() {
        require(
            msg.sender == address(0x0000553F880fFA3728b290e04E819053A3590000),
            "Caller is not an owner"
        );
        _;
    }

    function multicall(CallData[] memory calls) public onlyOwner {
        for (uint256 i = 0; i < calls.length; i++) {
            (bool success, ) = calls[i].contractAddress.call(
                calls[i].callBytes
            );
            // require(success, "Fail");
            emit CallStatus(calls[i].contractAddress, success);
        }
    }
}
设置
{
  "compilationTarget": {
    "MultiFunctionContract.sol": "MultiFunctionContract"
  },
  "evmVersion": "paris",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"CallStatus","type":"event"},{"inputs":[{"components":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes","name":"callBytes","type":"bytes"}],"internalType":"struct MultiFunctionContract.CallData[]","name":"calls","type":"tuple[]"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"}]