Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

txscript: backport tokenizer from dcrd #1769

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
843d760
txscript: Add benchmark for CalcSignatureHash
davecgh Mar 13, 2019
47806df
txscript: Add benchmark for CalcWitnessSigHash
cfromknecht Feb 5, 2021
bcb9643
txscript: Add benchmark for script parsing.
davecgh Mar 13, 2019
c997417
txscript: Introduce zero-alloc script tokenizer.
davecgh Mar 13, 2019
0997842
txscript: Add benchmark for DisasmString.
davecgh Mar 13, 2019
f980c9a
txscript: Optimize script disasm.
davecgh Mar 13, 2019
af757d3
txscript: Introduce raw script sighash calc func.
cfromknecht Apr 19, 2019
c19535b
txscript: Optimize CalcSignatureHash.
davecgh Mar 13, 2019
c6f4caf
txscript/reference_test: Convert sighash calc test
cfromknecht Apr 19, 2019
583b740
txscript: Make isSmallInt accept raw opcode.
davecgh Mar 13, 2019
dfb1a67
txscript: Make asSmallInt accept raw opcode.
davecgh Mar 13, 2019
05aa488
txscript: Add benchmark for IsPayToPubKey
davecgh Mar 13, 2019
99cb679
txscript: Optimize IsPayToPubKey
cfromknecht Feb 4, 2021
2d2608c
txscript: Add benchmark for IsPayToPubKeyHash
cfromknecht Feb 4, 2021
c771f4f
txscript: Optimize IsPayToPubKeyHash
cfromknecht Feb 4, 2021
665c298
txscript: Add benchmark for IsPayToScriptHash.
davecgh Mar 13, 2019
215af7f
txscript: Optimize IsPayToScriptHash.
davecgh Mar 13, 2019
4d31d15
txscript: Add benchmarks for IsMutlsigScript.
davecgh Mar 13, 2019
0eaae26
txscript: Optimize IsMultisigScript.
davecgh Mar 13, 2019
02dab16
txscript: Add benchmarks for IsMutlsigSigScript.
davecgh Mar 13, 2019
34ebf0f
txscript: Optimize IsMultisigSigScript.
davecgh Mar 13, 2019
ce1513d
txscript: Add benchmark for IsPushOnlyScript.
davecgh Mar 13, 2019
2d5f7cf
txscript: Optimize IsPushOnlyScript.
davecgh Mar 13, 2019
e422d42
txscript: Add benchmark IsPayToWitnessPubkeyHash
cfromknecht Apr 19, 2019
54d08eb
txscript: Optimize IsPayToWitnessPubKeyHash
cfromknecht Feb 4, 2021
728ce10
txscript: Add benchmark for IsPayToWitnessScriptHash
cfromknecht Apr 19, 2019
55a6bb5
txscript: Optimize IsPayToWitnessScriptHash
cfromknecht Feb 4, 2021
e4118c9
txscript: Add benchmark for IsNullData
davecgh Mar 13, 2019
5f771c1
txscript: Optimize IsNullData
cfromknecht Feb 4, 2021
77660b7
txscript: Add benchmark for IsUnspendable.
davecgh Mar 13, 2019
e98b7c1
txscript: Optimize IsUnspendable.
davecgh Mar 13, 2019
549a1f2
txscript/engine: Optimize new engine push only script
cfromknecht Apr 19, 2019
a59e01c
txscript/engine: Use optimized IsPushOnlyScript
cfromknecht Apr 19, 2019
1be3450
txscript/engine: Use optimized isScriptHashScript
cfromknecht Apr 19, 2019
98dd6a9
txscript/engine: Check ps2h push before parsing script
cfromknecht Apr 19, 2019
8316a06
txscript: Add benchmark for GetSigOpCount.
davecgh Mar 13, 2019
4d5c0b2
txscript: Optimize GetSigOpCount.
davecgh Mar 13, 2019
cc802d1
txscript: Add benchmark for GetPreciseSigOpCount.
davecgh Mar 13, 2019
a4a21c0
txscript: Optimize GetPreciseSigOpCount.
davecgh Mar 13, 2019
26d63c6
txscript: add GetWitnessSigOpCountBenchmarks
cfromknecht Feb 4, 2021
77863f5
txscript: Optimize GetWitnessSigOpCount
cfromknecht Feb 4, 2021
69d560c
txscript: Add benchmark for GetScriptClass.
davecgh Mar 13, 2019
9b06388
txscript: Make typeOfScript accept raw script.
davecgh Mar 13, 2019
3b86e0a
txscript: Optimize typeOfScript pay-to-script-hash.
davecgh Mar 13, 2019
671b5fe
txscript: Remove unused isScriptHash function.
davecgh Mar 13, 2019
71bf51e
txscript: Optimize typeOfScript multisig.
davecgh Mar 13, 2019
6e86f0d
txscript: Remove unused isMultiSig function.
davecgh Mar 13, 2019
8b64adc
txscript: Optimze typeOfScript pay-to-pubkey
cfromknecht Feb 4, 2021
1133ea0
txscript: Remove unused isPubkey function.
davecgh Mar 13, 2019
13f6462
txscript: Optimize typeOfScript pay-to-pubkey-hash.
davecgh Mar 13, 2019
d02f97e
txscript: Remove unused isPubkeyHash function.
davecgh Mar 13, 2019
d80863d
txscript: Optimize typeOfScript for null data scripts
cfromknecht Feb 4, 2021
78046b3
txscript: Remove unused isNullData function.
davecgh Mar 13, 2019
847a262
txscript: Optimize typeOfScript witness-pubkey-hash
cfromknecht Apr 19, 2019
1a60e11
txscript: Optimize typeOfScript for witness-script-hash
cfromknecht Apr 19, 2019
43846b1
txscript: Remove unused isWitnessScriptHash
cfromknecht Apr 19, 2019
705d24c
txscript: Convert CalcScriptInfo.
davecgh Mar 13, 2019
6c212fd
txscript: Remove unused isPushOnly function.
davecgh Mar 13, 2019
8c54905
txscript: Remove unused getSigOpCount function.
davecgh Mar 13, 2019
7791f92
txscript: Optimize CalcMultiSigStats.
davecgh Mar 13, 2019
c4f6302
txscript: Add benchmark for PushedData.
davecgh Mar 13, 2019
0a4f228
txscript: Optimize PushedData.
davecgh Mar 13, 2019
da9fdab
txscript: Make canonicalPush accept raw opcode.
davecgh Mar 13, 2019
81b8032
txscript: Add ExtractAtomicSwapDataPushes benches.
davecgh Mar 13, 2019
6ec9b73
txscript/scriptnum: add maxscriptnum and maxcltvlength
cfromknecht Apr 19, 2019
367a75a
txscript: Optimize ExtractAtomicSwapDataPushes.
davecgh Mar 13, 2019
33ee3e2
txscript: Add ExtractPkScriptAddrs benchmarks.
davecgh Mar 13, 2019
055be98
txscript: Optimize ExtractPkScriptAddrs scripthash.
davecgh Mar 13, 2019
16bd663
txscript: Optimize ExtractPkScriptAddrs pubkeyhash.
davecgh Mar 13, 2019
0e810b4
txscript: Optimize ExtractPkScriptAddrs pubkey.
davecgh Mar 13, 2019
0bc1825
txscript: Optimize ExtractPkScriptAddrs multisig.
davecgh Mar 13, 2019
507a4dc
txscript: Optimize ExtractPkScriptAddrs nulldata.
davecgh Mar 13, 2019
ae7fffb
txscript: Optimize ExtractPkScriptAddrs witness pubkey hash
cfromknecht Apr 20, 2019
a831522
txscript: Optimize ExtractPkScriptAddrs witness script hash
cfromknecht Apr 20, 2019
1034a66
txscript: Optimize ExtractPkScriptAddr assume non-standard if no success
cfromknecht Apr 20, 2019
6fb1c82
txscript: Optimize IsWitnessProgram
cfromknecht Apr 20, 2019
8b70634
txscript: Return witness version and program in one pass
cfromknecht Apr 20, 2019
4b03b59
txscript: Use internal analysis methods for GetWitnessSigOpCount
cfromknecht Feb 5, 2021
d410d7d
txscript: Optimize ExtractWitnessProgramInfo
cfromknecht Apr 20, 2019
7ad3a10
txscript: mergeMultiSig function def order cleanup.
davecgh Mar 13, 2019
dd609d6
txscript: Introduce calcWitnessSignatureHashRaw
cfromknecht Apr 19, 2019
ed9e17a
txscript: Remove unused isWitnessPubKeyHash
cfromknecht Apr 20, 2019
e00fec1
txscript: Use optimized calcWitnessSignatureHashRaw w/o parsing
cfromknecht Apr 19, 2019
f3354be
txscript: Use raw scripts in SignTxOutput.
davecgh Mar 13, 2019
30874ff
txscript: Implement efficient opcode data removal.
davecgh Mar 13, 2019
a4720f3
txscript: Optimize removeOpcodeRaw
cfromknecht Apr 19, 2019
2ddcdb9
txscript: Remove unused removeOpcode
cfromknecht Apr 20, 2019
a2ab5b6
txscript: Use removeOpcodeRaw for CODESEP in calcSigHash
cfromknecht Apr 19, 2019
484f7b1
txscript: Make isDisabled accept raw opcode.
davecgh Mar 13, 2019
c641025
txscript: Make alwaysIllegal accept raw opcode.
davecgh Mar 13, 2019
62c608f
txscript: Make isConditional accept raw opcode.
davecgh Mar 13, 2019
710bd56
txscript: Make min push accept raw opcode and data.
davecgh Mar 13, 2019
54036e8
txscript: Convert to use non-parsed opcode disasm.
davecgh Mar 13, 2019
d6b968c
txscript: Refactor engine to use raw scripts.
davecgh Mar 13, 2019
06c8bea
txscript: Remove unused calcSignatureHash
cfromknecht Apr 20, 2019
03d1fb0
txscript: Remove unused isWitnessProgram
cfromknecht Apr 20, 2019
07ab66b
txscript: Remove unused removeOpcodeByData func.
davecgh Mar 13, 2019
911db90
txscript: Rename removeOpcodeByDataRaw func.
davecgh Mar 13, 2019
94e99cf
txscript: Rename calcSignatureHashRaw
cfromknecht Apr 20, 2019
69f3a39
txscript/sign: Use calcWitnessSigHashRaw for witness sigs
cfromknecht Apr 20, 2019
7533672
txscript/pkscript: Use finalOpcodeData to extract redeem script
cfromknecht Apr 20, 2019
6e5fbf8
txscript: Remove unused parseScript func.
davecgh Mar 13, 2019
e06b11a
txscript: Remove unused calcWitnessSignatureHash
cfromknecht Apr 20, 2019
491b7b5
txscript: Remove unused unparseScript func.
davecgh Mar 13, 2019
ca044fe
txscript: Remove unused parsedOpcode.bytes func.
davecgh Mar 13, 2019
595d379
txscript: Remove unused parseScriptTemplate func.
davecgh Mar 13, 2019
ef3d06e
txscript: Make executeOpcode take opcode and data.
davecgh Mar 13, 2019
b95ba0a
txscript: Make op callbacks take opcode and data.
davecgh Mar 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions txscript/README.md
Expand Up @@ -37,6 +37,10 @@ $ go get -u github.com/btcsuite/btcd/txscript
* [Manually Signing a Transaction Output](https://pkg.go.dev/github.com/btcsuite/btcd/txscript#example-SignTxOutput)
Demonstrates manually creating and signing a redeem transaction.

* [Counting Opcodes in Scripts](http://godoc.org/github.com/decred/dcrd/txscript#example-ScriptTokenizer)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is trivial to add to the PR right? Might be better to just include the code snippet here and link it.

Or maybe just link toExampleScriptTokenizer() in txscript/example_test.go since that looks like the exact same thing

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm lean towards adding link to the example code here. @kcalvinalvin maybe we can do that as a sep. PR.

Demonstrates creating a script tokenizer instance and using it to count the
number of opcodes a script contains.

## GPG Verification Key

All official release tags are signed by Conformal so users can ensure the code
Expand Down