What Is the Difference between Require() and Checking the Call Return Value?

The require() statement is used for internal checks within a function. If require() fails, it reverts the entire transaction and refunds the remaining gas.

Checking the call return value, however, handles the success or failure of an external contract interaction. If the external call fails, the transaction continues unless the developer explicitly checks the returned boolean and uses require() or revert() to stop the execution.

What Happens If One Leg of an Atomic Swap Fails?
How Can an Attacker Force an External Call to Return False without Reverting?
What Is a Revert-on-Failure (ROF) Mechanism in Smart Contracts?
How Is the Concept of Error Checking Applied in Options Trading (E.g. Contract Specification Validation)?
How Can an Investor Verify the Authenticity of a Team Member’s Claimed GitHub Profile?
What Is the Difference between a Receive and a Fallback Function in Solidity?
Does the Send Function Have the Same Gas Limitations as Transfer ?
Does a Smart Contract Inherently Create an Explicit Agreement?

Glossar