Invalid request in MinimalForwarder

Hey @Richard_Zhang, I found the issue: there are two copies of OpenZeppelin Contracts on the repo you shared.

The MinimalForwarder being imported by the Registry contract was the old-ish openzeppelin-solidity, but that one defines is EIP712 domain separator using the domain name GSNv2 Forwarder (see here) as opposed to MinimalForwarder (as expected by the signer here). This was causing the verification step of the signature to fail.

This issue is carried over from the OpenZeppelin/workshops repo, where I updated the 712 domain name in the script but failed to bump the Contracts library version in the deps to account for it. I've just pushed a fix, along with a new verify script that will test the signature in the local tmp/request.json against the deployed minimal forwarder.

Thanks for your help in locating this issue!