- April 2026 self-audit (all files): no major issues found
- Audited for spec compliance and security
- Improve robustness of
OP_CODESEPARATOR: previously tx with would roundtrip via script/encode decode, which means we can verify OR consider correct tx which because of wrong preimage (number canonicalization/minimal encoding won't preserve exact bytes) - musig2:
partialSigVerifywas incorrectly returningtruewhen a specific nonce was correct, but other pubnonces were broken / different from aggregated nonce - Hardened weight calculation for varint / mixed segwit + legacy
- Fix all Byte Array types, to ensure proper work in both TypeScript 5.6 & TypeScript 5.9+
- TS 5.6 has
Uint8Array, while TS 5.9+ made it genericUint8Array<ArrayBuffer> - This creates incompatibility of code between versions
- Previously, it was hard to use and constantly emitted errors similar to
TS2345 - See [typescript#62240](microsoft/TypeScript#62240) for more context
- TS 5.6 has
- Fix compilation issues on TypeScript v6
- Improve tree-shaking, reduce bundle sizes
- Upgrade all dependencies
- Add initial support for tapBip32Derivation
- PSBT merging now works with different versions
- Minor improvements by contributors
- Fix typo in
_Estimator.getSatoshiargument name by @anonpay-sh in #130 - Use stricter return type for
getAddressutility by @anonpay-sh in #129 - fix typing for
pubSchnorrto accept Uint8Array only by @imcotton in #137 - test(musig2): tighten BIP327 error assertions by @eminogrande in #141
- Fix typo in
(We're skipping v2.1, to align with other noble / scure packages)
New Contributors
- @anonpay-sh made their first contribution in #130
- @eminogrande made their first contribution in #132
- @imcotton made their first contribution in #137
Full Changelog: 2.0.1...2.2.0