From aa2a3292867c3be9a28426c33ac26ecdb9c662e1 Mon Sep 17 00:00:00 2001 From: Josh Crites Date: Fri, 19 Dec 2025 10:39:06 -0500 Subject: [PATCH 1/2] Refactor recursive verification tests and deployment process - Updated the deployment of the ValueNotEqual contract to include vkHash as a parameter. - Replaced PXE client setup with TestWallet and Aztec Node client for better integration. - Introduced SponsoredFeePaymentMethod for fee management during contract interactions. - Enhanced test timeout to accommodate longer proof generation and verification times. - Modified account creation and contract deployment processes to utilize the new TestWallet structure. - Ensured separate counters for different users by creating distinct accounts for user1. --- recursive_verification/bun.lockb | Bin 224675 -> 248741 bytes recursive_verification/contract/src/main.nr | 17 +- recursive_verification/data.json | 368 +++++++++--------- .../scripts/run_recursion.ts | 4 +- .../tests/recursive_verification.test.ts | 176 ++++++--- 5 files changed, 321 insertions(+), 244 deletions(-) diff --git a/recursive_verification/bun.lockb b/recursive_verification/bun.lockb index f5a453498795137cb0226eee1f8bfb018fbcf894..0ce87b4efb2ba4fd01e8625da0f35f566e2dd358 100755 GIT binary patch delta 70377 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 z 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 T1s!vq{5WYV?Az>%lRo%g@r7&n delta 55326 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 diff --git a/recursive_verification/contract/src/main.nr b/recursive_verification/contract/src/main.nr index b0de7f3..3c9f73b 100644 --- a/recursive_verification/contract/src/main.nr +++ b/recursive_verification/contract/src/main.nr @@ -6,10 +6,10 @@ pub contract ValueNotEqual { global HONK_PROOF_SIZE: u32 = 492 + 16; use aztec::{ - macros::{functions::{external, initializer}, storage::storage}, + macros::{functions::{external, initializer, internal}, storage::storage}, oracle::debug_log::debug_log_format, protocol_types::{address::AztecAddress, traits::ToField}, - state_vars::Map, + state_vars::{Map, PublicImmutable}, }; use bb_proof_verification::verify_ultrahonkzk_proof; use easy_private_state::EasyPrivateUint; @@ -17,13 +17,22 @@ pub contract ValueNotEqual { #[storage] struct Storage { counters: Map, Context>, + vk_hash: PublicImmutable, } #[initializer] #[external("private")] - fn initialize(headstart: u64, owner: AztecAddress) { + fn initialize(headstart: u64, owner: AztecAddress, vk_hash: Field) { let counters = storage.counters; counters.at(owner).add(headstart, owner); + + ValueNotEqual::at(context.this_address())._set_vk_hash(vk_hash).enqueue(&mut context); + } + + #[internal] + #[external("public")] + fn _set_vk_hash(vk_hash: Field) { + storage.vk_hash.initialize(vk_hash); } #[external("private")] @@ -32,9 +41,9 @@ pub contract ValueNotEqual { verification_key: [Field; HONK_VK_SIZE], proof: [Field; HONK_PROOF_SIZE], public_inputs: [Field; 1], - vk_hash: Field, ) { debug_log_format("Incrementing counter for owner {0}", [owner.to_field()]); + let vk_hash = storage.vk_hash.read(); verify_ultrahonkzk_proof(verification_key, proof, public_inputs, vk_hash); ValueNotEqual::at(context.this_address()).emit_in_public(12345).enqueue(&mut context); let counters = storage.counters; diff --git a/recursive_verification/data.json b/recursive_verification/data.json index 36d7724..c32f87c 100644 --- a/recursive_verification/data.json +++ b/recursive_verification/data.json @@ -16,97 +16,97 @@ "0x0000000000000000000000000000000000000000000000093fe27776f50224bd", "0x000000000000000000000000000000000000000000000004a0c80c0da527a081", "0x0000000000000000000000000000000000000000000000000001b52c2020d746", - "0x0000000000000000000000000000003ef429ec894000c4e68825fd69dc2fad2d", - "0x00000000000000000000000000000000001bcde6f34dbbebf81c00167257474f", - "0x000000000000000000000000000000dbed96241e23658d93073a933b8020c074", - "0x00000000000000000000000000000000002b419e5968e17cd6462ee9ada534a2", - "0x0000000000000000000000000000003d23a336d00252697af0bf8d8f859f5665", - "0x0000000000000000000000000000000000283c16e7500a895bc494813da4299e", - "0x0000000000000000000000000000003175c6e13068c9adb230c23424c5f24eff", - "0x00000000000000000000000000000000000006b8b5fd31a51602a306eaa0da14", - "0x0000000000000000000000000000004a6524519c3f34c055d10b3426fa7364a1", - "0x00000000000000000000000000000000001c1599a543bb87daaf14b33ebce9b4", - "0x0000000000000000000000000000007960469d86d58e3f963db8995e94b17d77", - "0x00000000000000000000000000000000001ca39f90dfbf0f0c2f3ca5c6cfe031", - "0x000000000000000000000000000000a73f7f09cd0910325e6e8912c4c7155f40", - "0x00000000000000000000000000000000000ec416296f79931b4352ee7d64dc06", - "0x000000000000000000000000000000f659b696e8bbd81643ad4f82809ab5dc1b", - "0x00000000000000000000000000000000000470413cb84a93d11a32ea07387549", - "0x000000000000000000000000000000cee175d889684a3eecbe1de6039768535a", - "0x000000000000000000000000000000000008e3b54e5b3a1d16d0514b2e132f3e", - "0x0000000000000000000000000000003e1f06a4877315731b1e8e06fa0977b399", - "0x00000000000000000000000000000000002ca73412a9305a1c86c20964db3df5", - "0x000000000000000000000000000000df8e3bed6e47e1ead0dbc6fca94be22ca2", - "0x00000000000000000000000000000000001633832b15a93422b5f190d37bdaf5", - "0x000000000000000000000000000000b64302a893fe2d7ee4e2190f836a46e6d3", - "0x0000000000000000000000000000000000205774a483678e38f01cb72b44986c", - "0x000000000000000000000000000000a8cdc8b6a5d3bfd21043ecab52b89edf63", - "0x00000000000000000000000000000000001b50fa0ed6d01c4974959a7f281718", - "0x0000000000000000000000000000003c347b7a333a59fce8167b9b93da5e177f", - "0x00000000000000000000000000000000001423aaee0398fd19f1ccd7c2a38ca2", - "0x0000000000000000000000000000004948a39f068f2c4cdac79354e70a38c680", - "0x000000000000000000000000000000000029cd6e65a1a77d9ad6d2dc113837ab", - "0x0000000000000000000000000000008d75c2265a55225b379c45d5faafa49df8", - "0x00000000000000000000000000000000001c6659c8d2f14d9c99964951977be8", - "0x0000000000000000000000000000002a95dc3cab3a26964956f8bc79b87b5716", - "0x000000000000000000000000000000000002bac7da6f9a05e8946861d19deb7a", - "0x000000000000000000000000000000e52f911ff582715c1fedaa59156c26e901", - "0x000000000000000000000000000000000005ffb081a271b60f92aa5016051b4e", - "0x088bbe110f987068c60bcbcf6b1dd91b5417eb28c91991308dae8e8da020e11d", - "0x272072467652540b9bc8fcbcf2b5d60f958a99e9753776e0f3d52453963b5edf", - "0x2277f41ae4767431612c5d8be67d6f05d01fd2484c6b1c9167deee19bc8a9b35", - "0x275f0acc21bd5530afba37419845cf083fd4ddf52312bddf93cdc751f9f04fc4", - "0x0846d5a65ccaf428b3357225c2f78444e156981af35403a771c3e59681d2b393", - "0x2efa2d51606027a36607b0d1608131f39c827a769dcdd0f0fff7b40b82b59e25", - "0x1a6d26c61aa80246494f33545bf6e5e0fdb036b2fd5437dbb9837a6a823aec05", - "0x1b9d5dadfb310667514244753d50f9a12e95f1c8be0cd287d3a37d27f1123532", - "0x2e215110ba16152cdb7c15bfbae6221c77dc76980754b8feba5eedf6cc4bdb09", - "0x258f56d9d607e0ae601d6de7042cca77dbe553aee0db569b1aa610ac8bd1771f", - "0x010a95cce6f0bae7614c1ce1690692ffe9dce3da0da3953d86bb6d19f94b2f12", - "0x05914f869b29379bef58ff0c426677083222162f39be007c082178580c2a4833", - "0x2d16afb5a9f610890bbdde5617ceb6ce0435800179bbfaf621f60806e88f7731", - "0x0546e75fc25385d8f3891c7c5f8839085ed105c873512e8a734ba69c224553e9", - "0x04920743e90108e782f6552828ba171edf033eec311ad0e9daddb3ef0ad8e9da", - "0x1177cd95183c47d10985db1d41da7468407e164c7a93995aa09b31d6ae3a3550", - "0x088edfda68e154aba982502df61cece7471844c3043f350c0972aacd50ff13fd", - "0x0691b8d8538ce8aea0c4b0f2a2374137ea0c830155d549205ae7ab6fc82fb2b2", - "0x2ab53ee17d6e33ac7e6a417cec9c18c7cdd9993aa8100fd47a831c82b0cd50c8", - "0x0dfa8143ff8414978d50a2aa3345c3bfc4a1be60253f9f8c2d82695c02da5d29", - "0x216ea85964c01d0de7ef8518c0ff68535b3bcbfa43bad1196e45ba52a30aa269", - "0x257e614dfa3d5dd44f40315a06306babd76a6c4e42a10974bd16c560e9174aa0", - "0x236e5f516d059af60589bbaaa3b1d8b8442a7d0dba11b275862515ad0305f70b", - "0x2744043364d4da9e1e91bb8af23b6b0b11b67d90a98bf466cb5c21306822144f", - "0x05871bf76d2e1fbc51b6bf0ca251335c81c1d31d129d10a65e27538580fc70a7", - "0x0d82e370de98690b4d23c118dc06af45eaa5dd4f85e801c55956f4f1dd73a8de", - "0x142154cfa29397423d750beb7baa737c5b91076a68af1bebdcd7556dc6dc5c56", - "0x148a24d986bb1cc274820b527b6b67c977be714dac101a1c3909efae4ea38316", - "0x112a23a4076b640dd4369d220cb0245b11a9a4edef7520a2302dd9e08fa7898f", - "0x212cf10b466cb3cf48d557f142daafceb64e22d1036cec7a17c9a18a3416dbf9", - "0x118ccdad1e99ed0db6ab495fd9217a7b466090d5f2c52e0a9616ff36c32b9415", - "0x1f3b3c5166b5a5860d15afcc8335ce62f15a0cec05e667097fd6407723ded3f2", - "0x0029e4ce8b51894846cccb5b89b1582c5e40ba601c5fe167aef9c7f1e6ec631f", - "0x03e6e44ff83ab993d18b21ca4f15217082b61b4fbcb5de3355a4ca41c7175046", - "0x29d9c22a5fd5f886391af9cf61bd59dd779fbeb62c2644d9f1db7ced2ebcbb1f", - "0x0e80071597707a0b39435dfbc0a86ea7b09c2aef702dee986d202b0ea301313d", - "0x1b25955ef982bec1bf614a842056c41a1042859322d49edb151e1aec52c6393a", - "0x2a8eb6a146cbed2eac192095da59875a616d48213fe5951383454fba88b85904", - "0x048ee442297514df0ebd10d547cad1fdd1813e75ecd5eb0630769052d19adf7f", - "0x164e86ebd1f305155b5f9ba753c227979c801ccb2ac59908bb5e8bbb797707ae", - "0x15b7fadb15e0dd4c93e4ddd9cdf0099c98541c784990a759b1abb031ffd5101a", - "0x1ad8bb96e522d9df6456815d547dd567a345283d790b2965dad68d1c617fabc0", - "0x27bee23350f1569d6eb768837b82f3d3260a71181b88816930cce1a057814f85", - "0x1f9fc17993cce5d7ec1b6b1bba9e47f727380b321e1501591774c5e5367a9335", - "0x0ff36cbd03d2b509c64125562b33f849dc89b4f134f09130dfdbb7c279ce61e5", - "0x1372ba8f28fce546d89b4d3f9454441385c1dc8e2421ee43f88798faa380c6a7", - "0x0e8bec129e2d1679cd5431cf0f6ee0a100d6a5f5b8f9e9a4a1994c52f6f28ef4", - "0x3004337c198d9788e557017fedb6d0fa9af4f7ec64f34f5ef396cb061c8f2211", - "0x13bc26408e34a24a5f04d9e50c896ec7c85634b109e940cfda1545167488b49a", - "0x00710cf877586b573399ad1433ac5afc2f18acf31486cc08d2a6ad0238fffb82", - "0x218dac5b64435a5c44c0c3578630bec167b00de55fcada333ec9ac6b671e2a51", - "0x205978ac6164fa11f289a0e8378874679b4178c3d4583f0e3193ac83fbc4f479", - "0x15eb5ce5ad6d36b2d554340d9e8e498676d903719a419cce592dd7b4fe9ad39d", - "0x1d93af83f0637a287117f56495bb76eefb69ec9952e2a2b61697fa1b29126c84", - "0x2d847ac4672a64baf1f7e566abb873504a40d0be9de66c3f59012695bda57ad4", + "0x000000000000000000000000000000477f5c556eef471043012a214f8391173c", + "0x00000000000000000000000000000000000c4c885d9a03685e00353b7d1829ee", + "0x00000000000000000000000000000089304f53390689e67799927aa274ae0759", + "0x0000000000000000000000000000000000248e2ca6e22a5456b5bab77f14bf41", + "0x0000000000000000000000000000009254d41ab67c1fc2505c09b12252307b16", + "0x00000000000000000000000000000000001609d72b60f018290ad31bafc87a31", + "0x000000000000000000000000000000b910b8ff4e1ee42dd030432eca3bb805ab", + "0x00000000000000000000000000000000001e0a009dbdccff3ff422c48b24506f", + "0x0000000000000000000000000000006fc376bdf7799e5abfc2ca4a61e9a9a391", + "0x00000000000000000000000000000000001935873d1973e094be0223c8222cc8", + "0x0000000000000000000000000000001f45b43b0a9c4881f921a0b273ce60e079", + "0x000000000000000000000000000000000015baa5b3c8fa2a6c1c8d3a34044db3", + "0x00000000000000000000000000000087ebeaf4379c970fc25ee2c319c120ba2b", + "0x000000000000000000000000000000000017272379f122c81144e63b4d974dd0", + "0x00000000000000000000000000000022997fdc50853632132ec74aa6210144a4", + "0x000000000000000000000000000000000018e05c3317f835abac7d7839bf5eb7", + "0x0000000000000000000000000000005bdfa83b480d0d4dcc22daa8b8b2a59fc2", + "0x00000000000000000000000000000000000abd864acecfc8c2c7936ea7dbbf97", + "0x00000000000000000000000000000051ca146fb47631a8ee05b029a5b19b2ec2", + "0x0000000000000000000000000000000000203b9d8d276a08cb6b9ef371b80ef6", + "0x0000000000000000000000000000003df6051dc39a1be28b3bb8ea687dd2d652", + "0x00000000000000000000000000000000000c7eb98b60a77b2b9de43e4426bce5", + "0x0000000000000000000000000000005153725d9fb98da3130635faeaa045e3d0", + "0x00000000000000000000000000000000002c5b30bca08ef92bca8c5e090cc890", + "0x00000000000000000000000000000074e042fc8c0de199297ac978e443ab3720", + "0x0000000000000000000000000000000000017b49f8384cd35737a8d1cc421572", + "0x000000000000000000000000000000fa8e295a3054547ac15548cab8f0ecf65a", + "0x00000000000000000000000000000000002406a7f9f5847f0771c2485e279651", + "0x00000000000000000000000000000043a56fe1f56bb074c19cf536f9b43fb57c", + "0x0000000000000000000000000000000000233ab1280f4dd7679a9b7e43612e8c", + "0x000000000000000000000000000000613c205f1f210752f1f21e974657f153f7", + "0x00000000000000000000000000000000002ef091617d3a9466eebe1af2e74c3a", + "0x0000000000000000000000000000005362a1e02246192b9f8b3859ec6429a27e", + "0x0000000000000000000000000000000000204c47dd80fda0f057ebd4e533c996", + "0x000000000000000000000000000000bddfc184a951c087f82ae6b0f06499e74d", + "0x000000000000000000000000000000000003201c5a218f5c0c3184ef05da77c9", + "0x0255b6652306cbad47e5c0bcf87a67098e05be4546cac55c9979bc360147bbca", + "0x12721d694abd9c490cf5f7ad7bac21da99f2828ef7397c6da1fd7ccfe6665d69", + "0x004bd41ae724d6cd51d1e89723d1e53ab8de1241477cd9f56c99082678d85c44", + "0x25be9c58d023529869df7bb3f8532eb8d471933dd64f4f96a4ecf37868ab6d6f", + "0x30319d4b008c69f14dd07c5d7c922b667b54264e35bfe53ed3e9c88c2d2f143a", + "0x0a8946758f5a9026c3993773475ffd124acc98a5ac29b0e46e2cf3da570fe99c", + "0x106ec116b9e5b57e260266f69f3133d3dbf8aaac8c1b25d62ef29bae3b17b571", + "0x2de2c51b603afd8662d2f6c745052510cbcbbc63128765e3f98bae0de9e22a9c", + "0x227f3991ea6d962ceffa88d75f9290d6fd90c92b7c6ddd4f7e51ac53f71dca90", + "0x05b85a4a94ca5da088e232d5494a60e64a619cd2a5b53fc399fe11ba6a3fd6dc", + "0x184986aaf1a5b90c235d908573b8225f85e5e38f9847cac1cf4c838d52e9b4ca", + "0x1510f9bf74087b7bf255dab06ff9fe0b949090d105ef25ea41e99d550157e874", + "0x1cacf0969e445dc64b9c3369e13d897b99897ec3d6187079f699434ac49ab47e", + "0x06792424e7ad5419870be000dea75e503c310428644215dd9ad6491b37549631", + "0x23a95422913e070bc89ef5db9b4cb1675419cc81c8f48cd9b2fda8df9b07ec68", + "0x19d34c3911a73cd4249e24493ab336e8c2756a5517dc59f8cbb0e43297cecebc", + "0x208bc6e91d48c032ffd3508acfab396ef25108b24d305821d7769a00a6ab169c", + "0x16f6ee15b8c488248c7f327d4e9f8415d3080f1aa5ba100776b9291f5385d6c4", + "0x02547d61c201351f36284aba645bd92e452bdf62487eeb4757116a86f3650510", + "0x0214e81c1b4dbc1905d89253de32175d1d4b7dca3223fce829bda25dfa343955", + "0x16c0f767ca0dda9e43c3372de912af1a4e54b1e21e8149774306949d994e4e1e", + "0x2c95872a958bc8eb77f9c6775c43cf76ca967c0f32abcafe135ef5576de14811", + "0x15ab17aa7ac21e36bcb010ed74507d1490b02ffbc4fe07b3034a97b9cb595f1c", + "0x135bb734c361eb287758a52727133b858b436601b435c67a03d8699174f93f9f", + "0x25ad4ecd231c034c6d6def817ed1a236db085b8528cd053ea3f438a9e709cb1a", + "0x0eecfb353fdb87ffbcd8c25c1ce7391bea326133b147d13a7039553835d53312", + "0x1a8bccafed435fa5a5ab7a720fb6b19507b20bc33fdf12a9f221490101834dec", + "0x1558e8777c629415445b0d8c0c30e4ede569c856c71b59a34deb0d4011617512", + "0x2c21c9f1d2edba656ef557a105d526d960d364f46e03ee641d9889ce7691e454", + "0x116aa0068c66841c9791c78f2a3f1c1ffc417b86d6b8c4d7a8f02988c6b5dd5b", + "0x2065eca0e1867f0697b55ce6c28757514cc282fe960dd1b9b969515d7d399ed4", + "0x051807e35d26e39beda87cc73c5f119e27e8dc4baf9bc2c0c15ada2cc91c07d1", + "0x000677e1567d6b49ea02b76c9012f9cfe65b3750b37611431eb40e456ae3e007", + "0x0919e6ca298849bbd5167d58f10c5b22d6257d689b097c65e61af8c774e2ebd2", + "0x06e86739bd37d26f531e871f301914d1663b69f3aeb937672e7ecaf048c8608d", + "0x15a40f7e6bef080f4f2441a21e7000eba271be455b7d26b874f69cee6a3d9ea8", + "0x2e9eb60c2641798aa3e5952edf4c993de291ee2c504cdc4b1effe3cb4f954321", + "0x0f85516ab1cfb754a06bf3b81b67187d0ba4247cf45ce63a03661a336d1071f7", + "0x0ecfcfeab2527d89730de35336eb0014e68e4156f640f76848e528fc0cd873c0", + "0x1f133dc9fe06a397810911c177beed6f6562c36a064b3763608020f7a6c2cfae", + "0x1c9951e27331a4e824b682e5e728b34b8b39def87ee0fbe097c0fe71cbc9d3d0", + "0x194344c956ee5f7ab0d77d4179d778a1863b5ead6c5d54790099d531e5594043", + "0x058c31654c49a3538314f133cd9c8c728b50b65583c037bdd53040171b8d8aec", + "0x2362bb3d453c15794f1bf70b537f10cc5b95f1b0a5543d5aec8bd9d4a66fb8a8", + "0x0aa5f6c24a6cd0f55f866e2a6610f3b2b68e7483f0608be5dcf09a6e4c36a506", + "0x13f6ffc2f05db9f9af31f00810f7ae934e4320067f51a3dd203e547ffa7240ab", + "0x1563dafb4b4af8de890709b4dc9a8c32ac2f3818ddb8013a289b6076422dd177", + "0x22a89e5b6bd181d166cd7b77d80dbf9154dec4b5f4eb481825cf1a172737556c", + "0x2dce9f33455c71a3032d528bf119c095a724d6155040fa328e4b6ff25d7c0398", + "0x0682220e0abc3bde3748e79aa36f79b1085322fb95b3ac32364e9d2e81b9edaa", + "0x10758acf118ee45ff67f18096d3d1f7187af51b4b9f33167b58e99f51b83b708", + "0x1cc2755b60036118838dbe74fa89656f0e27de8b16f82734eb3a692fe412ac60", + "0x1f078db029c49b9340a00598a641779cf0fbeeca0931f1ac305ccb167aaab1ac", + "0x140e19c6ca04da42909f986b6a94e66622a564d5cc9b7ebb1519adf88dc2d789", + "0x13f1448a2dd1ab001ca8d969b289011e5a18bf02918220fdff4b015f3f067f09", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -305,81 +305,81 @@ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x297e3352e0ff6b81f37b7116deebfa39573eac53d7c69c95f03ceb70cbecb245", - "0x2eff18725a08e491994899b367168471f5067528d016d39e45d23588915f7cd8", - "0x05e00d2479603045168583adf2fdb59d0dcda907c4696cc4085cd435c93ca493", - "0x0601b082bea96ebea445b60fcd392e23f2281abf300945fdc120e45c21ed2fe3", - "0x13d828cda96d7e9fdd056a7fb2acef5d6e25e4b3d669e701ba8f4f04a7173be7", - "0x0db628aa302dd4639a88439f30d70496fd929d7701d883089c8ebd3a3a30e388", - "0x12594974b4dcc1fd0533dd2a72c91ad112b8446f76d30d3f08ac5edd62c376be", - "0x0a426f7ab6cbcebe3fa072b4c70e7aa0ade4956844b06ff6889082a1cd3482d2", - "0x26585c04bd34045d5bee79312ebf8ad02086ef6916cc89292e9d10c0d6c1845a", - "0x258ac34233ba91e65fa002f8a87d9af4beafaea6a0b57fc4377a07604bbd271d", - "0x0a5778fcc5f72246391f8c4df3848c6f95944fec986d04a4adac4618b95aec5d", - "0x0e891edbc17c53129094c5864920b52b3d6ecaee1928b2860d2500d067d878e5", - "0x117424dd5ca6a33df0638bc777408776f99a4232d3128db0a14dc9c3689c691a", - "0x2a5861d59bc62cf0a3987b11adc2c64748dc2ac977ae5dc1e6edcb5b5ef75e2e", - "0x12c231f379dbb33cd06fbca47b9a882cba957a0e02dc590d6d5e4fa86f1fe52e", - "0x005bc2c50c2460f076add2861044270d9303f143d0b539705337ed007c56c3c4", - "0x162b49095e3ab7168c401c3a229dfbdd6618e06be3a45e44e3a3b88a874edc53", - "0x0261c17e421bb5192beadb27f75f4d1ab72c733b7ee4cfebc1da1151666fd632", - "0x234dd6e0b4c40616fb82fbe79e7db8f8085e3c0fa518fd19e04410950effc178", - "0x2e628e3271503f2f215555d46eff7fe5e3ff8093a2d15f15ba918c40705a67c2", - "0x18c920f04b45f53ec49e9f21a1ae10fbb15ddc5be8bafcd98ca5da56a051f30c", - "0x14ce3befc9d0cfd803208850b63442b6d326294d1a414185f633856cd7d36904", - "0x0b4e04e7b38a6367f954e867bd1599fa0e76179c04b33fb562632f4fc58107a8", - "0x29a89004f9772360c0ee3cc0470a7a8f81c6a6faa0d42894125f097da21b609e", - "0x22b5423fd51e0c0605aa7d9dc7b6c434c92e91fb3961f7f23e859d2eabc7cb11", - "0x116b34998ddb2586ad7a76a6294eab8033d96c984072e970c34edd775761ed0b", - "0x250817dd8f267d66824e9c364dfda12dbcd5688566c2f635bd179897d3bf8c61", - "0x1ae381a3c786a0b1ebdc35c84a236f5f2292317a92b5f5011279246d98c4c1de", - "0x07bcc83411599ab932b828c7e2f8b46f9a65749d69aadc1bfd98ffc681c7afdd", - "0x2a45d03263dddcfbb29a0deb0fee768974e67d1736769006461c171a5fa3e167", - "0x16dc2aaa9f71bb63f634e9678d53e811cebc30e8b9ce60318ccd348ab5b321b1", - "0x09074c969cc1a28d13926023cf61e6d7ef3876545dc43bfa0b5e5b15827814c8", - "0x1490759f5d0bee1517cb694e7e5d8a9db64a2af96ac88648ae329e60cf38198f", - "0x16477674ee417dfe2759d8e312a09408399e2c727515ca20aed1b6e2837e9a12", - "0x1ad7ddfcd229cf0a269ffaa45273dfaf1356910b1670ad82b6ab4aee5f4d54af", - "0x236723b964c5e36f2ffa2312c27a6e1813ae0920ccf3a55c07b148752ae2fe75", - "0x1bb58a3fa766fd1872c5d642528fc179bebb2e52a28179abc3075588b3ba81f7", - "0x0317d0bc527c06519bc7ec84e21595323bb002530cf8af976b613111bcd4f28f", - "0x25f7e0445ba5eea44d8fb97c1c49ddec8f510cf45fef55d0ef2dc7c9988f6ae7", - "0x214db4f7d60feae6902d2b9ca20466284ac607e5f17fc39b0b84aeea9db9cdbb", - "0x2bade6c2b0783f3c9db0a2882ff8d95f53eacbc13d2c96becc71cc02f97878ed", - "0x03766c2d8c9797c26a3e5253be2b783caa1374d7767a2348e7fc6769574c0bef", - "0x000000000000000000000000000000070341e5ee23063a3ea06997bd7b95461c", - "0x00000000000000000000000000000000000e10f22c5d01fe8d1bf02c558b74f4", - "0x00000000000000000000000000000041b2f1d3a3b37402dae5cbe4f851d422eb", - "0x0000000000000000000000000000000000241ff30f12697723b87c0512de9416", - "0x00000000000000000000000000000092dc6bbd542b93bcff04c4ba528d7365c0", - "0x000000000000000000000000000000000001577b16bbf3a77aa23b49313ea4dd", - "0x000000000000000000000000000000a62a95d8a8600e0ed573cf5b0808b6b314", - "0x000000000000000000000000000000000004452820899edee9af042f189f9325", - "0x000000000000000000000000000000e0e6f1442c5c6d9f22889ea6807509bc75", - "0x00000000000000000000000000000000000870edbebd26f9c46c63fae1c0999f", - "0x000000000000000000000000000000613fa84241396620a4c47f46a026e404df", - "0x000000000000000000000000000000000014605cff61bb8874189501b507df70", - "0x1ed8ae3c0b4578e0c0e6995157a5db9a9a5b224fc84d6641db2457aad6fd5d2a", - "0x0000000000000000000000000000006f0b58fcb747bef3abce0a6374d9a1aa6b", - "0x00000000000000000000000000000000002a98db633c6c01067510f09d0a0715", - "0x000000000000000000000000000000f70b717a83cc3bd91983c11a2a2cd6a878", - "0x00000000000000000000000000000000002beb0285ee3069c6aaf1911dd6d96c", - "0x000000000000000000000000000000198300da5a98e46037bf7c0395ed4a0754", - "0x00000000000000000000000000000000002b3004e099cc2a3c11f55ccfe6e8cb", - "0x000000000000000000000000000000db82802ef55e2a649e654d29c6dd650018", - "0x000000000000000000000000000000000017a4790dbf808432dfe6dfb8debc9b", - "0x00000000000000000000000000000035511cb83bce1078aa2d8ad1bc8cb49785", - "0x000000000000000000000000000000000005fdb879b7ad6acd4a185fad547f3e", - "0x0000000000000000000000000000007acafcc4e734185b9cae8451b24af23613", - "0x0000000000000000000000000000000000042f406d4f11aac87eef978b5121c6", - "0x000000000000000000000000000000ff19346cb7b75b3a3075ced8f1645ecb40", - "0x000000000000000000000000000000000019d68f4dadec865ff3b6a6f57d060d", - "0x000000000000000000000000000000d18d150000e40286cdaa6140d97ee4872a", - "0x00000000000000000000000000000000002e9b73abb657bace0f419c782c4c62", - "0x000000000000000000000000000000463bbc47516526f681c37a263ce0aea94b", - "0x00000000000000000000000000000000001192421fd3f1778976cc965a4f7854", - "0x000000000000000000000000000000c40d2037325d6a9cd1bf2dd0db94086eff", - "0x00000000000000000000000000000000001ef2631af98b7f609a4847e3516e03", + "0x0b6eacce945b90cba354e37c3c94a12b1d117dbfbfbed802ed1ddf8f6d6abd90", + "0x12213d4e0a9d485d563c540b2dbbbbf3a158e0d59ab59f5dd027dba75a8a5a8d", + "0x0359b5c4a849b61ec102b6e2f18164bc2c8ff7a8675ad213cdeb329d2a2c3aab", + "0x014ccf2dfe8312f2dcb5e70793a3c787a89dfa2771041c4311ae7740ec8d6a5e", + "0x06b434ba5cd79d539e59625160023c798c2f83dd8e990eb07d96e79719db3c6a", + "0x2112c330d0badea5e56496d85059bbd9005350e3e18448aca4888fb977952649", + "0x0043cca41d11e4806cd5b5a26efc5094b865f50c7fe9818e5dd21b2b8c76aa68", + "0x23653a1ccd77d2082b29db89ed8061be5a84a0ba65209b4c357e2673cfd7c56d", + "0x0b5814b7733c37e41955bb62174ba04a9e8668f5e14ba0d99743e4d57b09509c", + "0x02f2d2a12db455a20addaa2fafc48fcd235044b873da2498945b26330fe54964", + "0x1971269b82b7fa537c4ebd719d3f9c82fee66c9fbb7325a5525bce7854d7dc9a", + "0x280ef10d679e647250d5b84da455f792dca0ae21d7c8a090c2b5ef5746407b35", + "0x1839f988be3a096f48a075f4890d878b6e14e432d4517afcb0e172f3e1cb2dbe", + "0x19a3b37bcebfa5df5f2d826aee737f89d5863a4d950fb1445e5bb053cc33732c", + "0x1479d59d2c4ff848191145f768f5c6148483a9c3bea9cedb3725eff3600e7389", + "0x21943b8805275c2562d2cc5a7c615ac807c03e818ef6a3724cc2172f183aa124", + "0x122f6f61e20c741047e83fe330068404c09a0e99891dd11332bdeb4448f5d368", + "0x001bc4e42f6f2600131321171ad33bc4f077861e4503039148e81d378153f67e", + "0x0eb9a8e6e7fdc369dbce5a83785eeb6366c463784f34096b5fd95ccdcdb25e1a", + "0x127da00822a78b95a8f4e4dccb6f965ba67e4c79eb55d0d5ee24dbca6fc5c276", + "0x163d3e0f1fbcd69b6b7d6b5a63d0ff384dac6a49e79fa3fc8809008414c5fa7e", + "0x1e39afe662e7059e77ba93f3ed744fc61b50396b670c9dce80268d3fb47b41e1", + "0x019a562d1aca49a58318bcaf9cf354b31c4268bae7e98ac9e0b09fb6588b2c87", + "0x2b996afe4b9043e7c9618fea117c57661bd59d7c185da13200b710c30f054559", + "0x15d7a3fd3f7f38e74ed8597e3f99324d260391d9ee29945d064b6d8612a05993", + "0x29e609b192f1d86518e0412b1ed10664a65aacb26ca31904f21bf11c7f0bdc8c", + "0x141103f06623de916285192d34091980b50b5c44389306d41052b42d4df181cd", + "0x28eaeec5e6e3c5ea8f5de7358a593151b60d1c60543a74cbcdf8a4b52ee4f72e", + "0x1910954c410f1e941f9943decde875694e6393d045880ac68a437673c47e8db3", + "0x08d8204eb4055f39e8aa805a41d083d7522cb9a494f90d5d6d176b9f9704f892", + "0x27904099f052e2b2cba73922546e376f4e59ec4605733abf7abdc4b308e74db6", + "0x2d60b45b01503873783045c1c35ce7fc779fa17bfc8782175062161502cd3742", + "0x041de34f030dfbbcc7c1d6310e72725dc5e18aaa26da58f47b3a46e6e5c2cb1b", + "0x00fbf7d7058807401835d75b88a5a7956f191e32abd06e5979b0bd7a5d59f317", + "0x1323ae8d9310a8f5bcead60ac54370e5f1330d497a73cf50819b2f191f9662fe", + "0x187772998c9a90f789aba20130c1da24717c7e22381b5b3b7885eb93c31a5864", + "0x090b9b8d7d421769a8d9eb88ed581344fabc9be22dac87b2f7c726bc38438cac", + "0x2b6be4445d294254c00232a4b7ab06cd186e06d2a8a099ac443fbf4d8d466f2f", + "0x21a92da7de45f3d681be59eff858c8773af3e1af051d2f39a4b43c99c69f6307", + "0x0376846a0ac50142acb50bdb5ed94151d6bb26ee8108e56a828a8fc5be8727d9", + "0x050a23e78cfa39212d8547fe8c8a5dfab8325abbb4c236b78b8336a83dbb383a", + "0x00ff4e720f43eeaa057201607c2f30fde8270e482975053bc415f7f12713b580", + "0x00000000000000000000000000000066213fbf30e97b4ca194293ea6d49a7b15", + "0x00000000000000000000000000000000000a4e0b427696f64b16f56aaa5d5142", + "0x0000000000000000000000000000006660f4fce6f4b40e27d355426f8a20bac1", + "0x000000000000000000000000000000000003f2e23ef488e1489b1576800c147d", + "0x000000000000000000000000000000d04073b59974996cee88fcce3b03f49880", + "0x00000000000000000000000000000000002f1822ad5219b73001b3c38dbff6b7", + "0x000000000000000000000000000000455646bb132395bbce1269e6623527ef28", + "0x0000000000000000000000000000000000265c4de6c904838c0ba6d27e781ab8", + "0x00000000000000000000000000000086e8f89bd463996d025be1e0109b8f5217", + "0x00000000000000000000000000000000000b3fc985189650bb31da3085142f86", + "0x00000000000000000000000000000094177d92c25e0e33c3d745b67339fe04e8", + "0x000000000000000000000000000000000003c311a63dfe66977f37b89e951392", + "0x2200a6d1765ac1161d89aede4db352260e571e6a564c6ccea301fec5d7d122a0", + "0x00000000000000000000000000000075b5e052e6cff1b44f3aa8c33fbda9a1e4", + "0x00000000000000000000000000000000002220d57cb34bcb559fc063d44a7378", + "0x0000000000000000000000000000000b4022034ff4dcbee061daf5a15d5f8bad", + "0x00000000000000000000000000000000000375fee0e59fe4a8ba387b29f3b508", + "0x000000000000000000000000000000302d0740996fb8d1acd7279e92cef2e600", + "0x0000000000000000000000000000000000007924b705a2f6b2b687c3d8c95d56", + "0x000000000000000000000000000000e0b0e94a5d2cacde661409490106038058", + "0x000000000000000000000000000000000004eec6c1375f0a87cdc0dd26be4fec", + "0x000000000000000000000000000000ea0845095a97386297f7e269d99995e3a6", + "0x00000000000000000000000000000000002da17752af2257222c29b167e68d95", + "0x000000000000000000000000000000437cb87b7858f71ed5d3b20ab8f71e942b", + "0x00000000000000000000000000000000000e3a64dbada4158c2ab1256e6d7597", + "0x000000000000000000000000000000e6409ffa23b70a21337c865a32cd5cef1a", + "0x00000000000000000000000000000000000b0a7773a8cb6dd1a5a91fc2d21075", + "0x0000000000000000000000000000005e175c6a5c23cd0fdc9b6c0139fdf768d1", + "0x0000000000000000000000000000000000261a40e0711745b0df11f78a931a99", + "0x000000000000000000000000000000ac4e0cfa925ea832d5fe395671e40d7cb7", + "0x00000000000000000000000000000000000cbf291314691a237a68539cf7a093", + "0x000000000000000000000000000000c035975a8a9846a6b371ec3ad85a47d93d", + "0x0000000000000000000000000000000000238971ade26975f001a334e28e61f0", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -468,12 +468,12 @@ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x2b08a87ee273a09bef6198a38ef56a98ffeec5ea68c53b6e595b0dc4c9daf00e", - "0x152ec3a3f3bdd589745cba2a45aa2b651ab523e91bdcb7c3b397d5567e901322", - "0x1f6d240a43913f0aeaaf35126b548cbd6f8c7b8e02f56bf9da9b0e42977bec9f", - "0x2859f2bfbe662897c4813e2507f2b615ad0e705f251476b1dc876576cb358ebe", - "0x0748c9534a3eb5a098b9502891cbb08ff28b7bfc963dedc0e1f7bd59350c54d9", - "0x006c21dba55b05de2c3f5667e2fa3e1914b1902f368307b3c9085b8a54866fde", + "0x2bf24fd889c8bed50d0c4ad0da2600fe700302c76ab18a8514f2cf477c1f0211", + "0x205899b747234cdde1886d3645a4980ea21cb0ae460736323d01508f9a08616a", + "0x0c00a521a2ef8eb61ddb020e7654c76c8cc71bf39d8b4d6a15eec41ecad60ba6", + "0x26b5bb941da09ca3b2260a2b4766a75c8595aab3248c74c2f78cf5be91f8056c", + "0x06b2ac980c84e583c8b1f35e668191fc71a253fe0a982b106ebaf2c2732c6480", + "0x2036d9a4b69ee5a7a3d57ebabee6458ece16b7e0846882094c331844d32903f7", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -496,18 +496,18 @@ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x228c2416b81cb69025072ceb54c0f409817aae2d91e8ef396a483a0917886dc4", - "0x1a0be9d79336ee61aa42b44f1bf791839fcd7bf74f1e6bcffac9325b23a0287c", - "0x304c34c63f6a8c1e53d14db02be9a107ef929761b07e5e34d4558702f17f4b53", - "0x2c4e79263a27c099d5b680266dfdd1bccf3da81a25c453544ec7bb808cde6f45", - "0x0000000000000000000000000000003b169beef72995c50667898fe80ae12705", - "0x000000000000000000000000000000000011e67dc88295bab0a43813a3fcd8f6", - "0x000000000000000000000000000000704779fa0834df3519d8007b0fb6144a7d", - "0x00000000000000000000000000000000000319e12d3cd4388b8b0f21e9f66852", - "0x0000000000000000000000000000007096727dacfe92eb586d67858195cb963d", - "0x0000000000000000000000000000000000190850089776d7538095fbe3960bb9", - "0x0000000000000000000000000000000877c3522dbc321451875d13a2cfb379c8", - "0x0000000000000000000000000000000000040d8a987bb29c12a81aa8c25591c3" + "0x259be68f3223a776dccce98688f1f58c796c4d98e11569746d0c580531f0ea7d", + "0x28d898b4cb086b7b52791d47cd1b15e490d4df255028e4170153ef7d26ec2c75", + "0x2702612d671364d79d4dad12ab8b3e5c69ba6761bed722f6d8263f2a779668cd", + "0x2a93ae6c823e26a7d459a50c3f334896547f9653918be3cfdf5cb1cd15b34ee8", + "0x0000000000000000000000000000004c5207948ad1eb978cab3544f22a0479c9", + "0x000000000000000000000000000000000014a794f4c60c9f229081739d347d72", + "0x000000000000000000000000000000468558b98cd684e777ffdb964af52446ab", + "0x00000000000000000000000000000000001bb0efb217de6378595dab80205fb8", + "0x00000000000000000000000000000086c78b668ab2d77fc855b70dc45629b759", + "0x00000000000000000000000000000000001e361c121f0974be2c735f628b1612", + "0x000000000000000000000000000000d3bb533275f6445416365fcbea2b04bf8f", + "0x0000000000000000000000000000000000218f1c5343fd75dae1520f23c4a7fe" ], "vkAsFields": [ "0x0000000000000000000000000000000000000000000000000000000000000006", diff --git a/recursive_verification/scripts/run_recursion.ts b/recursive_verification/scripts/run_recursion.ts index 5642256..9b72a08 100644 --- a/recursive_verification/scripts/run_recursion.ts +++ b/recursive_verification/scripts/run_recursion.ts @@ -82,7 +82,8 @@ async function main() { const valueNotEqual = await ValueNotEqualContract.deploy( testWallet, 10, - accounts[0].item + accounts[0].item, + data.vkHash as unknown as FieldLike ) .send({ from: accounts[0].item, @@ -100,7 +101,6 @@ async function main() { data.vkAsFields as unknown as FieldLike[], data.proofAsFields as unknown as FieldLike[], data.publicInputs as unknown as FieldLike[], - data.vkHash as unknown as FieldLike ); await captureProfile(interaction, opts, "recursion"); diff --git a/recursive_verification/tests/recursive_verification.test.ts b/recursive_verification/tests/recursive_verification.test.ts index 97ef2f8..710ad5e 100644 --- a/recursive_verification/tests/recursive_verification.test.ts +++ b/recursive_verification/tests/recursive_verification.test.ts @@ -1,49 +1,90 @@ -import { describe, expect, test, beforeAll } from "bun:test" -import { AccountWalletWithSecretKey, Contract, createPXEClient, waitForPXE, type FieldLike, type PXE, TxStatus } from "@aztec/aztec.js" -import { getInitialTestAccountsWallets } from '@aztec/accounts/testing' -import { ValueNotEqualContract, ValueNotEqualContractArtifact } from '../contract/artifacts/ValueNotEqual' +import { describe, expect, test, beforeAll, afterAll } from "bun:test" +import type { FieldLike } from "@aztec/aztec.js/abi" +import { TxStatus } from "@aztec/aztec.js/tx" +import { AztecAddress } from "@aztec/aztec.js/addresses" +import { createAztecNodeClient } from "@aztec/aztec.js/node" +import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee" +import { TestWallet } from "@aztec/test-wallet/server" +import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC" +import { getPXEConfig } from "@aztec/pxe/config" +import { ValueNotEqualContract } from '../contract/artifacts/ValueNotEqual' +import { getSponsoredFPCInstance } from '../scripts/sponsored_fpc' import data from '../data.json' -const PXE_URL = 'http://localhost:8080' +const NODE_URL = 'http://localhost:8080' -// Test timeout - proof verification can take some time -const TEST_TIMEOUT = 60000 // 60 seconds +// Test timeout - proof generation/verification can take several minutes +const TEST_TIMEOUT = 600000 // 10 minutes describe("Recursive Verification", () => { - let pxe: PXE - let owner: AccountWalletWithSecretKey - let user1: AccountWalletWithSecretKey - let user2: AccountWalletWithSecretKey + let testWallet: TestWallet + let ownerAddress: AztecAddress + let user1Address: AztecAddress let valueNotEqualContract: ValueNotEqualContract + let sponsoredPaymentMethod: SponsoredFeePaymentMethod beforeAll(async () => { - // Setup PXE client - console.log(`Connecting to PXE at ${PXE_URL}`) - pxe = await createPXEClient(PXE_URL) - await waitForPXE(pxe) - console.log('PXE client connected') - - // Setup wallets - const wallets = await getInitialTestAccountsWallets(pxe) - owner = wallets[0] - user1 = wallets[1] - user2 = wallets[2] - - console.log('Test wallets configured') - console.info('Owner address:', owner.getAddress().toString()) - console.info('User1 address:', user1.getAddress().toString()) - console.info('User2 address:', user2.getAddress().toString()) + // Setup TestWallet with PXE + console.log(`Connecting to Aztec Node at ${NODE_URL}`) + const aztecNode = await createAztecNodeClient(NODE_URL) + + // Setup sponsored FPC for fee payment + const sponsoredFPC = await getSponsoredFPCInstance() + sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address) + + // Create PXE config and TestWallet + const config = getPXEConfig() + // TODO: this hangs when set to true, need to debug + config.proverEnabled = false + + testWallet = await TestWallet.create(aztecNode, config) + + // Register the sponsored FPC contract + await testWallet.registerContract({ + instance: sponsoredFPC, + artifact: SponsoredFPCContract.artifact, + }) + console.log('TestWallet configured') + + // Create owner account + console.log('Creating owner account...') + const ownerAccountManager = await testWallet.createAccount() + console.log('Getting deploy method...') + const ownerDeployMethod = await ownerAccountManager.getDeployMethod() + console.log('Deploying account (this may take a while for proof generation)...') + const txReceipt = await ownerDeployMethod.send({ + from: AztecAddress.ZERO, + fee: { paymentMethod: sponsoredPaymentMethod }, + }).wait() + console.log(`Account deployed! Tx hash: ${txReceipt.txHash.toString()}`) + + const accounts = await testWallet.getAccounts() + ownerAddress = accounts[0].item + console.info('Owner address:', ownerAddress.toString()) }, TEST_TIMEOUT) + afterAll(async () => { + if (testWallet) { + await testWallet.stop() + } + }) + test("should deploy ValueNotEqual contract", async () => { const initialValue = 10 - valueNotEqualContract = await Contract.deploy( - owner, - ValueNotEqualContractArtifact, - [initialValue, owner.getAddress()], - 'initialize' - ).send({ from: owner.getAddress() }).deployed() as ValueNotEqualContract + const sendOpts = { + from: ownerAddress, + fee: { paymentMethod: sponsoredPaymentMethod }, + } + + valueNotEqualContract = await ValueNotEqualContract.deploy( + testWallet, + initialValue, + ownerAddress, + data.vkHash as unknown as FieldLike + ) + .send(sendOpts) + .deployed() expect(valueNotEqualContract.address).toBeDefined() expect(valueNotEqualContract.address.toString()).not.toBe("") @@ -52,14 +93,18 @@ describe("Recursive Verification", () => { }, TEST_TIMEOUT) test("should verify proof and increment counter", async () => { + const sendOpts = { + from: ownerAddress, + fee: { paymentMethod: sponsoredPaymentMethod }, + } + // Call increment with proof data const tx = await valueNotEqualContract.methods.increment( - owner.getAddress(), + ownerAddress, data.vkAsFields as unknown as FieldLike[], data.proofAsFields as unknown as FieldLike[], data.publicInputs as unknown as FieldLike[], - data.vkHash as unknown as FieldLike, - ).send({ from: owner.getAddress() }).wait() + ).send(sendOpts).wait() expect(tx).toBeDefined() expect(tx.txHash).toBeDefined() @@ -71,8 +116,8 @@ describe("Recursive Verification", () => { test("should read incremented counter value", async () => { const counterValue = await valueNotEqualContract.methods.get_counter( - owner.getAddress() - ).simulate({ from: owner.getAddress() }) + ownerAddress + ).simulate({ from: ownerAddress }) // Initial value was 10, after increment should be 11 expect(counterValue).toBe(11n) @@ -81,14 +126,18 @@ describe("Recursive Verification", () => { }, TEST_TIMEOUT) test("should verify proof and increment counter again", async () => { + const sendOpts = { + from: ownerAddress, + fee: { paymentMethod: sponsoredPaymentMethod }, + } + // Second increment to verify the contract works multiple times const tx = await valueNotEqualContract.methods.increment( - owner.getAddress(), + ownerAddress, data.vkAsFields as unknown as FieldLike[], data.proofAsFields as unknown as FieldLike[], data.publicInputs as unknown as FieldLike[], - data.vkHash as unknown as FieldLike - ).send({ from: owner.getAddress() }).wait() + ).send(sendOpts).wait() expect(tx).toBeDefined() expect(tx.txHash).toBeDefined() @@ -96,8 +145,8 @@ describe("Recursive Verification", () => { // Check counter value is now 12 const counterValue = await valueNotEqualContract.methods.get_counter( - owner.getAddress() - ).simulate({ from: owner.getAddress() }) + ownerAddress + ).simulate({ from: ownerAddress }) expect(counterValue).toBe(12n) @@ -107,27 +156,46 @@ describe("Recursive Verification", () => { test("should maintain separate counters for different users", async () => { const initialValue = 5 + // Create user1 account + const user1AccountManager = await testWallet.createAccount() + const user1DeployMethod = await user1AccountManager.getDeployMethod() + await user1DeployMethod + .send({ + from: AztecAddress.ZERO, + fee: { paymentMethod: sponsoredPaymentMethod }, + }) + .deployed() + + const accounts = await testWallet.getAccounts() + user1Address = accounts[1].item + + const sendOpts = { + from: user1Address, + fee: { paymentMethod: sponsoredPaymentMethod }, + } + // Deploy a new contract instance for user1 - const user1Contract = await Contract.deploy( - user1, - ValueNotEqualContractArtifact, - [initialValue, user1.getAddress()], - 'initialize' - ).send({ from: user1.getAddress() }).deployed() as ValueNotEqualContract + const user1Contract = await ValueNotEqualContract.deploy( + testWallet, + initialValue, + user1Address, + data.vkHash as unknown as FieldLike + ) + .send(sendOpts) + .deployed() // Increment user1's counter await user1Contract.methods.increment( - user1.getAddress(), + user1Address, data.vkAsFields as unknown as FieldLike[], data.proofAsFields as unknown as FieldLike[], data.publicInputs as unknown as FieldLike[], - data.vkHash as unknown as FieldLike - ).send({ from: user1.getAddress() }).wait() + ).send(sendOpts).wait() // Check user1's counter const user1Counter = await user1Contract.methods.get_counter( - user1.getAddress() - ).simulate({ from: user1.getAddress() }) + user1Address + ).simulate({ from: user1Address }) expect(user1Counter).toBe(6n) // 5 + 1 From 27088d37fc9d096bc7042f0e6df7f083b9fcb840 Mon Sep 17 00:00:00 2001 From: Josh Crites Date: Fri, 19 Dec 2025 11:16:39 -0500 Subject: [PATCH 2/2] Update bun.lockb to reflect changes in dependencies --- recursive_verification/bun.lockb | Bin 248741 -> 224675 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/recursive_verification/bun.lockb b/recursive_verification/bun.lockb index 0ce87b4efb2ba4fd01e8625da0f35f566e2dd358..f5a453498795137cb0226eee1f8bfb018fbcf894 100755 GIT binary patch delta 55326 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 delta 70377 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 z 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 T1s!vq{5WYV?Az>%lRo%g@r7&n