match static method

P2WPKHInput? match(
  1. RawInput raw,
  2. List<Uint8List> witness
)
override

Checks if the raw input and witness data match the expected format for a P2WPKHInput, with or without a signature. If it does it returns a P2WPKHInput for the input or else it returns null.

Implementation

static P2WPKHInput? match(RawInput raw, List<Uint8List> witness) {

  if (raw.scriptSig.isNotEmpty) return null;
  if (witness.isEmpty || witness.length > 2) return null;

  try {

    final insig = witness.length == 2
      ? ECDSAInputSignature.fromBytes(witness[0])
      : null;
    final publicKey = ECPublicKey(witness.last);

    return P2WPKHInput(
      prevOut: raw.prevOut,
      sequence: raw.sequence,
      publicKey: publicKey,
      insig: insig,
    );

  } on InvalidInputSignature {
    return null;
  } on InvalidPublicKey {
    return null;
  }

}