SeedSigner / seedsigner

Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)
MIT License
721 stars 168 forks source link

Bug Report: "Select Diff Seed" Unexpected Behavior #449

Closed SeedSigner closed 1 year ago

SeedSigner commented 1 year ago

Background: 2-of-3 wallet with two of the co-signers already active on the SeedSigner. I signed with one of the good co-signers, then attempted to sign with that co-signer again. I received the error "PSBT Error" "Signing with this seed did not add a valid signature" and was prompted to "Select Diff Seed".

When I selected this option, I was returned to the beginning of the transaction review workflow rather than to a list of currently-loaded seeds, which would seem to be the expected behavior.

jdlcdl commented 1 year ago

I DONT HAVE MUCH TO SHARE, just my thoughts... which are far from an answer.

I suspect that you ARE being redirected back to PSBTSelectSeedView but that you're immediately redirected into the PSBTOverviewView because self.controller.psbt_seed is still set from your last iteration.

Admittedly, I'm not familiar with this code. I don't know if the PSBTSigningErrorView could unset the psbt_seed so that a redirect won't happen, or if the check below the line linked above should be checking for one-matching-seed exactly, and failing if there are 2 matching seeds, so that you can have a choice to choose just one... or if it should be checking for a matching seed that hasn't already signed the psbt.

jdlcdl commented 1 year ago

Im having a hard time duplicating. Is it correct to:

I'm not getting to the point where "Signing with this seed did not add a valid signature" (or rather what I think it means, did not add an additional signature). Instead, it just gives me the qrcode that I scan back into Specter Desktop... which does realize I still need other keys to sign it.

SeedSigner commented 1 year ago

As far as I can tell you have the sequence correct. To arrive at this I...

Not sure that it would matter but I am using Sparrow to produce this error screen -- maybe Sparrow is including the completed signature into what is passed back to the signer the second time?

jdlcdl commented 1 year ago

I am using Sparrow to produce this error screen

That was it, I confirm the error.