{
    "Function": "scheduleBatch",
    "File": "contracts/openzeppelin-solidity/contracts/governance/TimelockController.sol",
    "Parent Contracts": [
        "contracts/openzeppelin-solidity/contracts/access/AccessControl.sol",
        "contracts/openzeppelin-solidity/contracts/utils/introspection/ERC165.sol",
        "contracts/openzeppelin-solidity/contracts/utils/introspection/IERC165.sol",
        "contracts/openzeppelin-solidity/contracts/access/IAccessControl.sol",
        "contracts/openzeppelin-solidity/contracts/utils/Context.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "onlyRole",
        "require(bool,string)",
        "_schedule",
        "require(bool,string)",
        "hashOperationBatch"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function scheduleBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata datas,\n        bytes32 predecessor,\n        bytes32 salt,\n        uint256 delay\n    ) public virtual onlyRole(PROPOSER_ROLE) {\n        require(targets.length == values.length, \"TimelockController: length mismatch\");\n        require(targets.length == datas.length, \"TimelockController: length mismatch\");\n\n        bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt);\n        _schedule(id, delay);\n        for (uint256 i = 0; i < targets.length; ++i) {\n            emit CallScheduled(id, i, targets[i], values[i], datas[i], predecessor, delay);\n        }\n    }"
}