diff --git a/src/gtest/data/tx-orchard-duplicate-nullifiers.h b/src/gtest/data/tx-orchard-duplicate-nullifiers.h new file mode 100644 index 000000000..c1cdd442e --- /dev/null +++ b/src/gtest/data/tx-orchard-duplicate-nullifiers.h @@ -0,0 +1,4 @@ +#ifndef ZCASH_GTEST_DATA_TX-ORCHARD-DUPLICATE-NULLIFIERS_H +#define ZCASH_GTEST_DATA_TX-ORCHARD-DUPLICATE-NULLIFIERS_H +const char *txdata = "050000800a27a726b4d0d6c20000000029000000013412000000000000000000000000000000000000000000000000000000000000000000006a4730440220635eb46b6e39e2e66e423ff2be3cee47a3d45553674c5f0db17f0195eb10ba1f02207a2a345a516cd6503134cca8444f7147472e00daab65b38040110635a31b71830121030b4c866585dd868a9d62348a9cd008d6a312937048fff31670e7e920cfc7a744ffffffff0000000225836c1232c2681cdacda2c8387f65f37e4da30b0fe4948e2570dbf272011286511f3502e919c268a04ff7558fc800332b1da91f237e8c7ecb93e8fe6ed4912705b621c8fac53089c14cc69b08df7ab89a6731be73eafbe0742c0bb1b0c60994ff004a0312f55e9440c5c931c06a0fd34a56fbda51f3c5737cdcd00027932d17536878d11528176a7daf3a7c9e38487abe1298b92f52a54de917e010e7de448549ae845e672f1cb7c2f7b11483593eaa816a22b8d69289e968f85672c37e3d636c6e186d3c1264f119e8616b1361dcbb9ef35f64e9331897c96ecd90a7a2bd0dd32ca50d7d7630084c991fb1a9d4b1a5aec98317a28a61343ef1e7e22b976e3a3f87039c42eff54b69bf168ba714ee4c09ce5ebe8019d6dc4c4f6c4abb83cbcb7c5068a5db25a2c5b9979266ce355a0444dc7b3aae2469ce6bd7072f24dfde6d20afd5de99f0c05610c463554931723633f5584de7c052be89821c3efd7dcd89a5825c73b849bc985c9beceb9dd976893121536ca1ce28247e26b5ebac74fca33cd012097b31d95494e3adbc7c49c45b46a81a39d9b27d3f4a97e248dc4bcf3c9a67c08f8cde5ac87e68830d4512ff1201e5785ae275ac55e922bed1f7630e9165b4d38aa6cab7421d585224b4a3f33117f046a809728290df364bd28e0fe7933fb1b6ed9f8fd16a00f449a5b6de7b6734465086f7e50530ff62a5e9ac5b4c006a09a289798799752d4842c83384a62229956c36c8d9da5c6c0216578ace27bfe884e2a27f815b8c7b39580ea186923c7134f43f2ac504652ba37c9b07f3f4cb22fc1616d563c0bd5e84b38b5ecaff60f2fb06f2076946021f06c8c125671360517d433e71ad2b0636dc696c1897bbd0eb07771bf3c01374e57b57180c2c93279d2b44b6a18dd1ad9e83a9576924050979b01522d0e984757866b27ca41a9ebb4c0f6090a6d34f7e0b6da64e2633107667206443c2700cad9d6afcaaa700d1a57c6afbcab4a34bc9447375600b634f69bd8af8613f791912b827788a9135a22cdf99a8457cca28504cdedbd0560957d4f4cf2cac185a9890c679d06789abc4c546fedd4c00442429969352044de83c83dc742d5ecf9466316b655223175a6027f302202b10c30dbeb810e22fe6b0ac665008ddd5bd95461e087c4586dfe2dd75b1cf7de1cc1c7bd878de26a410dfdf096201cc82511f3502e919c268a04ff7558fc800332b1da91f237e8c7ecb93e8fe6ed49127b48a27b2b77f8ab9181ded3bd8995b76688b0576993b1040d951773205331d21e1bc754d5abea66a5e4b0a25a7a89149d38e0e9e495f92b53dde65c011072f2d274a88c8e37e3488e6ed5b0cecdbef35121e0ebfd6e868afb1c95e4093239f3ae89c2f73b89871b8a82ec208b80c2350a18b9641b2b33301509a3901b76d754649a4f68b3030821e5aa136e9a01b133573b5aa153ce593d07d1bd3d7b9fc0f96dd237f61ac0b6ab170c28ea017dbc6e0e06121a5b520f1b23cdf42e7d66e591141db0225ce4b60be075a1d9a749358a4ed5ab84f678718ba6d115ac808f920411d38e96e360cff8cee68a5b915064c87cbd782233a21ebddbea50c29303a7942b9b81250cfffd5abc3c0d48fb85254e1a4e50695402121cb223df3d00ee940c3978a5c557e03b5136abb39b943e6830a2cfb1cda752813956e56c5c9de401ba21af69fde11cf74c8d3ed4d6878d0f893d3eac6047ab2577a4632f76440e9a62051e8ac58c39a7e319efc647a3c8fa7403a2b31f3d66146110f08c18ee7694c74b478f15042805e4ea4a36d38fd08469f97483047e4e097d5853204129cde2d0b83019795121de68108c6b6931797f48a2da4850d6721eeb95a0a23d2ff049d26c7f9fe196c9a6bde16ff4435f27862c3843cc71267de9e271b35e7a5fc07d9213330ab9cc168bd0d45c44d8b396b7b2ddce57fc6edf63b1a87a38e3bdfd16f0cc2de1b468505b57edb493b396eec136b08a1d01981908201ed7b60642318b5b96f155c78a9f6ca6912c6c8dcb418eb37780bbb324dbf3969d667eaf0897e5672b549d5b2b4b83eb9cc5561fdae06f26e92356fad5ca90d7ecf0af5e4e311c1c1838c17d104280bb3fb0854df6efb2424e72592f2baddaf70d71a38612fed5d28f356ffe494493b495e1d6267ad5b385aafd0feca946da1495aec01c9d85c874ae4112913835d8b54fbc418afd2858c2b96db1843454f1c06be6bfd6f8b722fa48a474cdd0fc57d678b9bfd492e3bee46180088b68c8ed4d60eac3eebceb1ee47eefda42f4d8c4f7c35f706714e93ac5ff4743e82030000000000000000ae2935f1dfd8a24aed7c70df7de3a668eb7a49b1319880dde2bbd9031ae5d82ffd601c0f09d2aa4957d19ca6740c1baf596dd20794eb58b966da0bd782909fac7edc34c395ca6f9607dd2f6d1ad1327ae5ced89d0ce25cd517cf6f139e9562b789121a4d57f0829b7f9a48a249bc2fd1e507bccff14a192076f1f6d6b3d9dbd1c3bbaedd211456491579f5bf70625ee9a6cacdf85aa3a4f9495acddff0e55282aa6227b71d6902bd784f61ded33c7b364b2bb798efece0b248ded330937cc7c16f97b2d2b1a16f5537d92e68328c86d3280c73ded13db2f4fb7c19c1cc8cebbad4381afa8c46dc22957cb1b410b46793a4bb5e834f202164ad4496477a990cb3b63fba0ccdd2260f6060a95a39c03de4f156bfea0f83b8bbef9338c697cf9ad7f9b6335e6d1ab94808ce4935aaa1c9b99bfe42fc7b633e899d219bf0d5c2379c57f093ba7178d3d7ac8cc460ab1aa995b9f70e0c3931cd5dbbcb6cc02522d8fb369dbafbd5417ad35357ec6b42de0b2a0d97679bb2d5d5629f5844545f7a2ab57b00b1e422b9b8b92aa734996b1530dd1befdfc54fc30b766d65b6096c9e3c09183e815557f09f2e47524664b5d10d3601ed882e0e83a22523fa6089f77818046cf1b188acc72395db9b59512b302e25039f3ac0b929c80810dd2e6337eda9343b779211f8bdc1b26b2b46865744281b478a64caa4e35387c48652fab368fa4454290539925b6f7166b245790c41c46e391b1a651b23b2f44e29fe6ba2919577efe0820ce121331a65c158062b548563032d5a9ce7b9f3c18defdfcb2e8377285ee42f33c7349df93cf12a6a7f7989878f5fe903af8928714cba22329d545a101c8c9c5ebaf7dde205abb774e3195e63cec8206a990abd1a44505e8c1ec51ab45b4ea3d377a6ee8750cc284a3b6def81e1f3df682b8b5b3c2a4b743f6a91b9fb3d478566d1cba9bd370b2efa98851481cebd0dc85b626ce1b5b918e4aabbd347472e247b1f970808ac1d2948dfd895bd9ce1288c81a71cefb850582d5f0c0cfdc9473d09ea65795f54a5fe563d6eb7a2686b4d476dc6b6a0eb5e46bac5bae4623b22a7b1d79371d602e78a052ca66e5ad145e8f4e6486e7c4d580f90afe79711e3c2a098f0df66562fd7bcfd7f3a1c80b929ce0ad0236aadf4b97ab0c29f6af819810727b7d499430522a6ba741aae0d7c699f22cf5cc72e736224a057132c5a19a29b5b8a9f39351f20140cc86102cdb302a227172f1285ac7f4f4b13ab24caef6696023705f1a5888d5954e37f2e9ffd5c591f8466fbdfb223d656e06865b331cd0c9403d7c7130556db3478d7c1bec4272ebc59ec918f8b18e695027565601a0439e3ac2fac8839dd844db85f2c1069ad12b8822a60293f7f5981d956bc0cb0e234d710064cef11e9046af3887b792a4de4717e6374f1aa4fa5ec9b6684e2cd3e10d3928aba1ed00ac468d0c53197978ca2b0d940d7deb6fce99bfa5c9505edcd3c91ff14f15cf9d592a4e15bef8abe7e71b897d7e9b3a042caa31c573a32922685c06da5709be52258d03987a2863eae4a766cbcf60b5e7e34ce7943dd2314780c608489111e3edfc0f9b09a57479ea2bab89891820c99ae4a9fffd8c5dda927a438cf810fddef5066340a5311df581b1f4f9c2b0b1042752334c716fe432edc83e45eafc75b152e834ead2819f9ee0d27307a6d204e1696d142fa12d448802b3e8c0008c3876c36761dc61d46e94eae5a2c381ced0f99a0368a6453d7de0c9bb993714def16c117ee2e989996d3eaea55e5e4b93dc40d00e3ae130498daab2a83e1ef7dafd8510844a95f67767e0279e7076e1dbfc9a4e16843faa193c7d94a2978141e7b184b5ad8347de9bf55e88e418f2b3d1a18784a915dacb6cc2dcda38f344e98f5eb5727243f7193c7d0a8788f2c75734cb84734c3d05816f3ab9fd0033cad3ee26bb62229bdd73e1fcc8c16a06c27a3c263af1c4c6fea3395764207b52c3efb5f45478ffc5bcc41327685d3e11462e0f9ef292e4095b4ed7d74289a96e1ee3d830d5af3f85dcb5539ae34672eea10a0768f39129b35a2550aab89ef98e43755f69ecc6e1f90f297261cf70d35b5171b5eaf6fffdac007183d1ebb36a2a1e2adb1d427ce90899a57826055a1c54f0d38e42c349ac306fa88778495700ca91bf0d3eadc94c5c0df3cb42fa392f8bdf9c625c8d0d4df71b1451fbc2c23908a54edbde0d2b5a43cb93dfd01118fd558c92de61dd5122699a7f65e6ab2c02d83e8fd5e8e46c30091cf5cc5f36248aad69083b413d75a11b950e85b985525810fac7114a418733acd974515ddafb1898000c07c6b89bfb6e61bc9b19dedcba7e14ad67b46ca2722aa55ea42b4925c1daf3b12470dcdfe05b4a2e10929657699082054b2555acdf8eca595d8543beceefc4e4ab84a549ec547e7fb2cd77a33b181b7283a4e9c156285453cfe07355ebaa19adb0e8962251edae40b2a53ac6f00d741942050934b61fda094d058495ca2cf555387eb1194f162f2773017f28f28bd6b1bf1df9aeab970abd9884712c98a9963b908a4d9b1bd3cffdb6723ee9e381a32bb9615b6dcc6c6fa6ed217885c0b6c7b651cbbb707c64938313195632e016ac8187ca55d4e8d68c51fc61c6e4486bdf273a61fa7e37e45fe5fb1f15d5b196aceec7dc15789aecc2c59e69f61c6894801a51ef3aa92717d24174fed2e8137ca233f5e5f8553427110bd7f9d22f1306d59fdc9e1975d4cd5ef2293601c630e18418880b5ace0234575f1876d23a40b2a7a11677c53a5f8e968a953b2098c0463c513482807797fe8b2fc9fd36bd107485b331596c6b06a9ac829cc7afb821629d60ab467ae990e361229ab84123d447b0e6fecba2bc99e4eb0b591bab9602a6ac8dfd62575d901cc797fa85bd538500e6edabc58e168a0475a20270017a237d947a60a5492390d672d568a70d2ea5a6a4133be200d9a05cc0a14dcceeafb2f885ad6f7d43302447a7e06c56d6d4ec194427b4e38464d509a91b868534fd40721d45790ebc56f0fe8f65fdbb0c77e8f554429b6cb8e48c17672613e78a691246321dc763baa4ecff4563fe373af83bd29f4bea923b353dd48ba5085cc23773f64bc42b6e60ff439704fbe4e22e6b7efbdcd5d6a377be8c67fcaafa2fbb5e3375303a454f986f646b11cdfd697a305f9ac830636f48563cbfd46266c9d881a0c8dc5584ce14469cc3edcaddf4d0f309147cff5e92a768665dd1dbd02e7bc042e6970ad27842de31d8e07e9c1b41664cbb63aa5e40dace1757e5658380952d621cc93f6926e9230ab66272404f21c86d5376c0338fc2101d8ddce99957dc6ec0e627c1705e5b6f0e2798e74dae7c0146e8b9fa5b3b927a020bc9a49c8b72ca00b86380da2a0511fbd2055445597ed1346e7ff67f949e7f2cae60e717dd96a6d0e9662093a99e55a49dfe60ac596a8879ff1a0763b615a0e4f80c9d6e53ccde90bc56efc64af33d5f9a93aa820f6155fc851c7a299ca9e91610880eecadde5a50a3f5083965f1a0e4e1c01df28345023be61a6c541d38ce92e8c58590f2c20e51a18251a2abb1a967495bf623f7c196c6e68695f7f76942049a554332b0f519137a1050d46e128f888a5c1f1ca3f112ee80fbac7646330b332d60d97df3afc5f03747f4a25a138f6b3d9d9a88e0635321431769de9b7b41dee735e2e652f3d9212e08962ee1ae7d35260d5741cbb3be1e9e91872b4c604c08d64425239bdbf812363ed44bc272ed25af52b2fa6d929ebf410a810b7e906e0b4055d0e268016da370b90b599d46f1d20ec716a0cd9515c1afc9de28d3fc36b59e6b3dfd42185c03573dae734b6d2fcbb6f84c11e5d6e107813127464397b2a037be8e9966b5e922782b913b8e19024bce0efa8b3f4b7d677599737d698492c04ba7dfa5e5a5d64049dd384f75f156f3598314a5892b87abc598678ef3570fb45f3ee17d97cefc03dadae57cfce5e13e96c4af661f8d2a1c811f0ff74f2593bfbf165fd845ddc95259961a40b17bcbb367b13381a6f68451e4fde834c2bb2fdaafcd029612e26a53fb13fad7db508b26ea7753584fca8aeb2b9784c12d0e450bfa7ec20eb151b6f1f7305dd356ac0531799725c045b65b99ce92d833c14dfda3c8d49fe749e66730971372703142d71315ec1531f44f8901cc7ff1312084b28c1be42af5c28f61922fed0e5a92236e8c2f288a1c482c6a0d71f2b85acd6e586d0fc8ef6c1ec8062390a9b7f9d045bb83ca51c0c673f51236d923cf6f1abbd6ebeedd46d4f7f0f3b316df95d7d6093805a09387aa89d6068ba264ae1ca8fab309dde83f8dd6548822f95c888e5ff381567c90a6b1243734ca5066b3ec3c3e082c8369998769273a5033b19d37943a7ce439c8f8c44add8a924aa9883f9854f0af56a5575a56538580136f127f918c65deba4fdec4bb8ef8a40339a7148892893e863f98c61719c703f4beaea2047ea163f656a2319daae3c3d2c4a2bea21b9fcf102c1742776f65721a245e3b23339412bddb2fcdbeab0f60f754158063e54d4815106fc3d112f01116fd9692db3a181abd0f6f66dc84f2f38e3106c8f0ca41abff3d08bf44f1845075bd333f0f84b3e086b9f7e00243b5146303709882ea271230bb164742fe90f01b1eba4ac1af321a124eebcd6291e0361261456ee1abbac76b6e62e764e8a663aa32e615a1824fdb5d9d4e6833392b651fbef4862c6cec8e11007a21946d0e232e07bc5b218bd5bc5cd76bb4fe5a56cb8c6fabde7f0da2e3e403a4150361d0524d5b69f69eba264214371232aeaaffb27d1c7a1266378150a37677ad91de2413c4637b7b9d794bba4fb850880563c2a92d13eb64931d0315b6e6c562c18ee1d2e1688b141931f4486b192fc2fb809fb82303e90a2ead82d5c7b6acca1cc5d5f3ab732147166f7e5a9e1d6e1c8ac12aba7c063444ae5503785695dd74edea3102dc7529d4e337a00a4e535d368a7104677f05d281f12542220955dfbcb6264fd304ffa0333b0904c91f719c9a5d231eb6a49b70c8fbceadf8699701497e922c114bbae33abebc1bf006939edd29d8c19807d01596ce72b15e62cb554c95d7ee604be5268c5f595401c09f4c4fbe9066f150d8e8c8717e01e2c169cf625a198300d0d3b8d86248a439fc30da67efdaaf4ecad5b1d848e391b3fca717d5094dc640a68f8428a5bf1bf953d0b75050c17c2e7ce8dd485c2a682f27eed5a39a83e0a18e8c626ec39d464311fd2f8b246cdf34fa4ed3444d1d12c3279d605058f38232d1bc96501b0c4a8c59ac10dfff8a23ad570cffec2fb494587aa46e98beabea10036ccf080cc978b8c9cbb321b4dc7f8652d48502ab47d56919fe027db92cfd82b922dff85096a0c04577ee0272970e0b97b9f53c89b1a161ea0c228047749b706ce5afa782698302d249dec647a45a37ecb3ea80d1dc8ae7ef73b8b3a5271e01b9de086f47569834e72db443671e4bd3a80b10c9fe6df125bd7558232996d8111c6864f95cbd4cf14d69b1ae80ae4935eedcc89bbe9ff6d7ede9f451a67af802d0fdb7008604452b27af77ce6224f09b054de58d9520ff5cf789e7e02f978f9264dcf917ae77e6b7623fdc451e45faf0cc56f5c8161e79146d5d0bf164fe8073f47f0a7f7922d8d09bcfc5b9e97b71e2b716075611a3b2f694b5d05bafbf059271070cb10f2191a3a2e269a081dc40cef0c81768cc5ef0987dc7b7aff8c8adc3a59f7bc21e64c31350cd9098b32ab87268ab9ebb4b96a01878e5f1f82e49ef23e3669ef9f5360aa160281820a2692a071b25bcca59f70704c5f7a73234ccc23246cbd3624b695e88d2670907affb020602f32ba41a4d73d497395ff9d10854b28cd1ffe091afbe9a7c735a2af49fd4c7bec4028265a501e48b32d971f3b60873ce0fa9fc6065bd0f525ee1286d5a140a67217967a344f5b1f84e5b720a136111ae413c6bc00ad7a6ba1fc1f20d793c250c4f83b7d08144160f46885673da8700a38c6280774f291a1ab67583b16520ee7cfc9704d08dd3ad732fa695f7d4b143f05359dcced32da104e045506fbda8dd21cb8a2b5c0a19494d48845b681e6813c8f432c1c1393b0649cbb1085314c40e6a8382fb0b2ffff9f0a97db13c034ed2160369d943cf01e510ed222a5123e99732dd6b146ffa3c1d8ff9730783ef7bb086fc880d968be2afb30ed85a89cb4185e3ef463a8c71b56090f67e8ef9874f131db6468eedb8298528db47bd241c96c8987cd897c9e85b3f87d0be9c43d75e616a01093760e331867cf73cc7a67f75f35100dbfa46e4e78b5121748b81c1a2322d2d7cd8aa2c48697ee96fcc575f8b40a6fe61c1800e0873dd0df14a7485f95398d4245a286ac924957eb0ce74a416af94b169ad4a79da9504d2bf095fcbd5a3a6f92e3a4ca9b67ee550dd8ba55fa33901a946be046f90549e56a919e040dc9261b28ffccbced35257b0405097a640f29a263d62c0c94f9b98cbe11ab073ce104d28b11c5e925ce5638eabb6d09108e7d49a7f4103b8a85d3a66c93580c863e086d29ab15b5cb37975a22e57172251a4f5337ca90d3dc81dce59c9f07b1518226661239471693df4bcfd21c1a6868e552ecf1f4aa2a9e042deabc8f094cb8fc04d6ec285d2e1dd0fe62c55107cfca2e1b32306f211570aae671343b2c29fb7a1c74710e0c878e7e0ebd40af370b70380ea5ffd9010a3caab222b14cb22fff4133389dca9fefd20a535d92c4a52e4d8a88cb1f08fcb6d97d79aebb8a90b3d973049c56632fd4d9a2b0d3f8b2b9e36dd16c7658a91b4cb25ce3f000601fa9b00531d9cf4ab63df00c5d4a58e1a72ccee3c6e84f41a27f829e88729d8089bcf0b322f38abfc8e299269dcbfd9c46074cc6ecac0ca493dbd1ba2f22d52a0628a7f82c6b9a5bf2076d8088c9784447ac02e17cef38a693b950f2f5561ac2c2ec0fef3dddbc14c9a35afffa49c56995a91ee4d368e4277abe419c1a50b5f6101b5a1a11973975b38cddb4d830723157c7d8eff703984fdb14d1c3f36da4517924b11407a0c171e3be076027d3c7c6452670c03eb6b93ed9b6fba126df46af210d51c0069e401095c54bb802e828e39a5e3e9cca3fbad729110c92965d2d3a08067a013b9d787a906b86ea432821559b19b48206802e8f18791a06e04439db03a6f5192af7cf99f5ea60035ee5b8035630a089b36eb8b4dd761604bc87029a898f9fc82669f92c7bc995524818c0c4b3d17d72546e0d1b71e6411fc7248403f6acbd13253d24408fcf5b7934bfd99e55ae7bcd3a8e671f7d0d752184615e72d1ebffc61ee551a1e395514b3f72eb0011415bb53d5c4f59a109e308c52814f038cb62182812d72734904f4f3cf5ab07667389f458a88397311319d49a061f7226abf584333ec493d7477872a96bddc080c9dcbe4bc5a7f03209dc631093ef5e41cdc3792445959d1c6e1d57fc44a736075bccefb4c6e346e203e6690bf52d676f5011ff247f2e2ff810317d800f7fb169ed9efc0f9fa9c789fab866d1ff314d6314646d39a6aa4c7e70d03e2d5a7bcba041175842edab5d9511eca737df108addeee3c01799b3262d4aa9a9eb1de79c612835b94f624b19db7f85d85b91d79e50c19ed90827b0cb85b53edc3a7d707657214529f0b9e72cc6cd3177ed547b4e82ffe5b516dfb6042740f99b3f0abae8348a59a067fdaa347defe0279bceae40a9337036168239f90e1e5c402a4b8e69c95a69ca6842e3ff3fa01bc5e0e8f50c27f6af623c5d306968e57f76c925807f19f2d944e70421fe92fd1f82b986c2256baa3704019bd331e2fb6fc19f2541cd6eba0ca64832a134d58404522a24b5979290d35001c69a16b23c26124fdfa884ec005d10dface26b3bc5cf4b8843f50495f1d39c054551607f0de33b3927a68f10292a4a8ce3b1ebe39eccf6ef99fbd7a37e71ad24ae623617b39032d91ff0022e6faadcf9d3aae40731c83f117e430fbbacb2ac033f34d074d09a128c3308f4f83741a8ff184ac14825f0ca9bcebeab744404fa101b091f26c3929a1a802ea41d19f98867b532b539bb7d31a4d4957db11bfc1a0e75471d801b249163a1b322f6288c3728ccd271a2b22f4272c7abb86c647d7e02a1e5ca00ae362fdde76815ff9b486d89f6f5af48c6cea7fef608cabd155f4c2022a4b53d99703a06ea94eb0745062221f2f379107069ac3f160287a0b7d7df2d4629453a7ffa3726ad6e3103bedd253db8e84baac35423b303c3edf7e73e680f705155b9eb7c743e1884ac88da5d3196dc1f3152e941be442cf0827a044bc202b8fe8bddf3b1390a31965d6aac6eb6e94f62f280fb725c4b406130726b55d834a256b16e530eaf4a9715347fe83d7c28ec4ac4ff6491edd9ebf44b6e6c49f3109a54259b5e56450f23ac6f48bd5541d7687229a9f5956b9dd3725583dc7d0930c1c975663584fe44418e8de8d8fb5dcfe6323d26d16a88b3a35ea13c690f851502de4388869058f204b7251ced76a4c6137f04261ee71f688fde348fce40b935af1a37e12acfbf4b3f188527a67e35f88f7899d98065ec02a658eacb13896f3567c60e3339d856752d1c81f1a90e1268f3f38fe7af8ebbaa4ec5d5718ddd8328a0c9678e35af6f2abbb8d1d1265b9afbcdae34444f6718c20bd25494f5a7ea05879c6686c40c97859c835f9f3544cb7190ae1bad32be0db4a815286805c0a33756dcaa2c10b93a9676cde7e300a382abfe6aaac42d3f3411eba022454e02841c74aca20bc1ac72482902f1db40df3b732528a70b50d88a019701252cd69e1f209e896c50316a9ef2fae382359212130e53e2f7cf522ac8a6d63cc25ed4af7c016706add77cde98f1b1fca6966b2a23adfa0593bb68bc32defec4b8b38c2941275594ebd0728f7b00e1cf2f7d86153277627b5925f002deac0bb05357c30f9c29cb3563f3e53bcdbf2d6815507067b64f50e765c96a259e9acb17a712506f561ede6930b11ec2e3ae149230a7cb1fdb1a14a07375b4b460eac3fd2c81c39e6035025aeb984080f2c76dadc01039843f0f8b883f36f1acfb3cd6b21e587492b5280cc2f92dd3f7588dccddc2782f06be4086bef6369c631d24975f5a3ede041d0d1ba03d1d2b5cae1e2c8c6b740f79b9219a7a9c090a113ec63f9422cab034ba095cbb66d070c4d39c02b099aa254882717e2a8e55358b1fbb9c254b7639602c16b54e174e67d71b770a9772a5aacbd8cc5bdbe0d4620633fdfe8050dcbcaa798ea38181e0aaaff29ab582c921c20d76f08ddb5b2fd22b8ae776ed5a41ac8603a1e4672bc26f11fab113b33cc0816e03590ccda1545fe17c2e6a7aa9c03cdd8a8e01e12814d5698a75b15fab131e320ba7f8236a5deec63311a4bf16e07e926b1de9158bffb22644da4c31ea9acc6eda5fadd1bd61a65991345fe17ab4e018aebe1791b36f103d0616d0a439942b3fd098c241cb2b882a3d15043d3466129ab38b3ed320fe6f79d627833374d736a2ce0cee0107123f948b07c2d52104306e6910c74ef763777bdd2ede04c7a9420cfe7fca3db7d74bc4e43e319f43afffe39d146f3314af01b23f26b41a37b92dae82fbacf3f9e360ffc1f1c5466e297abb68bd018d83f410a26ffef09ca5d48aad211006010ac66e2961a3d7920f9185b30a93664e19396d7df7b8dc5e0463f0fc3089ab5c2c4a471682642034f9bb1bfccf046449d04a70210bb07c55ef26839dea0fd409e9b92602b1f11a747a5f7d6b88089c6a58c1b0ec298554219084475f05145aedf0284c4b97997911660ee8dd70b1c7d3e8bd15b9022ef54066c9c31362338d1a92092fe00a80f09348cb488416305997403cb4df14a7f9ae156f96717e6b661be83c7df33f14a1f2ec41b8c774a0b0cdaa222efcfaf838f7ba0d7db202a8fc227e869f631fd04afb1ec06aa5511b117af5678edb698d0e4eb7c7f0cc3fe52644a6f8d58f720c0621627fce7099af0789d50cf8e7aea67cd395c17c234ce5a62133525ba528f07f1bed690fdf53af3f806140255f4dd9a5190b469809e67e762d227587f48f29e6d0915d2f5852b0d56001abd5058bd84f4ca989474820a46a515204b81b6fabc39d3f0c3ca196892e1cae1d068f0555f301d84af9c43e9545316d951b132e931bf561ea12f01a20e7b855a385fb6f8bd5e8640702c261c17707864f211ff81ca3e1f3782b04d69e33ee93ec286a1873b82ad20a43e1d79d8fd3fa9820383ba2bf45133d5a621e3145c3c70c0f5e9faddfe65d109735cf60096b868a2ae86feb61a1d2f92a190108b7d31ded1cd3ff4d726c6f3dd68a3fbe50b720273efba99d85b987a2cf1567957f373cd4251f98b632643481c7d089fb3d150f0505355d6412e4d2ddd1ab611da3b03819c524ba043f1b155ef36033497583b4804cd18ce0ddb855ce027e5fa1e3d7e5bdd2793bc5b20cf417887e40761c0e9f46a305fd5098bf5f5d8fcb303ebc52c091c9201f945d2627f1184c3aae5e8420f874b52844d35e6392a767e19f2996f18050bcea6fd413adf42281bad5229f0544bb3bb339e3e894f8f21ee22f"; +#endif // ZCASH_GTEST_DATA_TX-ORCHARD-DUPLICATE-NULLIFIERS_H \ No newline at end of file diff --git a/src/gtest/test_transaction_builder.cpp b/src/gtest/test_transaction_builder.cpp index 68a723465..0b7f795c8 100644 --- a/src/gtest/test_transaction_builder.cpp +++ b/src/gtest/test_transaction_builder.cpp @@ -203,26 +203,16 @@ TEST(TransactionBuilder, SproutToSproutAndSapling) { TEST(TransactionBuilder, DuplicateOrchardNullifier) { - LoadProofParameters(); - auto consensusParams = RegtestActivateNU5(); + #include "data/tx-orchard-duplicate-nullifiers.h" - CBasicKeyStore keystore; - CKey tsk = AddTestCKeyToKeyStore(keystore); - auto scriptPubKey = GetScriptForDestination(tsk.GetPubKey().GetID()); + CDataStream ssin( + ParseHex(txdata), + SER_NETWORK, + PROTOCOL_VERSION + ); - TransactionBuilderCoinsViewDB fakeDB; - auto orchardAnchor = fakeDB.GetBestAnchor(ShieldedType::ORCHARD); - - auto builder = TransactionBuilder(consensusParams, 1, orchardAnchor, &keystore); - builder.AddTransparentInput(COutPoint(uint256S("1234"), 0), scriptPubKey, 10000); - builder.AddBogusOrchardSpends(); - auto maybeTx = builder.Build(); - EXPECT_TRUE(maybeTx.IsTx()); - if (maybeTx.IsError()) { - std::cerr << "Failed to build transaction: " << maybeTx.GetError() << std::endl; - GTEST_FAIL(); - } - auto tx = maybeTx.GetTxOrThrow(); + CTransaction tx; + ssin >> tx; CValidationState state; EXPECT_FALSE(CheckTransactionWithoutProofVerification(tx, state));