txscript: Optimize GetWitnessSigOpCount

This converts the GetWitnessSigOpCount function to use a combination of
raw script analysis and the new tokenizer instead of the far less
efficeint parseScript, thereby significantly optimizing the funciton.

In particular, it use the recently added countSigOpsv0 in precise mode
to avoid calling paseScript.
This commit is contained in:
Conner Fromknecht 2021-02-04 14:14:53 -08:00 committed by Roy Lee
parent 83442d60bf
commit 43e2a2acb2

View file

@ -955,8 +955,7 @@ func getWitnessSigOps(pkScript []byte, witness wire.TxWitness) int {
len(witness) > 0:
witnessScript := witness[len(witness)-1]
pops, _ := parseScript(witnessScript)
return getSigOpCount(pops, true)
return countSigOpsV0(witnessScript, true)
}
}