Use low level `call()` to prevent gas griefing attacks when returned data not required
Using `call()` when the returned data is not required unnecessarily exposes to gas griefing attacks from huge returned data payload. For example:\\n```\\n(bool sentToUser, ) = recipient.call{ value: finalUserAmount }("");\\nrequire(sentToUser, "Failed to send Ether");\\n```\\n\\nIs the same as writing:\\n```\\n(bool sentToUser, bytes memory data) = recipient.call{ value: finalUserAmount }("");\\nrequire(sentToUser, "Failed to send Ether");\\n```\\n\\nIn both cases the returned data will be copied into memory exposing the contract to gas griefing attacks, even though the returned data is not used at all.
Use a low-level call when the returned data is not required, eg:\\n```\\nbool sent;\\nassembly {\\n    sent := call(gas(), recipient, finalUserAmount, 0, 0, 0, 0)\\n}\\nif (!sent) revert Unauthorized();\\n```\\n\\nConsider using ExcessivelySafeCall.
Contract unnecessarily exposed to gas griefing attacks.
```\\n(bool sentToUser, ) = recipient.call{ value: finalUserAmount }("");\\nrequire(sentToUser, "Failed to send Ether");\\n```\\n