If the recipient is added to the USDC blacklist, then cancel() does not work
cancel() will send the vested USDC to the recipient, if the recipient is added to the USDC blacklist, then cancel() will not work\\nWhen cancel() is called, it sends the vested USDC to the recipient and cancels future payments. Consider a scenario where if the payer intends to call cancel() to cancel the payment stream, a malicious recipient can block the address from receiving USDC by adding it to the USDC blacklist (e.g. by doing something malicious with that address, etc.), which prevents the payer from canceling the payment stream and withdrawing future payments\\n```\\n    function cancel() external onlyPayerOrRecipient {\\n        address payer_ = payer();\\n        address recipient_ = recipient();\\n        IERC20 token_ = token();\\n\\n        uint256 recipientBalance = balanceOf(recipient_);\\n\\n        // This zeroing is important because without it, it's possible for recipient to obtain additional funds\\n        // from this contract if anyone (e.g. payer) sends it tokens after cancellation.\\n        // Thanks to this state update, `balanceOf(recipient_)` will only return zero in future calls.\\n        remainingBalance = 0;\\n\\n        if (recipientBalance > 0) token_.safeTransfer(recipient_, recipientBalance);\\n```\\n
Issue If the recipient is added to the USDC blacklist, then cancel() does not work\\nInstead of sending tokens directly to the payer or recipient in cancel(), consider storing the number of tokens in variables and having the payer or recipient claim it later
A malicious recipient may prevent the payer from canceling the payment stream and withdrawing future payments
```\\n    function cancel() external onlyPayerOrRecipient {\\n        address payer_ = payer();\\n        address recipient_ = recipient();\\n        IERC20 token_ = token();\\n\\n        uint256 recipientBalance = balanceOf(recipient_);\\n\\n        // This zeroing is important because without it, it's possible for recipient to obtain additional funds\\n        // from this contract if anyone (e.g. payer) sends it tokens after cancellation.\\n        // Thanks to this state update, `balanceOf(recipient_)` will only return zero in future calls.\\n        remainingBalance = 0;\\n\\n        if (recipientBalance > 0) token_.safeTransfer(recipient_, recipientBalance);\\n```\\n