BitGo / bitgo-utxo-lib

UTXO coins functions implemented in pure JavaScript
86 stars 146 forks source link

Problem decoding Zcash block from hex or buffer #15

Closed mannutech closed 5 years ago

mannutech commented 5 years ago

function readTransaction() { var tx = Transaction.fromBuffer(buffer.slice(offset), network, true) offset += tx.byteLength() return tx }

How to reproduce : zecUtil.Block.fromHex('040000002aef47978e707a9552576cf451201961873735fa1f474d415ee5f7fd4ec200002bcc195fd5114a68a0ee65261791acadb6a96b41410e9ccfe1ce9176b12d618b2477ca322e8a5f2a43ed64365115573791597f6cfb56f15c2c0f9971c9db693bc017e45b99ca001f6fffffb700000000cc47cee231101d4100641a13000000000000000000000000fd40050029c82faac7ef06e9a0f0363bd46a050846340be8046e013587c18a656995b0832618ac094d69da55b60bab36885dceec03b391f2a9dfad4f62cd06181fcb0d2618ff7d87918cc5652749cfe24b131e129ebbda0c4485a2a6ef4479c338220030dc4d88af9f3867b52894ee4bc4af95d5bd52e2b1ea3914a0d37e5266e03abf14ccdf5b2111b1fc969cc2f8d431afcd371f085d73fff2b32d3c4fd061f85e30683dfac2fcb6fe8704ffce573f1e1f3f28361cebe6720d2f6229bf0c104499576b32144e49873c05dcf935b84324423c0a9a17a635f10748bcfe5860e2f041dad13dd73f949cdc243b3da9efac2727f2e0a659204c34df5fef9d7f9d1c716e51cbd07397def085f118c3c2eedde297601432b06ca6a85d81a586d8149ed35e207b1fa69c77f11cae4ec5b5acc361abf0329e15a962d0c4a5362dbc585a0318eddcc73715ab95d7d473f9aefb0fdff5e702c816988ff7eee3cd4c4070321eeea7ba97be98cf045660ca112bb725e44465ba69735b1aef89f9369714c05a05641337252f6bb1d95d8f94b8c85f89aba5218dd99f0ad1ff05cd72579d18e41edb511d7db1ab1023f1959384b82dadae1140dc6f0989af9672df3a12c5fc3e5ecbb661020ea644c4445e11961abd9c1731d31bf5fed3fecd83e0f44fac786a2a43093ddcb743609296e8dc9d8bf9af251dd7abeb41abc7b0226f08b211fb3e4fb0c37b0ea1ce1dbd55c3a8bb7f05a714f9fd264194eb517a456450c870837d2c59ae12fd255e39b2abd920ad404483a929bdb34ab538fb463a2774a2b4132060ff058a97882a706b5eb35a5f86870e7c90dab7949409b67a92056846f73d0229149e8416d1f1e51fda277bb636c247fe67557d18fc35cb411f523663b0de9c9afd4ba714d24e36b1c9c5de83b028c5d3686568245b443a23e7e3dd0d09d9e31d2b2601974bac618acdbed683206df43f7248655124810f0adc14c5c7c56b83842a42bbd4c8614104914f4e1306287d6cfc208207f159f0bbaf9c6445cd1270e52f49d9976a6f62030f3563c75b53c995aa7492bd08fc024ef8198a4e567bc5e464c6efd9e31b80dd7c16552374fd02ed6d4571ffaa52eab3a1af0d240d4e34d4149513e8795317dbbc14145d676c22296f8f1aae4a23e56a9a71d5a4bb6fd4a2c0331794598b95da14591970b5f0af4ca45afef8d23536705240d8465168701e147ee65b9c629180c4d54d9f59cab20cba13ffc31fd51c29979efd716fee64342053787224bfffa60c40fe322c8a9e1819b5fc458f107791d5e003bfd1fe1f01ca8bc24c41b2a449e3d42ee29bc14514da6ab122dc2e3715f4c9afdaa902a49542b0663ad7b79fed299f5621164d16e68ea053853b64001ce9e4dcd9504a6a64c996dd7ce50a8cd57be8c4cbb1cd71bc7a5d030bbac9dbae5a1b820f07277cbd8f85f17c37715e4d181d50c59c2998f5bff6aa5bb782af79523effe72848aedc7ee1ccf1dc73a30c8d74ace18d7fb82a1a374dfb6550f0f42df9f2137aaaed30965018bd4e4407b279686ca8d1d9b145f32a6a7f135cde029796063da4c72199639cb16f5d2a2c41556d9eaca41d76cd0f29f68a3194c8a5a24d1306947e4244f5496bb4451e8ac5b050ca5d7c58ad03d77ff9a7d22fc17c792506f8863e9074f98dd905357a3737ddd718a73d76e5147a42edc9ec65117858143b4b2954a695d39a20db0bf497fb564dc7cf5b89b0ce19200674e10c1cabfe354b420a171752ed9d811402553f240d04c7b801230dc62900273cf8a5fdc4016716539a5c86fb06a3c11280b0e29a97c36b834406daea5d32e22a0515ede510853a85d833f419ff7c2588c2b674ce3697f9929265030d8c496da831b994f75a8c3bc6e24436f7fb6a010400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff5003f523050044656661756c7420732d6e6f6d7020706f6f6c2068747470733a2f2f6769746875622e636f6d2f732d6e6f6d702f732d6e6f6d702f77696b692f496e73696768742d706f6f6c2d6c696e6bffffffff0260a4743b000000001976a914676557ba42becdcbe92cacfc359f129a1fb0936788ac80b2e60e0000000017a9145e21a7724b9dd0dd3f4df9703c078dddbfc94d268700000000000000000000000000000000000000', zecUtil.networks.zcashTest)

argjv commented 5 years ago

Thanks for reporting this. We haven't used the lib for block parsing so it is possible that the protocol changed in the latest Zcash versions and we didn't update it.

Do you have a block explorer link to have as a reference?

argjv commented 5 years ago

Diff 5eb99f37a8d16eb21d5422da2d708592ba9225b6 solves this issue. You can reference this specific commit in yout package.json file