{
    "Function": "_cancel",
    "File": "contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol",
    "Parent Contracts": [
        "contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol",
        "contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol",
        "contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
        "contracts/lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol",
        "contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol"
    ],
    "High-Level Calls": [
        "Timers",
        "ICompoundTimelock"
    ],
    "Internal Calls": [
        "_cancel",
        "proposalEta"
    ],
    "Library Calls": [
        "reset"
    ],
    "Low-Level Calls": [],
    "Code": "function _cancel(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal virtual override returns (uint256) {\n        uint256 proposalId = super._cancel(targets, values, calldatas, descriptionHash);\n\n        uint256 eta = proposalEta(proposalId);\n        if (eta > 0) {\n            for (uint256 i = 0; i < targets.length; ++i) {\n                _timelock.cancelTransaction(targets[i], values[i], \"\", calldatas[i], eta);\n            }\n            _proposalTimelocks[proposalId].timer.reset();\n        }\n\n        return proposalId;\n    }"
}