This contract does not allow the host to withdraw ETH that participants deposit using the receive() function. While the withdraw() function allows the host to withdraw tokens (WBTC, WETH, USDC), it does not allow the host to withdraw any ETH that has been deposited by participants.
The receive() function allows participants to send ETH to the contract, and their balances are tracked by the etherBalance mapping.
The withdraw() function only supports the withdrawal of whitelisted tokens (WBTC, WETH, and USDC) but does not support the withdrawal of ETH.
The host is unable to withdraw any ETH that has been deposited by participants for the event, which could block access to these funds needed for the event's facilitation.
This leads to locked Ether for the host. This contract is designed to use ETH for the event (such as paying for services, purchases, etc.), the host will be unable to access these funds.
The lack of functionality for the host to withdraw ETH could severely hinder the intended operation of the contract and event facilitation.
Manually source code review.
Implement a similar function for the host to withdraw ETH as is done for the other whitelisted tokens in the withdraw() function.
This would allow the host to access and use the ETH deposited by participants to facilitate the event, preventing funds from being locked in the contract.
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.