```\nfunction safeDecreaseAllowance(\n    IERC20 token,\n    address spender,\n    uint256 value\n) internal {\n    unchecked {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");\n        uint256 newAllowance = oldAllowance - value;\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n    }\n}\n```\n