diff --git a/tests/blocks/bitcoin_mainnet_100000.json b/tests/blocks/bitcoin_mainnet_100000.json new file mode 100644 index 0000000..6e0946f --- /dev/null +++ b/tests/blocks/bitcoin_mainnet_100000.json @@ -0,0 +1,17 @@ +{ + "hash": "000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506", + "size": 957, + "height": 100000, + "merkleroot": "f3e94742aca4b5ef85488dc37c06c3282295ffec960994b2c0d5ac2a25a95766", + "tx": [ + "8c14f0db3df150123e6f3dbbf30f8b955a8249b62ac1d1ff16284aefa3d06d87", + "fff2525b8931402dd09222c50775608f75787bd2b87e56995a7bdd30f79702c4", + "6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4", + "e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d" + ], + "time": 1293623863, + "nonce": 274148111, + "bits": "1b04864c", + "previousblockhash": "000000000002d01c1fccc21636b607dfd930d31d01c3a62104612a1719011250", + "block": "0100000050120119172a610421a6c3011dd330d9df07b63616c2cc1f1cd00200000000006657a9252aacd5c0b2940996ecff952228c3067cc38d4885efb5a4ac4247e9f337221b4d4c86041b0f2b57100401000000010000000000000000000000000000000000000000000000000000000000000000ffffffff08044c86041b020602ffffffff0100f2052a010000004341041b0e8c2567c12536aa13357b79a073dc4444acb83c4ec7a0e2f99dd7457516c5817242da796924ca4e99947d087fedf9ce467cb9f7c6287078f801df276fdf84ac000000000100000001032e38e9c0a84c6046d687d10556dcacc41d275ec55fc00779ac88fdf357a187000000008c493046022100c352d3dd993a981beba4a63ad15c209275ca9470abfcd57da93b58e4eb5dce82022100840792bc1f456062819f15d33ee7055cf7b5ee1af1ebcc6028d9cdb1c3af7748014104f46db5e9d61a9dc27b8d64ad23e7383a4e6ca164593c2527c038c0857eb67ee8e825dca65046b82c9331586c82e0fd1f633f25f87c161bc6f8a630121df2b3d3ffffffff0200e32321000000001976a914c398efa9c392ba6013c5e04ee729755ef7f58b3288ac000fe208010000001976a914948c765a6914d43f2a7ac177da2c2f6b52de3d7c88ac000000000100000001c33ebff2a709f13d9f9a7569ab16a32786af7d7e2de09265e41c61d078294ecf010000008a4730440220032d30df5ee6f57fa46cddb5eb8d0d9fe8de6b342d27942ae90a3231e0ba333e02203deee8060fdc70230a7f5b4ad7d7bc3e628cbe219a886b84269eaeb81e26b4fe014104ae31c31bf91278d99b8377a35bbce5b27d9fff15456839e919453fc7b3f721f0ba403ff96c9deeb680e5fd341c0fc3a7b90da4631ee39560639db462e9cb850fffffffff0240420f00000000001976a914b0dcbf97eabf4404e31d952477ce822dadbe7e1088acc060d211000000001976a9146b1281eec25ab4e1e0793ff4e08ab1abb3409cd988ac0000000001000000010b6072b386d4a773235237f64c1126ac3b240c84b917a3909ba1c43ded5f51f4000000008c493046022100bb1ad26df930a51cce110cf44f7a48c3c561fd977500b1ae5d6b6fd13d0b3f4a022100c5b42951acedff14abba2736fd574bdb465f3e6f8da12e2c5303954aca7f78f3014104a7135bfe824c97ecc01ec7d7e336185c81e2aa2c41ab175407c09484ce9694b44953fcb751206564a9c24dd094d42fdbfdd5aad3e063ce6af4cfaaea4ea14fbbffffffff0140420f00000000001976a91439aa3d569e06a1d7926dc4be1193c99bf2eb9ee088ac00000000" +} \ No newline at end of file diff --git a/tests/blocks/dogecoin_mainnet_371337.json b/tests/blocks/dogecoin_mainnet_371337.json new file mode 100644 index 0000000..a3da22e --- /dev/null +++ b/tests/blocks/dogecoin_mainnet_371337.json @@ -0,0 +1,19 @@ +{ + "hash": "60323982f9c5ff1b5a954eac9dc1269352835f47c2c5222691d80f0d50dcf053", + "size": 1704, + "height": 371337, + "merkleroot": "ee27b8fb782a5bfb99c975f0d4686440b9af9e16846603e5f2830e0b6fbf158a", + "tx": [ + "4547b14bc16db4184fa9f141d645627430dd3dfa662d0e6f418fba497091da75", + "a965dba2ed06827ed9a24f0568ec05b73c431bc7f0fb6913b144e62db7faa519", + "5e3ab18cb7ba3abc44e62fb3a43d4c8168d00cf0a2e0f8dbeb2636bb9a212d12", + "f022935ac7c4c734bd2c9c6a780f8e7280352de8bd358d760d0645b7fe734a93", + "ec063cc8025f9f30a6ed40fc8b1fe63b0cbd2ea2c62664eb26b365e6243828ca", + "02c16e3389320da3e77686d39773dda65a1ecdf98a2ef9cfb938c9f4b58f7a40" + ], + "time": 1410464577, + "nonce": 0, + "bits": "1b364184", + "previousblockhash": "46a8b109fb016fa41abd17a19186ca78d39c60c020c71fcd2690320d47036f0d", + "block": "020162000d6f03470d329026cd1fc720c0609cd378ca8691a117bd1aa46f01fb09b1a8468a15bf6f0b0e83f2e5036684169eafb9406468d4f075c999fb5b2a78fbb827ee41fb11548441361b0000000001000000010000000000000000000000000000000000000000000000000000000000000000ffffffff380345bf09fabe6d6d980ba42120410de0554d42a5b5ee58167bcd86bf7591f429005f24da45fb51cf0800000000000000cdb1f1ff0e000000ffffffff01800c0c2a010000001976a914aa3750aa18b8a0f3f0590731e1fab934856680cf88ac00000000b3e64e02fff596209c498f1b18f798d62f216f11c8462bf3922319000000000003a979a636db2450363972d211aee67b71387a3daaa3051be0fd260c5acd4739cd52a418d29d8a0e56c8714c95a0dc24e1c9624480ec497fe2441941f3fee8f9481a3370c334178415c83d1d0c2deeec727c2330617a47691fc5e79203669312d100000000036fa40307b3a439538195245b0de56a2c1db6ba3a64f8bdd2071d00bc48c841b5e77b98e5c7d6f06f92dec5cf6d61277ecb9a0342406f49f34c51ee8ce4abd678038129485de14238bd1ca12cd2de12ff0e383aee542d90437cd664ce139446a00000000002000000d2ec7dfeb7e8f43fe77aba3368df95ac2088034420402730ee0492a2084217083411b3fc91033bfdeea339bc11b9efc986e161c703e07a9045338c165673f09940fb11548b54021b58cc9ae50601000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0d0389aa050101062f503253482fffffffff010066f33caf050000232102b73438165461b826b30a46078f211aa005d1e7e430b1e0ed461678a5fe516c73ac000000000100000001ef2e86aa5f027e13d7fc1f0bd4a1fc677d698e42850680634ccd1834668ff320010000006b483045022100fcf5dc43afa85978a71e76a9f4c11cd6bf2a7d5677212f9001ad085d420a5d3a022068982e1e53e94fc6007cf8b60ff3919bcaf7f0b70fefb79112cb840777d8c7cf0121022b050b740dd02c1b4e1e7cdbffe6d836d987c9db4c4db734b58526f08942193bffffffff02004e7253000000001976a91435cb1f77e88e96fb3094d84e8d3b7789a092636d88ac00d4b7e8b00700001976a9146ca1f634daa4efc7871abab945c7cefd282b481f88ac0000000001000000010a6c24bbc92fd0ec32bb5b0a051c44eba0c1325f0b24d9523c109f8bb1281f49000000006a4730440220608577619fb3a0b826f09df5663ffbf121c8e0164f43b73d9affe2f9e4576bd0022040782c9a7df0a20afe1a7e3578bf27e1331c862253af21ced4fde5ef1b44b787012103e4f91ad831a87cc532249944bc7138a355f7d0aac25dc4737a8701181ce680a5ffffffff010019813f0d0000001976a91481db1aa49ebc6a71cad96949eb28e22af85eb0bd88ac0000000001000000017b82db0f644ecff378217d9b8dc0de8817eaf85ceefacab23bf344e2e495dca5010000006b483045022100f07ced6bfdbd6cdeb8b2c8fc92b9803f5798754b5b6c454c8f084198bea303f402205616f84d7ec882af9c34a3fd2457ca3fb81ec5a463a963a6e684edee427d4525012102c056b10494520dbd7b37e2e6bb8f72f98d73a609a926901221bfb114fa1d5a80ffffffff02f0501a22000000001976a914ca63ded8b23d0252158a3bdc816747ef89fb438988ac80b65ea1350700001976a914fb26a7c16ace531a8e7bbd925e46c67c3150c1c888ac000000000100000001c9bdba900e1579ebf4e44415fe8b9abec57a763f8c70a30604bea7fbe7c55d42000000006a47304402204ccbeeace0630e72102fdaf0836e41f8f6dcdde6a178f0fbc2d96a4d17a1df8f02207e4a91203a2abd87fdddee96510482ef96535741b6c17a1acae93c977ad248e5012103e0747583a342b76a5de9c21db138b9640d49b4f3b67a306d3b3f217416d49b55ffffffff020058850c020000001976a9144417c63a91208a02a5f46a0f7a2b806adc7d19a788ac0042dc06030000001976a9147b61c5adef0d559e5acf2901c2989294624b651988ac0000000001000000017c1423b198dfc3da37ae9a5fc11a3720e4343b3049d3b289b8285eb04595c04b000000006b483045022100b0c1cb9608bf644d7a8916bf61f36ced95bd045e97612804ca774f60e05e7bde022017c12255eecc474c8d8b05d0910013b2df8703af68212cf0962b6b8ee0e101ee01210341e154088c23b8ea943bca94c1d4f65361668a242b168522f00199365414b46affffffff01019891ad000000001976a91481db1aa49ebc6a71cad96949eb28e22af85eb0bd88ac00000000" +} \ No newline at end of file diff --git a/tests/blocks/litecoin_mainnet_900000.json b/tests/blocks/litecoin_mainnet_900000.json new file mode 100644 index 0000000..a768c9b --- /dev/null +++ b/tests/blocks/litecoin_mainnet_900000.json @@ -0,0 +1,18 @@ +{ + "hash": "545127eacc261629ae25ada99c7aadc1a929aed2da32f95ef866333f37c11e49", + "size": 1132, + "height": 900000, + "merkleroot": "11929e3e325f6346e9d24c0373dafbafcaaa7837aa862f33b7c529d457ca1229", + "tx": [ + "ad21fe3e94fd3da9a0920ed2fd112f7c805ac1b80274f4d999da3d2a5c6bd733", + "ea3b27388e968c413ef6af47be2843d649979e9b721331f593287b8d486be230", + "3b6b555a86471c5e5ee3d07838df04a6802f83b6f37c79922b86ef1983262d5e", + "026f93ffe84775b6c42b660944d25f7224c31b1175db837b664db32cd42e2300", + "7c274e298aa6feae7a0590dffca92d31b1f5f3697b26c6ceb477efc43f0afe39" + ], + "time": 1449526456, + "nonce": 685998084, + "bits": "1b014ec5", + "previousblockhash": "93819e801bbdaec2698e3dda35e12be0a0004759c635924fda7f007a358848be", + "block": "03000000be4888357a007fda4f9235c6594700a0e02be135da3d8e69c2aebd1b809e81932912ca57d429c5b7332f86aa3778aacaaffbda73034cd2e946635f323e9e9211b8046656c54e011b0480e3280501000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6403a0bb0de4b883e5bda9e7a59ee4bb99e9b1bcfabe6d6d227c509f30b3ac49948323ce5974f89f6261ed913a701fc137bc08ead15179b940000000f09f909f4d696e6564206279206c6a6a38380000000000000000000000000000000000000000000000510000000176fa0795000000001976a914aa3750aa18b8a0f3f0590731e1fab934856680cf88ac5aa5893301000000015992d44c8d8790727c91055ce305e115373ff7fe32d632edc3f9939914b7d810000000006a47304402203ea789e265999b19b2155e4eb6135a50773d45836e1abb00a4959126c323e25d02207db24c9069683a6e4fc850a700717da08bf2c3ea80e8f3ee1ac75c1b702198800121033567eb9b5281b320bd8f20718b205e1808e7c0432d41991bdfad3eb5b53c49f9ffffffff02427e8837000000001976a914bc8d35412e239d91f9c95548afa15e22f094be3688ac0027b929000000001976a914b5e82238517f926b14467fbf8f90812b0eec8e5288ac000000000100000001ad3d610da30df966af2407b45bf0236a782f1e4444b829bf59da1679ceb16733000000006a47304402206b32468586635a1965fbb1c186799f1ccfce13549bd098845b97e75ea8bff473022021f35faf6e67428d51e58ed1895f9db2d40337d04e1b8819154c2bc71b0446af012102a740669302896fc4bdba32a951a67f95b3369fbc2ac97f1fda559999866d623bffffffff0245781300000000001976a9146f67216770c0af807e0597896a8c8ec306994e7b88ac80841e00000000001976a914b5e8223ec1e89b386cb5beb1c30cf165ac84e46388ac000000000100000001520f304eec49a1a9eeb0682da600b436a8dd43efc97ff4ed6ac2bcf0912e5caa000000006a473044022040218475e180db66cf71aa56668145b4f4d4d0a93b0e3777985039d87a53f881022047aaef5b4e262365c2dd2d7e1cbdf3016ff22468faef6104e4397540c199dfc6012103418a46f4534e7ec8a98146da6431550c370069777cacfdfbccc7a01f31abd1d0ffffffff02505bd425000000001976a9149f74e62f0f92663525050b56ad8b180048b4e80488ac408d1c1b000000001976a9149f7044d46304c187dc08d05864aeccb5a044e45588ac00000000010000000139c9bb7efca3fdd77ae18adf87614827d1c0bb1803a0d50ae42342e524ca99b7000000006a47304402205b75fd27c33c89346bc778d1369549b27f41ed0ded4947a19fb2884363a8ee7502206672bb1bd4e4a2a89cba62d1c5a93e1a6ae042f379e57380aebf14a693b42bea0121024f5b70c3309c77762c1b487f804c9666f5302545d7555d1808b63fdc9c17f840ffffffff01f3247d00000000001976a9149a20d4f533a7d7670cf14c77107dfd1eefddbd5388ac00000000" +} \ No newline at end of file diff --git a/tests/blocks/namecoin_mainnet_19200.json b/tests/blocks/namecoin_mainnet_19200.json new file mode 100644 index 0000000..ea99f04 --- /dev/null +++ b/tests/blocks/namecoin_mainnet_19200.json @@ -0,0 +1,14 @@ +{ + "hash": "d8a7c3e01e1e95bcee015e6fcc7583a2ca60b79e5a3aa0a171eddd344ada903d", + "size": 678, + "height": 19200, + "merkleroot": "88afdfdcc78f778f701835b62e432d3ba7d55b3e59ac4e7cab08d6bc49655c0f", + "tx": [ + "88afdfdcc78f778f701835b62e432d3ba7d55b3e59ac4e7cab08d6bc49655c0f" + ], + "time": 1318066829, + "nonce": 0, + "bits": "1b00b269", + "previousblockhash": "000000000000b19f0ad5cd46859fe8c9662e8828d8a75ff6da73167ac09a9036", + "block": "0101010036909ac07a1673daf65fa7d828882e66c9e89f8546cdd50a9fb10000000000000f5c6549bcd608ab7c4eac593e5bd5a73b2d432eb63518708f778fc7dcdfaf888d1a904e69b2001b0000000001000000010000000000000000000000000000000000000000000000000000000000000000ffffffff35045dee091a014d522cfabe6d6dd8a7c3e01e1e95bcee015e6fcc7583a2ca60b79e5a3aa0a171eddd344ada903d0100000000000000ffffffff0160a0102a01000000434104f8bbe97ed2acbc5bba11c68f6f1a0313f918f3d3c0e8475055e351e3bf442f8c8dcee682d2457bdc5351b70dd9e34026766eba18b06eaee2e102efd1ab634667ac00000000a903ef9de1918e4b44f6176a30c0e7c7e3439c96fb597327473d00000000000005050ac4a1a1e1bce0c48e555b1a9f935281968c72d6379b24729ca0425a3fc3cb433cd348b35ea22806cf21c7b146489aef6989551eb5ad2373ab6121060f30341d648757c0217d43e66c57eaed64fc1820ec65d157f33b741965183a5e0c8506ac2602dfe2f547012d1cc75004d48f97aba46bd9930ff285c9f276f5bd09f356df19724579d65ec7cb62bf97946dfc6fb0e3b2839b7fdab37cdb60e55122d35b0000000000000000000100000008be13295c03e67cb70d00dae81ea06e78b9014e5ceb7d9ba504000000000000e0fd42db8ef6d783f079d126bea12e2d10c104c0927cd68f954d856f9e8111e59a23904e5dee091a1c6550860101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff080469b2001b010152ffffffff0100f2052a0100000043410489fe91e62847575c98deeab020f65fdff17a3a870ebb05820b414f3d8097218ec9a65f1e0ae0ac35af7247bd79ed1f2a24675fffb5aa6f9620e1920ad4bf5aa6ac00000000" +} diff --git a/tests/blocks/namecoin_mainnet_19204.json b/tests/blocks/namecoin_mainnet_19204.json new file mode 100644 index 0000000..28edfca --- /dev/null +++ b/tests/blocks/namecoin_mainnet_19204.json @@ -0,0 +1,15 @@ +{ + "hash": "000000000000122ff239e71146bf57aee28ad913931d672cd124255e91351660", + "size": 475, + "height": 19204, + "merkleroot": "45d5bc5330dad21dd4dcf0daadefef4ba826fe81e2dd2fa38a4a49ea06c97b1d", + "tx": [ + "7752b6a596641bd90ae71d1bc054f3dd1ad36ce3fe7e7d3292ff8594feafb8a9", + "499dad7cd9e737c9f2f10bc4b3930b566d82288a8c02b68a50d2cf2694868bdd" + ], + "time": 1318073606, + "nonce": 3373003561, + "bits": "1b00b269", + "previousblockhash": "07d6d85d2f33fae0b52d84a90757d1600fdb3f2cf2f31f2a32eef59172245af6", + "block": "01000100f65a247291f5ee322a1ff3f22c3fdb0f60d15707a9842db5e0fa332f5dd8d6071d7bc906ea494a8aa32fdde281fe26a84befefaddaf0dcd41dd2da3053bcd5450635904e69b2001b29f30bc90201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff080469b2001b027829ffffffff0100f2052a0100000043410439cf5bc2e4b0d555178b3d19fa82d59aa998cc082086f874928af6e70c1093b300b6371d093ac9d41393e11907ed17d2489405e220a6f08feeecbce9f6cfcc0bac00000000010000000148efa1ba7512bbd538033b798da1064e724e21739f6bd8ea0c28e3d0d53136d6010000008c49304602210095cf1a495623ed7794746b7b0f2daa70a9783f635e24991487e8a6869b553c9b0221009dec7919115c3a84f03236c8aea6e175e8dd9ee3a6daa1f6c56ac1d6246ec5da014104d483cffe3907aefdb9a20dab73dd4c83f6d14d26bd9d21aeccd33b0be2068e4832fea66110606198728413ad88a6dd642bdd6ff72aefd79732a2375c3129f1fcffffffff0220ab6136000000001976a9141b5a80636dfa8c4e78c1d1150a2ba961d704911388ac0065cd1d000000001976a9143f47c122f3a71e70cb3a4c9d215e5ce7b740b96a88ac00000000" +} diff --git a/tests/blocks/zcash_mainnet_1000.json b/tests/blocks/zcash_mainnet_1000.json new file mode 100644 index 0000000..2c36dd6 --- /dev/null +++ b/tests/blocks/zcash_mainnet_1000.json @@ -0,0 +1,15 @@ +{ + "hash": "0000000b70480327694608408728c65c1f1a300bfe705b01baca0f5504092e1b", + "size": 3562, + "height": 1000, + "merkleroot": "48a46e38901fe503b4d0733d28f601443e388c789d5bcecda11ae29e25a4c980", + "tx": [ + "2a03a4110c62047af28a44ab78ec9af9d020c9b8128051b46d89c22cd34777d5", + "fae6c7ce358e018779b11a4fba4ec0850a57e1585102843f82ebca76df1c27b9" + ], + "time": 1477750705, + "nonce": "0200000000000000000000000000000000000000000000000005b2c70a9355a5", + "bits": "1d0fe28d", + "previousblockhash": "0000000aeb86e32aeb49ef9e40bfbd69585bd67ebd62d535e7e728ed2ba42064", + "block": "040000006420a42bed28e7e735d562bd7ed65b5869bdbf409eef49eb2ae386eb0a00000080c9a4259ee21aa1cdce5b9d788c383e4401f6283d73d0b403e51f90386ea4480000000000000000000000000000000000000000000000000000000000000000b1af14588de20f1da555930ac7b20500000000000000000000000000000000000000000000000002fd4005003bd1eed8ec2acfb38c728dcffafcc1c10716b2d518119615c95684fd2ee693a7134490f943c17ab4130bcc16663ee26667d79f32070d97c426e06f7a94c515ae7fbfd61cc0735eae12a6f6996c213d6691370a0b640f7a6143d431fa21f31c76315c9e0d60b6176735fa92942cd54547bba348f7a96dca66677a342b3c0c51677fd113762fc28df66c73ca4762fdd4f7f7303e18cd2d3b1e2f3716ec975dacc923fac0e55926dc03490b7b6cceea20c2bab9b2d678fe269ceb580ccb346e65fdd84dc0e38bc1660f90f917ce7f21fa10de034f4773500f311fdf4c76c16afd396338eadfd96e046bf70a20ea0cddb0b687d906bf1b6a12db3e411c041aa3d6c40d088b1040f3fd4d229e1a7f0777a3031efb030eee1de2d5bbbc84075972b8da18273802150c3c98fc48837784caf905b4556f1133afb65dedf82825852ea5e31bd7a45997a4034168771104f8b343015c1abd0716d10d6bc1f03cb905857dcc56f7e2fc6c1d83762c2065ebfe0d87f289fccbde95715557bb21cd02bc09cc5013028a523ab63e490281863e65ca2d7247ff7de13defdf5db5d5db3837723e1758318f062321750bc1c17371475509c3e1ef154be46f59551c136f50c06ef29b97930490022d75855cdf18278a185124020a13c2a1de456494a17838c77ede9dbfb025234e13b6d7b43cd561e6930fd3a709a5ff4f84dc05ac3ff32b687ed97db3644fb5cd752d4138784fb011fd65cac32a02eb93ad528127f41b494d6079b970399ffbd371ed93d78eaa08d10878bb1b44893d6ad14e5ceeb34ee044d7af1056e7ff64984763985ed6e40f42e2470e36af8dd0a87140f7eee9c8940d6e154b27a3db8a10a221e59a2bf42429561b3a9c4cfab6f114391b1fd02cf2f3ec4ac77acaf4cc0e9ddcb8b20919584cb11dab8305e76302da779f0d9ef0f358aac902270f857d215c032a766183cd27f1a9e4d25f59ac7360f424c82b6ea3dced576ed36c7707184e9cbe760bc953e4444e8967e4f0b84808fde99704153f8b2a1b3da14228d8e71d12229734ddddbdf208fc3444840f9bb334d21ae2b58ec0c669e4f93e4ec8d659e5d52492daea112423ef4433f40bdfba877db7e7db053515288fd1c4ded1af01c4d60e9bc39e6e78f9b9c6628beb1d7064e5c79fdb8a5a77ef78185aa822d95caf0ae776abd3cc813266ba93b58853e6cf637c7fb865164b1c58e665ecbbacd381b8c7fee0da7a21f6bd6e0f43f95c85e9fb6bbc59db59d4ef23fb7a821f04a50f79aa14ee862e36f671b5e3733b733ef2b69ecd880d843a3ea7864d134a6f32b502ac549ee2aebb2bde0e9826a971d7ce4d7937940468bb94917bcff560d33e9b04434cd9ce8edb5e370afedc34b3bcbd1de6c04cbc242f679e7916fc4da54f7e609ffe32b41d43d5044816d3b7cac77e78df188723574b5a62f6b7faf2263c0f3a469d683dba34087691f10dba3e745408d917ec5324072f2e5dc5a743d27d78b1590389ab54091809791df5e15ef9472c71886328856883ff49739707a0d8fcf2707d47864d85e16562ae8666a018ee4210f203fd98096584908d740ccc794b3aa48017f75f1e02a368698bd049faf62a4c8efda1838f295f88c741626fafa9de9dc17d75a6d1cf6256929fd6589fa00655dbdb41e3cb0b63e523d18fbb8662c14e777dae0bfe6a91618aa4f744b452e580a47c6a78f75dfcb425f399ebf06de31fe4f8252fddbdc48a97d6dc43484cb775f9f617945ffe7e181498c153de17f0bbc2fa0eac18e201a00145e64a02a7bfa866a166b45857281683ae34bb8e4bbe96a8b2305117169a2afed309921554bc551bcc9aac9488b28af5e10321ce53101e79348b3d200e8e3564d78084c017a6239a3dee765ebf0201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0402e80300ffffffff029017fb0200000000232103d2b11b34418e65f8358fb89bee21432b6505eb860614560ce7180fa362f8d965ac20bcbe000000000017a9147d46a730d31f97b1930d3368a967c309bd4d136a8700000000020000000001cb5f0800000000001976a91462781a2b98afe68df3969626aed5140083b281be88ac00000000010000000000000000db86080000000000d22e16e61fb5ffe03dbd17120fe278119283fc058630b151c7d57228b915d59b5a3807a619154f2e843190aef7d6178ca13c749049a1c187806b0a82045ebb075d93bee3646fef8d8354172f5033d33dee040ab22008a6dbc2f4cbcf0a535a14358d59e198a5cf851c1b8390dd1b11e1f3035c8de30af8debbeee05a711e3b3a5a2d42333cfbdaebb7c6f7149af180f5d3affaf9904d7bf0e9219f756e2934475f6c8d130ea154080d0b13f84b201bba94996ca5b63aebd1b5db126140cd431c5244d3f0c61c7a99120a667ee19eac1d40534b440562e4b62bda003fd78c00a0bb687912dc6d940ffc0f90913e1ad66f3b083deebd7fc7a84e1d436846446be306d97ea37bf0f6e6d604fba23c37cac3f0dabecb9fb6fa0efdbea5cf45b09711032981cf8ab112a4be60c7060217fb46ff2188563c422572769a4badd8fd07f4fd021850f8ee1116f6f0d0e5892c36882590b0bce2068416b2fcb6718fc2753bd3910a05431c92587fad8e0ef181a0250cca1f4b48fea77c248ca8801296ca8dc2aeb56bcdc951b381631daf2ebef7a209367cb7fc65a76af1ba1745bacc467ea1fbd0022cfe1d0bb59d4ce857cd5d093f764aa359449a7d6c9c0da7d8c3919ce49a3c5602287de3b88ba75425325a9877d50d39222f8feececebcba020b7631b561eb9b4e0319ba59eab765c93bcb8a6093e88e12a2651cb5edf421952e287b36ec3356bfbf020327062e850495d97b0b5dcd0016f43f7c111ae0024f31b6043eebecbc008921031fdc03bec3b1c845bbdcac9ef296885afabb94f3ff16e2ab6d8305936485434706cbfeff58e4e610c73ae96a4ec156cbf0118f4dc37b56ba25060368758acf48a30a9cffcff3cb8c515db2340ba29ab5f7d8ee98157c74150bf0d6449ba885dee98b6ab9987e3d4fd7ecb141c24897eb9aea17040df30e3b6191f509e10ae55e3481d4b49a2800c427eeb2b3119b782a99af3c9d4489f5d53d05d88790787cbf224dda53bc3377b77a09b46127ca69333dd1f265bf385751ad65def57079084c3292485891f2066903f6f86164acdf03b2419a280873581d0588e547af06f7da6bdc4c052008d4f21e278de9b72ff4c61909128dac8b3cc211060e7bbe7b8ec0067ddc7d1f273c677135436eb47bf9540e0a1821b2e1032fa47deaa1e0a27cd0c340ae4a6e5cdc178d637aab0d3f5825e2cd2b3c390ef2cedbe22482c150418400bb8d4a7a9c75affb3794b13837f3d5125316b4a2b70478d1dbc93da56f9aee295c32305efde3ae835288ba1d20e674f958556c46b4574695b853866c40a4357eca23fbdfaef5565341bcdfa204fa9d234e6a19138bddbdbb531face9175c76126c9bad3b4e1ee4300909485e9bc70063e2c6e0d86c6c1c585fbc202cf2af867079a0c528a9c541ae0f73833a0ba8616ae2e45b02d338c843748664aeafb6d1ba197f0a943fe8e1988c5b3e27127c14f45e6c1878446567e0ccde39c3a8ff361b17bf50dc295788e281d9d0051bd1d3ceab5fe494a0efdf957bb02ff139b752eccf92c7c454dafee9e83df912c602ffa32e59c334213df610f543b07bf547ba35d9b39b4079476b28e78e272def1e42bfafb91459e9d236eb7a4ddcb44bded2b3d2d9571e7c18ffbe7368fbf350116d350f9e8fee8afc30790fbd0e1fa3642644c92e018ed9ecbed99315d0e199bbe4e63aee1e66f1a8f1295b7476cfc02d5c41acd85fa2cc2699684ff897c9d52fb7a417a83597ff9e89be120a34ef7041131022f6494905fb78f60f31eca6a651fff2edee6f287871267ff1cbf84f12a73e9bf1bf6d16e794f37b7325c1da5c44774af8475bf7c9743251a4a111b977aca58d4d396c83aef0b05bbca73edacd6c691fef2a4371cf42d9292f416e72c0caa78d3f8543d70f999caaafb9ba465c64e9efc79398d79dc0a1cff4de789a563a3a4c7969d8497bf114870af1aa68d87a7cd2102b82c2f3eddb77a0b7e5ab5b618a50c9b642b968ab37b15b36c0266c87a4c2c98fa2bf5f368fd147d99924d615b83db2c4ebd6c93f42cd3d9b7260ccf6dc4ecac7e06262e5b6dd7eae1051236a89715d19c0bef814887d319f6f16f9bcd0425d83357b5b2e8dfcc2d4bd06d2d0390f1dbcea244700309fe870039e7548613c5ada8496c53d23be00399d3a126a48f0a966ce8c309541e80528d9fc66404359d2ccd69d808031678c5e3f44524f957b3de7d5ce9594671977e8d903921acf437d05f80a4785ed99eefc23c28797dd839a23b311d35206e9cc16ae16ed409cf90a36e997e5bfd23d20efed87491e5fd1cc0725ca9e021d48bf83af9bd82629b82651ec6a4e60d95e237ca9222a3d5e19111b064f2f4d79c149ba0f9b5af0600fa7ae58012aa8f456ae3af679405a2eb5a6e5a3fdda01891e129b5d756816803d92d742eca0dd81879ae2781577cc16cc109901311fc494fd4a80cf4cc41a68ec46d4583e912d61a7d8febe0d07b26a52c45a81932127a6e70a8c1002039a528f520549da16bb0ffa3a767adf69a0fc5e1a0bbb0cc03c78325d8585e754c5a10f9a9e055ac1ac3ca26f9b0bde90012402d91d84a1a006a43145900fde4966854315311cab068dcc9e893c23d308998fc688d63e0779e789eb711eee7c4a87d30503" +} diff --git a/tests/test_blocks.py b/tests/test_blocks.py new file mode 100644 index 0000000..ff8b756 --- /dev/null +++ b/tests/test_blocks.py @@ -0,0 +1,68 @@ +# Copyright (c) 2017, the ElectrumX authors +# +# All rights reserved. +# +# The MIT License (MIT) +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# and warranty status of this software. + +import json +import os +from binascii import unhexlify + +import pytest + +from lib.coins import Coin +from lib.hash import hex_str_to_hash + +BLOCKS_DIR = os.path.join( + os.path.dirname(os.path.realpath(__file__)), 'blocks') + +# Find out which db engines to test +# Those that are not installed will be skipped +blocks = [] + +for name in os.listdir(BLOCKS_DIR): + try: + name_parts = name.split("_") + coin = Coin.lookup_coin_class(name_parts[0], name_parts[1]) + with open(os.path.join(BLOCKS_DIR, name)) as f: + blocks.append((coin, json.load(f))) + except Exception as e: + blocks.append(pytest.mark.skip(name)) + + +@pytest.fixture(params=blocks) +def block_details(request): + return request.param + + +def test_block(block_details): + coin, block_info = block_details + + block = unhexlify(block_info['block']) + h, txs = coin.block_full(block, block_info['height']) + + assert coin.header_hash(h) == hex_str_to_hash(block_info['hash']) + assert coin.header_prevhash(h) == hex_str_to_hash(block_info['previousblockhash']) + for n, tx in enumerate(txs): + _, txid = tx + assert txid == hex_str_to_hash(block_info['tx'][n])