Skip to content

Commit 556716c

Browse files
authored
Merge pull request #1695 from evoskuil/master
Don't validate clean stack for taproot prevalid, refactor.
2 parents 2e03c7b + 2c7b350 commit 556716c

24 files changed

+300
-111
lines changed

Makefile.am

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ test_libbitcoin_system_test_SOURCES = \
237237
test/chain/script.hpp \
238238
test/chain/stripper.cpp \
239239
test/chain/taproot.cpp \
240+
test/chain/tapscript.cpp \
240241
test/chain/transaction.cpp \
241242
test/chain/witness.cpp \
242243
test/chain/enums/opcode.cpp \
@@ -476,6 +477,7 @@ include_bitcoin_system_chain_HEADERS = \
476477
include/bitcoin/system/chain/script.hpp \
477478
include/bitcoin/system/chain/stripper.hpp \
478479
include/bitcoin/system/chain/taproot.hpp \
480+
include/bitcoin/system/chain/tapscript.hpp \
479481
include/bitcoin/system/chain/transaction.hpp \
480482
include/bitcoin/system/chain/witness.hpp
481483

@@ -607,6 +609,7 @@ include_bitcoin_system_impl_chain_HEADERS = \
607609
include/bitcoin/system/impl/chain/compact.ipp \
608610
include/bitcoin/system/impl/chain/operation_patterns.ipp \
609611
include/bitcoin/system/impl/chain/script_patterns.ipp \
612+
include/bitcoin/system/impl/chain/tapscript.ipp \
610613
include/bitcoin/system/impl/chain/transaction_patterns.ipp \
611614
include/bitcoin/system/impl/chain/witness_patterns.ipp
612615

builds/cmake/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,7 @@ if (with-tests)
712712
"../../test/chain/script.hpp"
713713
"../../test/chain/stripper.cpp"
714714
"../../test/chain/taproot.cpp"
715+
"../../test/chain/tapscript.cpp"
715716
"../../test/chain/transaction.cpp"
716717
"../../test/chain/witness.cpp"
717718
"../../test/chain/enums/opcode.cpp"

builds/msvc/vs2022/libbitcoin-system-test/libbitcoin-system-test.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@
141141
<ClCompile Include="..\..\..\..\test\chain\script.cpp" />
142142
<ClCompile Include="..\..\..\..\test\chain\stripper.cpp" />
143143
<ClCompile Include="..\..\..\..\test\chain\taproot.cpp" />
144+
<ClCompile Include="..\..\..\..\test\chain\tapscript.cpp" />
144145
<ClCompile Include="..\..\..\..\test\chain\transaction.cpp" />
145146
<ClCompile Include="..\..\..\..\test\chain\witness.cpp" />
146147
<ClCompile Include="..\..\..\..\test\config\base16.cpp" />

builds/msvc/vs2022/libbitcoin-system-test/libbitcoin-system-test.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@
165165
<ClCompile Include="..\..\..\..\test\chain\taproot.cpp">
166166
<Filter>src\chain</Filter>
167167
</ClCompile>
168+
<ClCompile Include="..\..\..\..\test\chain\tapscript.cpp">
169+
<Filter>src\chain</Filter>
170+
</ClCompile>
168171
<ClCompile Include="..\..\..\..\test\chain\transaction.cpp">
169172
<Filter>src\chain</Filter>
170173
</ClCompile>

builds/msvc/vs2022/libbitcoin-system/libbitcoin-system.vcxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@
325325
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\script.hpp" />
326326
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\stripper.hpp" />
327327
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\taproot.hpp" />
328+
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\tapscript.hpp" />
328329
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\transaction.hpp" />
329330
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\witness.hpp" />
330331
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base16.hpp" />
@@ -584,6 +585,7 @@
584585
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\compact.ipp" />
585586
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\operation_patterns.ipp" />
586587
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\script_patterns.ipp" />
588+
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\tapscript.ipp" />
587589
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\transaction_patterns.ipp" />
588590
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\witness_patterns.ipp" />
589591
<None Include="..\..\..\..\include\bitcoin\system\impl\data\array_cast.ipp" />

builds/msvc/vs2022/libbitcoin-system/libbitcoin-system.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,9 @@
722722
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\taproot.hpp">
723723
<Filter>include\bitcoin\system\chain</Filter>
724724
</ClInclude>
725+
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\tapscript.hpp">
726+
<Filter>include\bitcoin\system\chain</Filter>
727+
</ClInclude>
725728
<ClInclude Include="..\..\..\..\include\bitcoin\system\chain\transaction.hpp">
726729
<Filter>include\bitcoin\system\chain</Filter>
727730
</ClInclude>
@@ -1495,6 +1498,9 @@
14951498
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\script_patterns.ipp">
14961499
<Filter>include\bitcoin\system\impl\chain</Filter>
14971500
</None>
1501+
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\tapscript.ipp">
1502+
<Filter>include\bitcoin\system\impl\chain</Filter>
1503+
</None>
14981504
<None Include="..\..\..\..\include\bitcoin\system\impl\chain\transaction_patterns.ipp">
14991505
<Filter>include\bitcoin\system\impl\chain</Filter>
15001506
</None>

include/bitcoin/system.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
#include <bitcoin/system/chain/script.hpp>
4949
#include <bitcoin/system/chain/stripper.hpp>
5050
#include <bitcoin/system/chain/taproot.hpp>
51+
#include <bitcoin/system/chain/tapscript.hpp>
5152
#include <bitcoin/system/chain/transaction.hpp>
5253
#include <bitcoin/system/chain/witness.hpp>
5354
#include <bitcoin/system/chain/enums/coverage.hpp>

include/bitcoin/system/chain/annex.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ class BC_API annex
4242
inline const hash_digest hash() const NOEXCEPT;
4343
inline operator bool() const NOEXCEPT;
4444

45+
/// The stack adheres to the annex pattern [bip341].
46+
static constexpr bool is_annex_pattern(const chunk_cptrs& stack) NOEXCEPT;
47+
4548
protected:
4649
static inline chunk_cptr from_stack(const chunk_cptrs& stack) NOEXCEPT;
4750

@@ -55,4 +58,6 @@ class BC_API annex
5558
} // namespace system
5659
} // namespace libbitcoin
5760

61+
#include <bitcoin/system/impl/chain/annex.ipp>
62+
5863
#endif

include/bitcoin/system/chain/block.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232

3333
namespace libbitcoin {
3434
namespace system {
35-
3635
namespace chain {
3736

3837
class BC_API block

include/bitcoin/system/chain/chain.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
#include <bitcoin/system/chain/script.hpp>
4747
#include <bitcoin/system/chain/stripper.hpp>
4848
#include <bitcoin/system/chain/taproot.hpp>
49+
#include <bitcoin/system/chain/tapscript.hpp>
4950
#include <bitcoin/system/chain/transaction.hpp>
5051
#include <bitcoin/system/chain/witness.hpp>
5152

0 commit comments

Comments
 (0)