verify method

  1. @override
bool verify()
override

Implementation

@override
bool verify() {
  if (!txData.isSigned) return false;
  final inputs =
      (txData.transaction['siacoinInputs'] as List<dynamic>?) ?? [];
  if (inputs.length != txData.toSign.length) return false;

  for (int i = 0; i < txData.toSign.length; i++) {
    final sigs =
        (inputs[i]['satisfiedPolicy'] as Map)['signatures'] as List;
    if (sigs.isEmpty) return false;
    final sigHex = sigs.first as String;
    final sigBytes = dynamicToUint8List(sigHex);
    final sigBase64 = base64.encode(sigBytes);
    if (!wallet.verify(sigBase64, txData.toSign[i])) {
      return false;
    }
  }
  return true;
}