The InheritanceManager contract cannot receive ETH.
By default, Ethereum smart contracts cannot accept ETH unless explicitly designed to do so. A contract can receive ETH in the following ways:
Defining a receive() function.
Defining a fallback() function.
Implementing a payable function that is explicitly called.
Using another contract that calls selfdestruct() function (not recommended in this case).
The InheritanceManager contract lacks all of these methods, making it impossible to send ETH using standard approaches (see PoC).
The contract does not fulfill its basic wallet functionality because it cannot receive ETH for management.
Add the following code to the InheritanceManagerTest.t.sol file within the InheritanceManagerTest contract.
Manual Review
Foundry
To allow ETH transfers, the InheritanceManager contract should implement either receive or fallback function (see docs: https://docs.soliditylang.org/en/v0.8.26/contracts.html#receive-ether-function or https://docs.soliditylang.org/en/v0.8.26/contracts.html#fallback-function).
Alternatively, a payable function can be added, such as
This ensures the contract can accept ETH efficiently.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.