Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

Sending Ether (transfer, send, call) in Blockchain / Solidity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the transfer function do when sending Ether in Solidity?
The transfer function sends a fixed amount of Ether to an address and throws an error if the transfer fails, reverting the transaction.
Click to reveal answer
beginner
How does send differ from transfer when sending Ether?
send sends Ether but returns a boolean indicating success or failure instead of throwing an error. It requires manual error handling.
Click to reveal answer
intermediate
What is the main advantage of using call to send Ether?
call is more flexible and forwards all available gas, allowing interaction with contracts that require more gas. It also returns success status and data.
Click to reveal answer
advanced
Why should you be careful when using call to send Ether?
Because call forwards all gas by default, it can lead to reentrancy attacks if not handled properly. Always use checks-effects-interactions pattern.
Click to reveal answer
beginner
What happens if transfer or send fails to send Ether?
transfer throws an error and reverts the transaction, while send returns false and requires manual error handling.
Click to reveal answer
Which function automatically reverts the transaction if sending Ether fails?
Atransfer
Bsend
Ccall
Dapprove
Which function returns a boolean indicating success or failure when sending Ether?
Asend
Btransfer
Ccall
Dmint
Which method is recommended for sending Ether when you need to forward all gas and handle complex interactions?
Atransfer
Bsend
Cdelegatecall
Dcall
What is a major security risk when using call to send Ether?
AGas limit exceeded
BReentrancy attack
CInteger overflow
DStack overflow
If you want to send Ether and handle failure manually without reverting, which function should you use?
Acall
Btransfer
Csend
Dselfdestruct
Explain the differences between transfer, send, and call when sending Ether in Solidity.
Think about error handling and gas forwarding.
You got /4 concepts.
    Describe a safe pattern to send Ether using call to avoid security risks.
    Focus on security best practices.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      Which Solidity function automatically reverts the transaction if sending Ether fails?

      easy
      A. approve
      B. send
      C. call
      D. transfer

      Solution

      1. Step 1: Understand transfer behavior

        transfer sends Ether and automatically reverts if the transfer fails.
      2. Step 2: Compare with other methods

        send returns false on failure without reverting; call requires manual check; approve is unrelated to sending Ether.
      3. Final Answer:

        transfer -> Option D
      4. Quick Check:

        Automatic revert on failure = transfer [OK]
      Hint: transfer always reverts on failure, no manual check needed [OK]
      Common Mistakes:
      • Confusing send with transfer behavior
      • Thinking call auto-reverts on failure
      • Mixing approve with Ether sending
      2.

      Which of the following is the correct syntax to send 1 Ether using send in Solidity?

      recipient.?{value: 1 ether}();
      easy
      A. send
      B. transfer
      C. call
      D. approve

      Solution

      1. Step 1: Recall send syntax

        send is called as recipient.send{value: amount}() in Solidity 0.6+.
      2. Step 2: Match syntax with options

        Only send matches send method usage for sending Ether.
      3. Final Answer:

        send -> Option A
      4. Quick Check:

        send syntax = recipient.send{value: 1 ether}() [OK]
      Hint: send uses .send{value: amount}() syntax [OK]
      Common Mistakes:
      • Using transfer syntax with send
      • Confusing call syntax with send
      • Using approve which is unrelated
      3.

      What will be the output of the following Solidity code snippet?

      bool success = recipient.send{value: 1 ether}();
      if (!success) {
          revert("Send failed");
      }
      medium
      A. Transaction reverts if send fails
      B. Transaction always succeeds without revert
      C. Compilation error due to syntax
      D. Transaction succeeds but ignores failure

      Solution

      1. Step 1: Analyze send return value

        send returns false if sending Ether fails, but does not revert automatically.
      2. Step 2: Check revert condition

        The code checks !success and calls revert manually, so transaction reverts on failure.
      3. Final Answer:

        Transaction reverts if send fails -> Option A
      4. Quick Check:

        send returns false + manual revert = revert on failure [OK]
      Hint: send returns bool; revert manually on false [OK]
      Common Mistakes:
      • Assuming send auto-reverts
      • Ignoring manual revert check
      • Thinking code always succeeds
      4.

      Identify the error in this Solidity code snippet that uses call to send Ether:

      (bool sent, ) = recipient.call{value: 1 ether}();
      require(sent, "Failed to send Ether");
      medium
      A. Missing gas parameter in call
      B. Incorrect syntax for call
      C. No error; code is correct
      D. Should use send instead of call

      Solution

      1. Step 1: Review call syntax

        The syntax recipient.call{value: 1 ether}() is correct for sending Ether with call.
      2. Step 2: Check error handling

        The code checks sent boolean and reverts if false, which is proper error handling.
      3. Final Answer:

        No error; code is correct -> Option C
      4. Quick Check:

        call with value + require check = correct usage [OK]
      Hint: call needs manual success check; this code does it [OK]
      Common Mistakes:
      • Thinking gas parameter is mandatory
      • Confusing call syntax with send or transfer
      • Ignoring manual success check
      5.

      You want to send Ether to a contract that might consume more than 2300 gas on fallback. Which method should you use to ensure the transfer succeeds?

      hard
      A. transfer
      B. call
      C. approve
      D. send

      Solution

      1. Step 1: Understand gas limits of transfer and send

        transfer and send forward only 2300 gas, which may be insufficient for complex fallback functions.
      2. Step 2: Use call for flexible gas forwarding

        call allows forwarding all available gas, ensuring the receiving contract can execute complex logic.
      3. Final Answer:

        call -> Option B
      4. Quick Check:

        call forwards all gas, suitable for complex fallback [OK]
      Hint: Use call to forward all gas for complex fallback [OK]
      Common Mistakes:
      • Using transfer or send which limit gas to 2300
      • Confusing approve with sending Ether
      • Ignoring fallback gas requirements
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard