Skip to content

ERC2771Forwarder: consider not enforcing trustedForwarder #5375

@sakulstra

Description

@sakulstra

🧐 Motivation
When relaying transactions, you often end up in a situation where you need to relay a token permit in addition to some additional transaction(s). While the additional transaction(s) can be forwarded via ERC2771Forwarder - considering the target contract implements ERC2771Context- the permit can not because the token is not "trusting" this forwarder.
However, not trusting the forwarder is not a problem as the permit does not rely on altering the context.

For any flow that requires an approval in order to forward the rest of a transaction batch this would be very useful.

📝 Details
As far as i can tell the Forwarder itself is not part of the Spec, so i think it's worth considering to remove the isTrustedForwarder check as I don't actually see any downside of not having it - worst case the txn would revert. This is in line with how the previous MinimalForwarder worked.

edit: I see this was changed in #4502 (comment) specifically to prevent accidents caused by approving the forwarder, but the fix as lined out above, can actually cause problems.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions