verifySignature function

PublicKey verifySignature(
  1. Uint8List bytes,
  2. String signature, {
  3. String? address,
})

Verify signature over bytes, returning the recovered PublicKey. Throws if invalid or mismatched with address.

Implementation

PublicKey verifySignature(
  Uint8List bytes,
  String signature, {
  String? address,
}) {
  final publicKey = _publicKeyFromSignature(signature);
  if (!isValidSignature(bytes, signature)) {
    throw ArgumentError('Signature is not valid for the provided data');
  }
  if (address != null && !publicKey.verifyAddress(address)) {
    throw ArgumentError('Signature is not valid for the provided address');
  }
  return publicKey;
}