The NativeMetaTransaction
contract design includes a common EIP712
domain name, version, and chain ID across multiple deployed contracts. The domain name is always OWP
and the version is 1
. Having in mind that the contracts will only be deployed to Polygon(same chain ID) and that 2 contracts are inheriting NativeMetaTransaction
this will cause poor domainSeparator uniqueness.
The domainSeparator is formed from the EIP712_DOMAIN_TYPEHASH
, name, version, address(this) and chainId:
This means that domainSeparator for the 2 contracts that are MembershipFactory
and OWPIdentity
will only differentiate on their address.
Having identical domain separator, aside from address(this) can increase the chance of signature collisions, verification confusion for external tools and can cause users to sign for the other contract.
Manual Review
Use unique names for the contracts, for example: OWP-Factory
and OWP-Identity
. Optionally use different version as well.
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.