Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Multi-sig on Sparrow Wallet #15

Open
Bastien-Satochip opened this issue Dec 26, 2024 · 1 comment
Open

[Bug] Multi-sig on Sparrow Wallet #15

Bastien-Satochip opened this issue Dec 26, 2024 · 1 comment

Comments

@Bastien-Satochip
Copy link
Contributor

Reported on Telegram by user "JR":

Creating a multisig in sparrow wallet (2of3), let's say I do it with 3 Satochip cards and it goes alright. When finalized sparrow shows the output descriptor and warns the need to save it as multisig 2of3 means we can sign with two keys always that we also provide the output descriptor (if we don't have it, shall use the 3 keys to compose the wallet and then, 2of3 for signing). I save that output descriptor, in text and qr.

Now the wallet works perfectly, being able to sign transactions with no problem.

Now let's say I delete the wallet, I distribute the 3 Keys to 3 persons so every person has one key and one copy of the output descriptor.

At any other moment let's imagine 2 of the 3 keys meet together and want to operate with the wallet. They download sparrow, create new wallet and introduce the output descriptor. The wallet loads correctly, shows addresses, balances, utxo... All seems good.

Now is where problem happens. Trying to create a transaction, every seems good, but when signing with either one of the cards, an error appears and the signing fails. Later I will show you an screenshot if needed. I could reproduce this issue many times, was never possible to sign. Only with wallets constructed with the 3 keys don't give this error.

Toporin added a commit to Toporin/sparrow that referenced this issue Jan 14, 2025
Null exception can be thrown when signing a multisig transaction
from a Sparrow wallet reconstructed from a Bitcoin descriptor.
This happens when the user did not configure any keystore
with the corresponding Satochip card ('import' button).
In this case, the 'fullpath' derivation path remains undefined,
leading to the exception.
@Toporin
Copy link
Owner

Toporin commented Jan 14, 2025

I was able to reproduce the issue by doing the following:

  • create new wallet
  • import a multisig 2of3 descriptor
  • Do not configure the keystores in settings, so they remain configured as watch only.
  • Create a new transaction.
  • When signing the transaction, a window opens to check for hardware wallet and if a Satochip is found, it tries to sign tx with it, but since the keystores are not configured as satochip, the 'fullpath' variable remains undefined, leading to the error.

A patch has been submitted (sparrowwallet/sparrow#1591) to avoid this error even if the keystores are not configured.

Without the patch, user can avoid this error by configuring at least one keystore as Satochip.

Screenshot from 2025-01-13 11-32-23

Toporin added a commit to Toporin/sparrow that referenced this issue Jan 14, 2025
First try to recover derivation path from satochip keystore, otherwise from first keystore as default value.
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

No branches or pull requests

2 participants