Skip to content

Commit 06b38a7

Browse files
committed
Refactor: add function getPsigsFromInputFinalScripts
1 parent e484482 commit 06b38a7

File tree

2 files changed

+31
-28
lines changed

2 files changed

+31
-28
lines changed

src/psbt.js

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -629,20 +629,7 @@ function checkInputsForPartialSig(inputs, action) {
629629
let pSigs = [];
630630
if ((input.partialSig || []).length === 0) {
631631
if (!input.finalScriptSig && !input.finalScriptWitness) return;
632-
const scriptItems = !input.finalScriptSig
633-
? []
634-
: bscript.decompile(input.finalScriptSig) || [];
635-
const witnessItems = !input.finalScriptWitness
636-
? []
637-
: bscript.decompile(input.finalScriptWitness) || [];
638-
pSigs = scriptItems
639-
.concat(witnessItems)
640-
.filter(item => {
641-
return (
642-
Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item)
643-
);
644-
})
645-
.map(sig => ({ signature: sig }));
632+
pSigs = getPsigsFromInputFinalScripts(input);
646633
} else {
647634
pSigs = input.partialSig;
648635
}
@@ -918,6 +905,20 @@ function getPayment(script, scriptType, partialSig) {
918905
}
919906
return payment;
920907
}
908+
function getPsigsFromInputFinalScripts(input) {
909+
const scriptItems = !input.finalScriptSig
910+
? []
911+
: bscript.decompile(input.finalScriptSig) || [];
912+
const witnessItems = !input.finalScriptWitness
913+
? []
914+
: bscript.decompile(input.finalScriptWitness) || [];
915+
return scriptItems
916+
.concat(witnessItems)
917+
.filter(item => {
918+
return Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item);
919+
})
920+
.map(sig => ({ signature: sig }));
921+
}
921922
function getScriptFromInput(inputIndex, input, cache) {
922923
const unsignedTx = cache.__TX;
923924
const res = {

ts_src/psbt.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -798,20 +798,7 @@ function checkInputsForPartialSig(inputs: PsbtInput[], action: string): void {
798798
let pSigs: PartialSig[] = [];
799799
if ((input.partialSig || []).length === 0) {
800800
if (!input.finalScriptSig && !input.finalScriptWitness) return;
801-
const scriptItems = !input.finalScriptSig
802-
? []
803-
: bscript.decompile(input.finalScriptSig) || [];
804-
const witnessItems = !input.finalScriptWitness
805-
? []
806-
: bscript.decompile(input.finalScriptWitness) || [];
807-
pSigs = scriptItems
808-
.concat(witnessItems)
809-
.filter(item => {
810-
return (
811-
Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item)
812-
);
813-
})
814-
.map(sig => ({ signature: sig })) as PartialSig[];
801+
pSigs = getPsigsFromInputFinalScripts(input);
815802
} else {
816803
pSigs = input.partialSig!;
817804
}
@@ -1140,6 +1127,21 @@ function getPayment(
11401127
return payment!;
11411128
}
11421129

1130+
function getPsigsFromInputFinalScripts(input: PsbtInput): PartialSig[] {
1131+
const scriptItems = !input.finalScriptSig
1132+
? []
1133+
: bscript.decompile(input.finalScriptSig) || [];
1134+
const witnessItems = !input.finalScriptWitness
1135+
? []
1136+
: bscript.decompile(input.finalScriptWitness) || [];
1137+
return scriptItems
1138+
.concat(witnessItems)
1139+
.filter(item => {
1140+
return Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item);
1141+
})
1142+
.map(sig => ({ signature: sig })) as PartialSig[];
1143+
}
1144+
11431145
interface GetScriptReturn {
11441146
script: Buffer | null;
11451147
isSegwit: boolean;

0 commit comments

Comments
 (0)