@@ -143,9 +143,16 @@ export const validatePsbt = base64 => {
145export const validateSignablePsbt = hd => base64 => {
145export const validateSignablePsbt = hd => base64 => {
147− bitcoin.Psbt.fromBase64(base64).signAllInputsHD(hd);
146+ const psbt = bitcoin.Psbt.fromBase64(base64);
147+ return !psbt.data.inputs.some((input, idx) => {
149+ // removing already derived part, eg 'm/84'/0'/0'/0/0' becomes '0/0'
150+ const path = input.bip32Derivation[0].path.substring(12);
151+ const prv = hd.derivePath(path).privateKey;
152+ psbt.signInput(idx, bitcoin.ECPair.fromPrivateKey(prv));
148− } catch (e) {
154+ } catch (e) {
149− return 'No inputs were signed';
157+ }) && 'No inputs were signed';