I implemented BIP352 independently in btclib-wallet (Python). These six vectors cover cases its tests reach and the file does not. reference.py computes every expected value and passes on the whole file, and btclib-wallet agrees on all six.
- P2WSH, P2MS, P2PK and empty-scriptPubKey inputs beside one P2PKH input: only the P2PKH key counts.
- P2SH-P2WSH, P2TR with an empty witness, and P2TR whose output key is not on the curve, beside one P2PKH input: all are skipped.
- A taproot script path spend with a non-NUMS internal key: its output key counts.
- A P2PKH input whose pubkey hash matches 33 bytes that are not a valid key: it is skipped.
- The largest label, 2^32 - 1.
- An unlabeled and a labeled address of one recipient, with another recipient listed between them.
The P2WSH and P2SH-P2WSH witness script is also a valid compressed key, so an implementation that reads the last witness item as a key fails these vectors.
The changelog gets version 1.1.2. #2323 adds two other vectors at the same places in both files; I will rebase whichever lands second.
Assisted-by: my usual tools (LLM, Internet, computer). Mistakes are mine.