checkNoInputsSeenBefore method

  1. @override
Future<OutputsUnknown> checkNoInputsSeenBefore({
  1. required FutureOr<bool> isKnown(
    1. OutPoint p1
    ),
  2. dynamic hint,
})

Make sure that the original transaction inputs have never been seen before. This prevents probing attacks. This prevents reentrant Payjoin, where a sender proposes a Payjoin PSBT as a new Original PSBT for a new Payjoin.

Implementation

@override
Future<OutputsUnknown> checkNoInputsSeenBefore(
    {required FutureOr<bool> Function(OutPoint p1) isKnown, hint}) async {
  try {
    final res = await super.checkNoInputsSeenBefore(isKnown: isKnown);
    return OutputsUnknown._(field0: res.field0);
  } on error.PayjoinError catch (e) {
    throw mapPayjoinError(e);
  }
}