Ether sent as fee through RESDLTokenBridge.sol contract to SDLPoolCCIPController.sol contract will be locked forever.
There is no function to withdraw eth sent to SDLPoolCCIPController.sol contract, so when fee is collected in transferRESDL()
of RESDLTokenBridge.sol contract the fee are sent to SDLPoolCCIPController contract by calling its ccipSend()
. The ccipSend()
is payable but there is no function by which owner can withdraw the eth. This eth will be used in another external function call in SDLPoolCCIPController contract but if somehow this call fails then the eth will be locked in the contract forever [this external call may fail, I have shown how in another report].
This line does that external call to SDLPoolCCIPController.sol contract:
But there is not withdraw() in sdlPoolCCIPController.sol contract.
Ether sent to that contract will be permanently locked.
Manual analysis.
Add a withdraw() in sdlPoolCCIPController.sol 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.