The migrateL2Beans function in the BeanL2MigrationFacet contract fails to migrate Beans from Ethereum to L2 because it lacks the ability to receive Ether through msg.value, which is necessary to cover the gas fee for the sendMessage function.
The migrateL2Beans function does not include the payable modifier, preventing it from receiving Ether needed for the gas fee in the sendMessage function call.
The function cannot receive Ether because it lacks the payable modifier, resulting in the inability to provide the necessary gas fee for the sendMessage function call.
DoS - Due to the inability to cover the gas fee, the Beans migration process from Ethereum to L2 is not possible.
Manual Review
https://docs.optimism.io/stack/protocol/rollup/deposit-flow
Add a payablemodifier for the function and also a check to ensure the gas fees are being sent.
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.