{
    "Function": "createClaimsBatch",
    "File": "contracts/VTVLVesting.sol",
    "Parent Contracts": [
        "contracts/AccessProtected.sol",
        "node_modules/@openzeppelin/contracts/utils/Context.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "onlyAdmin",
        "_createClaimUnchecked",
        "require(bool,string)"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function createClaimsBatch(\n        address[] memory _recipients, \n        uint40[] memory _startTimestamps, \n        uint40[] memory _endTimestamps, \n        uint40[] memory _cliffReleaseTimestamps, \n        uint40[] memory _releaseIntervalsSecs, \n        uint112[] memory _linearVestAmounts, \n        uint112[] memory _cliffAmounts) \n        external onlyAdmin {\n        \n        uint256 length = _recipients.length;\n        require(_startTimestamps.length == length &&\n                _endTimestamps.length == length &&\n                _cliffReleaseTimestamps.length == length &&\n                _releaseIntervalsSecs.length == length &&\n                _linearVestAmounts.length == length &&\n                _cliffAmounts.length == length, \n                \"ARRAY_LENGTH_MISMATCH\"\n        );\n\n        for (uint256 i = 0; i < length; i++) {\n            _createClaimUnchecked(_recipients[i], _startTimestamps[i], _endTimestamps[i], _cliffReleaseTimestamps[i], _releaseIntervalsSecs[i], _linearVestAmounts[i], _cliffAmounts[i]);\n        }\n\n        // No need for separate emit, since createClaim will emit for each claim (and this function is merely a convenience/gas-saver for multiple claims creation)\n    }"
}