If there is ever a hardfork domainSeperator
value will become invalid. This is because the chainId parameter is computed in constructor. This means even after hard fork chainId would remain same which is incorrect and could cause possible replay attacks
Observe the following code snippets
As we can see the chainId is derived and then hardcoded in domainSeperator
This means even after hard fork, domainSeperator
value will remain same and point to incorrect chainId.
Signature Replay
Manual Review
The domainSeperator variable should be recomputed everytime by placing current value of chainId.
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.