Ether is the native cryptocurrency of the Ethereum blockchain. It is used to pay for transactions and computational services on the network.
Click to reveal answer
beginner
How can a smart contract receive Ether?
A smart contract can receive Ether by having a payable function or a payable fallback/receive function that allows it to accept Ether transfers.
Click to reveal answer
intermediate
What is the purpose of the 'receive() external payable' function in Solidity?
The 'receive() external payable' function is a special function in Solidity that is executed when the contract receives Ether without any data. It must be marked payable to accept Ether.
Click to reveal answer
intermediate
What happens if a contract does not have a payable fallback or receive function and someone sends Ether to it?
The transaction will fail and the Ether will be rejected because the contract cannot accept Ether without a payable function to handle it.
Click to reveal answer
beginner
How do you check the amount of Ether sent to a contract in a payable function?
You can check the amount of Ether sent using 'msg.value', which holds the amount of Wei (smallest Ether unit) sent with the transaction.
Click to reveal answer
Which keyword must a Solidity function have to accept Ether?
Apure
Bexternal
Cview
Dpayable
✗ Incorrect
Only functions marked with 'payable' can receive Ether in Solidity.
What is the special function called that handles plain Ether transfers without data?
Afallback()
Breceive()
Cconstructor()
Dtransfer()
✗ Incorrect
The 'receive()' function is called when Ether is sent without data.
What does 'msg.value' represent in a payable function?
AThe amount of Ether sent in Wei
BThe sender's address
CThe gas price
DThe block timestamp
✗ Incorrect
'msg.value' holds the amount of Ether (in Wei) sent with the transaction.
If a contract has no payable fallback or receive function, what happens when Ether is sent to it?
AEther is burned
BEther is accepted and stored
CTransaction fails and Ether is rejected
DEther is sent back automatically
✗ Incorrect
Without a payable fallback or receive function, the contract rejects Ether and the transaction fails.
Which Solidity function is called when Ether is sent with data but no matching function exists?
Afallback()
Breceive()
Cconstructor()
Dtransfer()
✗ Incorrect
The 'fallback()' function is called when Ether is sent with data and no other function matches.
Explain how a smart contract can receive Ether and what functions are involved.
Think about special functions that accept Ether and how to check the amount sent.
You got /4 concepts.
Describe what happens if Ether is sent to a contract without a payable receive or fallback function.
Consider what Solidity requires to accept Ether.
You got /3 concepts.
Practice
(1/5)
1.
What is the main purpose of the receive function in a Solidity contract?
easy
A. To reject incoming Ether transfers
B. To send Ether from the contract to an external address
C. To initialize contract state variables
D. To accept Ether sent to the contract without any data
Solution
Step 1: Understand the role of the receive function
The receive function is a special function in Solidity that is triggered when the contract receives Ether without any calldata.
Step 2: Identify its purpose
Its purpose is to accept Ether sent directly to the contract without any function call data.
Final Answer:
To accept Ether sent to the contract without any data -> Option D
Quick Check:
receive function = accept Ether without data [OK]
Hint: Remember: receive handles plain Ether transfers only [OK]
Common Mistakes:
Confusing receive with fallback function
Thinking receive sends Ether out
Assuming receive initializes variables
2.
Which of the following is the correct syntax for a receive function in Solidity?
?
easy
A. receive() internal payable {}
B. receive() external payable {}
C. receive() external {}
D. receive() public payable {}
Solution
Step 1: Recall receive function requirements
The receive function must be declared as external and payable to accept Ether without data.
What happens when someone sends 1 Ether to this contract without calling any function?
medium
A. The contract rejects the Ether and transaction fails
B. The contract accepts Ether but does not emit any event
C. The contract accepts the Ether and emits the Received event
D. The contract calls fallback function instead
Solution
Step 1: Analyze the receive function
The receive function is payable and emits an event with sender and amount when Ether is received without data.
Step 2: Understand the behavior on Ether transfer
Sending 1 Ether without data triggers receive, so Ether is accepted and event emitted.
Final Answer:
The contract accepts the Ether and emits the Received event -> Option C
Quick Check:
receive payable + emit event = accept and notify [OK]
Hint: Sending Ether without data triggers receive, not fallback [OK]
Common Mistakes:
Thinking fallback is called instead
Assuming no event is emitted
Believing Ether is rejected
4.
Identify the error in this Solidity contract snippet that prevents it from receiving Ether:
contract Example {
receive() public payable {
// code
}
}
medium
A. receive function must be external, not public
B. receive function must not be payable
C. receive function must have a return type
D. receive function must be internal
Solution
Step 1: Check receive function visibility
The receive function must be declared as external, not public.
Step 2: Confirm payable requirement
It is correctly marked payable, so no error there.
Final Answer:
receive function must be external, not public -> Option A
Quick Check:
receive must be external, not public [OK]
Hint: receive must be external, not public or internal [OK]
Common Mistakes:
Using public instead of external
Removing payable keyword
Adding return type to receive
5.
You want to create a contract that tracks the total Ether received and rejects any Ether sent with data. Which combination of functions should you implement?
hard
A. Implement receive() external payable to accept Ether and fallback() external to revert on data
B. Implement only fallback() external payable to accept all Ether
C. Implement receive() external without payable and fallback() external payable
D. Implement receive() external payable and fallback() external payable both accepting Ether
Solution
Step 1: Accept Ether without data using receive
The receive function accepts Ether sent without data and can update total received.
Step 2: Reject Ether sent with data using fallback
The fallback function should revert to reject any Ether sent with data.
Final Answer:
Implement receive() external payable to accept Ether and fallback() external to revert on data -> Option A
Quick Check:
receive accepts plain Ether, fallback rejects data [OK]
Hint: Use receive for plain Ether, fallback to reject data [OK]
Common Mistakes:
Making fallback payable and accepting Ether with data
Omitting fallback to reject data
Not marking receive payable
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.