If the staker is using an account abstraction wallet, his claimed MOR
token rewards will be lost on L2 as his address on L2 will be differet from L1.
Morpheus protocol allows users to stake/deposit stETH
in Distribution
contract that is going to be deployed on the Ethereum mainnet, and claim their MOR
tokens rewards on Arbitrum network (L2).
So any user has made a stake will be able to claim his rewards (or anyone onbehalf of him) via Distribution.claim
function, where a mint message is going to be delivered to the L2MessageReceiver
contract on Arbitrum via the layer zero endpoint on Ethereum:
But there's an issue with this claim mechanism:
Users who interact with the protocol with "EOAs" (externally owned accounts) will be using the same address that is created on all evm chains for these accounts, but users of account abstraction wallets (which are unique smart contract instances deployed on individual chains) will have different addresses on different chains.
So as can be noticed; the reward tokens are going to be minted for the address of the staker on L1, and this is not going to be the same address on L2 if the staker uses a wallet:
This will result in staker losing his MOR
token rewards as they are going to be minted for another address on L2 that's not owned by the staker.
Distribution.claim function/ L173
Manual Review.
Update Distribution.claim
function to have another address argument where the user would like to receive his rewards, and by doing so; it must be ensured that the claim function can be called by the staker himself only and not by anyone onbehalf of him :
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.