From 0c787f7b3171ec7495b5353106cf2209a598d386 Mon Sep 17 00:00:00 2001 From: Vadim Nikonov Date: Wed, 16 Nov 2022 12:57:42 +0300 Subject: [PATCH 1/3] added test if proof incorrect --- .../test-flows/dependent_deposits_2.json | 11 + .../test/flows/flow_dependent_deposits_2.json | 2814 +++++++++++++++++ .../test/worker-tests/poolWorker.test.ts | 93 +- 3 files changed, 2864 insertions(+), 54 deletions(-) create mode 100644 test-flow-generator/test-flows/dependent_deposits_2.json create mode 100644 zp-relayer/test/flows/flow_dependent_deposits_2.json diff --git a/test-flow-generator/test-flows/dependent_deposits_2.json b/test-flow-generator/test-flows/dependent_deposits_2.json new file mode 100644 index 0000000..60ff9f1 --- /dev/null +++ b/test-flow-generator/test-flows/dependent_deposits_2.json @@ -0,0 +1,11 @@ +{ + "independent": false, + "accounts": { + "0x1df62f291b2e969fb0849d99d9ce41e2f137006e": "0xb0057716d5917badaf911b193b12b910811c1497b5bada8d7711f758981c3773" + }, + "flow": [ + { "from": "0x1df62f291b2e969fb0849d99d9ce41e2f137006e", "amount": "5" }, + { "from": "0x1df62f291b2e969fb0849d99d9ce41e2f137006e", "amount": "5" } + ] + } + \ No newline at end of file diff --git a/zp-relayer/test/flows/flow_dependent_deposits_2.json b/zp-relayer/test/flows/flow_dependent_deposits_2.json new file mode 100644 index 0000000..a5a3ecb --- /dev/null +++ b/zp-relayer/test/flows/flow_dependent_deposits_2.json @@ -0,0 +1,2814 @@ +[ + { + "txType": "0003", + "txTypeData": { + "from": "0x1df62f291b2e969fb0849d99d9ce41e2f137006e", + "amount": "5" + }, + "transactionData": { + "public": { + "root": "11469701942666298368112882412133877458305516134926649826543144744382391691533", + "nullifier": "10795414482265507380627153749177678120871191687613533931691816880643961264318", + "out_commit": "13856188492878404259915264426372161112087788699008431487669707598399465783803", + "delta": "5", + "memo": "3651467553745662735060910639698979199245822434400753171807853971765257177044" + }, + "secret": { + "tx": { + "input": [ + { + "d": "0", + "p_d": "15644270339666227427062970839422727481473572993408314268911765882215900689190", + "i": "0", + "b": "0", + "e": "0" + }, + [ + { + "d": "373329741094070012284533", + "p_d": "3738110893656223106186980685866898269932165254234664626622808236914274299005", + "b": "0", + "t": "327834254633463059494550" + }, + { + "d": "595539843099971672902928", + "p_d": "6190568852965126590717365451445845735522378031573310272871750810129285383687", + "b": "0", + "t": "1029572160130505031293449" + }, + { + "d": "71800375065514128404273", + "p_d": "15293498213491948791827359207644312610277260517850931264608025896687541026727", + "b": "0", + "t": "389705307092677226587948" + } + ] + ], + "output": [ + { + "d": "68797641304653580114491", + "p_d": "10729685540927825146536754446855369146200686017808939654836299154848159598217", + "i": "0", + "b": "5", + "e": "0" + }, + [ + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + } + ] + ] + }, + "in_proof": [ + { + "sibling": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + [ + { + "sibling": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + { + "sibling": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + { + "sibling": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + } + ] + ], + "eddsa_s": "2536685062306651754544062673884513887104314923792931122573832570187260217245", + "eddsa_r": "19595477329697909209861257376675543348225932868931070647069182330324860040969", + "eddsa_a": "9542911508991480481413268182206861115601297636146317638274843222741158100303" + }, + "ciphertext": "01000000611bbe92dfc425fa04e0e504ee2281af2cf80dd6259192c97bddf44fca32292096152925a0c7ad259a7b78d1868d7436ae938c64315db94e88789c933b0875153030f9298efe5ca59abf4cf720d315db3d0ad62a5e044d59944239bf5022817a63d97feb46d8ca6272c74644a82ab2f7cacf1f08dd50da4a1208e73e124785577788828c6546d167018894b11a512b823fdea0518b905d431c452b1e232223823d36e56fe93bbcea778c3348d310440dadca24c3257febc565306ad15aea802d33da12ab7550", + "memo": "000000000000000000000000764165be1df62f291b2e969fb0849d99d9ce41e2f137006e01000000611bbe92dfc425fa04e0e504ee2281af2cf80dd6259192c97bddf44fca32292096152925a0c7ad259a7b78d1868d7436ae938c64315db94e88789c933b0875153030f9298efe5ca59abf4cf720d315db3d0ad62a5e044d59944239bf5022817a63d97feb46d8ca6272c74644a82ab2f7cacf1f08dd50da4a1208e73e124785577788828c6546d167018894b11a512b823fdea0518b905d431c452b1e232223823d36e56fe93bbcea778c3348d310440dadca24c3257febc565306ad15aea802d33da12ab7550", + "commitment_root": "13856188492878404259915264426372161112087788699008431487669707598399465783803", + "out_hashes": [ + "14546802425967407208224348578739689264985361380225058735713210708934331865953", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461" + ], + "parsed_delta": { + "v": 5, + "e": 0, + "index": 0 + } + }, + "depositSignature": "9ca05b562fb701ea9e5c72612f89678f271d31a6aa934848da83a793d119ca31358eff361660489f74f7ff7efa3be523099002ddb3b573444ee37fd1d27206ea", + "deadline": "1983997374", + "proof": { + "inputs": [ + "11469701942666298368112882412133877458305516134926649826543144744382391691533", + "10795414482265507380627153749177678120871191687613533931691816880643961264318", + "13856188492878404259915264426372161112087788699008431487669707598399465783803", + "5", + "3651467553745662735060910639698979199245822434400753171807853971765257177044" + ], + "proof": { + "a": [ + "9815486449021834914184556266345169936185191251307204141626829801211531911616", + "7260238213696987127245323019953374583553593525372558369810224777322089731427" + ], + "b": [ + [ + "19144034776677058665867280112164187653977642257593601313991117423715500644669", + "18810036587662368820974391515952580691111801277713493267799251932337175357087" + ], + [ + "10082221312106364834231234373882399738723366083493099006456555096015860643571", + "2417500846709713437471215259220638757197536508229421440078190837494618086388" + ] + ], + "c": [ + "11071711064416706849418504961248766129158512633754700758939287845886704489074", + "7253330552734092407307757216009354303136656025070789563039234525235813141427" + ] + } + } + }, + { + "txType": "0003", + "txTypeData": { + "from": "0x1df62f291b2e969fb0849d99d9ce41e2f137006e", + "amount": "5" + }, + "transactionData": { + "public": { + "root": "18442710302323210253593367714033842818261646455361882254066776892566533962040", + "nullifier": "900099357861748542378397760942754860793001492647985690250385707945374509051", + "out_commit": "6584637854944511404109768315934218384585538608258272216035014678915030495183", + "delta": "12259964326927110866866776217202473468949912977468817413", + "memo": "12888049087374778692604748079986723090893426551673061692126767167845204039547" + }, + "secret": { + "tx": { + "input": [ + { + "d": "68797641304653580114491", + "p_d": "10729685540927825146536754446855369146200686017808939654836299154848159598217", + "i": "0", + "b": "5", + "e": "0" + }, + [ + { + "d": "1066699278085938999740891", + "p_d": "15752318534069130755049585238984044415004495687646289029068000076960894343281", + "b": "0", + "t": "152239005385847004234644" + }, + { + "d": "461935956342033923660204", + "p_d": "7870442687039724193585737670612597929513887651997514852916449311469963948940", + "b": "0", + "t": "841091669830137688079432" + }, + { + "d": "290579414724006122926924", + "p_d": "8988726155955182937855818551379867375951385496016326833025796683194421002806", + "b": "0", + "t": "146627761345286276646028" + } + ] + ], + "output": [ + { + "d": "902030152522325053828832", + "p_d": "7783513919475373980397706006622971020914299879839497595906676898346055808934", + "i": "0", + "b": "10", + "e": "640" + }, + [ + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + }, + { + "d": "0", + "p_d": "0", + "b": "0", + "t": "0" + } + ] + ] + }, + "in_proof": [ + { + "sibling": [ + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "522535841805272509785471739560670907901803100379533916522366862439656660706", + "5531505720112419174552011511368466606524449052754036195330113153613535104476", + "11329107969209561607639978749821791505989823914753522080153457697297357471572", + "15352658802967173102705828119067422100499283382786583167468164930410196407148", + "693915472917531005300210909571774949875959308914908899247619510229153605991", + "15141150100053359483136089782360938554673261981069224805995527807509579907339", + "14714135131729000159871566580913366989973155681884951701205677304798723517153", + "7627219359786202965428762367979749348660074284384916423168422862902932424831", + "14551312803999726205102199121216044114178321255077732763187534410264273264477", + "8133200400714649277420943314430065689284296998442846431340458388300981773202", + "19757957384704703741994568750351615325340927095380651395218576901111994341312", + "5901787700375591888593349058351005758829733721889580801499958432339125722117", + "19610513091507606056305032357502140527607412933509798884555991018234020735550", + "9192158814814940467737597506351631595487805610002096082411402141191271289034", + "15148195026354169755004685112465574914097093714834468264388454016674751742404", + "19002444695496836611838706233351326378861769708403674372155042415140128768451", + "6763631975639579682217345019407739076344940280496238910656270074535663824550", + "12341717392944213854008315273751832217218539945524045851434723385845462156644", + "11188058538255209925140405088005030946576268598716710282220993109667689740819", + "8767206592009162685638605323931886632571407359842734160297858458232122701697", + "14806656623031055020403556767950405732280024630750601286800590772051854555577", + "1449745595536323767029826772218393750182843022155053540570887685758005275362", + "14765222336817644649711564851747393428952536408520879107108664314912194196332", + "18982658160224083592721682006811348397029735258325914857425249164605527855495", + "967440321479665771456770493134553793860406789235076340454890138689092398743", + "8572241015560852043038102363298212135872617918466794947737128919860989647576", + "12321040915162805881434398012323625623795260302839411951191547398563350127146", + "1298406847154241449159894232700436562945625671911038094089134903076476940734", + "13431717271286002143863064443149123073867305935730567069074323632094779906762", + "18685561605392691989953390877556007261171303533861983942569541094114673599076", + "13636738154803958676121594462998156260460565875177602873233203829261160109659", + "11140924918219198527253893695586727689118341082504963503885178419412738437285", + "8474943624663153781162388714410508382201175186669451645994959916456656701311", + "9309089957223635716291637648453776901031309116565418783465358778831489149051", + "4103099250878752973100498917988600567004154521200948180433869120256331253914", + "11160939302949194840812207983448709967740913175948942656104962328204560247908", + "14248462656890584285977708924431681107857584429784533132203700239154068075366", + "7195074526527890157871299180569895776266215514996373018130241622113485556177", + "4943263310141200676717673361235064531985540932726984279532900193640862300203", + "5627339774594137179528094994483896875762556850864443691412042157668983586635", + "2498416842977474257592472050316460590153865371699452127457309775442710367806", + "1550870853608757868458620218775305036473988111799553999977217107059043115199", + "13482439215704946735601313042140305736621462345162903440313509330875135734460", + "15182649948730062375321737692408817980506635025074846398909015256770821463532", + "1247690880441109659214778745323800445655802148600726437291573229536109714198", + "5341871252039295346907887643036618265097925372949238666377398522613804820550", + "21459734131189367378477890969465280901558661138826956196178023231247877916395" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + [ + { + "sibling": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + { + "sibling": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + { + "sibling": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "path": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + } + ] + ], + "eddsa_s": "2376648838113810788430494741073213565164412727359671128828899721359572372167", + "eddsa_r": "17318213546486262123219856668677490859470918418876210108729988061113283950466", + "eddsa_a": "9542911508991480481413268182206861115601297636146317638274843222741158100303" + }, + "ciphertext": "010000002b3e528ffb8eba42cdfc7dfcbbcff472c9ac46b3b61325104b0edde4de794c21bd1f5585eb81de670cc4659d9539bd044a01ee2c394ae5a16f01252ebabdc526ae190c743511017ecf6590358c258ac1d259f4cf6462cbc20effc3da27aa9d9b2e9f6f180d1168dbe6e2f95ba0c9c2faa35092db149c5e475e0502d2e6495ee9050b0250ce5ece8acae47c56922e609e3a3f5b3556c4cf8cface88873bf17b5f6f45ec286de43e87c81d74885845ffe56c4f0391a8789f2c702ab38fd7d5f508f47fd0c8e6d4", + "memo": "000000000000000000000000764165bf1df62f291b2e969fb0849d99d9ce41e2f137006e010000002b3e528ffb8eba42cdfc7dfcbbcff472c9ac46b3b61325104b0edde4de794c21bd1f5585eb81de670cc4659d9539bd044a01ee2c394ae5a16f01252ebabdc526ae190c743511017ecf6590358c258ac1d259f4cf6462cbc20effc3da27aa9d9b2e9f6f180d1168dbe6e2f95ba0c9c2faa35092db149c5e475e0502d2e6495ee9050b0250ce5ece8acae47c56922e609e3a3f5b3556c4cf8cface88873bf17b5f6f45ec286de43e87c81d74885845ffe56c4f0391a8789f2c702ab38fd7d5f508f47fd0c8e6d4", + "commitment_root": "6584637854944511404109768315934218384585538608258272216035014678915030495183", + "out_hashes": [ + "15061445500689209386562497028849276841182799899437949388981207493319291190827", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461", + "6634257576132171181853636486652267162938250203364881974499045611385650496461" + ], + "parsed_delta": { + "v": 5, + "e": 0, + "index": 128 + } + }, + "depositSignature": "9ffb97edc44c7a5ee17d8e67610fbe3336f5d9ef7dae8bac619acaecde8981aa6c7d116ad18e18bf2a03251aeb3e228ed64f3f8ad91e228bbe1b1a11af7752d0", + "deadline": "1983997375", + "proof": { + "inputs": [ + "18442710302323210253593367714033842818261646455361882254066776892566533962040", + "900099357861748542378397760942754860793001492647985690250385707945374509051", + "6584637854944511404109768315934218384585538608258272216035014678915030495183", + "12259964326927110866866776217202473468949912977468817413", + "12888049087374778692604748079986723090893426551673061692126767167845204039547" + ], + "proof": { + "a": [ + "20949783119901612628431925503935101466456579390205848641972736043258814711343", + "14692074523034703988776514372909720438532419267093784662013707760044502530578" + ], + "b": [ + [ + "10815719872220056792403835966627788035118672535236441957160571060504781619730", + "13124632210680513403556443096581124274516974137066893709352900565274447744470" + ], + [ + "14377229261019574843018178312414963670716356936819377757812908635349116800615", + "9653839065172923092176120911805642795265723318357999463186870136229428620433" + ] + ], + "c": [ + "9809447288934343278935694559169951857109898021827595371114152814376410122506", + "11873644434470628498087329390411235438652863655079911927398887222398085553021" + ] + } + } + } +] \ No newline at end of file diff --git a/zp-relayer/test/worker-tests/poolWorker.test.ts b/zp-relayer/test/worker-tests/poolWorker.test.ts index 81b06cb..fdfdc9c 100644 --- a/zp-relayer/test/worker-tests/poolWorker.test.ts +++ b/zp-relayer/test/worker-tests/poolWorker.test.ts @@ -1,31 +1,24 @@ -import chai from 'chai' -import { v4 } from 'uuid' import { Mutex } from 'async-mutex' +import chai from 'chai' import chaiAsPromised from 'chai-as-promised' import { Job, QueueEvents, Worker } from 'bullmq' import { TxType } from 'zp-memo-parser' import { web3 } from './web3' import { pool } from '../../pool' -import config from '../../config' import { sentTxQueue, SentTxState } from '../../queue/sentTxQueue' import { poolTxQueue, TxPayload, PoolTxResult } from '../../queue/poolTxQueue' import { createPoolTxWorker } from '../../workers/poolTxWorker' import { createSentTxWorker } from '../../workers/sentTxWorker' -import { PoolState } from '../../state/PoolState' import { GasPrice } from '../../services/gas-price' import { redis } from '../../services/redisClient' import { initializeDomain } from '../../utils/EIP712SaltedPermit' -import { FlowOutputItem } from '../../../test-flow-generator/src/types' -import { - disableMining, - enableMining, - evmRevert, - evmSnapshot, - mintTokens, - newConnection, -} from './utils' -import { validateTx } from '../../validateTx' +import { FlowOutputItem, PermitDepositOutputItem } from '../../../test-flow-generator/src/types' +import { disableMining, enableMining, mintTokens, newConnection } from './utils' import flow from '../flows/flow_independent_deposits_5.json' +import flowDependentDeposits from '../flows/flow_dependent_deposits_2.json' + +import { validateTx } from '../../validateTx' +import config from '../../config' chai.use(chaiAsPromised) const expect = chai.expect @@ -51,55 +44,25 @@ describe('poolWorker', () => { let poolQueueEvents: QueueEvents let sentQueueEvents: QueueEvents let workerMutex: Mutex - let snapShotId: string - let eventsInit = false - - before(async () => {}) - - beforeEach(async () => { - snapShotId = await evmSnapshot() - - const id = v4() - const statesPath = `${config.stateDirPath}${id}` - const poolState = new PoolState(`pool-${id}`, redis, statesPath) - const optimisticState = new PoolState(`optimistic-${id}`, redis, statesPath) - pool.loadState({ poolState, optimisticState }) - + before(async () => { + web3.eth.transactionBlockTimeout = 0 await pool.init() await initializeDomain(web3) - gasPriceService = new GasPrice(web3, 10000, 'web3', {}) await gasPriceService.start() workerMutex = new Mutex() poolWorker = await createPoolTxWorker(gasPriceService, validateTx, workerMutex, redis) sentWorker = await createSentTxWorker(gasPriceService, workerMutex, redis) + sentWorker.run() poolWorker.run() - if (!eventsInit) { - poolQueueEvents = new QueueEvents(poolWorker.name, { connection: redis }) - sentQueueEvents = new QueueEvents(sentWorker.name, { connection: redis }) - eventsInit = true - } - await poolWorker.waitUntilReady() await sentWorker.waitUntilReady() - await enableMining() - }) - - afterEach(async () => { - await evmRevert(snapShotId) - - await sentTxQueue.drain(true) - await poolTxQueue.drain(true) - - await poolWorker.close() - await sentWorker.close() - await pool.state.jobIdsMapping.clear() - - gasPriceService.stop() + poolQueueEvents = new QueueEvents(poolWorker.name, { connection: redis }) + sentQueueEvents = new QueueEvents(sentWorker.name, { connection: redis }) }) it('executes a job', async () => { @@ -122,7 +85,7 @@ describe('poolWorker', () => { }) it('should re-send tx', async () => { - const deposit = flow[0] + const deposit = flow[1] await mintTokens(deposit.txTypeData.from as string, parseInt(deposit.txTypeData.amount)) await disableMining() @@ -148,7 +111,8 @@ describe('poolWorker', () => { it('should re-submit optimistic txs after revert', async () => { await poolWorker.pause() - const deposit = flow[0] + // @ts-ignore + const deposit = flow[2] as PermitDepositOutputItem await mintTokens(deposit.txTypeData.from as string, parseInt(deposit.txTypeData.amount)) await sentWorker.pause() @@ -164,7 +128,6 @@ describe('poolWorker', () => { } // @ts-ignore const poolJob1 = await submitJob(wrongDeposit) - // @ts-ignore const poolJob2 = await submitJob(deposit) const [[, sentId1]] = await poolJob1.waitUntilFinished(poolQueueEvents) @@ -181,10 +144,9 @@ describe('poolWorker', () => { const [status2, , rescheduledIds2] = await sentJob2.waitUntilFinished(sentQueueEvents) expect(status2).eq(SentTxState.REVERT) expect(rescheduledIds2.length).eq(0) - + const poolJob3 = (await poolTxQueue.getJob(rescheduledIds1[0])) as Job const [[, sentId3]] = await poolJob3.waitUntilFinished(poolQueueEvents) - expect(await pool.state.jobIdsMapping.get(poolJob2.id as string)).eq(poolJob3.id) const sentJob3 = (await sentTxQueue.getJob(sentId3)) as Job const [status3, sentHash] = await sentJob3.waitUntilFinished(sentQueueEvents) @@ -213,4 +175,27 @@ describe('poolWorker', () => { config.maxSentQueueSize = maxSentQueueSize }) + + it.only('should reject if proof incorrect', async () => { + const deposit = flowDependentDeposits[1] + await mintTokens(deposit.txTypeData.from as string, parseInt(deposit.txTypeData.amount)) + + // @ts-ignore + const job = await submitJob(deposit) + + await expect(job.waitUntilFinished(poolQueueEvents)).rejectedWith('Incorrect root at index') + }) + + after(async () => { + await poolWorker.close() + await poolTxQueue.close() + await poolQueueEvents.close() + + await sentWorker.close() + await sentTxQueue.close() + await sentQueueEvents.close() + + gasPriceService.stop() + redis.disconnect() + }) }) From 9b6b36ae26c04bcca08a6a2c2add733ca93497c0 Mon Sep 17 00:00:00 2001 From: Vadim Nikonov Date: Wed, 16 Nov 2022 13:57:47 +0300 Subject: [PATCH 2/3] update test --- zp-relayer/test/worker-tests/poolWorker.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zp-relayer/test/worker-tests/poolWorker.test.ts b/zp-relayer/test/worker-tests/poolWorker.test.ts index fdfdc9c..5869556 100644 --- a/zp-relayer/test/worker-tests/poolWorker.test.ts +++ b/zp-relayer/test/worker-tests/poolWorker.test.ts @@ -176,7 +176,7 @@ describe('poolWorker', () => { config.maxSentQueueSize = maxSentQueueSize }) - it.only('should reject if proof incorrect', async () => { + it('should reject if proof incorrect', async () => { const deposit = flowDependentDeposits[1] await mintTokens(deposit.txTypeData.from as string, parseInt(deposit.txTypeData.amount)) From 7d46e7d7e42aaece94ae6343d7c4fe801624f63f Mon Sep 17 00:00:00 2001 From: Vadim Nikonov Date: Wed, 16 Nov 2022 15:40:39 +0300 Subject: [PATCH 3/3] fix bugs --- .../test-flows/dependent_deposits_2.json | 1 - .../test/worker-tests/poolWorker.test.ts | 82 ++++++++++++------- 2 files changed, 54 insertions(+), 29 deletions(-) diff --git a/test-flow-generator/test-flows/dependent_deposits_2.json b/test-flow-generator/test-flows/dependent_deposits_2.json index 60ff9f1..593995d 100644 --- a/test-flow-generator/test-flows/dependent_deposits_2.json +++ b/test-flow-generator/test-flows/dependent_deposits_2.json @@ -8,4 +8,3 @@ { "from": "0x1df62f291b2e969fb0849d99d9ce41e2f137006e", "amount": "5" } ] } - \ No newline at end of file diff --git a/zp-relayer/test/worker-tests/poolWorker.test.ts b/zp-relayer/test/worker-tests/poolWorker.test.ts index 5869556..dabee05 100644 --- a/zp-relayer/test/worker-tests/poolWorker.test.ts +++ b/zp-relayer/test/worker-tests/poolWorker.test.ts @@ -1,25 +1,33 @@ -import { Mutex } from 'async-mutex' import chai from 'chai' +import { v4 } from 'uuid' +import { Mutex } from 'async-mutex' import chaiAsPromised from 'chai-as-promised' import { Job, QueueEvents, Worker } from 'bullmq' import { TxType } from 'zp-memo-parser' import { web3 } from './web3' import { pool } from '../../pool' +import config from '../../config' import { sentTxQueue, SentTxState } from '../../queue/sentTxQueue' import { poolTxQueue, TxPayload, PoolTxResult } from '../../queue/poolTxQueue' import { createPoolTxWorker } from '../../workers/poolTxWorker' import { createSentTxWorker } from '../../workers/sentTxWorker' +import { PoolState } from '../../state/PoolState' import { GasPrice } from '../../services/gas-price' import { redis } from '../../services/redisClient' import { initializeDomain } from '../../utils/EIP712SaltedPermit' -import { FlowOutputItem, PermitDepositOutputItem } from '../../../test-flow-generator/src/types' -import { disableMining, enableMining, mintTokens, newConnection } from './utils' +import { FlowOutputItem } from '../../../test-flow-generator/src/types' +import { + disableMining, + enableMining, + evmRevert, + evmSnapshot, + mintTokens, + newConnection, +} from './utils' +import { validateTx } from '../../validateTx' import flow from '../flows/flow_independent_deposits_5.json' import flowDependentDeposits from '../flows/flow_dependent_deposits_2.json' -import { validateTx } from '../../validateTx' -import config from '../../config' - chai.use(chaiAsPromised) const expect = chai.expect @@ -44,25 +52,55 @@ describe('poolWorker', () => { let poolQueueEvents: QueueEvents let sentQueueEvents: QueueEvents let workerMutex: Mutex - before(async () => { - web3.eth.transactionBlockTimeout = 0 + let snapShotId: string + let eventsInit = false + + before(async () => {}) + + beforeEach(async () => { + snapShotId = await evmSnapshot() + + const id = v4() + const statesPath = `${config.stateDirPath}${id}` + const poolState = new PoolState(`pool-${id}`, redis, statesPath) + const optimisticState = new PoolState(`optimistic-${id}`, redis, statesPath) + pool.loadState({ poolState, optimisticState }) + await pool.init() await initializeDomain(web3) + gasPriceService = new GasPrice(web3, 10000, 'web3', {}) await gasPriceService.start() workerMutex = new Mutex() poolWorker = await createPoolTxWorker(gasPriceService, validateTx, workerMutex, redis) sentWorker = await createSentTxWorker(gasPriceService, workerMutex, redis) - sentWorker.run() poolWorker.run() + if (!eventsInit) { + poolQueueEvents = new QueueEvents(poolWorker.name, { connection: redis }) + sentQueueEvents = new QueueEvents(sentWorker.name, { connection: redis }) + eventsInit = true + } + await poolWorker.waitUntilReady() await sentWorker.waitUntilReady() + await enableMining() + }) + + afterEach(async () => { + await evmRevert(snapShotId) + + await sentTxQueue.drain(true) + await poolTxQueue.drain(true) - poolQueueEvents = new QueueEvents(poolWorker.name, { connection: redis }) - sentQueueEvents = new QueueEvents(sentWorker.name, { connection: redis }) + await poolWorker.close() + await sentWorker.close() + + await pool.state.jobIdsMapping.clear() + + gasPriceService.stop() }) it('executes a job', async () => { @@ -85,7 +123,7 @@ describe('poolWorker', () => { }) it('should re-send tx', async () => { - const deposit = flow[1] + const deposit = flow[0] await mintTokens(deposit.txTypeData.from as string, parseInt(deposit.txTypeData.amount)) await disableMining() @@ -111,8 +149,7 @@ describe('poolWorker', () => { it('should re-submit optimistic txs after revert', async () => { await poolWorker.pause() - // @ts-ignore - const deposit = flow[2] as PermitDepositOutputItem + const deposit = flow[0] await mintTokens(deposit.txTypeData.from as string, parseInt(deposit.txTypeData.amount)) await sentWorker.pause() @@ -128,6 +165,7 @@ describe('poolWorker', () => { } // @ts-ignore const poolJob1 = await submitJob(wrongDeposit) + // @ts-ignore const poolJob2 = await submitJob(deposit) const [[, sentId1]] = await poolJob1.waitUntilFinished(poolQueueEvents) @@ -144,9 +182,10 @@ describe('poolWorker', () => { const [status2, , rescheduledIds2] = await sentJob2.waitUntilFinished(sentQueueEvents) expect(status2).eq(SentTxState.REVERT) expect(rescheduledIds2.length).eq(0) - + const poolJob3 = (await poolTxQueue.getJob(rescheduledIds1[0])) as Job const [[, sentId3]] = await poolJob3.waitUntilFinished(poolQueueEvents) + expect(await pool.state.jobIdsMapping.get(poolJob2.id as string)).eq(poolJob3.id) const sentJob3 = (await sentTxQueue.getJob(sentId3)) as Job const [status3, sentHash] = await sentJob3.waitUntilFinished(sentQueueEvents) @@ -185,17 +224,4 @@ describe('poolWorker', () => { await expect(job.waitUntilFinished(poolQueueEvents)).rejectedWith('Incorrect root at index') }) - - after(async () => { - await poolWorker.close() - await poolTxQueue.close() - await poolQueueEvents.close() - - await sentWorker.close() - await sentTxQueue.close() - await sentQueueEvents.close() - - gasPriceService.stop() - redis.disconnect() - }) })