@dashevo/dash-spv 0.23.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,216 @@
1
+ /* eslint no-underscore-dangle: ["error", { "allow": ["_getHash"] }] */
2
+ const utils = require('../../lib/utils');
3
+
4
+ const headers = [
5
+ {
6
+ version: 2,
7
+ previousblockhash: '00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c',
8
+ merkleroot: 'b4fd581bc4bfe51a5a66d8b823bd6ee2b492f0ddc44cf7e820550714cedc117f',
9
+ time: 1398712771,
10
+ bits: '1e0fffff',
11
+ nonce: 31475,
12
+ },
13
+ {
14
+ version: 2,
15
+ previousblockhash: '0000047d24635e347be3aaaeb66c26be94901a2f962feccd4f95090191f208c1',
16
+ merkleroot: '0d6d332e68eb8ecc66a5baaa95dc4b10c0b32841aed57dc99a5ae0b2f9e4294d',
17
+ time: 1398712772,
18
+ nonce: 6523,
19
+ bits: '1e0ffff0',
20
+ },
21
+ {
22
+ version: 2,
23
+ previousblockhash: '00000c6264fab4ba2d23990396f42a76aa4822f03cbc7634b79f4dfea36fccc2',
24
+ merkleroot: '1cc711129405a328c58d1948e748c3b8f3d610e66d9901db88c42c5247829658',
25
+ time: 1398712774,
26
+ nonce: 53194,
27
+ bits: '1e0ffff0',
28
+ },
29
+ {
30
+ version: 2,
31
+ previousblockhash: '0000057d5c945acbe476bc17bbbaeb2fc1c1b18673e7582c48ac04af61f4d811',
32
+ merkleroot: '7e6b1b1457308bf6ccb1e325c64607ba7dfac05e26c08887cd28f97d4d4ab3e2',
33
+ time: 1398712782,
34
+ nonce: 193159,
35
+ bits: '1e0ffff0',
36
+ },
37
+ {
38
+ version: 2,
39
+ previousblockhash: '000002258bd58bf4cdcde282abc030437c103dbb12d2a7dbc978d07bcf386b42',
40
+ merkleroot: '4cf4f3b788e8dc847a9e0ff3b279340207c555a6bc0736f93e95dbdc2e3c2f16',
41
+ time: 1398712784,
42
+ nonce: 41103,
43
+ bits: '1e0ffff0',
44
+ },
45
+ {
46
+ version: 2,
47
+ previousblockhash: '00000b1406007f9148c4c173e2314437a315b79b5b79e73ed534a2e8b18a43fc',
48
+ merkleroot: '99c25e1373c0a5277157b730624d110d04322ffaac49ac0c98cc2d01c80f4c4c',
49
+ time: 1398712787,
50
+ nonce: 62295,
51
+ bits: '1e0ffff0',
52
+ },
53
+ {
54
+ version: 2,
55
+ previousblockhash: '00000d93de4b31ec550d324876ee7c502a073911972d26c2c990b94d9d5b5a44',
56
+ merkleroot: '769fc473dc8e5073e4fe3f69f0603972d3d72fbeb62a64de826c64e44260b3f3',
57
+ time: 1398712793,
58
+ nonce: 127755,
59
+ bits: '1e0ffff0',
60
+ },
61
+ {
62
+ version: 2,
63
+ previousblockhash: '00000154b50ded9d6298dc965e541cef117103c3376256185d0d70e92850853d',
64
+ merkleroot: '8243e732675d2936bb27917844e714ff5e2012726e3f76e374e7f6236e78669e',
65
+ time: 1398712796,
66
+ nonce: 62099,
67
+ bits: '1e0ffff0',
68
+ },
69
+ {
70
+ version: 2,
71
+ previousblockhash: '0000089e53a33e48061fa4dbc0a52c40736c2eedddaf563ec25cfe406dd8a541',
72
+ merkleroot: '243786d6706421ba9ebe9a0d153a5e79d9f781825dbbb0ed26ccc647f10984ee',
73
+ time: 1398712802,
74
+ nonce: 128139,
75
+ bits: '1e0ffff0',
76
+ },
77
+ {
78
+ version: 2,
79
+ previousblockhash: '00000e98a2b0b1505e3ed00dba28988cd81440de4ec48d817412c2178d332985',
80
+ merkleroot: 'b158385f441d9299732ec264442d28b6009b8d24388ee7e23a6ce7e6051bfa31',
81
+ time: 1398712803,
82
+ nonce: 23451,
83
+ bits: '1e0ffff0',
84
+ },
85
+ {
86
+ version: 2,
87
+ previousblockhash: '000001128124cab4756edc387dce2b8762514916d953a4993971a40d78240978',
88
+ merkleroot: '1f966cdf6ca90f211308554f90f33935cd8e25ab329ffedfa1066b00a581d5d5',
89
+ time: 1398712807,
90
+ nonce: 58648,
91
+ bits: '1e0ffff0',
92
+ },
93
+ {
94
+ version: 2,
95
+ previousblockhash: '00000ce430de949c85a145b02e33ebbaed3772dc8f3d668f66edc6852c24d002',
96
+ merkleroot: '663360403b5fba9cd8744c3706f9660c7d3fee4e5a9ee98ce0ad5e5ad7824c1d',
97
+ time: 1398712821,
98
+ nonce: 312363,
99
+ bits: '1e0ffff0',
100
+ },
101
+ {
102
+ version: 2,
103
+ previousblockhash: '00000ac3a0c9df709260e41290d6902e5a4a073099f11fe8c1ce80aadc4bb331',
104
+ merkleroot: 'c2ed22a3e6712b842359dfbb6f0a133ae122ffb601e4cf60e30b8c99f9438f4f',
105
+ time: 1398712821,
106
+ nonce: 8325,
107
+ bits: '1e0ffff0',
108
+ },
109
+ {
110
+ version: 2,
111
+ previousblockhash: '00000b526b34e733532d706c1f4cef93eefe707b87c2c3cb2978e1a84b97c501',
112
+ merkleroot: '8994e231d4986bbea391d08f67ff9b6da758c86aa2fc9e9816f105462d18cf1b',
113
+ time: 1398712824,
114
+ nonce: 60659,
115
+ bits: '1e0ffff0',
116
+ },
117
+ {
118
+ version: 2,
119
+ previousblockhash: '00000799cc6963498a215e04402737fc1a08e696a91540756b0697f1ac7b23a8',
120
+ merkleroot: 'f57a78dd55cb4530df55a8b7ba5aed632b1d3819950e78f90d1acdba5ac595d9',
121
+ time: 1398712825,
122
+ nonce: 18064,
123
+ bits: '1e0ffff0',
124
+ },
125
+ {
126
+ version: 2,
127
+ previousblockhash: '00000170cc708e9c3b491625dd8dc2d737730a738ebd349f2a770fb26944c04f',
128
+ merkleroot: '5494a90a580a4f16ff80d2b0c7507d7a565415091d88abeaa752b517da92e06d',
129
+ time: 1398886700,
130
+ nonce: 1555411,
131
+ bits: '1e0fffff',
132
+ },
133
+ {
134
+ version: 2,
135
+ previousblockhash: '000000ab6ae22728c701e15a13dfa022c88f17a4e0fd71f073b0a720229de22b',
136
+ merkleroot: '0c03f4a03f47046d1295207ca99cc9db6757a6e4ff313a359d1182cfb8431a84',
137
+ time: 1405697551,
138
+ nonce: 1491503,
139
+ bits: '1e0fffff',
140
+ },
141
+ {
142
+ version: 2,
143
+ confirmations: 86916,
144
+ previousblockhash: '00000541dfefddc46d4a7ef3873375db4a6f5b1c06a84b67346fb88e07f024d0',
145
+ merkleroot: '2d6ad1b165c8b7dd4f038d8003d0229259db52e7e828d0d25af38c2f2f7e1990',
146
+ time: 1405697569,
147
+ nonce: 966245,
148
+ bits: '1e0ffff0',
149
+ },
150
+ {
151
+ version: 2,
152
+ previousblockhash: '000000d275d8dc93e7bf8c358463c97e12be9b2b17d4e64770aca7af8dcb93d8',
153
+ merkleroot: 'e3552304f4c424ebe5bfc0911b1a3a6fcec15fe788acaf910f45238f16d522f7',
154
+ time: 1405697598,
155
+ nonce: 1661888,
156
+ bits: '1e0ffff0',
157
+ },
158
+ {
159
+ version: 2,
160
+ previousblockhash: '0000073a769b38812ca2e3a6d4958cab3f21ed3cf4cc80590be3db4b9cb17c8a',
161
+ merkleroot: 'dd0e01125ffba80e7e7508d57da2725ccc648ed3ea3bac60ee19f81efcf8b934',
162
+ time: 1405697613,
163
+ nonce: 828461,
164
+ bits: '1e0ffff0',
165
+ },
166
+ {
167
+ version: 2,
168
+ previousblockhash: '00000816a46bd5ea15161c7864b76a263f890d60d4aad6b53cceb8c39ee6b153',
169
+ merkleroot: '2847d5749c81f8c0b6b91a87a833532611feebb39a833d0e092ec7c8e141467e',
170
+ time: 1405697617,
171
+ nonce: 50599,
172
+ bits: '1e0ffff0',
173
+ },
174
+ {
175
+ version: 2,
176
+ previousblockhash: '00000976f999bcb32be3d5b7c2e684e8000d8566f22df2612f58b8574536addc',
177
+ merkleroot: '78d7b2982419345c34391df68ff2d10c0475d5513a6b52f8caaae4f350af1eee',
178
+ time: 1405697628,
179
+ nonce: 613213,
180
+ bits: '1e0ffff0',
181
+ },
182
+ {
183
+ version: 2,
184
+ previousblockhash: '00000a4f6e00f23dde0b9197d5633b1637c0c22748adadda2d1a799b26115d0d',
185
+ merkleroot: 'bc8af9a84bc94da13dd144c4e1bff2d8580d33f7613d2e4c9c504b4df5c6d9b4',
186
+ time: 1405697647,
187
+ nonce: 1050462,
188
+ bits: '1e0ffff0',
189
+ },
190
+ {
191
+ version: 2,
192
+ previousblockhash: '00000ad04d60ac3b1567b499c359b2f901be9826e358e071e5ffcb014d7e60ef',
193
+ merkleroot: '3cbf4973f43b967773b06169246fbbc80258631280ea84165a1c269b3601943f',
194
+ time: 1405697671,
195
+ nonce: 1381148,
196
+ bits: '1e0ffff0',
197
+ },
198
+ {
199
+ version: 2,
200
+ previousblockhash: '00000df1e666a530efa28ac37c8cf8b80970c65aa69497fc4fbb3252d2e5f661',
201
+ merkleroot: '4050c8893b1d882da44d15e481b30e145ed6fe29ffa51ac99dc0e206696aa6dc',
202
+ time: 1405697678,
203
+ nonce: 352597,
204
+ bits: '1e0ffff0',
205
+ },
206
+ { // invalid header, copy ^ with last digit of merkleroot changed
207
+ version: 2,
208
+ previousblockhash: '00000df1e666a530efa28ac37c8cf8b80970c65aa69497fc4fbb3252d2e5f661',
209
+ merkleroot: '4050c8893b1d882da44d15e481b30e145ed6fe29ffa51ac99dc0e206696aa6dd',
210
+ time: 1405697678,
211
+ nonce: 352597,
212
+ bits: '1e0ffff0',
213
+ },
214
+ ];
215
+
216
+ module.exports = headers.map((h) => utils.normalizeHeader(h));
@@ -0,0 +1,36 @@
1
+ const merkleJSON = {
2
+ merkleBlock: { // Mainnet Block 300100
3
+ header: {
4
+ hash: '00000000000051b99f3fa12da6997bb54327c7b81509829467b499a7ce03136a',
5
+ version: 3,
6
+ prevHash: '0000000000154ef1f88653a6757f1182680a4d5831d815010d5fa646ae79ce35',
7
+ merkleRoot: 'a0055d45ad9b35e77fb01c59a4feb9976921493d2557a5ac0798b49e82ea1e99',
8
+ time: 1436550250,
9
+ bits: 454590659,
10
+ nonce: 2601264896,
11
+ },
12
+ numTransactions: 12,
13
+ hashes: [
14
+ '9d0a368bc9923c6cb966135a4ceda30cc5f259f72c8843ce015056375f8a06ec',
15
+ '39e5cd533567ac0a8602bcc4c29e2f01a4abb0fe68ffbc7be6c393db188b72e0',
16
+ 'cd75b421157eca03eff664bdc165730f91ef2fa52df19ff415ab5acb30045425',
17
+ '2ef9795147caaeecee5bc2520704bb372cde06dbd2e871750f31336fd3f02be3',
18
+ '2241d3448560f8b1d3a07ea5c31e79eb595632984a20f50944809a61fdd9fe0b',
19
+ '45afbfe270014d5593cb065562f1fed726f767fe334d8b3f4379025cfa5be8c5',
20
+ '198c03da0ccf871db91fe436e2795908eac5cc7d164232182e9445f7f9db1ab2',
21
+ 'ed07c181ce5ba7cb66d205bc970f43e1ca11996d611aa8e91e305eb8608c543c',
22
+ ],
23
+ flags: [219, 63],
24
+ },
25
+ // merkleblock for inserted tx hash
26
+ // '7262476912a96b9a6226cfa3a8f231ba3e2b1f75c396e88367e532c79c43c95b' in testnet block 10000
27
+ // (bloom filter: '03359be1100000000000000001')
28
+ rawMerkleBlock: '000000200e71587f863213690c24b8ad07d0753b38abe6ff1328ef7661689404000000000f1e7ce895614047d5c8d3e7b537b26b0482302301aa104947eb09c55521b316b10b1e5cff7d191c166b25b80500000002a8f781d45a5b12abffcf52bac3b3fc7824cc91ef4f9bb04bc97500a1d98d91305bc9439cc732e56783e896c3751f2b3eba31f2a8a3cf26629a6ba91269476272011d',
29
+ // merkleblock for inserted tx hashes
30
+ // '7262476912a96b9a6226cfa3a8f231ba3e2b1f75c396e88367e532c79c43c95b'
31
+ // '3f3517ee8fa95621fe8abdd81c1e0dfb50e21dd4c5a3c01eee2c47cf664821b6' in testnet block 10000
32
+ // (bloom filter: '0797b88e7d21b31f130000000000000001')
33
+ rawMerkleBlock2: '000000200e71587f863213690c24b8ad07d0753b38abe6ff1328ef7661689404000000000f1e7ce895614047d5c8d3e7b537b26b0482302301aa104947eb09c55521b316b10b1e5cff7d191c166b25b80500000004acff07e45bfb50dd8e2fb10109f1988423cbcc9423ff07b7acb09715bd1a11e89153210725b8e219b91e433180092226c7b56649843fc51bc012c587f50030a1b6214866cf472cee1ec0a3c5d41de250fb0d1e1cd8bd8afe2156a98fee17353f5bc9439cc732e56783e896c3751f2b3eba31f2a8a3cf26629a6ba9126947627202eb01',
34
+ };
35
+
36
+ module.exports = merkleJSON;