assertValidSignedClaim function

void assertValidSignedClaim(
  1. SignedClaim claim,
  2. List<String> expectedWitnessAddresses
)

Implementation

void assertValidSignedClaim(
  SignedClaim claim,
  List<String> expectedWitnessAddresses,
) {
  final witnessAddresses = recoverSignersOfSignedClaim(claim);
  final witnessesNotSeen = Set<String>.from(expectedWitnessAddresses);
  for (final witness in witnessAddresses) {
    if (witnessesNotSeen.contains(witness)) {
      witnessesNotSeen.remove(witness);
    }
  }

  if (witnessesNotSeen.isNotEmpty) {
    final missingWitnesses = witnessesNotSeen.join(', ');
    logger.info(
        'Claim validation failed. Missing signatures from: $missingWitnesses');
    throw proofNotVerifiedError('Missing signatures from $missingWitnesses');
  }
}