Browse Source

Refactor: add function getPsigsFromInputFinalScripts

psbt-tx-getters
junderw 6 years ago
parent
commit
06b38a7d83
No known key found for this signature in database GPG Key ID: B256185D3A971908
  1. 29
      src/psbt.js
  2. 30
      ts_src/psbt.ts

29
src/psbt.js

@ -629,20 +629,7 @@ function checkInputsForPartialSig(inputs, action) {
let pSigs = []; let pSigs = [];
if ((input.partialSig || []).length === 0) { if ((input.partialSig || []).length === 0) {
if (!input.finalScriptSig && !input.finalScriptWitness) return; if (!input.finalScriptSig && !input.finalScriptWitness) return;
const scriptItems = !input.finalScriptSig pSigs = getPsigsFromInputFinalScripts(input);
? []
: bscript.decompile(input.finalScriptSig) || [];
const witnessItems = !input.finalScriptWitness
? []
: bscript.decompile(input.finalScriptWitness) || [];
pSigs = scriptItems
.concat(witnessItems)
.filter(item => {
return (
Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item)
);
})
.map(sig => ({ signature: sig }));
} else { } else {
pSigs = input.partialSig; pSigs = input.partialSig;
} }
@ -918,6 +905,20 @@ function getPayment(script, scriptType, partialSig) {
} }
return payment; return payment;
} }
function getPsigsFromInputFinalScripts(input) {
const scriptItems = !input.finalScriptSig
? []
: bscript.decompile(input.finalScriptSig) || [];
const witnessItems = !input.finalScriptWitness
? []
: bscript.decompile(input.finalScriptWitness) || [];
return scriptItems
.concat(witnessItems)
.filter(item => {
return Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item);
})
.map(sig => ({ signature: sig }));
}
function getScriptFromInput(inputIndex, input, cache) { function getScriptFromInput(inputIndex, input, cache) {
const unsignedTx = cache.__TX; const unsignedTx = cache.__TX;
const res = { const res = {

30
ts_src/psbt.ts

@ -798,20 +798,7 @@ function checkInputsForPartialSig(inputs: PsbtInput[], action: string): void {
let pSigs: PartialSig[] = []; let pSigs: PartialSig[] = [];
if ((input.partialSig || []).length === 0) { if ((input.partialSig || []).length === 0) {
if (!input.finalScriptSig && !input.finalScriptWitness) return; if (!input.finalScriptSig && !input.finalScriptWitness) return;
const scriptItems = !input.finalScriptSig pSigs = getPsigsFromInputFinalScripts(input);
? []
: bscript.decompile(input.finalScriptSig) || [];
const witnessItems = !input.finalScriptWitness
? []
: bscript.decompile(input.finalScriptWitness) || [];
pSigs = scriptItems
.concat(witnessItems)
.filter(item => {
return (
Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item)
);
})
.map(sig => ({ signature: sig })) as PartialSig[];
} else { } else {
pSigs = input.partialSig!; pSigs = input.partialSig!;
} }
@ -1140,6 +1127,21 @@ function getPayment(
return payment!; return payment!;
} }
function getPsigsFromInputFinalScripts(input: PsbtInput): PartialSig[] {
const scriptItems = !input.finalScriptSig
? []
: bscript.decompile(input.finalScriptSig) || [];
const witnessItems = !input.finalScriptWitness
? []
: bscript.decompile(input.finalScriptWitness) || [];
return scriptItems
.concat(witnessItems)
.filter(item => {
return Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item);
})
.map(sig => ({ signature: sig })) as PartialSig[];
}
interface GetScriptReturn { interface GetScriptReturn {
script: Buffer | null; script: Buffer | null;
isSegwit: boolean; isSegwit: boolean;

Loading…
Cancel
Save