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