Do not hardcode _zroPaymentAddress
field to address(0)
When a user call the claim()
to get its tokens,
an external call is performed by the function to the sendMintMessage()
function of the L1Sender
contract.
this function call also perform an external call to the layerzero function send() with the _zroPaymentAddress == address(0x0)
However, setting the _zroPaymentAddress
field to a fixed value of address(0x0)
eliminates the possibility for the protocol to adopt the ZRO token as a future fee payment method, particularly considering the potential launch of ZRO in the upcoming year.
For more details about this vulnerability, please take a look at the following links:
LayerZero Integration Checklist
Limiting the contract flexibility and may cause a DOS if the layerZer contract ever disallow payments others than ZRO token.
Manual audit
To enhance flexibility for future fee payments using ZRO tokens, it is advisable to pass the _zroPaymentAddress
field as an input parameter.
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.