What is the reason for the GatewayForwarder (.sol)?

Why would any contract use the GatewayForwarder instead of the Forwarder(.sol)?

This function can be called by anyone, anytime (even within the same transaction): gsn/GatewayForwarder.sol at master · opengsn/gsn · GitHub

So everyone could basically force that no verification would be done by the Forwarder for any transaction sent through the GateWayForwarder.

It’s dangerous to even offer this Forwarder. What is the reason for its existence?

Hello @CJentzsch !

I think you are correct, and currently the GatewayForwarder is not used.

It was added for testing as part of an experiment to add batching support to the GSN core contracts without any security checks in place. It is not part of the GSN contracts deployment on any network, is not “offered” anywhere and will be removed in the next release.