The documentation within the NativeMetaTransaction
contract states that both the userAddress
and relayerAddress
should be appended to the functionSignature
during the meta-transaction execution. However, the actual implementation of the executeMetaTransaction
function only appends the userAddress
and not the relayerAddress
. This discrepancy between the comment and the code may result in confusion or incorrect expectations during function execution.
Here is the comment:
https://github.com/Cyfrin/2024-11-one-world/blob/1e872c7ab393c380010a507398d4b4caca1ae32b/contracts/meta-transaction/NativeMetaTransaction.sol#L61
The comment explicitly mentions appending both the userAddress and relayerAddress, but the code only appends userAddress. This could create confusion about how the relayer is being handled and whether the relayer's information is properly included in the transaction context.
It could create tracking issues if external systems are built to extract and rely on the relayer address from the function signature.
Manual review
The code should be updated to append both the userAddress
and the relayerAddress
as indicated by the comment or the comment should be revised to accurately reflect the current behavior of the code. This ensures that the documentation aligns with the actual code logic preventing confusion for developers and auditors.
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.