The Dussehra.sol disperses the funds to the organiser when killRavana function is called and the SelectedRam receives funds when withdraw function is called but if either of them is a smart contract address without receive or fallback functions then the funds will be permanently stuck in the contract
The smart contract addresses without receive or fallback functions will not be able to receive rewards
For the below Poc to work add the following changes in Dussehra.t.sol
create a new contract as given
Add this import statement at the top import {IERC721Receiver} from "../lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol";
Declare a new state variable PlayerContract playerContract;
In setup add the following line
The funds will be permanently stuck in the contract
Manual Review
Foundry
For the organiser the responsibility has to be taken by the protocol and as for the SelectedRam the Dussehra::withdraw function should take an address arg to transfer funds to which would place the responsibility on the user to safely transfer his funds.
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.