Skip to content

Commit 24b0c47

Browse files
authored
Merge pull request #1794 from evoskuil/master
Refactor json serializers into their own files.
2 parents 7440479 + d42b2b4 commit 24b0c47

76 files changed

Lines changed: 2288 additions & 1030 deletions

Some content is hidden

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

Makefile.am

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,17 @@ src_libbitcoin_system_la_SOURCES = \
6060
src/chain/witness.cpp \
6161
src/chain/witness_extract.cpp \
6262
src/chain/enums/opcode.cpp \
63+
src/chain/json/block.cpp \
64+
src/chain/json/checkpoint.cpp \
65+
src/chain/json/header.cpp \
66+
src/chain/json/input.cpp \
67+
src/chain/json/operation.cpp \
68+
src/chain/json/outpoint.cpp \
69+
src/chain/json/output.cpp \
70+
src/chain/json/point.cpp \
71+
src/chain/json/script.cpp \
72+
src/chain/json/transaction.cpp \
73+
src/chain/json/witness.cpp \
6374
src/config/authority.cpp \
6475
src/config/base16.cpp \
6576
src/config/base2.cpp \
@@ -249,6 +260,17 @@ test_libbitcoin_system_test_SOURCES = \
249260
test/chain/transaction.cpp \
250261
test/chain/witness.cpp \
251262
test/chain/enums/opcode.cpp \
263+
test/chain/json/block.cpp \
264+
test/chain/json/checkpoint.cpp \
265+
test/chain/json/header.cpp \
266+
test/chain/json/input.cpp \
267+
test/chain/json/operation.cpp \
268+
test/chain/json/outpoint.cpp \
269+
test/chain/json/output.cpp \
270+
test/chain/json/point.cpp \
271+
test/chain/json/script.cpp \
272+
test/chain/json/transaction.cpp \
273+
test/chain/json/witness.cpp \
252274
test/config/authority.cpp \
253275
test/config/base16.cpp \
254276
test/config/base2.cpp \
@@ -502,6 +524,7 @@ include_bitcoin_system_chain_HEADERS = \
502524
include_bitcoin_system_chain_enumsdir = ${includedir}/bitcoin/system/chain/enums
503525
include_bitcoin_system_chain_enums_HEADERS = \
504526
include/bitcoin/system/chain/enums/coverage.hpp \
527+
include/bitcoin/system/chain/enums/enums.hpp \
505528
include/bitcoin/system/chain/enums/extension.hpp \
506529
include/bitcoin/system/chain/enums/flags.hpp \
507530
include/bitcoin/system/chain/enums/key_version.hpp \
@@ -513,6 +536,21 @@ include_bitcoin_system_chain_enums_HEADERS = \
513536
include/bitcoin/system/chain/enums/script_version.hpp \
514537
include/bitcoin/system/chain/enums/selection.hpp
515538

539+
include_bitcoin_system_chain_jsondir = ${includedir}/bitcoin/system/chain/json
540+
include_bitcoin_system_chain_json_HEADERS = \
541+
include/bitcoin/system/chain/json/block.hpp \
542+
include/bitcoin/system/chain/json/checkpoint.hpp \
543+
include/bitcoin/system/chain/json/header.hpp \
544+
include/bitcoin/system/chain/json/input.hpp \
545+
include/bitcoin/system/chain/json/json.hpp \
546+
include/bitcoin/system/chain/json/operation.hpp \
547+
include/bitcoin/system/chain/json/outpoint.hpp \
548+
include/bitcoin/system/chain/json/output.hpp \
549+
include/bitcoin/system/chain/json/point.hpp \
550+
include/bitcoin/system/chain/json/script.hpp \
551+
include/bitcoin/system/chain/json/transaction.hpp \
552+
include/bitcoin/system/chain/json/witness.hpp
553+
516554
include_bitcoin_system_configdir = ${includedir}/bitcoin/system/config
517555
include_bitcoin_system_config_HEADERS = \
518556
include/bitcoin/system/config/authority.hpp \

builds/cmake/CMakeLists.txt

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,6 @@ set( with-tests "yes" CACHE BOOL "Compile with unit tests." )
148148
#------------------------------------------------------------------------------
149149
set( with-examples "yes" CACHE BOOL "Compile with examples." )
150150

151-
# Implement -Dwith-normalization-demo and declare with-normalization-demo.
152-
#------------------------------------------------------------------------------
153-
set( with-normalization-demo "no" CACHE BOOL "Compile the Unicode normalization demo (examples/normalization_demo.cpp)." )
154-
155151
# Implement -Denable-avx2.
156152
#------------------------------------------------------------------------------
157153
set( enable-avx2 "no" CACHE BOOL "Compile with avx2 intrinsics (specifically -mavx -mavx2)." )
@@ -430,6 +426,17 @@ add_library( ${CANONICAL_LIB_NAME}
430426
"../../src/chain/witness.cpp"
431427
"../../src/chain/witness_extract.cpp"
432428
"../../src/chain/enums/opcode.cpp"
429+
"../../src/chain/json/block.cpp"
430+
"../../src/chain/json/checkpoint.cpp"
431+
"../../src/chain/json/header.cpp"
432+
"../../src/chain/json/input.cpp"
433+
"../../src/chain/json/operation.cpp"
434+
"../../src/chain/json/outpoint.cpp"
435+
"../../src/chain/json/output.cpp"
436+
"../../src/chain/json/point.cpp"
437+
"../../src/chain/json/script.cpp"
438+
"../../src/chain/json/transaction.cpp"
439+
"../../src/chain/json/witness.cpp"
433440
"../../src/config/authority.cpp"
434441
"../../src/config/base16.cpp"
435442
"../../src/config/base2.cpp"
@@ -613,28 +620,6 @@ if (with-examples)
613620

614621
endif()
615622

616-
# Define libbitcoin-system-normalization-demo project.
617-
#------------------------------------------------------------------------------
618-
if (with-normalization-demo)
619-
add_executable( libbitcoin-system-normalization-demo
620-
"../../examples/normalization_demo.cpp" )
621-
622-
# libbitcoin-system-normalization-demo project specific include directories.
623-
#------------------------------------------------------------------------------
624-
target_include_directories( libbitcoin-system-normalization-demo PRIVATE
625-
"../../include" )
626-
627-
# libbitcoin-system-normalization-demo project specific libraries/linker flags.
628-
#------------------------------------------------------------------------------
629-
target_link_libraries( libbitcoin-system-normalization-demo
630-
${CANONICAL_LIB_NAME} )
631-
632-
if(BUILD_EXTERNAL_DEPS)
633-
add_dependencies( libbitcoin-system-normalization-demo boost_build secp256k1_build )
634-
endif()
635-
636-
endif()
637-
638623
# Define libbitcoin-system-test project.
639624
#------------------------------------------------------------------------------
640625
if (with-tests)
@@ -675,6 +660,17 @@ if (with-tests)
675660
"../../test/chain/transaction.cpp"
676661
"../../test/chain/witness.cpp"
677662
"../../test/chain/enums/opcode.cpp"
663+
"../../test/chain/json/block.cpp"
664+
"../../test/chain/json/checkpoint.cpp"
665+
"../../test/chain/json/header.cpp"
666+
"../../test/chain/json/input.cpp"
667+
"../../test/chain/json/operation.cpp"
668+
"../../test/chain/json/outpoint.cpp"
669+
"../../test/chain/json/output.cpp"
670+
"../../test/chain/json/point.cpp"
671+
"../../test/chain/json/script.cpp"
672+
"../../test/chain/json/transaction.cpp"
673+
"../../test/chain/json/witness.cpp"
678674
"../../test/config/authority.cpp"
679675
"../../test/config/base16.cpp"
680676
"../../test/config/base2.cpp"
@@ -927,3 +923,4 @@ install( TARGETS ${CANONICAL_LIB_NAME}
927923
#------------------------------------------------------------------------------
928924
install( DIRECTORY "../../include/bitcoin"
929925
DESTINATION include )
926+

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

Lines changed: 60 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,27 +126,78 @@
126126
</ClCompile>
127127
<ClCompile Include="..\..\..\..\test\chain\block_malleable.cpp" />
128128
<ClCompile Include="..\..\..\..\test\chain\chain_state.cpp" />
129-
<ClCompile Include="..\..\..\..\test\chain\checkpoint.cpp" />
129+
<ClCompile Include="..\..\..\..\test\chain\checkpoint.cpp">
130+
<ObjectFileName>$(IntDir)test_chain_checkpoint.obj</ObjectFileName>
131+
</ClCompile>
130132
<ClCompile Include="..\..\..\..\test\chain\compact.cpp" />
131133
<ClCompile Include="..\..\..\..\test\chain\context.cpp">
132134
<ObjectFileName>$(IntDir)test_chain_context.obj</ObjectFileName>
133135
</ClCompile>
134136
<ClCompile Include="..\..\..\..\test\chain\enums\opcode.cpp" />
135-
<ClCompile Include="..\..\..\..\test\chain\header.cpp" />
136-
<ClCompile Include="..\..\..\..\test\chain\input.cpp" />
137-
<ClCompile Include="..\..\..\..\test\chain\operation.cpp" />
138-
<ClCompile Include="..\..\..\..\test\chain\outpoint.cpp" />
139-
<ClCompile Include="..\..\..\..\test\chain\output.cpp" />
140-
<ClCompile Include="..\..\..\..\test\chain\point.cpp" />
137+
<ClCompile Include="..\..\..\..\test\chain\header.cpp">
138+
<ObjectFileName>$(IntDir)test_chain_header.obj</ObjectFileName>
139+
</ClCompile>
140+
<ClCompile Include="..\..\..\..\test\chain\input.cpp">
141+
<ObjectFileName>$(IntDir)test_chain_input.obj</ObjectFileName>
142+
</ClCompile>
143+
<ClCompile Include="..\..\..\..\test\chain\json\block.cpp">
144+
<ObjectFileName>$(IntDir)test_chain_json_block.obj</ObjectFileName>
145+
</ClCompile>
146+
<ClCompile Include="..\..\..\..\test\chain\json\checkpoint.cpp">
147+
<ObjectFileName>$(IntDir)test_chain_json_checkpoint.obj</ObjectFileName>
148+
</ClCompile>
149+
<ClCompile Include="..\..\..\..\test\chain\json\header.cpp">
150+
<ObjectFileName>$(IntDir)test_chain_json_header.obj</ObjectFileName>
151+
</ClCompile>
152+
<ClCompile Include="..\..\..\..\test\chain\json\input.cpp">
153+
<ObjectFileName>$(IntDir)test_chain_json_input.obj</ObjectFileName>
154+
</ClCompile>
155+
<ClCompile Include="..\..\..\..\test\chain\json\operation.cpp">
156+
<ObjectFileName>$(IntDir)test_chain_json_operation.obj</ObjectFileName>
157+
</ClCompile>
158+
<ClCompile Include="..\..\..\..\test\chain\json\outpoint.cpp">
159+
<ObjectFileName>$(IntDir)test_chain_json_outpoint.obj</ObjectFileName>
160+
</ClCompile>
161+
<ClCompile Include="..\..\..\..\test\chain\json\output.cpp">
162+
<ObjectFileName>$(IntDir)test_chain_json_output.obj</ObjectFileName>
163+
</ClCompile>
164+
<ClCompile Include="..\..\..\..\test\chain\json\point.cpp">
165+
<ObjectFileName>$(IntDir)test_chain_json_point.obj</ObjectFileName>
166+
</ClCompile>
167+
<ClCompile Include="..\..\..\..\test\chain\json\script.cpp">
168+
<ObjectFileName>$(IntDir)test_chain_json_script.obj</ObjectFileName>
169+
</ClCompile>
170+
<ClCompile Include="..\..\..\..\test\chain\json\transaction.cpp">
171+
<ObjectFileName>$(IntDir)test_chain_json_transaction.obj</ObjectFileName>
172+
</ClCompile>
173+
<ClCompile Include="..\..\..\..\test\chain\json\witness.cpp">
174+
<ObjectFileName>$(IntDir)test_chain_json_witness.obj</ObjectFileName>
175+
</ClCompile>
176+
<ClCompile Include="..\..\..\..\test\chain\operation.cpp">
177+
<ObjectFileName>$(IntDir)test_chain_operation.obj</ObjectFileName>
178+
</ClCompile>
179+
<ClCompile Include="..\..\..\..\test\chain\outpoint.cpp">
180+
<ObjectFileName>$(IntDir)test_chain_outpoint.obj</ObjectFileName>
181+
</ClCompile>
182+
<ClCompile Include="..\..\..\..\test\chain\output.cpp">
183+
<ObjectFileName>$(IntDir)test_chain_output.obj</ObjectFileName>
184+
</ClCompile>
185+
<ClCompile Include="..\..\..\..\test\chain\point.cpp">
186+
<ObjectFileName>$(IntDir)test_chain_point.obj</ObjectFileName>
187+
</ClCompile>
141188
<ClCompile Include="..\..\..\..\test\chain\satoshi_words.cpp" />
142189
<ClCompile Include="..\..\..\..\test\chain\script.cpp">
143190
<ObjectFileName>$(IntDir)test_chain_script.obj</ObjectFileName>
144191
</ClCompile>
145192
<ClCompile Include="..\..\..\..\test\chain\stripper.cpp" />
146193
<ClCompile Include="..\..\..\..\test\chain\taproot.cpp" />
147194
<ClCompile Include="..\..\..\..\test\chain\tapscript.cpp" />
148-
<ClCompile Include="..\..\..\..\test\chain\transaction.cpp" />
149-
<ClCompile Include="..\..\..\..\test\chain\witness.cpp" />
195+
<ClCompile Include="..\..\..\..\test\chain\transaction.cpp">
196+
<ObjectFileName>$(IntDir)test_chain_transaction.obj</ObjectFileName>
197+
</ClCompile>
198+
<ClCompile Include="..\..\..\..\test\chain\witness.cpp">
199+
<ObjectFileName>$(IntDir)test_chain_witness.obj</ObjectFileName>
200+
</ClCompile>
150201
<ClCompile Include="..\..\..\..\test\config\authority.cpp" />
151202
<ClCompile Include="..\..\..\..\test\config\base16.cpp" />
152203
<ClCompile Include="..\..\..\..\test\config\base2.cpp" />

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

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
<Filter Include="src\chain\enums">
1717
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000004}</UniqueIdentifier>
1818
</Filter>
19+
<Filter Include="src\chain\json">
20+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000005}</UniqueIdentifier>
21+
</Filter>
1922
<Filter Include="src\config">
2023
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000002}</UniqueIdentifier>
2124
</Filter>
@@ -38,22 +41,22 @@
3841
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000008}</UniqueIdentifier>
3942
</Filter>
4043
<Filter Include="src\hash\performance">
41-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000005}</UniqueIdentifier>
44+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000006}</UniqueIdentifier>
4245
</Filter>
4346
<Filter Include="src\hash\performance\baseline">
44-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000008}</UniqueIdentifier>
47+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000009}</UniqueIdentifier>
4548
</Filter>
4649
<Filter Include="src\hash\rmd">
47-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000006}</UniqueIdentifier>
50+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000007}</UniqueIdentifier>
4851
</Filter>
4952
<Filter Include="src\hash\sha">
50-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000007}</UniqueIdentifier>
53+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000008}</UniqueIdentifier>
5154
</Filter>
5255
<Filter Include="src\intrinsics">
5356
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000009}</UniqueIdentifier>
5457
</Filter>
5558
<Filter Include="src\intrinsics\platforms">
56-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000009}</UniqueIdentifier>
59+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000010}</UniqueIdentifier>
5760
</Filter>
5861
<Filter Include="src\machine">
5962
<UniqueIdentifier>{51A424A9-2C12-4211-0000-00000000000A}</UniqueIdentifier>
@@ -71,19 +74,19 @@
7174
<UniqueIdentifier>{51A424A9-2C12-4211-0000-00000000000E}</UniqueIdentifier>
7275
</Filter>
7376
<Filter Include="src\stream\devices">
74-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000010}</UniqueIdentifier>
77+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000A1}</UniqueIdentifier>
7578
</Filter>
7679
<Filter Include="src\stream\iostream">
77-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000A1}</UniqueIdentifier>
80+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000B1}</UniqueIdentifier>
7881
</Filter>
7982
<Filter Include="src\stream\streamers">
80-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000B1}</UniqueIdentifier>
83+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000C1}</UniqueIdentifier>
8184
</Filter>
8285
<Filter Include="src\unicode">
8386
<UniqueIdentifier>{51A424A9-2C12-4211-0000-00000000000F}</UniqueIdentifier>
8487
</Filter>
8588
<Filter Include="src\unicode\utf8_everywhere">
86-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000C1}</UniqueIdentifier>
89+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000D1}</UniqueIdentifier>
8790
</Filter>
8891
<Filter Include="src\utreexo">
8992
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000001}</UniqueIdentifier>
@@ -92,19 +95,19 @@
9295
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000002}</UniqueIdentifier>
9396
</Filter>
9497
<Filter Include="src\wallet\addresses">
95-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000D1}</UniqueIdentifier>
98+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000E1}</UniqueIdentifier>
9699
</Filter>
97100
<Filter Include="src\wallet\keys">
98-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000E1}</UniqueIdentifier>
101+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000F1}</UniqueIdentifier>
99102
</Filter>
100103
<Filter Include="src\wallet\mnemonics">
101-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000F1}</UniqueIdentifier>
104+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000002}</UniqueIdentifier>
102105
</Filter>
103106
<Filter Include="src\words">
104107
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000003}</UniqueIdentifier>
105108
</Filter>
106109
<Filter Include="src\words\catalogs">
107-
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000002}</UniqueIdentifier>
110+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000003}</UniqueIdentifier>
108111
</Filter>
109112
</ItemGroup>
110113
<ItemGroup>
@@ -144,6 +147,39 @@
144147
<ClCompile Include="..\..\..\..\test\chain\input.cpp">
145148
<Filter>src\chain</Filter>
146149
</ClCompile>
150+
<ClCompile Include="..\..\..\..\test\chain\json\block.cpp">
151+
<Filter>src\chain\json</Filter>
152+
</ClCompile>
153+
<ClCompile Include="..\..\..\..\test\chain\json\checkpoint.cpp">
154+
<Filter>src\chain\json</Filter>
155+
</ClCompile>
156+
<ClCompile Include="..\..\..\..\test\chain\json\header.cpp">
157+
<Filter>src\chain\json</Filter>
158+
</ClCompile>
159+
<ClCompile Include="..\..\..\..\test\chain\json\input.cpp">
160+
<Filter>src\chain\json</Filter>
161+
</ClCompile>
162+
<ClCompile Include="..\..\..\..\test\chain\json\operation.cpp">
163+
<Filter>src\chain\json</Filter>
164+
</ClCompile>
165+
<ClCompile Include="..\..\..\..\test\chain\json\outpoint.cpp">
166+
<Filter>src\chain\json</Filter>
167+
</ClCompile>
168+
<ClCompile Include="..\..\..\..\test\chain\json\output.cpp">
169+
<Filter>src\chain\json</Filter>
170+
</ClCompile>
171+
<ClCompile Include="..\..\..\..\test\chain\json\point.cpp">
172+
<Filter>src\chain\json</Filter>
173+
</ClCompile>
174+
<ClCompile Include="..\..\..\..\test\chain\json\script.cpp">
175+
<Filter>src\chain\json</Filter>
176+
</ClCompile>
177+
<ClCompile Include="..\..\..\..\test\chain\json\transaction.cpp">
178+
<Filter>src\chain\json</Filter>
179+
</ClCompile>
180+
<ClCompile Include="..\..\..\..\test\chain\json\witness.cpp">
181+
<Filter>src\chain\json</Filter>
182+
</ClCompile>
147183
<ClCompile Include="..\..\..\..\test\chain\operation.cpp">
148184
<Filter>src\chain</Filter>
149185
</ClCompile>

0 commit comments

Comments
 (0)