Skip to content

feat(abstract-utxo)!: default to wasm-utxo for all coins#8674

Merged
OttoAllmendinger merged 6 commits into
masterfrom
BTC-0.deprecate-utxolib-on-nonprod
May 4, 2026
Merged

feat(abstract-utxo)!: default to wasm-utxo for all coins#8674
OttoAllmendinger merged 6 commits into
masterfrom
BTC-0.deprecate-utxolib-on-nonprod

Conversation

@OttoAllmendinger
Copy link
Copy Markdown
Contributor

Change defaultSdkBackend from a getter to a property with constant
value 'wasm-utxo', removing network-based logic that favored utxolib
for mainnet coins.

Introduce supportedSdkBackends property to gate backend availability
and validate SDK backend support before decoding PSBTs.

Remove references to utxolib backend and SdkBackend parameter from
transaction tests. Simplifies test suite by using only wasm-utxo
backend, removing conditional logic and backend selection parameters.

BREAKING CHANGE: mainnet coins now default to wasm-utxo instead of
utxolib

Issue: BTC-2650

OttoAllmendinger and others added 4 commits May 4, 2026 12:30
- Add `pubs` parameter to all `signTransaction` calls for consistency
- Fix test to properly sign non-standard 2-of-2 multisig scripts
- Skip p2shP2pk tests when replay protection key is unavailable
- Use WASM implementation for generating musig2 nonces in mock

Issue: BTC-2650

Co-authored-by: llm-git <llm-git@ttll.de>
The test overrode a P2WSH input's witnessScript while leaving
witness_utxo.script_pubkey (the output commitment) unchanged, creating
a PSBT whose inner script and output hash disagree. Such a transaction
is unspendable on-chain regardless of signing outcome.

The expected 'length mismatch' error was a utxolib implementation
artifact with no security meaning.

Issue: BTC-2650
Utxolib backend is deprecated

Issue: BTC-2650
Remove references to utxolib backend and SdkBackend parameter from
transaction tests. Simplifies test suite by using only wasm-utxo
backend, removing conditional logic and backend selection parameters.

Issue: BTC-2650

Co-authored-by: llm-git <llm-git@ttll.de>
@OttoAllmendinger OttoAllmendinger force-pushed the BTC-0.deprecate-utxolib-on-nonprod branch from 2c70639 to 7e72cf2 Compare May 4, 2026 11:56
Change defaultSdkBackend from a getter to a property with constant
value 'wasm-utxo', removing network-based logic that favored utxolib
for mainnet coins.

This is effectively a noop since wallet-platform has been responding
with the `decodeWith: 'wasm-utxo'` hint for many months.

BREAKING CHANGE: mainnet coins now default to wasm-utxo instead of
utxolib

Co-authored-by: llm-git <llm-git@ttll.de>

Issue: BTC-2650
Introduce supportedSdkBackends property to gate backend availability
and validate SDK backend support before decoding PSBTs.

Co-authored-by: llm-git <llm-git@ttll.de>

Issue: BTC-2650
@OttoAllmendinger OttoAllmendinger force-pushed the BTC-0.deprecate-utxolib-on-nonprod branch from 7e72cf2 to 79849ce Compare May 4, 2026 12:07
@OttoAllmendinger OttoAllmendinger marked this pull request as ready for review May 4, 2026 12:49
@OttoAllmendinger OttoAllmendinger requested a review from a team as a code owner May 4, 2026 12:49
@OttoAllmendinger OttoAllmendinger merged commit 3dd77d6 into master May 4, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants