verifySignature method
Future<SignatureVerification>
verifySignature(
- Uint8List message,
- Uint8List signature, {
- required IntentScope intentScope,
- String? address,
override
Verify a user signature (Ed25519 / secp / multisig / zkLogin) over
message under the given intentScope. signature is the serialized
signature bytes.
Implementation
@override
Future<SignatureVerification> verifySignature(
Uint8List message,
Uint8List signature, {
required IntentScope intentScope,
String? address,
}) async {
// PersonalMessage is verified over BCS vector<u8>; TransactionData is raw.
final value = intentScope == IntentScope.personalMessage
? Uint8List.fromList(
SuiBcs.VECTOR(SuiBcs.U8).serialize(message).toBytes())
: message;
final req = VerifySignatureRequest(
message: Bcs(name: _intentName(intentScope), value: value),
signature:
UserSignature(bcs: Bcs(name: 'UserSignature', value: signature)),
address: address,
);
final bytes =
await _call(_sigVerify, 'VerifySignature', req.writeToBuffer());
final resp = VerifySignatureResponse.fromBuffer(bytes);
return SignatureVerification(
isValid: resp.isValid,
reason: resp.hasReason() ? resp.reason : null,
);
}