isValidRevocation static method
Checks if an authorization is a valid revocation.
A valid revocation must:
- Have address set to zero address
- Have valid chain ID and nonce
- If signed, have valid signature
Implementation
static bool isValidRevocation(Authorization authorization) {
// Must be a revocation (zero address)
if (!authorization.isRevocation) return false;
// Must have valid chain ID
if (authorization.chainId <= 0) return false;
// Must have non-negative nonce
if (authorization.nonce < BigInt.zero) return false;
// If signed, signature must be valid format
if (authorization.isSigned) {
if (authorization.yParity != 0 && authorization.yParity != 1)
return false;
if (authorization.r == BigInt.zero && authorization.s == BigInt.zero)
return false;
}
return true;
}