github sparrowwallet/sparrow 2.5.4

3 hours ago
  • Always require anti-klepto on the BitBox02, raising the minimum firmware version to 9.4.0, and warn on a taproot signing issue with older firmware
  • Add a BitBox02 attestation failed dialog, reporting an unattestable version or a short attestation response as a failed check
  • Register the wallet policy again and retry when the Ledger rejects a stored registration, and check HID read and write results in the Ledger transport
  • Serialise USB device access so the periodic enumeration cannot interrupt an operation in progress, and isolate a misbehaving device from the rest of the enumeration
  • Reject truncated and oversized TLV lengths when parsing keycard responses, and fail rather than loop indefinitely on an unsuccessful card wait or repeated secure channel resets
  • Gate the display address, sign message and keystore discovery panes on a fingerprint resolved after in-app PIN entry
  • Improve validation of BIP129, descriptor and Unchained wallet imports, and detect legacy multisig descriptors case insensitively when warning about key sorting
  • Confirm the imported quorum and cosigners before completing an incomplete multisig wallet
  • Improve max cosigner handling in the Settings tab, reducing the maximum to 15 for legacy P2SH multisig wallets
  • Confirm the passphrase in the wallet-level and terminal seed imports, and clarify that the SLIP39 import passphrase applies to all shares and not individual ones
  • Warn before creating a keystore from a scanned seed with an invalid checksum
  • Name the conflicting keystore when an entered extended key is not unique, and ensure imported keystore labels are truncated and unique
  • Reject extended private keys when creating a terminal watch only wallet, and show import errors
  • Check and reprompt for the BIP38 passphrase rather than clearing the encrypted key
  • Improve validation of legacy multipart QR part numbers, and catch any parse failure when opening pasted or server-fetched transactions
  • Fall back to the next usable camera instead of failing the QR scan on one reporting no resolutions
  • Improve randomization for UTXO selection, input and output shuffling, and anti-fee-sniping
  • Clear silent payment, DNSSEC proof and taproot keypath fields from public PSBT copies used in payjoins
  • Improve validation of payjoin proposals, accepting a substituted payment output where a change output is present
  • Scope payjoin endpoints to the payment tab and transaction instead of the destination address, and disable payjoin on transactions with silent payment outputs
  • Disable transaction version and locktime editing once signed
  • Skip malformed silent payment tweak values rather than aborting the scan batch
  • Show the resource an auth47 challenge is signed for
  • Always check and restrict existing wallets and backup directories to owner only permissions
  • Retain the existing wallet encryption when a password change is cancelled, and release the reference to the derived encryption key when clearing a loaded wallet
  • Compare the ECIES MAC in constant time
  • Redact the Bitcoin Core credentials from the BWT debug log, and secret-bearing messages and CPace pairing values from Trezor debug logs
  • Support additional Electrum server RPC methods with configurable batch paging, and document the server RPC method contracts
  • Bound the Electrum read timeout across the wait for a response, not just acquiring the read lock, and bound the Bitcoin Core RPC connect and read timeouts, exempting the methods that rescan synchronously
  • Range check the server supplied minimum relay fee
  • Verify that fetched transactions match the requested txid
  • Maintain a verified block header store anchored at pinned per-network checkpoints, refreshing affected wallets on a reorg
  • Verify merkle inclusion proofs for newly confirmed transactions, leaving them unconfirmed where they cannot be proved
  • Verify proof of work on chain tips and warn when a tip goes stale
  • Warn when a Bitcoin Core node is neither local nor onion, and report failed Bitcoin Core descriptor imports instead of only logging them
  • Close remaining local DNS resolution gaps when classifying hostnames and connecting via Tor
  • Resolve BIP353 HRNs over TCP via the SOCKS proxy when one is configured, reusing the connection between queries
  • Eliminate DNS payment resolution races by matching the currently entered recipient
  • Disable the proxy setting when a blank proxy server is configured
  • Only save certificates passing hostname verification as CA validated, and retain not yet valid certificates
  • Verify the version check signature before assigning the current version used in the download verifier
  • Report an oversized download manifest instead of verifying the signature alone, and ignore the results of superseded download verifications
  • Pin the Gradle distribution checksum in the wrapper properties
  • Fix the skipInstallers property being ignored and document its use
  • Upgrade hummingbird to v1.7.5
  • Bug fix: Fix wallets sharing a filename prefix having their backups deleted, or being re-encrypted on a password change
  • Bug fix: Fix preserving leading zero bytes when decoding SLIP39 share values
  • Bug fix: Fix handling an absent final scriptSig or witness when restoring the original payjoin inputs
  • Bug fix: Fix storage left open when testing schema validation (@nzb-tuxxx)
  • Bug fix: Fix detecting notification transactions where an OP_RETURN output has no push data
  • Bug fix: Fix compressed key encoding round trips and verify the BIP38 address hash

Don't miss a new sparrow release

NewReleases is sending notifications on new releases.