txscript: Optimze typeOfScript pay-to-pubkey

This continues the process of converting the typeOfScript function to
use a combination of raw script analysis and the new tokenizer instead
of the face less efficient parsed opcodes, with the intent of
significantly optimizing the function.

In particular, it converts the detection of pay-to-pubkey scripts to use
raw script analysis.
This commit is contained in:
Conner Fromknecht 2021-02-04 14:07:19 -08:00 committed by Olaoluwa Osuntokun
parent 6e86f0d09b
commit 8b64adc234
No known key found for this signature in database
GPG key ID: 3BBD59E99B280306

View file

@ -471,6 +471,8 @@ func typeOfScript(scriptVersion uint16, script []byte) ScriptClass {
} }
switch { switch {
case isPubKeyScript(script):
return PubKeyTy
case isScriptHashScript(script): case isScriptHashScript(script):
return ScriptHashTy return ScriptHashTy
case isMultisigScript(scriptVersion, script): case isMultisigScript(scriptVersion, script):
@ -482,9 +484,7 @@ func typeOfScript(scriptVersion uint16, script []byte) ScriptClass {
return NonStandardTy return NonStandardTy
} }
if isPubkey(pops) { if isPubkeyHash(pops) {
return PubKeyTy
} else if isPubkeyHash(pops) {
return PubKeyHashTy return PubKeyHashTy
} else if isWitnessPubKeyHash(pops) { } else if isWitnessPubKeyHash(pops) {
return WitnessV0PubKeyHashTy return WitnessV0PubKeyHashTy