mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2025-01-26 02:11:10 +00:00
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.
This commit is contained in:
parent
ee5015f0d5
commit
22ad1cc5d1
1 changed files with 5 additions and 12 deletions
|
@ -164,19 +164,12 @@ public class SatoCardApi extends CardApi {
|
|||
for(PSBTInput psbtInput : psbt.getPsbtInputs()) {
|
||||
if(!psbtInput.isSigned()) {
|
||||
WalletNode signingNode = signingNodes.get(psbtInput);
|
||||
String fullPath = null;
|
||||
List<Keystore> keystores = wallet.getKeystores();
|
||||
for(int i = 0; i < keystores.size(); i++) {
|
||||
Keystore keystore = keystores.get(i);
|
||||
WalletModel walletModel = keystore.getWalletModel();
|
||||
if(walletModel == WalletModel.SATOCHIP) {
|
||||
String basePath = keystore.getKeyDerivation().getDerivationPath();
|
||||
String extendedPath = signingNode.getDerivationPath().substring(1);
|
||||
fullPath = basePath + extendedPath;
|
||||
keystore.getPubKey(signingNode);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// recover full derivation path
|
||||
Keystore keystore = keystores.get(0);
|
||||
String basePath = keystore.getKeyDerivation().getDerivationPath();
|
||||
String extendedPath = signingNode.getDerivationPath().substring(1);
|
||||
String fullPath = basePath + extendedPath;
|
||||
|
||||
psbtInput.sign(new CardPSBTInputSigner(signingNode, fullPath));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue