Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
c8aabe6
script: val64 implementation.
rustyrussell Nov 8, 2024
0cb3f84
script: valtype_stack implementation, script stack wrapper that inter…
jmoik Oct 14, 2025
a152af8
script: add new tapscript_v2 constants
jmoik Oct 14, 2025
1539f29
script/val64: replace Span with std::span, add OP_MIN and OP_MAX, inl…
jmoik Oct 14, 2025
d52f06a
script/interpreter: add TAPROOT_LEAF_TAPSCRIPT_V2 = 0xc2
jmoik Oct 14, 2025
26e54d5
script: add sigversion argument to IsOpSuccess for tapscript_v2 suppo…
jmoik Oct 14, 2025
711c474
script: add tapscript_v2 specific ScriptError cases
jmoik Oct 14, 2025
9c6d3ef
build: update CMakeLists with valtype_stack and val64
jmoik Oct 14, 2025
411a70d
validation: add varops_budget to CScriptCheck
jmoik Oct 14, 2025
a32f3ad
script/interpreter: add varops_budget argument to VerifyScript()
jmoik Oct 14, 2025
59b4072
script/interpreter: add varops_budget argument to VerifyWitnessProgram()
jmoik Oct 14, 2025
30b136b
script/interpreter: add varops_budget argument to ExecuteWitnessScrip…
jmoik Oct 14, 2025
adaa68a
script/interpreter: add tapscript_v2 stack size limit checks in Execu…
jmoik Oct 14, 2025
daa54c9
script/interpreter: interpret final onstack value as unsigned in taps…
jmoik Oct 14, 2025
66cbb70
script/interpreter: extend EvalChecksigTapscript() by SigVersion::TAP…
jmoik Oct 14, 2025
ac49485
script/interpreter: add SigVersion::TAPSCRIPT_V2 to SignatureHashSchn…
jmoik Oct 14, 2025
71a61d0
script/interpreter: adjust IsOpSuccess() call with sigversion to enab…
jmoik Oct 14, 2025
e8e1183
script/interpreter: add includes for valtype_stack and val64, add pop…
jmoik Oct 14, 2025
b4bcbc8
script/interpreter: copy EvalScript() and add varops_budget argument,…
jmoik Oct 14, 2025
eb5c800
script/interpreter: remove new inquisition opcodes from the copied ta…
jmoik Jan 30, 2026
c10fa0b
script/interpreter: remove dead code from the new EvalScript() overlo…
jmoik Oct 14, 2025
9d15127
script/interpreter: replace nested vector with ValtypeStack type, add…
jmoik Oct 16, 2025
840f591
script/interpreter: OP_1NEGATE is OP_SUCCESS
jmoik Oct 16, 2025
efb344d
script/interpreter: Tapscript v2: interpret numbers as varnums not CS…
jmoik Oct 17, 2025
0d423f8
script/interpreter: add varcost to following push operations: OP_TOAL…
jmoik Oct 17, 2025
e9c40cd
script/interpreter: add varcost and output numbers as varnums not CSc…
jmoik Oct 17, 2025
e850c68
script/interpreter: enable OP_IF and OP_NOTIF for tapscript_v2 and re…
jmoik Oct 17, 2025
a650836
script/interpreter: use std::rotate instead of double swap for OP_ROT…
jmoik Oct 17, 2025
ff93322
script/interpreter: use val64 operations for following opcodes: OP_1A…
jmoik Oct 17, 2025
7c976ae
script/interpreter: use val64 operations for following opcodes: OP_AD…
jmoik Oct 17, 2025
75eafed
script/interpreter: OP_RIPEMD160 and OP_SHA1 in tapscript_v2 are defi…
jmoik Oct 17, 2025
2c8ae8a
script/interpreter: add varcost to OP_EQUAL, OP_EQUALVERIFY, OP_CHECK…
jmoik Oct 17, 2025
12488df
script/interpreter: restore disabled opcodes in tapscript_v2:
jmoik Oct 17, 2025
651ac62
script/interpreter: remove unused variable nOpCount in tapscript_v2
jmoik Oct 17, 2025
c391020
script/interpreter: update size limits and enforce varops_budget for …
jmoik Oct 17, 2025
9fcbea0
make ECC_Start and ECC_Stop members of KeyPair for compile
jmoik Mar 19, 2025
b87fd2e
script/interpreter: fix script result check for tapscript_v2
jmoik Oct 24, 2025
0c301e4
policy: add MAX_STANDARD_TAPSCRIPT_V2_STACK_ITEM_SIZE
jmoik Oct 24, 2025
7744505
script/sign: add TAPROOT_LEAF_TAPSCRIPT_V2 to SignTaprootScript()
jmoik Oct 24, 2025
eb8eee2
script/interpreter: use std::move for OP_TOALTSTACK and OP_FROMALTSTA…
jmoik Oct 24, 2025
48fa328
test: simple Val64 class tests. These compare simple values, then ran…
jmoik Oct 28, 2025
f438029
benchmarks: add new benchmarks.
jmoik Oct 28, 2025
970e140
test: add json test vectors for varops costs and restored opcodes, ad…
jmoik Oct 31, 2025
179a99b
bench: add bench_varops
jmoik Nov 7, 2025
2e83239
build: update CMakeLists bench and test
jmoik Nov 7, 2025
763f3f4
bench: tidy: emove benchmarks returning script errors
jmoik Nov 21, 2025
bb9e530
test: gsr_tests: add PrintStackComparison(), expand json with stack m…
jmoik Nov 29, 2025
6507d43
bench: add IsGsrOnly bool and add new worst case bench with 3DUP_RIPE…
jmoik Dec 14, 2025
c2b6956
script: fix function signatures for compilation
jmoik Jan 9, 2026
bc4f0f6
util: add tapscript_v2 to sigver2str
jmoik Jan 9, 2026
290b776
cmake: remove non existing obfuscation.cpp from CMakeList
jmoik Jan 9, 2026
63d5a12
test: add functional tests for tapscript v2
jmoik Jan 12, 2026
63e3f80
bench: increase varops budget of BenchEvalScript
jmoik Jan 12, 2026
17b8cb4
script and test: add Val64::suppress_alignment_warnings for misalignm…
jmoik Jan 12, 2026
cc1da7b
script/val64: replace #if with #ifdef to fix compiler warnings
jmoik Jan 9, 2026
deb182e
script/interpreter: add TAPSCRIPT_V2 path to ExecuteWitnessScript
jmoik Jan 12, 2026
5e9183e
test: add wallet options to tapscript v2 feature test
jmoik Jan 12, 2026
b4bfcc2
script/interpreter: fix OP_SUBSTR including incorrect tests
jmoik Jan 16, 2026
1c97447
build: fix method signature issues after rebasing onto master
jmoik Jan 16, 2026
38ba205
build: fix CI
jmoik Jan 19, 2026
881a8a2
script/interpreter: restore disabled opcodes in tapscript_v2
jmoik Jan 20, 2026
4420128
bench/bench_varops: add additional benchmarks for shift ops
jmoik Jan 20, 2026
ae92c99
script/val64: fix const on pass-by-value parameters
jmoik Jan 21, 2026
f1d1ba0
bench/build: add missing priority levels in benchmarks
jmoik Jan 21, 2026
9edfa62
test: fix codeseparator_pos in tapscript_v2 feature test
jmoik Jan 21, 2026
8b0953a
build: inherit Val64 constructor for derived classes
jmoik Jan 21, 2026
16a5009
bench: add ScriptTemplate constructor for older compiler compatibility
jmoik Jan 22, 2026
f98204a
script/interpreter: rename the tapscript_v2 specific overload of Eval…
jmoik Jan 30, 2026
2c9e6ac
script/interpreter: tapscript v2: improve OP_TUCK performance with sw…
jmoik Feb 1, 2026
f76aec9
typos: fix typos in val64.cpp and val64_tests.cpp
jmoik Feb 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ add_library(bitcoin_consensus STATIC EXCLUDE_FROM_ALL
script/interpreter.cpp
script/script.cpp
script/script_error.cpp
script/valtype_stack.cpp
script/val64.cpp
uint256.cpp
)
target_link_libraries(bitcoin_consensus
Expand Down
18 changes: 18 additions & 0 deletions src/bench/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ add_executable(bench_bitcoin
disconnected_transactions.cpp
duplicate_inputs.cpp
ellswift.cpp
evalscript.cpp
examples.cpp
gcs_filter.cpp
hashpadding.cpp
Expand All @@ -34,6 +35,7 @@ add_executable(bench_bitcoin
mempool_eviction.cpp
mempool_stress.cpp
merkle_root.cpp
micro.cpp
parse_hex.cpp
peer_eviction.cpp
poly1305.cpp
Expand All @@ -48,10 +50,25 @@ add_executable(bench_bitcoin
streams_findbyte.cpp
strencodings.cpp
util_time.cpp
val64.cpp
verify_script.cpp
xor.cpp
)

add_executable(bench_varops
bench_varops.cpp
bench.cpp
nanobench.cpp
)

target_link_libraries(bench_varops
core_interface
test_util
bitcoin_node
secp256k1
Boost::headers
)

include(TargetDataSources)
target_raw_data_sources(bench_bitcoin NAMESPACE benchmark::data
data/block413567.raw
Expand All @@ -61,6 +78,7 @@ target_link_libraries(bench_bitcoin
core_interface
test_util
bitcoin_node
secp256k1
Boost::headers
)

Expand Down
Loading