Skip to content

Commit d78604d

Browse files
committed
Merge 2534141 into merged_master (Elements PR ElementsProject#1219)
2 parents bf18cb4 + 2534141 commit d78604d

File tree

129 files changed

+52697
-22
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+52697
-22
lines changed

Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ LCOV_FILTER_PATTERN = \
179179
-p "src/crypto/ctaes" \
180180
-p "src/minisketch" \
181181
-p "src/secp256k1" \
182+
-p "src/simplicity/secp256k1" \
182183
-p "depends"
183184

184185
DIR_FUZZ_SEED_CORPUS ?= qa-assets/fuzz_seed_corpus

build_msvc/bitcoin.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbitcoin_wallet_tool", "l
3838
EndProject
3939
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsecp256k1", "libsecp256k1\libsecp256k1.vcxproj", "{BB493552-3B8C-4A8C-BF69-A6E7A51D2EA6}"
4040
EndProject
41+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libelementssimplicity", "libelementssimplicity\libelementssimplicity.vcxproj", "{ABAE25F0-D700-46E1-9EF6-5D6DDFCF8B26}"
42+
EndProject
4143
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libleveldb", "libleveldb\libleveldb.vcxproj", "{18430FEF-6B61-4C53-B396-718E02850F1B}"
4244
EndProject
4345
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbitcoin_qt", "libbitcoin_qt\libbitcoin_qt.vcxproj", "{2B4ABFF8-D1FD-4845-88C9-1F3C0A6512BF}"
@@ -128,6 +130,10 @@ Global
128130
{BB493552-3B8C-4A8C-BF69-A6E7A51D2EA6}.Debug|x64.Build.0 = Debug|x64
129131
{BB493552-3B8C-4A8C-BF69-A6E7A51D2EA6}.Release|x64.ActiveCfg = Release|x64
130132
{BB493552-3B8C-4A8C-BF69-A6E7A51D2EA6}.Release|x64.Build.0 = Release|x64
133+
{ABAE25F0-D700-46E1-9EF6-5D6DDFCF8B26}.Debug|x64.ActiveCfg = Debug|x64
134+
{ABAE25F0-D700-46E1-9EF6-5D6DDFCF8B26}.Debug|x64.Build.0 = Debug|x64
135+
{ABAE25F0-D700-46E1-9EF6-5D6DDFCF8B26}.Release|x64.ActiveCfg = Release|x64
136+
{ABAE25F0-D700-46E1-9EF6-5D6DDFCF8B26}.Release|x64.Build.0 = Release|x64
131137
{18430FEF-6B61-4C53-B396-718E02850F1B}.Debug|x64.ActiveCfg = Debug|x64
132138
{18430FEF-6B61-4C53-B396-718E02850F1B}.Debug|x64.Build.0 = Debug|x64
133139
{18430FEF-6B61-4C53-B396-718E02850F1B}.Release|x64.ActiveCfg = Release|x64

build_msvc/common.init.vcxproj.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@
9090
<AdditionalOptions>/utf-8 /Zc:__cplusplus /std:c++20 %(AdditionalOptions)</AdditionalOptions>
9191
<DisableSpecificWarnings>4018;4244;4267;4334;4715;4805;4834</DisableSpecificWarnings>
9292
<TreatWarningAsError>true</TreatWarningAsError>
93-
<PreprocessorDefinitions>SECP256K1_STATIC;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
94-
<AdditionalIncludeDirectories>..\..\src;..\..\src\minisketch\include;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
93+
<PreprocessorDefinitions>SECP256K1_STATIC;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
94+
<AdditionalIncludeDirectories>..\..\src;..\..\src\minisketch\include;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\simplicity\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
9595
</ClCompile>
9696
<Link>
9797
<SubSystem>Console</SubSystem>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\common.init.vcxproj" />
4+
<PropertyGroup Label="Globals">
5+
<ProjectGuid>{ABAE25F0-D700-46E1-9EF6-5D6DDFCF8B26}</ProjectGuid>
6+
</PropertyGroup>
7+
<PropertyGroup Label="Configuration">
8+
<ConfigurationType>StaticLibrary</ConfigurationType>
9+
</PropertyGroup>
10+
<ItemGroup>
11+
<ClCompile Include="..\..\src\simplicity\bitstream.c" />
12+
<ClCompile Include="..\..\src\simplicity\cmr.c" />
13+
<ClCompile Include="..\..\src\simplicity\dag.c" />
14+
<ClCompile Include="..\..\src\simplicity\deserialize.c" />
15+
<ClCompile Include="..\..\src\simplicity\eval.c" />
16+
<ClCompile Include="..\..\src\simplicity\frame.c" />
17+
<ClCompile Include="..\..\src\simplicity\jets-secp256k1.c" />
18+
<ClCompile Include="..\..\src\simplicity\jets.c" />
19+
<ClCompile Include="..\..\src\simplicity\rsort.c" />
20+
<ClCompile Include="..\..\src\simplicity\sha256.c" />
21+
<ClCompile Include="..\..\src\simplicity\type.c" />
22+
<ClCompile Include="..\..\src\simplicity\typeInference.c" />
23+
<ClCompile Include="..\..\src\simplicity\primitive\elements\env.c" />
24+
<ClCompile Include="..\..\src\simplicity\primitive\elements\exec.c" />
25+
<ClCompile Include="..\..\src\simplicity\primitive\elements\elementsJets.c" />
26+
<ClCompile Include="..\..\src\simplicity\primitive\elements\ops.c" />
27+
<ClCompile Include="..\..\src\simplicity\primitive\elements\primitive.c" />
28+
</ItemGroup>
29+
<ItemDefinitionGroup>
30+
<ClCompile>
31+
<LanguageStandard_C>stdc11</LanguageStandard_C>
32+
<DisableSpecificWarnings>4090;4146;4244;4715</DisableSpecificWarnings>
33+
</ClCompile>
34+
</ItemDefinitionGroup>
35+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
36+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
37+
<Import Project="..\common.vcxproj" />
38+
</Project>

build_msvc/test_bitcoin/test_bitcoin.vcxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@
5656
<ProjectReference Include="..\libsecp256k1\libsecp256k1.vcxproj">
5757
<Project>{bb493552-3b8c-4a8c-bf69-a6e7a51d2ea6}</Project>
5858
</ProjectReference>
59+
<ProjectReference Include="..\libelementssimplicity\libelementssimplicity.vcxproj">
60+
<Project>{abae25f0-d700-46e1-9ef6-5d6ddfcf8b26}</Project>
61+
</ProjectReference>
5962
<ProjectReference Include="..\libleveldb\libleveldb.vcxproj">
6063
<Project>{18430fef-6b61-4c53-b396-718e02850f1b}</Project>
6164
</ProjectReference>

ci/lint/06_script.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export COMMIT_RANGE
1717
# check with -r to not have to fetch all the remotes.
1818
test/lint/git-subtree-check.sh src/crypto/ctaes
1919
test/lint/git-subtree-check.sh src/secp256k1
20+
test/lint/git-subtree-check.sh src/simplicity
2021
test/lint/git-subtree-check.sh src/minisketch
2122
test/lint/git-subtree-check.sh src/leveldb
2223
test/lint/git-subtree-check.sh src/crc32c

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ if test "$use_lcov" = "yes"; then
896896

897897
AX_CHECK_LINK_FLAG([--coverage], [CORE_LDFLAGS="$CORE_LDFLAGS --coverage"],
898898
[AC_MSG_ERROR([lcov testing requested but --coverage linker flag does not work])])
899-
AX_CHECK_COMPILE_FLAG([--coverage],[CORE_CXXFLAGS="$CORE_CXXFLAGS --coverage"],
899+
AX_CHECK_COMPILE_FLAG([--coverage],[CORE_CXXFLAGS="$CORE_CXXFLAGS --coverage";CFLAGS="$CFLAGS --coverage"],
900900
[AC_MSG_ERROR([lcov testing requested but --coverage flag does not work])])
901901
dnl If coverage is enabled, and the user hasn't overridden CXXFLAGS, clear
902902
dnl them, to prevent autoconfs "-g -O2" being added. Otherwise we'd end up

src/Makefile.am

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ TESTS =
2424
BENCHMARKS =
2525

2626
BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) $(LEVELDB_CPPFLAGS)
27+
BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) -I$(srcdir)/$(ELEMENTS_SIMPLICITY_INCLUDE_DIR_INT) $(BDB_CPPFLAGS) $(LEVELDB_CPPFLAGS)
2728

2829
LIBBITCOIN_NODE=libbitcoin_node.a
2930
LIBBITCOIN_COMMON=libbitcoin_common.a
@@ -779,7 +780,8 @@ elements_bin_ldadd = \
779780
$(LIBBITCOIN_CRYPTO) \
780781
$(LIBLEVELDB) \
781782
$(LIBMEMENV) \
782-
$(LIBSECP256K1)
783+
$(LIBSECP256K1) \
784+
$(LIBELEMENTSSIMPLICITY)
783785

784786
elements_bin_ldadd += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS)
785787

@@ -830,7 +832,8 @@ elements_tx_LDADD = \
830832
$(LIBBITCOIN_UTIL) \
831833
$(LIBBITCOIN_CONSENSUS) \
832834
$(LIBBITCOIN_CRYPTO) \
833-
$(LIBSECP256K1)
835+
$(LIBSECP256K1) \
836+
$(LIBELEMENTSSIMPLICITY)
834837
#
835838

836839
# bitcoin-wallet binary #
@@ -848,6 +851,7 @@ elements_wallet_LDADD = \
848851
$(LIBBITCOIN_CONSENSUS) \
849852
$(LIBBITCOIN_CRYPTO) \
850853
$(LIBSECP256K1) \
854+
$(LIBELEMENTSSIMPLICITY) \
851855
$(BDB_LIBS) \
852856
$(EVENT_LIBS) \
853857
$(LIBLEVELDB) \
@@ -876,7 +880,8 @@ elements_util_LDADD = \
876880
$(LIBUNIVALUE) \
877881
$(LIBBITCOIN_CONSENSUS) \
878882
$(LIBBITCOIN_CRYPTO) \
879-
$(LIBSECP256K1)
883+
$(LIBSECP256K1) \
884+
$(LIBELEMENTSSIMPLICITY)
880885
#
881886

882887
# bitcoin-chainstate binary #
@@ -1039,8 +1044,8 @@ include_HEADERS = script/bitcoinconsensus.h
10391044
libelementsconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES) $(libelements_consensus_a_SOURCES)
10401045

10411046
libelementsconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
1042-
libelementsconsensus_la_LIBADD = $(LIBSECP256K1)
1043-
libelementsconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL
1047+
libelementsconsensus_la_LIBADD = $(LIBSECP256K1) $(LIBELEMENTSSIMPLICITY)
1048+
libelementsconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -I$(srcdir)/$(ELEMENTS_SIMPLICITY_INCLUDE_DIR_INT) -DBUILD_BITCOIN_INTERNAL
10441049
libelementsconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
10451050

10461051
endif
@@ -1176,3 +1181,5 @@ include Makefile.qttest.include
11761181
endif
11771182

11781183
include Makefile.univalue.include
1184+
1185+
include Makefile.elementssimplicity.include

src/Makefile.bench.include

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ bench_bench_bitcoin_LDADD = \
6464
$(LIBLEVELDB) \
6565
$(LIBMEMENV) \
6666
$(LIBSECP256K1) \
67+
$(LIBELEMENTSSIMPLICITY) \
6768
$(LIBUNIVALUE) \
6869
$(EVENT_PTHREADS_LIBS) \
6970
$(EVENT_LIBS)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
include simplicity/elements-sources.mk
2+
3+
LIBELEMENTSSIMPLICITY = libelementssimplicity.la
4+
noinst_LTLIBRARIES += $(LIBELEMENTSSIMPLICITY)
5+
libelementssimplicity_la_SOURCES = $(ELEMENTS_SIMPLICITY_LIB_SOURCES_INT) $(ELEMENTS_SIMPLICITY_DIST_HEADERS_INT) $(ELEMENTS_SIMPLICITY_LIB_HEADERS_INT)
6+
libelementssimplicity_la_CPPFLAGS = $(AM_CPPFLAGS) $(SHANI_CXXFLAGS) -I$(srcdir)/$(ELEMENTS_SIMPLICITY_INCLUDE_DIR_INT)

src/Makefile.qt.include

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ elements_qt_ldadd += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
331331
endif
332332
elements_qt_ldadd += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \
333333
$(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \
334-
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS)
334+
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS) $(LIBELEMENTSSIMPLICITY)
335335
elements_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
336336
elements_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX
337337

src/Makefile.qttest.include

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ qt_test_test_elements_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
5656
endif
5757
qt_test_test_elements_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \
5858
$(LIBMEMENV) $(QT_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) \
59-
$(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \
59+
$(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) $(LIBELEMENTSSIMPLICITY) \
6060
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS)
6161
qt_test_test_elements_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
6262
qt_test_test_elements_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)

src/Makefile.test.include

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ FUZZ_SUITE_LD_COMMON = \
4949
$(LIBLEVELDB) \
5050
$(LIBMEMENV) \
5151
$(LIBSECP256K1) \
52+
$(LIBELEMENTSSIMPLICITY) \
5253
$(MINISKETCH_LIBS) \
5354
$(EVENT_LIBS) \
5455
$(EVENT_PTHREADS_LIBS)
@@ -218,7 +219,7 @@ test_test_bitcoin_CPPFLAGS += $(BDB_CPPFLAGS)
218219
endif
219220

220221
test_test_bitcoin_LDADD += $(LIBBITCOIN_NODE) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \
221-
$(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) $(MINISKETCH_LIBS)
222+
$(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) $(LIBELEMENTSSIMPLICITY) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) $(MINISKETCH_LIBS)
222223
test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
223224

224225
test_test_bitcoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(SQLITE_LIBS)

src/chainparams.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,14 @@ class CMainParams : public CChainParams {
218218

219219
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000003404ba0801921119f903495e");
220220
consensus.defaultAssumeValid = uint256S("0x00000000000000000009c97098b5295f7e5f183ac811fb5d1534040adb93cabd"); // 751565
221+
// Simplicity
222+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
223+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
224+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
225+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
226+
227+
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000002927cdceccbd5209e81e80db");
228+
consensus.defaultAssumeValid = uint256S("0x000000000000000000052d314a259755ca65944e68df6b12a067ea8f1f5a7091"); // 724466
221229

222230
consensus.genesis_subsidy = 50*COIN;
223231
consensus.connect_genesis_outputs = false;
@@ -359,6 +367,14 @@ class CTestNetParams : public CChainParams {
359367

360368
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000076f6e7cbd0beade5d20");
361369
consensus.defaultAssumeValid = uint256S("0x0000000000000004877fa2d36316398528de4f347df2f8a96f76613a298ce060"); // 2344474
370+
// Simplicity
371+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
372+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
373+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
374+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
375+
376+
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000064728c7be6fe4b2f961");
377+
consensus.defaultAssumeValid = uint256S("0x00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7"); // 2143398
362378

363379
consensus.genesis_subsidy = 50*COIN;
364380
consensus.connect_genesis_outputs = false;
@@ -516,6 +532,12 @@ class SigNetParams : public CChainParams {
516532
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
517533
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
518534

535+
// Simplicity
536+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
537+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
538+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
539+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
540+
519541
// ELEMENTS: copied from Main
520542
consensus.genesis_subsidy = 50*COIN;
521543
consensus.connect_genesis_outputs = false;
@@ -608,6 +630,14 @@ class CRegTestParams : public CChainParams {
608630
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nPeriod = 128; // test ability to change from default
609631
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nThreshold = 128;
610632

633+
// Simplicity
634+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
635+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
636+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
637+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
638+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nPeriod = 128; // test ability to change from default
639+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nThreshold = 128;
640+
611641
consensus.nMinimumChainWork = uint256{};
612642
consensus.defaultAssumeValid = uint256{};
613643

@@ -1009,6 +1039,10 @@ class CLiquidTestNetParams : public CCustomParams {
10091039
base58Prefixes[BLINDED_ADDRESS] = std::vector<unsigned char>(1, 23);
10101040
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1, base58Prefixes[SECRET_KEY][0]);
10111041

1042+
// turn on Simplicity unconditionally on Liquid Testnet
1043+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
1044+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
1045+
10121046
// disable automatic dynafed
10131047
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nStartTime = 0;
10141048

@@ -1255,6 +1289,14 @@ class CLiquidV1Params : public CChainParams {
12551289
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nPeriod = 10080; // one week...
12561290
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nThreshold = 10080; // ...of 100% signalling
12571291

1292+
// Simplicity
1293+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
1294+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
1295+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
1296+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
1297+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nPeriod = 10080; // one week...
1298+
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nThreshold = 10080; // ...of 100% signalling
1299+
12581300
// Activated from block 1,000,000.
12591301
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].bit = 25;
12601302
// Allow blocksigners to delay activation.

src/consensus/params.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,11 @@ enum DeploymentPos : uint16_t {
3737
DEPLOYMENT_TESTDUMMY,
3838
DEPLOYMENT_TAPROOT, // Deployment of Schnorr/Taproot (BIPs 340-342)
3939
DEPLOYMENT_DYNA_FED, // Deployment of dynamic federation
40+
DEPLOYMENT_SIMPLICITY, // Deployment of Simplicity
4041
// NOTE: Also add new deployments to VersionBitsDeploymentInfo in deploymentinfo.cpp
4142
MAX_VERSION_BITS_DEPLOYMENTS
4243
};
43-
constexpr bool ValidDeployment(DeploymentPos dep) { return DEPLOYMENT_TESTDUMMY <= dep && dep <= DEPLOYMENT_DYNA_FED; }
44+
constexpr bool ValidDeployment(DeploymentPos dep) { return DEPLOYMENT_TESTDUMMY <= dep && dep < MAX_VERSION_BITS_DEPLOYMENTS; }
4445

4546
/**
4647
* Struct for each individual consensus rule change using BIP9.

src/deploymentinfo.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ const struct VBDeploymentInfo VersionBitsDeploymentInfo[Consensus::MAX_VERSION_B
1919
/*.name =*/ "dynafed",
2020
/*.gbt_force =*/ true,
2121
},
22+
{
23+
/*.name =*/ "simplicity",
24+
/*.gbt_force =*/ true,
25+
},
2226
};
2327

2428
std::string DeploymentName(Consensus::BuriedDeployment dep)

0 commit comments

Comments
 (0)