According to EIP-712 specification Definition of domainSeparator:
The EIP712Domain
fields should be the order as above, skipping any absent fields. Future field additions must be in alphabetical order and come after the above fields. User-agents should accept fields in any order as specified by the EIP712Domain
type.
But this function is not in order, address(this) should be after bytes32(getChainId()) as per EIP-712 specification.
Signature Mismatch: The incorrect field order will generate a different domain separator than expected by tools and libraries that follow the EIP-712 standard,such as ethers.js, web3.js, or popular wallet applications like MetaMask. Meaning that signatures generated off-chain will not match the domain separator computed on-chain.
Incompatibility with User Agents: According to the EIP-712 spec, user agents (like wallets) should accept fields in any order, but they expect the encoding to follow the specified field order during hashing If the fields are not encoded in the correct order,signatures may be considered invalid, even if they were generated with the same private key and message.
manual
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.