mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2025-01-26 02:11:10 +00:00
First try to recover derivation path from satochip keystore, otherwise from first keystore as default value.
This commit is contained in:
parent
f4b3b3d55a
commit
91ad82a21c
1 changed files with 19 additions and 6 deletions
|
@ -165,12 +165,25 @@ public class SatoCardApi extends CardApi {
|
|||
if(!psbtInput.isSigned()) {
|
||||
WalletNode signingNode = signingNodes.get(psbtInput);
|
||||
List<Keystore> keystores = wallet.getKeystores();
|
||||
// recover full derivation path
|
||||
Keystore keystore = keystores.get(0);
|
||||
String basePath = keystore.getKeyDerivation().getDerivationPath();
|
||||
String extendedPath = signingNode.getDerivationPath().substring(1);
|
||||
String fullPath = basePath + extendedPath;
|
||||
|
||||
// recover derivation path from Satochip keystore
|
||||
String fullPath = null;
|
||||
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;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (fullPath == null) {
|
||||
// recover a default derivation path from first keystore
|
||||
Keystore keystore = keystores.get(0);
|
||||
String basePath = keystore.getKeyDerivation().getDerivationPath();
|
||||
String extendedPath = signingNode.getDerivationPath().substring(1);
|
||||
fullPath = basePath + extendedPath;
|
||||
}
|
||||
psbtInput.sign(new CardPSBTInputSigner(signingNode, fullPath));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue