Add test vectors for genesis & early blocks.
This commit is contained in:
parent
4957567409
commit
5059c23e99
|
@ -115,4 +115,6 @@ impl fmt::Debug for BlockTestVector {
|
|||
|
||||
lazy_static! {
|
||||
pub static ref BLOCK_MAINNET_415000_BYTES: Vec<u8> = <Vec<u8>>::from_hex("040000005274b43b9e4ad8f43e93f78463d24dcfe531aeb4719819f4f97f7e0300000000663073bc4bfa95c9bec36aad7268a573049797bdfc5aa4c743fbe4820aa393ce0000000000000000000000000000000000000000000000000000000000000000a8becc5be1ab031cc2fd607c776a7a0000000000000000000000000000000000000000003eb21819fd400500949d55de0cc633e0cce41e4649ef4aa3349f0100290ffe281b947b3b53fbd2f35b1ce292649b96ac6e0883af3a6844b95592e74556da344b4701961cd4130c68219cfa1341d5afb5049eb0e8be4a2d92d678c40785e33705548b5f3a54f0a4c39a2f58ee784a24163cd86f54812327df55e1d55ca84b6e7b887a7cbfb9091a585bdb8ea4759307c56c1b3dafc669245a6f654b6f730052266a01ad4f9c0b59ed4e17712b3e72df0498aa8de4888f993531c60acded1d4b66e89de0b6482cccd4a712f5cf9d4ca83be0f922de2c1dbb3a1407480dbe8795993d8be640988abfe7a8a1b33a12131c451e1abc0d83fb851862c637ce724d5fe97aa9a806cf34bab509f4554b0cd10a7ddfd5821b091ad2c90c1aa1d81eb3d72db41993b648f41e2138ff9531a30ff73b22140e4ebd7baa33848e512d99300c5c131c6e75f5714a5c6dcb178b4a4978dac83ad412fbd692019250c553049aad457984bedfc96ae701c659bc7007a97d0a9002b945bdec45a945ef6285b2cd553b4c09d907c627863f0399e8725b4ff7fc5979e3cff22814508448ef8b9831c285959333396aa362a51cf205097afabec15e41fb6e30b622374bf58b37ef9d1b241ead5a682b98b65749a57568e238d50afd417e1e960e7b5a064fd9f694d783a2cbcd58552dedbb9e5e1123674ef73a524196cf05d3e524660549ffe7bd6568057135ffd5afd943f6da11cbb597e8ccecd77ecbe909de0631bfa29cd3e3d5544671ba80256153d6e9990b88ad8e0cf4989bef4be457f9c7b0f1aacd6e0ef320605c29ed0cd2eb6cfce216c52a317580201cad7a0943d24b7b06d5bf758761dd96e11970b5ded697222b2c77e7f256a605ac755549c1651f25adfc9d53d9117e3a0bb409eee4a600120472949c7dda1c2edb3c330c7f96179982916457d331e96309dd24df74eedd00e7db497ee130f77de666eb557fb316e87adaf1813ce426a458a6eee3a85b2ab88f6553aadae8de652e211a1d9f334d596b5eb6173407efcc2e8154bb9ca1212aa9a1a1121d2f5a7712cf25cc8148b8052e0d2e09f20e5ba2a98277e975b0eed9a89206966337163f215c9d04a6598b0958d333d846773c69e5abfd0a0427f3660614dd82b79adb851a0d58b62df5f0b3ac836e6e25f3a51f49a99ade57796fe9fcc26f0a1f94ff0819fe52b75087edbed3a81626eb5416c66557f11c0fcedff223d6aa8cd5c35386e5b4b95a0f0392ca301a38b3687d094493b9e9d264d07a190ce57d116804382a3fabe15af4df4fa043f0287aa1ed5568d9ef5d12510d010ccdab4eb616f6df13bb3126ef43d9d65735e4e4c04b576348d040b535055a3d5ae191b75f0612f3b24066a05245f27fe57bda66bd6dec7e4fc9cb236802062adde3cd0e313482c92a0c721102b1f38b015ab8d01559cbcb40f674e9efad5ee9c2fe133faa55ca1dd0ff26710f9da819cc1459cb7ed260dad3db0596258d47c74c32a8b852b671c5a0caa2001603d90c91a7df2e2d4ee9ae9bf1a6b1ec88151c62360d03024d2e2d0114084f6b88c5bba24aa7cecfac16e91e0baf3d8653e218093e81d2a63c32eff1d9030f9e1414ece420daa24e0dd5b845b3274bb839ca1c53bcc0194242d74b2631b9495a654fbbdcbfad779f7322b60736249880604821d96924e3fa397f354a5ecca34f614da5456f9b36338c37d8f6fbf626be983477766022872746da10a1771ceb02dd8aac01ba186bf1488630479e1284da0190fce8b59ac6b0fd416bee56b72f0a5845153557ff0f4950a0dc5be65ce942d22e18534c4e0efabb2d1525dc4858b9b0f77d474a125ebc250e08fedbfaa66f453d90932cab3ff45221909968e51e6bc254d509adeb75cba76d48fe024e3e66d8df5e01030000807082c403010000000000000000000000000000000000000000000000000000000000000000ffffffff1a03185506152f5669614254432f48656c6c6f20776f726c64212fffffffff0200ca9a3b000000001976a914fb8a6a4c11cb216ce21f9f371dfc9271a469bd6d88ac80b2e60e0000000017a914e0a5ea1340cc6b1d6a82c06c0a9c60b9898b6ae987000000000000000000").expect("Block bytes are in valid hex representation");
|
||||
pub static ref BLOCK_MAINNET_GENESIS_BYTES: Vec<u8> = <Vec<u8>>::from_hex("040000000000000000000000000000000000000000000000000000000000000000000000db4d7a85b768123f1dff1d4c4cece70083b2d27e117b4ac2e31d087988a5eac4000000000000000000000000000000000000000000000000000000000000000090041358ffff071f5712000000000000000000000000000000000000000000000000000000000000fd4005000a889f00854b8665cd555f4656f68179d31ccadc1b1f7fb0952726313b16941da348284d67add4686121d4e3d930160c1348d8191c25f12b267a6a9c131b5031cbf8af1f79c9d513076a216ec87ed045fa966e01214ed83ca02dc1797270a454720d3206ac7d931a0a680c5c5e099057592570ca9bdf6058343958b31901fce1a15a4f38fd347750912e14004c73dfe588b903b6c03166582eeaf30529b14072a7b3079e3a684601b9b3024054201f7440b0ee9eb1a7120ff43f713735494aa27b1f8bab60d7f398bca14f6abb2adbf29b04099121438a7974b078a11635b594e9170f1086140b4173822dd697894483e1c6b4e8b8dcd5cb12ca4903bc61e108871d4d915a9093c18ac9b02b6716ce1013ca2c1174e319c1a570215bc9ab5f7564765f7be20524dc3fdf8aa356fd94d445e05ab165ad8bb4a0db096c097618c81098f91443c719416d39837af6de85015dca0de89462b1d8386758b2cf8a99e00953b308032ae44c35e05eb71842922eb69797f68813b59caf266cb6c213569ae3280505421a7e3a0a37fdf8e2ea354fc5422816655394a9454bac542a9298f176e211020d63dee6852c40de02267e2fc9d5e1ff2ad9309506f02a1a71a0501b16d0d36f70cdfd8de78116c0c506ee0b8ddfdeb561acadf31746b5a9dd32c21930884397fb1682164cb565cc14e089d66635a32618f7eb05fe05082b8a3fae620571660a6b89886eac53dec109d7cbb6930ca698a168f301a950be152da1be2b9e07516995e20baceebecb5579d7cdbc16d09f3a50cb3c7dffe33f26686d4ff3f8946ee6475e98cf7b3cf9062b6966e838f865ff3de5fb064a37a21da7bb8dfd2501a29e184f207caaba364f36f2329a77515dcb710e29ffbf73e2bbd773fab1f9a6b005567affff605c132e4e4dd69f36bd201005458cfbd2c658701eb2a700251cefd886b1e674ae816d3f719bac64be649c172ba27a4fd55947d95d53ba4cbc73de97b8af5ed4840b659370c556e7376457f51e5ebb66018849923db82c1c9a819f173cccdb8f3324b239609a300018d0fb094adf5bd7cbb3834c69e6d0b3798065c525b20f040e965e1a161af78ff7561cd874f5f1b75aa0bc77f720589e1b810f831eac5073e6dd46d00a2793f70f7427f0f798f2f53a67e615e65d356e66fe40609a958a05edb4c175bcc383ea0530e67ddbe479a898943c6e3074c6fcc252d6014de3a3d292b03f0d88d312fe221be7be7e3c59d07fa0f2f4029e364f1f355c5d01fa53770d0cd76d82bf7e60f6903bc1beb772e6fde4a70be51d9c7e03c8d6d8dfb361a234ba47c470fe630820bbd920715621b9fbedb49fcee165ead0875e6c2b1af16f50b5d6140cc981122fcbcf7c5a4e3772b3661b628e08380abc545957e59f634705b1bbde2f0b4e055a5ec5676d859be77e20962b645e051a880fddb0180b4555789e1f9344a436a84dc5579e2553f1e5fb0a599c137be36cabbed0319831fea3fddf94ddc7971e4bcf02cdc93294a9aab3e3b13e3b058235b4f4ec06ba4ceaa49d675b4ba80716f3bc6976b1fbf9c8bf1f3e3a4dc1cd83ef9cf816667fb94f1e923ff63fef072e6a19321e4812f96cb0ffa864da50ad74deb76917a336f31dce03ed5f0303aad5e6a83634f9fcc371096f8288b8f02ddded5ff1bb9d49331e4a84dbe1543164438fde9ad71dab024779dcdde0b6602b5ae0a6265c14b94edd83b37403f4b78fcd2ed555b596402c28ee81d87a909c4e8722b30c71ecdd861b05f61f8b1231795c76adba2fdefa451b283a5d527955b9f3de1b9828e7b2e74123dd47062ddcc09b05e7fa13cb2212a6fdbc65d7e852cec463ec6fd929f5b8483cf3052113b13dac91b69f49d1b7d1aec01c4a68e41ce1570101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff071f0104455a6361736830623963346565663862376363343137656535303031653335303039383462366665613335363833613763616331343161303433633432303634383335643334ffffffff010000000000000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000").expect("Block bytes are in valid hex representation");
|
||||
pub static ref BLOCK_MAINNET_1_BYTES: Vec<u8> = <Vec<u8>>::from_hex("0400000008ce3d9731b000c08338455c8a4a6bd05da16e26b11daa1b917184ece80f04000946edb9c083c9942d92305444527765fad789c438c717783276a9f7fbf61b850000000000000000000000000000000000000000000000000000000000000000ac7a1358ffff071f7534e8cf161ff2e49d54bdb3bfbcde8cdbf2fc5963c9ec7d86aed4a67e975790fd4005002b2ee0d2f5d0c1ebf5a265b6f5b428f2fdc9aaea07078a6c5cab4f1bbfcd56489863deae6ea3fd8d3d0762e8e5295ff2670c9e90d8e8c68a54a40927e82a65e1d44ced20d835818e172d7b7f5ffe0245d0c3860a3f11af5658d68b6a7253b4684ffef5242fefa77a0bfc3437e8d94df9dc57510f5a128e676dd9ddf23f0ef75b460090f507499585541ab53a470c547ea02723d3a979930941157792c4362e42d3b9faca342a5c05a56909b046b5e92e2870fca7c932ae2c2fdd97d75b6e0ecb501701c1250246093c73efc5ec2838aeb80b59577741aa5ccdf4a631b79f70fc419e28714fa22108d991c29052b2f5f72294c355b57504369313470ecdd8e0ae97fc48e243a38c2ee7315bb05b7de9602047e97449c81e46746513221738dc729d7077a1771cea858865d85261e71e82003ccfbba2416358f023251206d6ef4c5596bc35b2b5bce3e9351798aa2c9904723034e5815c7512d260cc957df5db6adf9ed7272483312d1e68c60955a944e713355089876a704aef06359238f6de5a618f7bd0b4552ba72d05a6165e582f62d55ff2e1b76991971689ba3bee16a520fd85380a6e5a31de4dd4654d561101ce0ca390862d5774921eae2c284008692e9e08562144e8aa1f399a9d3fab0c4559c1f12bc945e626f7a89668613e8829767f4116ee9a4f832cf7c3ade3a7aba8cb04de39edd94d0d05093ed642adf9fbd9d373a80832ffd1c62034e4341546b3515f0e42e6d8570393c6754be5cdb7753b4709527d3f164aebf3d315934f7b3736a1b31052f6cc5699758950331163b3df05b9772e9bf99c8c77f8960e10a15edb06200106f45742d740c422c86b7e4f5a52d3732aa79ee54cfc92f76e03c268ae226477c19924e733caf95b8f350233a5312f4ed349d3ad76f032358f83a6d0d6f83b2a456742aad7f3e615fa72286300f0ea1c9793831ef3a5a4ae08640a6e32f53d1cba0be284b25e923d0d110ba227e54725632efcbbe17c05a9cde976504f6aece0c461b562cfae1b85d5f6782ee27b3e332ac0775f681682ce524b32889f1dc4231226f1aada0703beaf8d41732c9647a0a940a86f8a1be7f239c44fcaa7ed7a055506bdbe1df848f9e047226bee1b6d788a03f6e352eead99b419cfc41741942dbeb7a5c55788d5a3e636d8aab7b36b4db71d16700373bbc1cdeba8f9b1db10bf39a621bc737ea4f4e333698d6e09b51ac7a97fb6fd117ccad1d6b6b3a7451699d5bfe448650396d7b58867b3b0872be13ad0b43da267df0ad77025155f04e20c56d6a9befb3e9c7d23b82cbf3a534295ebda540682cc81be9273781b92519c858f9c25294fbacf75c3b3c15bda6d36de1c83336f93e96910dbdcb190d6ef123c98565ff6df1e903f57d4e4df167ba6b829d6d9713eb2126b0cf869940204137babcc6a1b7cb2f0b94318a7460e5d1a605c249bd2e72123ebad332332c18adcb285ed8874dbde084ebcd4f744465350d57110f037fffed1569d642c258749e65b0d13e117eaa37014a769b5ab479b7c77178880e77099f999abe712e543dbbf626ca9bcfddc42ff2f109d21c8bd464894e55ae504fdf81e1a7694180225da7dac8879abd1036cf26bb50532b8cf138b337a1a1bd1a43f8dd70b7399e2690c8e7a5a1fe099026b8f2a6f65fc0dbedda15ba65e0abd66c7176fb426980549892b4817de78e345a7aeab05744c3def4a2f283b4255b02c91c1af7354a368c67a11703c642a385c7453131ce3a78b24c5e22ab7e136a38498ce82082181884418cb4d6c2920f258a3ad20cfbe7104af1c6c6cb5e58bf29a9901721ad19c0a260cd09a3a772443a45aea4a5c439a95834ef5dc2e26343278947b7b796f796ae9bcadb29e2899a1d7313e6f7bfb6f8b0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff025100ffffffff0250c30000000000002321027a46eb513588b01b37ea24303f4b628afd12cc20df789fede0921e43cad3e875acd43000000000000017a9147d46a730d31f97b1930d3368a967c309bd4d136a8700000000").expect("Block bytes are in valid hex representation");
|
||||
}
|
||||
|
|
|
@ -106,10 +106,15 @@ fn deserialize_blockheader() {
|
|||
|
||||
#[test]
|
||||
fn deserialize_block() {
|
||||
let block = Block::zcash_deserialize(&test_vectors::BLOCK_MAINNET_GENESIS_BYTES[..])
|
||||
.expect("block test vector should deserialize");
|
||||
println!("{:#?}", block);
|
||||
let block = Block::zcash_deserialize(&test_vectors::BLOCK_MAINNET_1_BYTES[..])
|
||||
.expect("block test vector should deserialize");
|
||||
println!("{:#?}", block);
|
||||
// https://explorer.zcha.in/blocks/415000
|
||||
let block = Block::zcash_deserialize(&test_vectors::BLOCK_MAINNET_415000_BYTES[..])
|
||||
.expect("block test vector should deserialize");
|
||||
|
||||
println!("{:#?}", block);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue