isValidRevocation static method

bool isValidRevocation(
  1. Authorization authorization
)

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;
}