isOurOutput static method
Implementation
static bool isOurOutput({
required Uint8List privateViewKey,
required Uint8List publicSpendKey,
required Uint8List txPublicKey,
required Uint8List outputKey,
required int outputIndex,
}) {
final ed = VaultKeeper.vault.ed25519;
final aR = ed.scalarMult(privateViewKey, txPublicKey);
final shared = ed.scalarMult(_cofactor8, aR);
final hs = _hashToScalar(ed, shared, outputIndex);
final hsG = ed.scalarMultBase(hs);
final expected = ed.pointAdd(hsG, publicSpendKey);
if (expected.length != outputKey.length) return false;
var diff = 0;
for (var i = 0; i < expected.length; i++) {
diff |= expected[i] ^ outputKey[i];
}
return diff == 0;
}