L1Sender
approved erc20 token _newToken
in _replaceDepositTokenGateway
at line 95. _newToken
is wstEth according to protocol. And when
GatewayRouterMock::outboundTransfer
is called in L1Sender::sendDepositToken
function. In outboundTransfer
function
wstEth _token
is transferred from it's caller L1Sender
. Since L1Sender already approve this contract so they will be transferred. But after coming here they are neither transfer to it's receiver nor their is anyway to withdraw them from GatewayRouterMock
contract so those tokens will be stuck here forever.
contracts/mock/GatewayRouterMock.sol#L6-L18
contracts/L1Sender.sol#L114-L121
/main/contracts/L1Sender.sol#L95
wstEth tokens or any erc20 token approved to GatewayRouterMock
by L1Sender
will be stuck in GatewayRouterMock
contract. There is no way to withdraw them neither GatewayRouterMock
is approving to anyone nor tokens will not be sent to it's passed receiver.
Manual Review
Transfer/approve the erc20 tokens to it's receiver for that they are coming. And also add a withdraw function controlled by owner in the contract GatewayRouterMock
so he can withdraw stuck erc20 tokens.
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.