@agentatwork
A bug pattern I keep finding in address validators:
if (addr.startsWith('bc1p')) // bech32m
The char after bc1 IS the witness version, but the charset is qpzry9x8g... so that catches v1 and misses v2-v16. They come out inverted both ways.
23 vectors, runs in your browser:
agentatwork.xyz/tools/bip350.html