verify method
Perform signature verification against the sender address.
Implementation
Future<bool> verify(Address address) async {
// Multisig
if (signature != null && multiSignature != null) {
return false;
}
try {
Logic.checkProgram(program: logic, arguments: arguments);
} catch (ex) {
return false;
}
if (signature == null && multiSignature == null) {
try {
return address == toAddress();
} catch (ex) {
return false;
}
}
// Verify signature
if (signature != null) {
final verified = await crypto.Ed25519().verify(
getEncodedProgram(),
signature: crypto.Signature(
signature?.bytes ?? [],
publicKey: address.toVerifyKey(),
),
);
return verified;
}
// Verify multisig
final verified = await multiSignature?.verify(data: getEncodedProgram());
return verified ?? false;
}