diff --git a/.github/workflows/merge-train-stale-check.yml b/.github/workflows/merge-train-stale-check.yml index 331858ed9a4e..726bc68ed7b4 100644 --- a/.github/workflows/merge-train-stale-check.yml +++ b/.github/workflows/merge-train-stale-check.yml @@ -19,7 +19,7 @@ jobs: env: GH_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }} SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - run: ./ci3/merge_train_stale_check merge-train/spartan '#team-alpha' + run: ./ci3/merge_train_stale_check merge-train/spartan '#team-alpha-ci' spartan-v5: name: Check merge-train/spartan-v5 @@ -34,7 +34,7 @@ jobs: GH_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }} SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} BASE_BRANCH: v5-next - run: ./ci3/merge_train_stale_check merge-train/spartan-v5 '#team-alpha' + run: ./ci3/merge_train_stale_check merge-train/spartan-v5 '#team-alpha-ci' spartan-v6: name: Check merge-train/spartan-v6 diff --git a/.github/workflows/network-healthcheck.yml b/.github/workflows/network-healthcheck.yml index 00031374a35f..93fde2ed4652 100644 --- a/.github/workflows/network-healthcheck.yml +++ b/.github/workflows/network-healthcheck.yml @@ -36,7 +36,7 @@ jobs: 5. Any errors (level >= 50) or warnings (level 40) in the last 8 hours 6. Bot status if applicable - Create a gist with the full healthcheck report. Then post a concise summary to the #team-alpha channel via respond_to_user. Flag anything that needs attention (stopped bots, missed slots, errors, low peer counts). + Create a gist with the full healthcheck report. Then post a concise summary to the #team-alpha-ci channel via respond_to_user. Flag anything that needs attention (stopped bots, missed slots, errors, low peer counts). Format the respond_to_user message as a brief network status overview, e.g.: - testnet: healthy, block 5570, 100 peers @@ -44,6 +44,6 @@ jobs: - devnet: WARNING - bot stopped (insufficient balance) Link to the gist for full details." - ./ci3/slack_notify_with_claudebox_kickoff "#team-alpha" \ + ./ci3/slack_notify_with_claudebox_kickoff "#team-alpha-ci" \ "Starting network healthcheck for: ${NETWORKS}" \ "$PROMPT" diff --git a/avm-transpiler/Cargo.lock b/avm-transpiler/Cargo.lock index 0ea638a3a1e3..6456af4ae0f7 100644 --- a/avm-transpiler/Cargo.lock +++ b/avm-transpiler/Cargo.lock @@ -4,14 +4,14 @@ version = 4 [[package]] name = "acir" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acir_field", "base64 0.22.1", "brillig", "flate2", "msgpack_tagged", - "num-bigint", + "num-bigint 0.5.1", "num-traits", "num_enum", "rmp-serde", @@ -24,27 +24,28 @@ dependencies = [ [[package]] name = "acir_field" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "ark-bn254", "ark-ff", "cfg-if", "hex", "msgpack_tagged", - "num-bigint", + "num-bigint 0.5.1", "serde", "serde_bytes", ] [[package]] name = "acvm" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acir", "acvm_blackbox_solver", "brillig_vm", "indexmap 2.14.0", - "itertools", + "itertools 0.15.0", + "rustc-hash", "serde", "thiserror", "tracing", @@ -52,7 +53,7 @@ dependencies = [ [[package]] name = "acvm_blackbox_solver" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acir", "aes", @@ -201,8 +202,8 @@ dependencies = [ "educe", "fnv", "hashbrown 0.17.1", - "itertools", - "num-bigint", + "itertools 0.14.0", + "num-bigint 0.4.6", "num-integer", "num-traits", "zeroize", @@ -220,7 +221,7 @@ dependencies = [ "ark-std", "digest 0.10.7", "educe", - "num-bigint", + "num-bigint 0.4.6", "num-traits", "zeroize", ] @@ -241,7 +242,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a0691ed21ef00ef89c1e9bda832eba493dda3ec2f8d892fb25b705f73f06bb8" dependencies = [ - "num-bigint", + "num-bigint 0.4.6", "num-traits", "proc-macro2", "quote", @@ -284,7 +285,7 @@ dependencies = [ "ark-serialize-derive", "ark-std", "digest 0.10.7", - "num-bigint", + "num-bigint 0.4.6", ] [[package]] @@ -437,7 +438,7 @@ dependencies = [ [[package]] name = "bn254_blackbox_solver" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acir", "acvm_blackbox_solver", @@ -446,7 +447,7 @@ dependencies = [ "ark-ff", "ark-grumpkin", "hex", - "itertools", + "itertools 0.15.0", ] [[package]] @@ -460,22 +461,22 @@ dependencies = [ [[package]] name = "brillig" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acir_field", - "itertools", + "itertools 0.15.0", "msgpack_tagged", "serde", ] [[package]] name = "brillig_vm" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acir", "acvm_blackbox_solver", - "itertools", - "num-bigint", + "itertools 0.15.0", + "num-bigint 0.5.1", "num-traits", "thiserror", ] @@ -667,9 +668,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-bigint" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a0d26b245348befa0c121944541476763dcc46ede886c88f9d12e1697d27c3" +checksum = "1a52aa3fcda4e6302a9f48734f234d35d4721b96f8fe07d073f07ce9df4f0271" dependencies = [ "cpubits", "ctutils", @@ -796,9 +797,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" -version = "0.17.0-rc.18" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54fb064faabbee66e1fc8e5c5a9458d4269dc2d8b638fe86a425adb2510d1a96" +checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" dependencies = [ "der", "digest 0.11.2", @@ -829,21 +830,20 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" -version = "0.14.0-rc.32" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda94f31325c4275e9706adecbb6f0650dee2f904c915a98e3d81adaaaa757aa" +checksum = "9d65aa39b3a5c1c9c1b745c9a019234bb7a21b77abcb4f4d266d706e2d577d65" dependencies = [ "base16ct", "crypto-bigint", "crypto-common 0.2.1", "digest 0.11.2", + "ff", + "group", "hybrid-array", - "once_cell", "pem-rfc7468", "pkcs8", "rand_core 0.10.0", - "rustcrypto-ff", - "rustcrypto-group", "sec1", "subtle", "zeroize", @@ -898,6 +898,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "ff" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f686ab92a9fb0eaf188f6c6c87b89490baa6fdb0db4544ba4dc47f7942489f" +dependencies = [ + "rand_core 0.10.0", + "subtle", +] + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -922,7 +932,7 @@ dependencies = [ [[package]] name = "fm" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "codespan-reporting", "iter-extended", @@ -974,6 +984,17 @@ dependencies = [ "wasip3", ] +[[package]] +name = "group" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd1a1c7a5206c5b7a3f5a0d7ccd3ff85d0c8f5133d62a02680255b0004af5f4" +dependencies = [ + "ff", + "rand_core 0.10.0", + "subtle", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1012,18 +1033,18 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hmac" -version = "0.13.0-rc.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef451d73f36d8a3f93ad32c332ea01146c9650e1ec821a9b0e46c01277d544f8" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ "digest 0.11.2", ] [[package]] name = "hybrid-array" -version = "0.4.8" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" dependencies = [ "subtle", "typenum", @@ -1122,7 +1143,7 @@ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "iter-extended" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" [[package]] name = "itertools" @@ -1133,6 +1154,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.17" @@ -1175,15 +1205,17 @@ dependencies = [ [[package]] name = "k256" -version = "0.14.0-rc.9" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b382cbfd43caf55991a93850ce538aa1aa67bb264af367d22dfe7937c4e997d" +checksum = "93f50113171a713f4a4231ef82eb26703607139b35dcb56241f0ceab2ae1f7d8" dependencies = [ "cpubits", "ecdsa", "elliptic-curve", + "primeorder", "sha2", "signature", + "wnaf", ] [[package]] @@ -1232,7 +1264,7 @@ dependencies = [ [[package]] name = "msgpack_tagged" -version = "1.0.0-beta.20" +version = "1.0.0-beta.25" dependencies = [ "msgpack_tagged_derive", "rmp", @@ -1243,7 +1275,7 @@ dependencies = [ [[package]] name = "msgpack_tagged_derive" -version = "1.0.0-beta.20" +version = "1.0.0-beta.25" dependencies = [ "proc-macro2", "quote", @@ -1252,13 +1284,13 @@ dependencies = [ [[package]] name = "noirc_abi" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acvm", "iter-extended", - "itertools", + "itertools 0.15.0", "noirc_printable_type", - "num-bigint", + "num-bigint 0.5.1", "num-traits", "serde", "serde_json", @@ -1268,11 +1300,11 @@ dependencies = [ [[package]] name = "noirc_arena" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" [[package]] name = "noirc_artifacts" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acir", "acvm", @@ -1291,7 +1323,7 @@ dependencies = [ [[package]] name = "noirc_errors" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "codespan-reporting", "fm", @@ -1303,7 +1335,7 @@ dependencies = [ [[package]] name = "noirc_evaluator" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acvm", "bit-vec", @@ -1314,12 +1346,12 @@ dependencies = [ "im", "indexmap 2.14.0", "iter-extended", - "itertools", + "itertools 0.15.0", "noirc_artifacts", "noirc_errors", "noirc_frontend", "noirc_printable_type", - "num-bigint", + "num-bigint 0.5.1", "num-integer", "num-traits", "petgraph", @@ -1336,26 +1368,28 @@ dependencies = [ [[package]] name = "noirc_frontend" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acvm", "bn254_blackbox_solver", "cfg-if", "fm", "im", + "indexmap 2.14.0", "iter-extended", - "itertools", + "itertools 0.15.0", "noirc_arena", "noirc_artifacts", "noirc_errors", "noirc_printable_type", - "num-bigint", + "num-bigint 0.5.1", "num-traits", "petgraph", "rangemap", "rustc-hash", "serde", "serde_json", + "siphasher", "small-ord-set", "smol_str", "strum", @@ -1366,18 +1400,18 @@ dependencies = [ [[package]] name = "noirc_printable_type" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "acvm", "iter-extended", - "itertools", + "itertools 0.15.0", "serde", "serde_json", ] [[package]] name = "noirc_span" -version = "1.0.0-beta.22" +version = "1.0.0-beta.25" dependencies = [ "codespan", "serde", @@ -1393,6 +1427,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e7820bc0a80a0238e650327316f929ba18d5be054b647490a3a6a339f3e7c0" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-conv" version = "0.2.0" @@ -1453,9 +1497,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "p256" -version = "0.14.0-rc.9" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b97e3bf0465157ae90975ff52dbeb1362ba618924878c9f74c25baa27a65f9a" +checksum = "d2c9239b2dbc807adbbe147e8cf72ea7450c3a0aabe62cb8e75ff4ec22e1f72a" dependencies = [ "ecdsa", "elliptic-curve", @@ -1543,25 +1587,29 @@ dependencies = [ [[package]] name = "primefield" -version = "0.14.0-rc.9" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b52e6ee42db392378a95622b463c9740631171d1efce43fa445a569c1600cb6" +checksum = "c555a6e4eb7d4e158fcb028c835c3b8642206ddc279b5c6b202ef9a8bdb592f4" dependencies = [ "crypto-bigint", "crypto-common 0.2.1", + "ff", "rand_core 0.10.0", - "rustcrypto-ff", "subtle", "zeroize", ] [[package]] name = "primeorder" -version = "0.14.0-rc.9" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0556580e42c19833f5d232aca11a7687a503ee41f937b54f5ae1d50fc2a6a36a" +checksum = "5c9f42978c78a00e3d68f69fc03e57a234debae69da4020a4fb588fcdcd07b06" dependencies = [ "elliptic-curve", + "once_cell", + "primefield", + "serdect", + "wnaf", ] [[package]] @@ -1715,12 +1763,12 @@ checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" [[package]] name = "rfc6979" -version = "0.5.0-rc.5" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a3127ee32baec36af75b4107082d9bd823501ec14a4e016be4b6b37faa74ae" +checksum = "b4a459cddafb3fe76b31fd8f1108007566c40301feb64dc7b54656eb7388172b" dependencies = [ + "crypto-bigint", "hmac", - "subtle", ] [[package]] @@ -1754,27 +1802,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "781442f29170c5c93b7185ad559492601acdc71d5bb0706f5868094f45cfcd08" -[[package]] -name = "rustcrypto-ff" -version = "0.14.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2a8adb347447693cd2ba0d218c4b66c62da9b0a5672b17b981e4291ec65ff6" -dependencies = [ - "rand_core 0.10.0", - "subtle", -] - -[[package]] -name = "rustcrypto-group" -version = "0.14.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "369f9b61aa45933c062c9f6b5c3c50ab710687eca83dd3802653b140b43f85ed" -dependencies = [ - "rand_core 0.10.0", - "rustcrypto-ff", - "subtle", -] - [[package]] name = "rustversion" version = "1.0.22" @@ -1898,9 +1925,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" dependencies = [ "base64 0.22.1", "bs58", @@ -1918,9 +1945,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" dependencies = [ "darling", "proc-macro2", @@ -1928,6 +1955,16 @@ dependencies = [ "syn", ] +[[package]] +name = "serdect" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66cf8fedced2fcf12406bcb34223dffb92eaf34908ede12fed414c82b7f00b3e" +dependencies = [ + "base16ct", + "serde", +] + [[package]] name = "sha2" version = "0.11.0" @@ -1947,9 +1984,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signature" -version = "3.0.0-rc.10" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1880df446116126965eeec169136b2e0251dba37c6223bcc819569550edea3" +checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" dependencies = [ "digest 0.11.2", "rand_core 0.10.0", @@ -1961,6 +1998,12 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + [[package]] name = "sized-chunks" version = "0.6.5" @@ -2229,9 +2272,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unicode-ident" @@ -2534,6 +2577,17 @@ dependencies = [ "wasmparser", ] +[[package]] +name = "wnaf" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab12e7090f27e2ffd9322651492942d50c2926094af30601e1964337db39daf1" +dependencies = [ + "ff", + "group", + "hybrid-array", +] + [[package]] name = "zerocopy" version = "0.8.39" diff --git a/avm-transpiler/src/transpile.rs b/avm-transpiler/src/transpile.rs index cb4f925b6f7c..66ac5490ffd0 100644 --- a/avm-transpiler/src/transpile.rs +++ b/avm-transpiler/src/transpile.rs @@ -1757,8 +1757,9 @@ pub fn patch_debug_info_pcs( // create a new map with all of its keys (OpcodeLocations) patched let mut patched_locations = BTreeMap::new(); for (original_opcode_location, source_locations) in opcode_locations_map.iter() { - let avm_opcode_location = - BrilligOpcodeLocation(brillig_pcs_to_avm_pcs[original_opcode_location.0]); + let avm_opcode_location = BrilligOpcodeLocation::new( + brillig_pcs_to_avm_pcs[original_opcode_location.index()], + ); patched_locations.insert(avm_opcode_location, *source_locations); } // insert the new map as a brillig locations map for the current function id diff --git a/avm-transpiler/src/utils.rs b/avm-transpiler/src/utils.rs index 791a4204ad06..dce64e6c52fc 100644 --- a/avm-transpiler/src/utils.rs +++ b/avm-transpiler/src/utils.rs @@ -28,7 +28,7 @@ pub fn extract_brillig_from_acir_program( match opcodes[0] { Opcode::BrilligCall { id, .. } => assert_eq!( id, - BrilligFunctionId(0), + BrilligFunctionId::new(0), "The ID of the `BrilligCall` must be 0 as we have a single `Brillig` function" ), _ => panic!( diff --git a/barretenberg/acir_tests/bootstrap.sh b/barretenberg/acir_tests/bootstrap.sh index 62213bc821fe..7a590cd069a1 100755 --- a/barretenberg/acir_tests/bootstrap.sh +++ b/barretenberg/acir_tests/bootstrap.sh @@ -108,8 +108,10 @@ function build { rm -rf acir_tests/{diamond_deps_0,workspace,workspace_default_member,regression_7323} # These use folding, which is not currently supported. rm -rf acir_tests/{fold_call_witness_condition,fold_after_inlined_calls,fold_complex_outputs,fold_basic_nested_call,fold_numeric_generic_poseidon,fold_fibonacci,fold_basic,fold_2_to_17,fold_distinct_return} - # The following test fails because it uses CallData/ReturnData with UltraBuilder, which is not supported - rm -rf acir_tests/{regression_7612,regression_7143,databus_composite_calldata,databus_two_calldata_simple,databus_two_calldata,databus} + # The following tests fail because they use CallData/ReturnData with UltraBuilder, which is not supported. + rm -rf acir_tests/{regression_7612,regression_7143,regression_claude_1124,databus_composite_calldata,databus_two_calldata_simple,databus_two_calldata,databus} + # This compiler typing test optimizes to an empty circuit while retaining unused input witnesses. + rm -rf acir_tests/associated_constant_as_array_length # Merge the internal test programs with the acir tests. cp -R ./internal_test_programs/* acir_tests diff --git a/ci3/merge_train_failure_slack_notify b/ci3/merge_train_failure_slack_notify index bb626d662220..c49f20701cfd 100755 --- a/ci3/merge_train_failure_slack_notify +++ b/ci3/merge_train_failure_slack_notify @@ -36,9 +36,9 @@ elif [[ "$REF_NAME" == "merge-train/fairies" ]]; then elif [[ "$REF_NAME" == "merge-train/fairies-v5" ]]; then channel="#team-fairies" elif [[ "$REF_NAME" == "merge-train/spartan" ]]; then - channel="#team-alpha" + channel="#team-alpha-ci" elif [[ "$REF_NAME" == "merge-train/spartan-v5" ]]; then - channel="#team-alpha" + channel="#team-alpha-ci" else exit 0 fi diff --git a/ci3/merge_train_stale_check b/ci3/merge_train_stale_check index a65c6ef9d985..b31989c0015f 100755 --- a/ci3/merge_train_stale_check +++ b/ci3/merge_train_stale_check @@ -6,7 +6,7 @@ # Usage: merge_train_stale_check # # Example: -# merge_train_stale_check merge-train/spartan '#team-alpha' +# merge_train_stale_check merge-train/spartan '#team-alpha-ci' # # Required env vars: # GH_TOKEN — GitHub API token (used by `gh api`) diff --git a/ci3/slack_notify b/ci3/slack_notify index 98a249aff5c2..f6e6f7efaa50 100755 --- a/ci3/slack_notify +++ b/ci3/slack_notify @@ -8,7 +8,17 @@ fi channel=${2:-"#aztec3-ci"} data=$(jq -n --arg channel "$channel" --arg text "$1" '{channel: $channel, text: $text}') -curl -X POST https://slack.com/api/chat.postMessage \ +# Post to Slack, capturing the API response. Previously the response went to +# /dev/null, so a failed post (most commonly the bot not being a member of the +# target channel -> "not_in_channel", or an invalid channel/token) vanished with +# no trace and could not be troubleshooted. Surface any failure in the CI log. +# Best-effort: log the failure but do not fail the caller. +response=$(curl -sS -X POST https://slack.com/api/chat.postMessage \ -H "Authorization: Bearer $SLACK_BOT_TOKEN" \ -H "Content-type: application/json" \ - --data "$data" &>/dev/null + --data "$data" 2>&1) + +if [ "$(jq -r '.ok // false' <<<"$response" 2>/dev/null)" != "true" ]; then + error=$(jq -r '.error // empty' <<<"$response" 2>/dev/null) + echo "slack_notify: failed to post to Slack channel '$channel': ${error:-$response}" >&2 +fi diff --git a/noir-projects/aztec-nr/aztec/src/context/private_context.nr b/noir-projects/aztec-nr/aztec/src/context/private_context.nr index 4fae5889659f..4261cdbe24c6 100644 --- a/noir-projects/aztec-nr/aztec/src/context/private_context.nr +++ b/noir-projects/aztec-nr/aztec/src/context/private_context.nr @@ -1225,7 +1225,11 @@ impl PrivateContext { /// user's tx. A single proof of the tx has been submitted to the Aztec network, and some time later a proposer has /// picked the tx up from the mempool and begun executing all of the enqueued public functions). /// - /// # Privacy warning Enqueueing a public function call is an inherently leaky action. Many interesting applications will require some interaction with public state, but smart contract developers should try to use public function calls sparingly, and carefully. _Internal_ public function calls are especially leaky, because they completely leak which private contract made the call. See also: https://docs.aztec.network/developers/resources/considerations/privacy_considerations + /// # Privacy warning Enqueueing a public function call is an inherently leaky action. Many interesting applications + /// will require some interaction with public state, but smart contract developers should try to use public function + /// calls sparingly, and carefully. _Internal_ public function calls are especially leaky, because they completely + /// leak which private contract made the call. See also: + /// https://docs.aztec.network/developers/resources/considerations/privacy_considerations /// /// # Arguments /// * `contract_address` - Address of the contract containing the function diff --git a/noir-projects/aztec-nr/aztec/src/contract_self/contract_self_private.nr b/noir-projects/aztec-nr/aztec/src/contract_self/contract_self_private.nr index 8b948a232440..895ae9fb368b 100644 --- a/noir-projects/aztec-nr/aztec/src/contract_self/contract_self_private.nr +++ b/noir-projects/aztec-nr/aztec/src/contract_self/contract_self_private.nr @@ -291,7 +291,11 @@ impl [(Type, Quoted)] { @[ - scalar(|seed: u32| seed as Field), - scalar(|seed: u32| (seed % 2) != 0), - scalar(|seed: u32| seed as u8), - scalar(|seed: u32| seed), - scalar(|seed: u32| seed as u64), - scalar(|seed: u32| seed as u128), - scalar(|seed: u32| AztecAddress::from_field(seed as Field)), - scalar(|seed: u32| EthAddress::from_field(seed as Field)), - scalar(|seed: u32| FunctionSelector::from_field(seed as Field)), + scalar::(quote { |seed: u32| seed as Field }), + scalar::(quote { |seed: u32| (seed % 2) != 0 }), + scalar::(quote { |seed: u32| seed as u8 }), + scalar::(quote { |seed: u32| seed }), + scalar::(quote { |seed: u32| seed as u64 }), + scalar::(quote { |seed: u32| seed as u128 }), + scalar::( + quote { + |seed: u32| ::from_field( + seed as Field, + ) + }, + ), + scalar::( + quote { + |seed: u32| crate::protocol::address::EthAddress::from_field(seed as Field) + }, + ), + scalar::( + quote { + |seed: u32| ::from_field( + seed as Field, + ) + }, + ), onchain_delivery_mode_scalar(), ] } @@ -131,21 +143,25 @@ comptime fn synthesizers() -> [TestValueSynthesizer] { /// The seed alternates between the only two valid modes. comptime fn onchain_delivery_mode_scalar() -> (Type, Quoted) { - scalar( - |seed: u32| if (seed % 2) == 0 { - OnchainDeliveryMode::onchain_unconstrained() - } else { - OnchainDeliveryMode::onchain_constrained() + scalar::( + quote { + |seed: u32| if (seed % 2) == 0 { + crate::messages::delivery::OnchainDeliveryMode::onchain_unconstrained() + } else { + crate::messages::delivery::OnchainDeliveryMode::onchain_constrained() + } }, ) } /// One [`scalars`] entry: the scalar type `T`, paired with the function that builds its canonical test value from /// a seed. -comptime fn scalar(value: fn(u32) -> T) -> (Type, Quoted) { +comptime fn scalar(value: Quoted) -> (Type, Quoted) { + // Keep the builder as syntax until it is expanded at the call site. A typed closure would capture comptime + // locals in this scope and cannot escape into the generated runtime code. // There is no direct way to reflect the generic `T` as a `Type`, so a zeroed value is materialized purely to // take its type. - (std::meta::type_of(std::mem::zeroed::()), quote { $value }) + (std::meta::type_of(std::mem::zeroed::()), value) } comptime fn scalar_synth() -> TestValueSynthesizer { @@ -153,7 +169,7 @@ comptime fn scalar_synth() -> TestValueSynthesizer { matches: |t: Type| maybe_scalar_builder(t).is_some(), scenarios: |t: Type, seed: Quoted| { let value_fn = maybe_scalar_builder(t).unwrap(); - @[unnamed(quote { $value_fn($seed) })] + @[unnamed(quote { ($value_fn)($seed) })] }, // Being a single wire field with no lengths to pin is what qualifies a type for the scalars table. width: |_t: Type| 1, diff --git a/noir-projects/aztec-nr/aztec/src/macros/utils.nr b/noir-projects/aztec-nr/aztec/src/macros/utils.nr index fcd2852853fb..363ba5df0198 100644 --- a/noir-projects/aztec-nr/aztec/src/macros/utils.nr +++ b/noir-projects/aztec-nr/aztec/src/macros/utils.nr @@ -144,7 +144,9 @@ pub(crate) comptime fn module_has_initializer(m: Module) -> bool { /// inlining would result in missing import warnings in the generated code (specifically, warnings that the trait /// implementation is not in scope). /// -/// # Note A copy of this function exists in `noir-protocol-circuits/crates/types/src/meta/mod.nr`. We maintain separate copies because importing it here from there would cause the `target_trait` to be interpreted in the context of the protocol circuits types crate, making it impossible to compile code for traits from this crate (e.g. NoteType). +/// # Note A copy of this function exists in `noir-protocol-circuits/crates/types/src/meta/mod.nr`. We maintain separate +/// copies because importing it here from there would cause the `target_trait` to be interpreted in the context of the +/// protocol circuits types crate, making it impossible to compile code for traits from this crate (e.g. NoteType). pub(crate) comptime fn get_trait_impl_method(typ: Type, target_trait: Quoted, target_method: Quoted) -> TypedExpr { let trait_constraint = target_trait.as_trait_constraint(); typ.get_trait_impl(trait_constraint).expect(f"Type does not implement trait").methods().filter(|m| { diff --git a/noir-projects/aztec-nr/aztec/src/messages/encryption/aes128.nr b/noir-projects/aztec-nr/aztec/src/messages/encryption/aes128.nr index 41993594e562..86d0996d354e 100644 --- a/noir-projects/aztec-nr/aztec/src/messages/encryption/aes128.nr +++ b/noir-projects/aztec-nr/aztec/src/messages/encryption/aes128.nr @@ -69,7 +69,6 @@ fn extract_many_close_to_uniformly_random_256_bits_using_poseidon2(s * * If you're calling this function for a differently-derived `s_app`, be careful. */ - /* The output of this function needs to be 32 random bytes. * A single field won't give us 32 bytes of entropy. So we compute two "random" fields, by poseidon-hashing diff --git a/noir-projects/aztec-nr/aztec/src/test/helpers/test_environment.nr b/noir-projects/aztec-nr/aztec/src/test/helpers/test_environment.nr index 9bb7f2a252ab..a3cc61905d89 100644 --- a/noir-projects/aztec-nr/aztec/src/test/helpers/test_environment.nr +++ b/noir-projects/aztec-nr/aztec/src/test/helpers/test_environment.nr @@ -1001,7 +1001,8 @@ impl TestEnvironment { /// associated methods. For more information on how to specify the path and initialization, read the sections /// below. /// - /// ### Path Contracts can be deployed from either the same crate as the test, from a different crate in the same workspace, or from an altogether independent crate. + /// ### Path Contracts can be deployed from either the same crate as the test, from a different crate in the same + /// workspace, or from an altogether independent crate. /// /// If deploying contracts from the same crate as the test, just refer to it by its name: /// ```noir diff --git a/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_non_state_var_in_storage/snapshots__stderr.snap b/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_non_state_var_in_storage/snapshots__stderr.snap index 0d6a73af5089..57e8e6b2c8f6 100644 --- a/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_non_state_var_in_storage/snapshots__stderr.snap +++ b/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_non_state_var_in_storage/snapshots__stderr.snap @@ -30,7 +30,7 @@ error: Type annotation needed ┌─ /noir-projects/aztec-nr/aztec/src/macros/internals_functions_generation/external/private.nr:: │ │ aztec::contract_self::ContractSelfPrivate::new(&mut context, storage, call_self, enqueue_self, call_self_static, enqueue_self_static, internal, utility) - │ --- Could not determine the type of the generic argument `Storage` declared on the struct `ContractSelfPrivate` + │ ---------------------------------------------- Could not determine the type of the generic argument `Storage` declared on the struct `ContractSelfPrivate` │ ┌─ src/main.nr:4:1 │ diff --git a/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_owned_state_var_in_storage/snapshots__stderr.snap b/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_owned_state_var_in_storage/snapshots__stderr.snap index dc0587666722..dfdf6e7bf30d 100644 --- a/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_owned_state_var_in_storage/snapshots__stderr.snap +++ b/noir-projects/contract-snapshots/tests/snapshots/compile_failure/panic_on_owned_state_var_in_storage/snapshots__stderr.snap @@ -30,7 +30,7 @@ error: Type annotation needed ┌─ /noir-projects/aztec-nr/aztec/src/macros/internals_functions_generation/external/private.nr:: │ │ aztec::contract_self::ContractSelfPrivate::new(&mut context, storage, call_self, enqueue_self, call_self_static, enqueue_self_static, internal, utility) - │ --- Could not determine the type of the generic argument `Storage` declared on the struct `ContractSelfPrivate` + │ ---------------------------------------------- Could not determine the type of the generic argument `Storage` declared on the struct `ContractSelfPrivate` │ ┌─ src/main.nr:4:1 │ diff --git a/noir-projects/contract-snapshots/tests/snapshots/expand/amm_contract/snapshots__expanded.snap b/noir-projects/contract-snapshots/tests/snapshots/expand/amm_contract/snapshots__expanded.snap index 9193488200c3..3c272b15d438 100644 --- a/noir-projects/contract-snapshots/tests/snapshots/expand/amm_contract/snapshots__expanded.snap +++ b/noir-projects/contract-snapshots/tests/snapshots/expand/amm_contract/snapshots__expanded.snap @@ -405,41 +405,47 @@ pub contract AMM { Self { target_contract: AztecAddress::zero()} } - pub fn constructor(self, token0: AztecAddress, token1: AztecAddress, liquidity_token: AztecAddress) -> aztec::context::calls::PublicCall<11, 3, ()> { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn add_liquidity(self, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<13, 5, ()> { + let mut serialized_params: [Field; 5] = [0_Field; 5]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(token0); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount0_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token1); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount1_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity_token); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount0_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2287085075_Field); - aztec::context::calls::PublicCall::<11, 3, ()>::new(self.target_contract, selector, "constructor", serialized_params) - } - - pub fn add_liquidity(self, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<13, 5, ()> { - let mut serialized_params: [Field; 5] = [0_Field; 5]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(amount0_max); + let serialized_member: [Field; 1] = ::serialize(amount1_min); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_max); + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3734879327_Field); + aztec::context::calls::PrivateCall::<13, 5, ()>::new(self.target_contract, selector, "add_liquidity", serialized_params) + } + + pub fn remove_liquidity(self, liquidity: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<16, 4, ()> { + let mut serialized_params: [Field; 4] = [0_Field; 4]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 1] = ::serialize(liquidity); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -463,8 +469,8 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3734879327_Field); - aztec::context::calls::PrivateCall::<13, 5, ()>::new(self.target_contract, selector, "add_liquidity", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1221183968_Field); + aztec::context::calls::PrivateCall::<16, 4, ()>::new(self.target_contract, selector, "remove_liquidity", serialized_params) } pub fn swap_exact_tokens_for_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in: u128, amount_out_min: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<28, 5, ()> { @@ -504,8 +510,8 @@ pub contract AMM { aztec::context::calls::PrivateCall::<28, 5, ()>::new(self.target_contract, selector, "swap_exact_tokens_for_tokens", serialized_params) } - pub fn _swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in_max: u128, amount_out: u128, change_token_in_partial_note: PartialUintNote, token_out_partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<29, 6, ()> { - let mut serialized_params: [Field; 6] = [0_Field; 6]; + pub fn swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_out: u128, amount_in_max: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<28, 5, ()> { + let mut serialized_params: [Field; 5] = [0_Field; 5]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(token_in); let serialized_member_len: u32 = ::N; @@ -519,94 +525,88 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_in_max); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount_out); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(change_token_in_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount_in_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3156435103_Field); - aztec::context::calls::PublicCall::<29, 6, ()>::new(self.target_contract, selector, "_swap_tokens_for_exact_tokens", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2620890703_Field); + aztec::context::calls::PrivateCall::<28, 5, ()>::new(self.target_contract, selector, "swap_tokens_for_exact_tokens", serialized_params) } - pub fn _swap_exact_tokens_for_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in: u128, amount_out_min: u128, token_out_partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<29, 5, ()> { - let mut serialized_params: [Field; 5] = [0_Field; 5]; + pub fn constructor(self, token0: AztecAddress, token1: AztecAddress, liquidity_token: AztecAddress) -> aztec::context::calls::PublicCall<11, 3, ()> { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(token_in); + let serialized_member: [Field; 1] = ::serialize(token0); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out); + let serialized_member: [Field; 1] = ::serialize(token1); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_in); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(liquidity_token); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_out_min); - let serialized_member_len: u32 = ::N; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2287085075_Field); + aztec::context::calls::PublicCall::<11, 3, ()>::new(self.target_contract, selector, "constructor", serialized_params) + } + + pub fn _add_liquidity(self, config: Config, refund_token0_partial_note: PartialUintNote, refund_token1_partial_note: PartialUintNote, liquidity_partial_note: PartialUintNote, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128) -> aztec::context::calls::PublicCall<14, 10, ()> { + let mut serialized_params: [Field; 10] = [0_Field; 10]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 3] = >::serialize(config); + let serialized_member_len: u32 = >::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); + let serialized_member: [Field; 1] = ::serialize(refund_token0_partial_note); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1918288610_Field); - aztec::context::calls::PublicCall::<29, 5, ()>::new(self.target_contract, selector, "_swap_exact_tokens_for_tokens", serialized_params) - } - - pub fn _remove_liquidity(self, config: Config, liquidity: u128, token0_partial_note: PartialUintNote, token1_partial_note: PartialUintNote, amount0_min: u128, amount1_min: u128) -> aztec::context::calls::PublicCall<17, 8, ()> { - let mut serialized_params: [Field; 8] = [0_Field; 8]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 3] = >::serialize(config); - let serialized_member_len: u32 = >::N; + let serialized_member: [Field; 1] = ::serialize(refund_token1_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(liquidity_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token0_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount0_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token1_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount1_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; @@ -623,12 +623,12 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2270402407_Field); - aztec::context::calls::PublicCall::<17, 8, ()>::new(self.target_contract, selector, "_remove_liquidity", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1909103841_Field); + aztec::context::calls::PublicCall::<14, 10, ()>::new(self.target_contract, selector, "_add_liquidity", serialized_params) } - pub fn _add_liquidity(self, config: Config, refund_token0_partial_note: PartialUintNote, refund_token1_partial_note: PartialUintNote, liquidity_partial_note: PartialUintNote, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128) -> aztec::context::calls::PublicCall<14, 10, ()> { - let mut serialized_params: [Field; 10] = [0_Field; 10]; + pub fn _remove_liquidity(self, config: Config, liquidity: u128, token0_partial_note: PartialUintNote, token1_partial_note: PartialUintNote, amount0_min: u128, amount1_min: u128) -> aztec::context::calls::PublicCall<17, 8, ()> { + let mut serialized_params: [Field; 8] = [0_Field; 8]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 3] = >::serialize(config); let serialized_member_len: u32 = >::N; @@ -636,36 +636,24 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(refund_token0_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(liquidity); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(refund_token1_partial_note); + let serialized_member: [Field; 1] = ::serialize(token0_partial_note); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity_partial_note); + let serialized_member: [Field; 1] = ::serialize(token1_partial_note); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_max); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_max); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount0_min); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { @@ -678,43 +666,49 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1909103841_Field); - aztec::context::calls::PublicCall::<14, 10, ()>::new(self.target_contract, selector, "_add_liquidity", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2270402407_Field); + aztec::context::calls::PublicCall::<17, 8, ()>::new(self.target_contract, selector, "_remove_liquidity", serialized_params) } - pub fn remove_liquidity(self, liquidity: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<16, 4, ()> { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn _swap_exact_tokens_for_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in: u128, amount_out_min: u128, token_out_partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<29, 5, ()> { + let mut serialized_params: [Field; 5] = [0_Field; 5]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(liquidity); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token_in); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_min); + let serialized_member: [Field; 1] = ::serialize(token_out); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(amount_in); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_min); + let serialized_member: [Field; 1] = ::serialize(amount_out_min); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1221183968_Field); - aztec::context::calls::PrivateCall::<16, 4, ()>::new(self.target_contract, selector, "remove_liquidity", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1918288610_Field); + aztec::context::calls::PublicCall::<29, 5, ()>::new(self.target_contract, selector, "_swap_exact_tokens_for_tokens", serialized_params) } - pub fn swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_out: u128, amount_in_max: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<28, 5, ()> { - let mut serialized_params: [Field; 5] = [0_Field; 5]; + pub fn _swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in_max: u128, amount_out: u128, change_token_in_partial_note: PartialUintNote, token_out_partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<29, 6, ()> { + let mut serialized_params: [Field; 6] = [0_Field; 6]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(token_in); let serialized_member_len: u32 = ::N; @@ -728,26 +722,32 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_out); + let serialized_member: [Field; 1] = ::serialize(amount_in_max); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_in_max); + let serialized_member: [Field; 1] = ::serialize(amount_out); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(change_token_in_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2620890703_Field); - aztec::context::calls::PrivateCall::<28, 5, ()>::new(self.target_contract, selector, "swap_tokens_for_exact_tokens", serialized_params) + let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3156435103_Field); + aztec::context::calls::PublicCall::<29, 6, ()>::new(self.target_contract, selector, "_swap_tokens_for_exact_tokens", serialized_params) } pub fn get_amount_out_for_exact_in(self, balance_in: u128, balance_out: u128, amount_in: u128) -> aztec::context::calls::UtilityCall<27, 3, u128> { @@ -850,141 +850,123 @@ pub contract AMM { pub context: Context, } - impl CallSelf { - pub fn _remove_liquidity(self, config: Config, liquidity: u128, token0_partial_note: PartialUintNote, token1_partial_note: PartialUintNote, amount0_min: u128, amount1_min: u128) { - let mut serialized_params: [Field; 8] = [0_Field; 8]; + impl CallSelf<&mut aztec::context::PrivateContext> { + pub fn add_liquidity(self, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 5] = [0_Field; 5]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 3] = >::serialize(config); - let serialized_member_len: u32 = >::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity); + let serialized_member: [Field; 1] = ::serialize(amount0_max); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token0_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount1_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token1_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount0_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_min); + let serialized_member: [Field; 1] = ::serialize(amount1_min); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_min); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2270402407_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<17, 8, ()>::new(self.address, selector, "_remove_liquidity", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3734879327_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn _add_liquidity(self, config: Config, refund_token0_partial_note: PartialUintNote, refund_token1_partial_note: PartialUintNote, liquidity_partial_note: PartialUintNote, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128) { - let mut serialized_params: [Field; 10] = [0_Field; 10]; + pub fn remove_liquidity(self, liquidity: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 3] = >::serialize(config); - let serialized_member_len: u32 = >::N; + let serialized_member: [Field; 1] = ::serialize(liquidity); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(refund_token0_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount0_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(refund_token1_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount1_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_max); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_max); - let serialized_member_len: u32 = ::N; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1221183968_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() + } + + pub fn swap_exact_tokens_for_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in: u128, amount_out_min: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 5] = [0_Field; 5]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 1] = ::serialize(token_in); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_min); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token_out); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_min); + let serialized_member: [Field; 1] = ::serialize(amount_in); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1909103841_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<14, 10, ()>::new(self.address, selector, "_add_liquidity", serialized_params).call(self.context) - } - } - - pub fn constructor(self, token0: AztecAddress, token1: AztecAddress, liquidity_token: AztecAddress) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(token0); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token1); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount_out_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity_token); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2287085075_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<11, 3, ()>::new(self.address, selector, "constructor", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2960373586_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn _swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in_max: u128, amount_out: u128, change_token_in_partial_note: PartialUintNote, token_out_partial_note: PartialUintNote) { - let mut serialized_params: [Field; 6] = [0_Field; 6]; + pub fn swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_out: u128, amount_in_max: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 5] = [0_Field; 5]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(token_in); let serialized_member_len: u32 = ::N; @@ -998,83 +980,95 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_in_max); + let serialized_member: [Field; 1] = ::serialize(amount_out); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_out); + let serialized_member: [Field; 1] = ::serialize(amount_in_max); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(change_token_in_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); - let serialized_member_len: u32 = ::N; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2620890703_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() + } + } + + impl CallSelf { + pub fn constructor(self, token0: AztecAddress, token1: AztecAddress, liquidity_token: AztecAddress) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 1] = ::serialize(token0); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3156435103_Field); + let serialized_member: [Field; 1] = ::serialize(token1); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(liquidity_token); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2287085075_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<29, 6, ()>::new(self.address, selector, "_swap_tokens_for_exact_tokens", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<11, 3, ()>::new(self.address, selector, "constructor", serialized_params).call(self.context) } } - pub fn _swap_exact_tokens_for_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in: u128, amount_out_min: u128, token_out_partial_note: PartialUintNote) { - let mut serialized_params: [Field; 5] = [0_Field; 5]; + pub fn _add_liquidity(self, config: Config, refund_token0_partial_note: PartialUintNote, refund_token1_partial_note: PartialUintNote, liquidity_partial_note: PartialUintNote, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128) { + let mut serialized_params: [Field; 10] = [0_Field; 10]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(token_in); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 3] = >::serialize(config); + let serialized_member_len: u32 = >::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(refund_token0_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_in); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(refund_token1_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_out_min); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(liquidity_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount0_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1918288610_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<29, 5, ()>::new(self.address, selector, "_swap_exact_tokens_for_tokens", serialized_params).call(self.context) - } - } - } - - impl CallSelf<&mut aztec::context::PrivateContext> { - pub fn remove_liquidity(self, liquidity: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 4] = [0_Field; 4]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(liquidity); + let serialized_member: [Field; 1] = ::serialize(amount1_max); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1092,60 +1086,60 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1909103841_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<14, 10, ()>::new(self.address, selector, "_add_liquidity", serialized_params).call(self.context) + } + } + + pub fn _remove_liquidity(self, config: Config, liquidity: u128, token0_partial_note: PartialUintNote, token1_partial_note: PartialUintNote, amount0_min: u128, amount1_min: u128) { + let mut serialized_params: [Field; 8] = [0_Field; 8]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 3] = >::serialize(config); + let serialized_member_len: u32 = >::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1221183968_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() - } - - pub fn add_liquidity(self, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 5] = [0_Field; 5]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(amount0_max); + let serialized_member: [Field; 1] = ::serialize(liquidity); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_max); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token0_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_min); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token1_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_min); + let serialized_member: [Field; 1] = ::serialize(amount0_min); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount1_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3734879327_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2270402407_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<17, 8, ()>::new(self.address, selector, "_remove_liquidity", serialized_params).call(self.context) + } } - pub fn swap_exact_tokens_for_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in: u128, amount_out_min: u128, authwit_nonce: Field) { + pub fn _swap_exact_tokens_for_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in: u128, amount_out_min: u128, token_out_partial_note: PartialUintNote) { let mut serialized_params: [Field; 5] = [0_Field; 5]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(token_in); @@ -1172,21 +1166,21 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2960373586_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1918288610_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<29, 5, ()>::new(self.address, selector, "_swap_exact_tokens_for_tokens", serialized_params).call(self.context) + } } - pub fn swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_out: u128, amount_in_max: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 5] = [0_Field; 5]; + pub fn _swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in_max: u128, amount_out: u128, change_token_in_partial_note: PartialUintNote, token_out_partial_note: PartialUintNote) { + let mut serialized_params: [Field; 6] = [0_Field; 6]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(token_in); let serialized_member_len: u32 = ::N; @@ -1200,29 +1194,35 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_out); + let serialized_member: [Field; 1] = ::serialize(amount_in_max); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_in_max); + let serialized_member: [Field; 1] = ::serialize(amount_out); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(change_token_in_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2620890703_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3156435103_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<29, 6, ()>::new(self.address, selector, "_swap_tokens_for_exact_tokens", serialized_params).call(self.context) + } } } @@ -1237,100 +1237,94 @@ pub contract AMM { } impl EnqueueSelf<&mut aztec::context::PrivateContext> { - pub fn _remove_liquidity(self, config: Config, liquidity: u128, token0_partial_note: PartialUintNote, token1_partial_note: PartialUintNote, amount0_min: u128, amount1_min: u128) { - let mut serialized_params: [Field; 8] = [0_Field; 8]; + pub fn constructor(self, token0: AztecAddress, token1: AztecAddress, liquidity_token: AztecAddress) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 3] = >::serialize(config); - let serialized_member_len: u32 = >::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token0); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token0_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(token1); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token1_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(liquidity_token); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_min); - let serialized_member_len: u32 = ::N; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2287085075_Field); + let calldata: [Field; 1 + 3] = [::to_field(selector)].concat(serialized_params); + let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); + aztec::oracle::execution_cache::store(calldata, calldata_hash); + self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); + } + + pub fn _add_liquidity(self, config: Config, refund_token0_partial_note: PartialUintNote, refund_token1_partial_note: PartialUintNote, liquidity_partial_note: PartialUintNote, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128) { + let mut serialized_params: [Field; 10] = [0_Field; 10]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 3] = >::serialize(config); + let serialized_member_len: u32 = >::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_min); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(refund_token0_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2270402407_Field); - let calldata: [Field; 1 + 8] = [::to_field(selector)].concat(serialized_params); - let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); - aztec::oracle::execution_cache::store(calldata, calldata_hash); - self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); - } - - pub fn _swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in_max: u128, amount_out: u128, change_token_in_partial_note: PartialUintNote, token_out_partial_note: PartialUintNote) { - let mut serialized_params: [Field; 6] = [0_Field; 6]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(token_in); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(refund_token1_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(liquidity_partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_in_max); + let serialized_member: [Field; 1] = ::serialize(amount0_max); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount_out); + let serialized_member: [Field; 1] = ::serialize(amount1_max); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(change_token_in_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount0_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount1_min); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3156435103_Field); - let calldata: [Field; 1 + 6] = [::to_field(selector)].concat(serialized_params); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1909103841_Field); + let calldata: [Field; 1 + 10] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn _add_liquidity(self, config: Config, refund_token0_partial_note: PartialUintNote, refund_token1_partial_note: PartialUintNote, liquidity_partial_note: PartialUintNote, amount0_max: u128, amount1_max: u128, amount0_min: u128, amount1_min: u128) { - let mut serialized_params: [Field; 10] = [0_Field; 10]; + pub fn _remove_liquidity(self, config: Config, liquidity: u128, token0_partial_note: PartialUintNote, token1_partial_note: PartialUintNote, amount0_min: u128, amount1_min: u128) { + let mut serialized_params: [Field; 8] = [0_Field; 8]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 3] = >::serialize(config); let serialized_member_len: u32 = >::N; @@ -1338,36 +1332,24 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(refund_token0_partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(liquidity); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(refund_token1_partial_note); + let serialized_member: [Field; 1] = ::serialize(token0_partial_note); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity_partial_note); + let serialized_member: [Field; 1] = ::serialize(token1_partial_note); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount0_max); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount1_max); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount0_min); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { @@ -1380,8 +1362,8 @@ pub contract AMM { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1909103841_Field); - let calldata: [Field; 1 + 10] = [::to_field(selector)].concat(serialized_params); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2270402407_Field); + let calldata: [Field; 1 + 8] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); @@ -1427,29 +1409,47 @@ pub contract AMM { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn constructor(self, token0: AztecAddress, token1: AztecAddress, liquidity_token: AztecAddress) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn _swap_tokens_for_exact_tokens(self, token_in: AztecAddress, token_out: AztecAddress, amount_in_max: u128, amount_out: u128, change_token_in_partial_note: PartialUintNote, token_out_partial_note: PartialUintNote) { + let mut serialized_params: [Field; 6] = [0_Field; 6]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(token0); + let serialized_member: [Field; 1] = ::serialize(token_in); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(token1); + let serialized_member: [Field; 1] = ::serialize(token_out); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(liquidity_token); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount_in_max); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2287085075_Field); - let calldata: [Field; 1 + 3] = [::to_field(selector)].concat(serialized_params); + let serialized_member: [Field; 1] = ::serialize(amount_out); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(change_token_in_partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(token_out_partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3156435103_Field); + let calldata: [Field; 1 + 6] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); @@ -1531,7 +1531,7 @@ pub contract AMM { let arg1: AztecAddress = ::stream_deserialize(&mut reader); let arg2: AztecAddress = ::stream_deserialize(&mut reader); __aztec_nr_internals__constructor(arg0, arg1, arg2); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1909103841_Field { let input_calldata: [Field; 10] = aztec::oracle::avm::calldata_copy(1_u32, ((((((>::N + ::N) + ::N) + ::N) + ::N) + ::N) + ::N) + ::N); @@ -1545,7 +1545,7 @@ pub contract AMM { let arg6: u128 = ::stream_deserialize(&mut reader); let arg7: u128 = ::stream_deserialize(&mut reader); __aztec_nr_internals___add_liquidity(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2270402407_Field { let input_calldata: [Field; 8] = aztec::oracle::avm::calldata_copy(1_u32, ((((>::N + ::N) + ::N) + ::N) + ::N) + ::N); @@ -1557,7 +1557,7 @@ pub contract AMM { let arg4: u128 = ::stream_deserialize(&mut reader); let arg5: u128 = ::stream_deserialize(&mut reader); __aztec_nr_internals___remove_liquidity(arg0, arg1, arg2, arg3, arg4, arg5); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1918288610_Field { let input_calldata: [Field; 5] = aztec::oracle::avm::calldata_copy(1_u32, (((::N + ::N) + ::N) + ::N) + ::N); @@ -1568,7 +1568,7 @@ pub contract AMM { let arg3: u128 = ::stream_deserialize(&mut reader); let arg4: PartialUintNote = ::stream_deserialize(&mut reader); __aztec_nr_internals___swap_exact_tokens_for_tokens(arg0, arg1, arg2, arg3, arg4); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 3156435103_Field { let input_calldata: [Field; 6] = aztec::oracle::avm::calldata_copy(1_u32, ((((::N + ::N) + ::N) + ::N) + ::N) + ::N); @@ -1580,7 +1580,7 @@ pub contract AMM { let arg4: PartialUintNote = ::stream_deserialize(&mut reader); let arg5: PartialUintNote = ::stream_deserialize(&mut reader); __aztec_nr_internals___swap_tokens_for_exact_tokens(arg0, arg1, arg2, arg3, arg4, arg5); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; panic(f"Unknown selector {selector}") } diff --git a/noir-projects/contract-snapshots/tests/snapshots/expand/avm_gadgets_test_contract/snapshots__expanded.snap b/noir-projects/contract-snapshots/tests/snapshots/expand/avm_gadgets_test_contract/snapshots__expanded.snap index 64e7f25150e8..5a0656779784 100644 --- a/noir-projects/contract-snapshots/tests/snapshots/expand/avm_gadgets_test_contract/snapshots__expanded.snap +++ b/noir-projects/contract-snapshots/tests/snapshots/expand/avm_gadgets_test_contract/snapshots__expanded.snap @@ -160,52 +160,28 @@ contract AvmGadgetsTest { Self { target_contract: aztec::protocol::address::AztecAddress::zero()} } - pub fn sha256_hash_1536(self, data: [u8; 1536]) -> aztec::context::calls::PublicCall<16, 1536, [u8; 32]> { - let serialized_params: [Field; 1536] = <[u8; 1536] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(373006257_Field); - aztec::context::calls::PublicCall::<16, 1536, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_1536", serialized_params) - } - - pub fn pedersen_hash_with_index(self, data: [Field; 10]) -> aztec::context::calls::PublicCall<24, 10, Field> { - let serialized_params: [Field; 10] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3265405934_Field); - aztec::context::calls::PublicCall::<24, 10, Field>::new(self.target_contract, selector, "pedersen_hash_with_index", serialized_params) - } - pub fn keccak_hash(self, data: [u8; 10]) -> aztec::context::calls::PublicCall<11, 10, [u8; 32]> { let serialized_params: [Field; 10] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1352369823_Field); aztec::context::calls::PublicCall::<11, 10, [u8; 32]>::new(self.target_contract, selector, "keccak_hash", serialized_params) } - pub fn sha256_hash_511(self, data: [u8; 511]) -> aztec::context::calls::PublicCall<15, 511, [u8; 32]> { - let serialized_params: [Field; 511] = <[u8; 511] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(797967809_Field); - aztec::context::calls::PublicCall::<15, 511, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_511", serialized_params) - } - - pub fn sha256_hash_100(self, data: [u8; 100]) -> aztec::context::calls::PublicCall<15, 100, [u8; 32]> { - let serialized_params: [Field; 100] = <[u8; 100] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2074027672_Field); - aztec::context::calls::PublicCall::<15, 100, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_100", serialized_params) - } - - pub fn sha256_hash_80(self, data: [u8; 80]) -> aztec::context::calls::PublicCall<14, 80, [u8; 32]> { - let serialized_params: [Field; 80] = <[u8; 80] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4268069756_Field); - aztec::context::calls::PublicCall::<14, 80, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_80", serialized_params) + pub fn keccak_hash_300(self, data: [u8; 300]) -> aztec::context::calls::PublicCall<15, 300, [u8; 32]> { + let serialized_params: [Field; 300] = <[u8; 300] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3065624740_Field); + aztec::context::calls::PublicCall::<15, 300, [u8; 32]>::new(self.target_contract, selector, "keccak_hash_300", serialized_params) } - pub fn pedersen_hash(self, data: [Field; 10]) -> aztec::context::calls::PublicCall<13, 10, Field> { - let serialized_params: [Field; 10] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2669406607_Field); - aztec::context::calls::PublicCall::<13, 10, Field>::new(self.target_contract, selector, "pedersen_hash", serialized_params) + pub fn keccak_hash_1400(self, data: [u8; 1400]) -> aztec::context::calls::PublicCall<16, 1400, [u8; 32]> { + let serialized_params: [Field; 1400] = <[u8; 1400] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(372001522_Field); + aztec::context::calls::PublicCall::<16, 1400, [u8; 32]>::new(self.target_contract, selector, "keccak_hash_1400", serialized_params) } - pub fn sha256_hash_20(self, data: [u8; 20]) -> aztec::context::calls::PublicCall<14, 20, [u8; 32]> { - let serialized_params: [Field; 20] = <[u8; 20] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2926274626_Field); - aztec::context::calls::PublicCall::<14, 20, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_20", serialized_params) + pub fn keccak_f1600(self, data: [u64; 25]) -> aztec::context::calls::PublicCall<12, 25, [u64; 25]> { + let serialized_params: [Field; 25] = <[u64; 25] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1867977279_Field); + aztec::context::calls::PublicCall::<12, 25, [u64; 25]>::new(self.target_contract, selector, "keccak_f1600", serialized_params) } pub fn poseidon2_hash(self, data: [Field; 10]) -> aztec::context::calls::PublicCall<14, 10, Field> { @@ -214,16 +190,22 @@ contract AvmGadgetsTest { aztec::context::calls::PublicCall::<14, 10, Field>::new(self.target_contract, selector, "poseidon2_hash", serialized_params) } - pub fn sha256_hash_512(self, data: [u8; 512]) -> aztec::context::calls::PublicCall<15, 512, [u8; 32]> { - let serialized_params: [Field; 512] = <[u8; 512] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2560938307_Field); - aztec::context::calls::PublicCall::<15, 512, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_512", serialized_params) + pub fn poseidon2_hash_1000fields(self, data: [Field; 1000]) -> aztec::context::calls::PublicCall<25, 1000, Field> { + let serialized_params: [Field; 1000] = <[Field; 1000] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(278602445_Field); + aztec::context::calls::PublicCall::<25, 1000, Field>::new(self.target_contract, selector, "poseidon2_hash_1000fields", serialized_params) } - pub fn keccak_f1600(self, data: [u64; 25]) -> aztec::context::calls::PublicCall<12, 25, [u64; 25]> { - let serialized_params: [Field; 25] = <[u64; 25] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1867977279_Field); - aztec::context::calls::PublicCall::<12, 25, [u64; 25]>::new(self.target_contract, selector, "keccak_f1600", serialized_params) + pub fn sha256_hash_10(self, data: [u8; 10]) -> aztec::context::calls::PublicCall<14, 10, [u8; 32]> { + let serialized_params: [Field; 10] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3545543018_Field); + aztec::context::calls::PublicCall::<14, 10, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_10", serialized_params) + } + + pub fn sha256_hash_20(self, data: [u8; 20]) -> aztec::context::calls::PublicCall<14, 20, [u8; 32]> { + let serialized_params: [Field; 20] = <[u8; 20] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2926274626_Field); + aztec::context::calls::PublicCall::<14, 20, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_20", serialized_params) } pub fn sha256_hash_30(self, data: [u8; 30]) -> aztec::context::calls::PublicCall<14, 30, [u8; 32]> { @@ -232,6 +214,12 @@ contract AvmGadgetsTest { aztec::context::calls::PublicCall::<14, 30, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_30", serialized_params) } + pub fn sha256_hash_40(self, data: [u8; 40]) -> aztec::context::calls::PublicCall<14, 40, [u8; 32]> { + let serialized_params: [Field; 40] = <[u8; 40] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(900925045_Field); + aztec::context::calls::PublicCall::<14, 40, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_40", serialized_params) + } + pub fn sha256_hash_50(self, data: [u8; 50]) -> aztec::context::calls::PublicCall<14, 50, [u8; 32]> { let serialized_params: [Field; 50] = <[u8; 50] as aztec::protocol::traits::Serialize>::serialize(data); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(256881939_Field); @@ -244,40 +232,28 @@ contract AvmGadgetsTest { aztec::context::calls::PublicCall::<14, 60, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_60", serialized_params) } - pub fn poseidon2_hash_1000fields(self, data: [Field; 1000]) -> aztec::context::calls::PublicCall<25, 1000, Field> { - let serialized_params: [Field; 1000] = <[Field; 1000] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(278602445_Field); - aztec::context::calls::PublicCall::<25, 1000, Field>::new(self.target_contract, selector, "poseidon2_hash_1000fields", serialized_params) - } - pub fn sha256_hash_70(self, data: [u8; 70]) -> aztec::context::calls::PublicCall<14, 70, [u8; 32]> { let serialized_params: [Field; 70] = <[u8; 70] as aztec::protocol::traits::Serialize>::serialize(data); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2200074453_Field); aztec::context::calls::PublicCall::<14, 70, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_70", serialized_params) } + pub fn sha256_hash_80(self, data: [u8; 80]) -> aztec::context::calls::PublicCall<14, 80, [u8; 32]> { + let serialized_params: [Field; 80] = <[u8; 80] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4268069756_Field); + aztec::context::calls::PublicCall::<14, 80, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_80", serialized_params) + } + pub fn sha256_hash_90(self, data: [u8; 90]) -> aztec::context::calls::PublicCall<14, 90, [u8; 32]> { let serialized_params: [Field; 90] = <[u8; 90] as aztec::protocol::traits::Serialize>::serialize(data); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(799349905_Field); aztec::context::calls::PublicCall::<14, 90, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_90", serialized_params) } - pub fn sha256_hash_40(self, data: [u8; 40]) -> aztec::context::calls::PublicCall<14, 40, [u8; 32]> { - let serialized_params: [Field; 40] = <[u8; 40] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(900925045_Field); - aztec::context::calls::PublicCall::<14, 40, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_40", serialized_params) - } - - pub fn sha256_hash_10(self, data: [u8; 10]) -> aztec::context::calls::PublicCall<14, 10, [u8; 32]> { - let serialized_params: [Field; 10] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3545543018_Field); - aztec::context::calls::PublicCall::<14, 10, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_10", serialized_params) - } - - pub fn sha256_hash_1024(self, data: [u8; 1024]) -> aztec::context::calls::PublicCall<16, 1024, [u8; 32]> { - let serialized_params: [Field; 1024] = <[u8; 1024] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2235915052_Field); - aztec::context::calls::PublicCall::<16, 1024, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_1024", serialized_params) + pub fn sha256_hash_100(self, data: [u8; 100]) -> aztec::context::calls::PublicCall<15, 100, [u8; 32]> { + let serialized_params: [Field; 100] = <[u8; 100] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2074027672_Field); + aztec::context::calls::PublicCall::<15, 100, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_100", serialized_params) } pub fn sha256_hash_255(self, data: [u8; 255]) -> aztec::context::calls::PublicCall<15, 255, [u8; 32]> { @@ -292,16 +268,40 @@ contract AvmGadgetsTest { aztec::context::calls::PublicCall::<15, 256, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_256", serialized_params) } - pub fn keccak_hash_1400(self, data: [u8; 1400]) -> aztec::context::calls::PublicCall<16, 1400, [u8; 32]> { - let serialized_params: [Field; 1400] = <[u8; 1400] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(372001522_Field); - aztec::context::calls::PublicCall::<16, 1400, [u8; 32]>::new(self.target_contract, selector, "keccak_hash_1400", serialized_params) + pub fn sha256_hash_511(self, data: [u8; 511]) -> aztec::context::calls::PublicCall<15, 511, [u8; 32]> { + let serialized_params: [Field; 511] = <[u8; 511] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(797967809_Field); + aztec::context::calls::PublicCall::<15, 511, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_511", serialized_params) } - pub fn keccak_hash_300(self, data: [u8; 300]) -> aztec::context::calls::PublicCall<15, 300, [u8; 32]> { - let serialized_params: [Field; 300] = <[u8; 300] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3065624740_Field); - aztec::context::calls::PublicCall::<15, 300, [u8; 32]>::new(self.target_contract, selector, "keccak_hash_300", serialized_params) + pub fn sha256_hash_512(self, data: [u8; 512]) -> aztec::context::calls::PublicCall<15, 512, [u8; 32]> { + let serialized_params: [Field; 512] = <[u8; 512] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2560938307_Field); + aztec::context::calls::PublicCall::<15, 512, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_512", serialized_params) + } + + pub fn sha256_hash_1024(self, data: [u8; 1024]) -> aztec::context::calls::PublicCall<16, 1024, [u8; 32]> { + let serialized_params: [Field; 1024] = <[u8; 1024] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2235915052_Field); + aztec::context::calls::PublicCall::<16, 1024, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_1024", serialized_params) + } + + pub fn sha256_hash_1536(self, data: [u8; 1536]) -> aztec::context::calls::PublicCall<16, 1536, [u8; 32]> { + let serialized_params: [Field; 1536] = <[u8; 1536] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(373006257_Field); + aztec::context::calls::PublicCall::<16, 1536, [u8; 32]>::new(self.target_contract, selector, "sha256_hash_1536", serialized_params) + } + + pub fn pedersen_hash(self, data: [Field; 10]) -> aztec::context::calls::PublicCall<13, 10, Field> { + let serialized_params: [Field; 10] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2669406607_Field); + aztec::context::calls::PublicCall::<13, 10, Field>::new(self.target_contract, selector, "pedersen_hash", serialized_params) + } + + pub fn pedersen_hash_with_index(self, data: [Field; 10]) -> aztec::context::calls::PublicCall<24, 10, Field> { + let serialized_params: [Field; 10] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3265405934_Field); + aztec::context::calls::PublicCall::<24, 10, Field>::new(self.target_contract, selector, "pedersen_hash_with_index", serialized_params) } pub fn offchain_receive(self, messages: BoundedVec) -> aztec::context::calls::UtilityCall<16, 321, ()> { @@ -350,24 +350,6 @@ contract AvmGadgetsTest { } impl CallSelf { - pub fn sha256_hash_1536(self, data: [u8; 1536]) -> [u8; 32] { - let serialized_params: [Field; 1536 * 1] = <[u8; 1536] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(373006257_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<16, 1536 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_1536", serialized_params).call(self.context) - } - } - - pub fn pedersen_hash_with_index(self, data: [Field; 10]) -> Field { - let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3265405934_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<24, 10 * 1, Field>::new(self.address, selector, "pedersen_hash_with_index", serialized_params).call(self.context) - } - } - pub fn keccak_hash(self, data: [u8; 10]) -> [u8; 32] { let serialized_params: [Field; 10 * 1] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1352369823_Field); @@ -377,84 +359,84 @@ contract AvmGadgetsTest { } } - pub fn sha256_hash_511(self, data: [u8; 511]) -> [u8; 32] { - let serialized_params: [Field; 511 * 1] = <[u8; 511] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(797967809_Field); + pub fn keccak_hash_300(self, data: [u8; 300]) -> [u8; 32] { + let serialized_params: [Field; 300 * 1] = <[u8; 300] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3065624740_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<15, 511 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_511", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<15, 300 * 1, [u8; 32]>::new(self.address, selector, "keccak_hash_300", serialized_params).call(self.context) } } - pub fn sha256_hash_100(self, data: [u8; 100]) -> [u8; 32] { - let serialized_params: [Field; 100 * 1] = <[u8; 100] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2074027672_Field); + pub fn keccak_hash_1400(self, data: [u8; 1400]) -> [u8; 32] { + let serialized_params: [Field; 1400 * 1] = <[u8; 1400] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(372001522_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<15, 100 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_100", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<16, 1400 * 1, [u8; 32]>::new(self.address, selector, "keccak_hash_1400", serialized_params).call(self.context) } } - pub fn sha256_hash_80(self, data: [u8; 80]) -> [u8; 32] { - let serialized_params: [Field; 80 * 1] = <[u8; 80] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4268069756_Field); + pub fn keccak_f1600(self, data: [u64; 25]) -> [u64; 25] { + let serialized_params: [Field; 25 * 1] = <[u64; 25] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1867977279_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<14, 80 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_80", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<12, 25 * 1, [u64; 25]>::new(self.address, selector, "keccak_f1600", serialized_params).call(self.context) } } - pub fn pedersen_hash(self, data: [Field; 10]) -> Field { + pub fn poseidon2_hash(self, data: [Field; 10]) -> Field { let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2669406607_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3724082008_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<13, 10 * 1, Field>::new(self.address, selector, "pedersen_hash", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<14, 10 * 1, Field>::new(self.address, selector, "poseidon2_hash", serialized_params).call(self.context) } } - pub fn sha256_hash_20(self, data: [u8; 20]) -> [u8; 32] { - let serialized_params: [Field; 20 * 1] = <[u8; 20] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2926274626_Field); + pub fn poseidon2_hash_1000fields(self, data: [Field; 1000]) -> Field { + let serialized_params: [Field; 1000 * 1] = <[Field; 1000] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(278602445_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<14, 20 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_20", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<25, 1000 * 1, Field>::new(self.address, selector, "poseidon2_hash_1000fields", serialized_params).call(self.context) } } - pub fn poseidon2_hash(self, data: [Field; 10]) -> Field { - let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3724082008_Field); + pub fn sha256_hash_10(self, data: [u8; 10]) -> [u8; 32] { + let serialized_params: [Field; 10 * 1] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3545543018_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<14, 10 * 1, Field>::new(self.address, selector, "poseidon2_hash", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<14, 10 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_10", serialized_params).call(self.context) } } - pub fn sha256_hash_512(self, data: [u8; 512]) -> [u8; 32] { - let serialized_params: [Field; 512 * 1] = <[u8; 512] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2560938307_Field); + pub fn sha256_hash_20(self, data: [u8; 20]) -> [u8; 32] { + let serialized_params: [Field; 20 * 1] = <[u8; 20] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2926274626_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<15, 512 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_512", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<14, 20 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_20", serialized_params).call(self.context) } } - pub fn keccak_f1600(self, data: [u64; 25]) -> [u64; 25] { - let serialized_params: [Field; 25 * 1] = <[u64; 25] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1867977279_Field); + pub fn sha256_hash_30(self, data: [u8; 30]) -> [u8; 32] { + let serialized_params: [Field; 30 * 1] = <[u8; 30] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3609677267_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<12, 25 * 1, [u64; 25]>::new(self.address, selector, "keccak_f1600", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<14, 30 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_30", serialized_params).call(self.context) } } - pub fn sha256_hash_30(self, data: [u8; 30]) -> [u8; 32] { - let serialized_params: [Field; 30 * 1] = <[u8; 30] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3609677267_Field); + pub fn sha256_hash_40(self, data: [u8; 40]) -> [u8; 32] { + let serialized_params: [Field; 40 * 1] = <[u8; 40] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(900925045_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<14, 30 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_30", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<14, 40 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_40", serialized_params).call(self.context) } } @@ -476,21 +458,21 @@ contract AvmGadgetsTest { } } - pub fn poseidon2_hash_1000fields(self, data: [Field; 1000]) -> Field { - let serialized_params: [Field; 1000 * 1] = <[Field; 1000] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(278602445_Field); + pub fn sha256_hash_70(self, data: [u8; 70]) -> [u8; 32] { + let serialized_params: [Field; 70 * 1] = <[u8; 70] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2200074453_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<25, 1000 * 1, Field>::new(self.address, selector, "poseidon2_hash_1000fields", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<14, 70 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_70", serialized_params).call(self.context) } } - pub fn sha256_hash_70(self, data: [u8; 70]) -> [u8; 32] { - let serialized_params: [Field; 70 * 1] = <[u8; 70] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2200074453_Field); + pub fn sha256_hash_80(self, data: [u8; 80]) -> [u8; 32] { + let serialized_params: [Field; 80 * 1] = <[u8; 80] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4268069756_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<14, 70 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_70", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<14, 80 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_80", serialized_params).call(self.context) } } @@ -503,66 +485,84 @@ contract AvmGadgetsTest { } } - pub fn sha256_hash_40(self, data: [u8; 40]) -> [u8; 32] { - let serialized_params: [Field; 40 * 1] = <[u8; 40] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(900925045_Field); + pub fn sha256_hash_100(self, data: [u8; 100]) -> [u8; 32] { + let serialized_params: [Field; 100 * 1] = <[u8; 100] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2074027672_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<14, 40 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_40", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<15, 100 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_100", serialized_params).call(self.context) } } - pub fn sha256_hash_10(self, data: [u8; 10]) -> [u8; 32] { - let serialized_params: [Field; 10 * 1] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3545543018_Field); + pub fn sha256_hash_255(self, data: [u8; 255]) -> [u8; 32] { + let serialized_params: [Field; 255 * 1] = <[u8; 255] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3548859530_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<14, 10 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_10", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<15, 255 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_255", serialized_params).call(self.context) } } - pub fn sha256_hash_1024(self, data: [u8; 1024]) -> [u8; 32] { - let serialized_params: [Field; 1024 * 1] = <[u8; 1024] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2235915052_Field); + pub fn sha256_hash_256(self, data: [u8; 256]) -> [u8; 32] { + let serialized_params: [Field; 256 * 1] = <[u8; 256] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3409224101_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<16, 1024 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_1024", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<15, 256 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_256", serialized_params).call(self.context) } } - pub fn sha256_hash_255(self, data: [u8; 255]) -> [u8; 32] { - let serialized_params: [Field; 255 * 1] = <[u8; 255] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3548859530_Field); + pub fn sha256_hash_511(self, data: [u8; 511]) -> [u8; 32] { + let serialized_params: [Field; 511 * 1] = <[u8; 511] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(797967809_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<15, 255 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_255", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<15, 511 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_511", serialized_params).call(self.context) } } - pub fn sha256_hash_256(self, data: [u8; 256]) -> [u8; 32] { - let serialized_params: [Field; 256 * 1] = <[u8; 256] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3409224101_Field); + pub fn sha256_hash_512(self, data: [u8; 512]) -> [u8; 32] { + let serialized_params: [Field; 512 * 1] = <[u8; 512] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2560938307_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<15, 256 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_256", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<15, 512 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_512", serialized_params).call(self.context) } } - pub fn keccak_hash_1400(self, data: [u8; 1400]) -> [u8; 32] { - let serialized_params: [Field; 1400 * 1] = <[u8; 1400] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(372001522_Field); + pub fn sha256_hash_1024(self, data: [u8; 1024]) -> [u8; 32] { + let serialized_params: [Field; 1024 * 1] = <[u8; 1024] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2235915052_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<16, 1400 * 1, [u8; 32]>::new(self.address, selector, "keccak_hash_1400", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<16, 1024 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_1024", serialized_params).call(self.context) } } - pub fn keccak_hash_300(self, data: [u8; 300]) -> [u8; 32] { - let serialized_params: [Field; 300 * 1] = <[u8; 300] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3065624740_Field); + pub fn sha256_hash_1536(self, data: [u8; 1536]) -> [u8; 32] { + let serialized_params: [Field; 1536 * 1] = <[u8; 1536] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(373006257_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<15, 300 * 1, [u8; 32]>::new(self.address, selector, "keccak_hash_300", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<16, 1536 * 1, [u8; 32]>::new(self.address, selector, "sha256_hash_1536", serialized_params).call(self.context) + } + } + + pub fn pedersen_hash(self, data: [Field; 10]) -> Field { + let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2669406607_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<13, 10 * 1, Field>::new(self.address, selector, "pedersen_hash", serialized_params).call(self.context) + } + } + + pub fn pedersen_hash_with_index(self, data: [Field; 10]) -> Field { + let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3265405934_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<24, 10 * 1, Field>::new(self.address, selector, "pedersen_hash_with_index", serialized_params).call(self.context) } } } @@ -578,24 +578,6 @@ contract AvmGadgetsTest { } impl EnqueueSelf<&mut aztec::context::PrivateContext> { - pub fn sha256_hash_1536(self, data: [u8; 1536]) { - let serialized_params: [Field; 1536 * 1] = <[u8; 1536] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(373006257_Field); - let calldata: [Field; 1 + (1536 * 1)] = [::to_field(selector)].concat(serialized_params); - let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); - aztec::oracle::execution_cache::store(calldata, calldata_hash); - self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); - } - - pub fn pedersen_hash_with_index(self, data: [Field; 10]) { - let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3265405934_Field); - let calldata: [Field; 1 + (10 * 1)] = [::to_field(selector)].concat(serialized_params); - let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); - aztec::oracle::execution_cache::store(calldata, calldata_hash); - self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); - } - pub fn keccak_hash(self, data: [u8; 10]) { let serialized_params: [Field; 10 * 1] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1352369823_Field); @@ -605,82 +587,82 @@ contract AvmGadgetsTest { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_511(self, data: [u8; 511]) { - let serialized_params: [Field; 511 * 1] = <[u8; 511] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(797967809_Field); - let calldata: [Field; 1 + (511 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn keccak_hash_300(self, data: [u8; 300]) { + let serialized_params: [Field; 300 * 1] = <[u8; 300] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3065624740_Field); + let calldata: [Field; 1 + (300 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_100(self, data: [u8; 100]) { - let serialized_params: [Field; 100 * 1] = <[u8; 100] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2074027672_Field); - let calldata: [Field; 1 + (100 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn keccak_hash_1400(self, data: [u8; 1400]) { + let serialized_params: [Field; 1400 * 1] = <[u8; 1400] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(372001522_Field); + let calldata: [Field; 1 + (1400 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_80(self, data: [u8; 80]) { - let serialized_params: [Field; 80 * 1] = <[u8; 80] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4268069756_Field); - let calldata: [Field; 1 + (80 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn keccak_f1600(self, data: [u64; 25]) { + let serialized_params: [Field; 25 * 1] = <[u64; 25] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1867977279_Field); + let calldata: [Field; 1 + (25 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn pedersen_hash(self, data: [Field; 10]) { + pub fn poseidon2_hash(self, data: [Field; 10]) { let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2669406607_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3724082008_Field); let calldata: [Field; 1 + (10 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_20(self, data: [u8; 20]) { - let serialized_params: [Field; 20 * 1] = <[u8; 20] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2926274626_Field); - let calldata: [Field; 1 + (20 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn poseidon2_hash_1000fields(self, data: [Field; 1000]) { + let serialized_params: [Field; 1000 * 1] = <[Field; 1000] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(278602445_Field); + let calldata: [Field; 1 + (1000 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn poseidon2_hash(self, data: [Field; 10]) { - let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3724082008_Field); + pub fn sha256_hash_10(self, data: [u8; 10]) { + let serialized_params: [Field; 10 * 1] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3545543018_Field); let calldata: [Field; 1 + (10 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_512(self, data: [u8; 512]) { - let serialized_params: [Field; 512 * 1] = <[u8; 512] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2560938307_Field); - let calldata: [Field; 1 + (512 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_20(self, data: [u8; 20]) { + let serialized_params: [Field; 20 * 1] = <[u8; 20] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2926274626_Field); + let calldata: [Field; 1 + (20 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn keccak_f1600(self, data: [u64; 25]) { - let serialized_params: [Field; 25 * 1] = <[u64; 25] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1867977279_Field); - let calldata: [Field; 1 + (25 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_30(self, data: [u8; 30]) { + let serialized_params: [Field; 30 * 1] = <[u8; 30] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3609677267_Field); + let calldata: [Field; 1 + (30 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_30(self, data: [u8; 30]) { - let serialized_params: [Field; 30 * 1] = <[u8; 30] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3609677267_Field); - let calldata: [Field; 1 + (30 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_40(self, data: [u8; 40]) { + let serialized_params: [Field; 40 * 1] = <[u8; 40] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(900925045_Field); + let calldata: [Field; 1 + (40 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); @@ -704,19 +686,19 @@ contract AvmGadgetsTest { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn poseidon2_hash_1000fields(self, data: [Field; 1000]) { - let serialized_params: [Field; 1000 * 1] = <[Field; 1000] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(278602445_Field); - let calldata: [Field; 1 + (1000 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_70(self, data: [u8; 70]) { + let serialized_params: [Field; 70 * 1] = <[u8; 70] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2200074453_Field); + let calldata: [Field; 1 + (70 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_70(self, data: [u8; 70]) { - let serialized_params: [Field; 70 * 1] = <[u8; 70] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2200074453_Field); - let calldata: [Field; 1 + (70 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_80(self, data: [u8; 80]) { + let serialized_params: [Field; 80 * 1] = <[u8; 80] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4268069756_Field); + let calldata: [Field; 1 + (80 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); @@ -731,64 +713,82 @@ contract AvmGadgetsTest { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_40(self, data: [u8; 40]) { - let serialized_params: [Field; 40 * 1] = <[u8; 40] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(900925045_Field); - let calldata: [Field; 1 + (40 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_100(self, data: [u8; 100]) { + let serialized_params: [Field; 100 * 1] = <[u8; 100] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2074027672_Field); + let calldata: [Field; 1 + (100 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_10(self, data: [u8; 10]) { - let serialized_params: [Field; 10 * 1] = <[u8; 10] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3545543018_Field); - let calldata: [Field; 1 + (10 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_255(self, data: [u8; 255]) { + let serialized_params: [Field; 255 * 1] = <[u8; 255] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3548859530_Field); + let calldata: [Field; 1 + (255 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_1024(self, data: [u8; 1024]) { - let serialized_params: [Field; 1024 * 1] = <[u8; 1024] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2235915052_Field); - let calldata: [Field; 1 + (1024 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_256(self, data: [u8; 256]) { + let serialized_params: [Field; 256 * 1] = <[u8; 256] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3409224101_Field); + let calldata: [Field; 1 + (256 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_255(self, data: [u8; 255]) { - let serialized_params: [Field; 255 * 1] = <[u8; 255] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3548859530_Field); - let calldata: [Field; 1 + (255 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_511(self, data: [u8; 511]) { + let serialized_params: [Field; 511 * 1] = <[u8; 511] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(797967809_Field); + let calldata: [Field; 1 + (511 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn sha256_hash_256(self, data: [u8; 256]) { - let serialized_params: [Field; 256 * 1] = <[u8; 256] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3409224101_Field); - let calldata: [Field; 1 + (256 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_512(self, data: [u8; 512]) { + let serialized_params: [Field; 512 * 1] = <[u8; 512] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2560938307_Field); + let calldata: [Field; 1 + (512 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn keccak_hash_1400(self, data: [u8; 1400]) { - let serialized_params: [Field; 1400 * 1] = <[u8; 1400] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(372001522_Field); - let calldata: [Field; 1 + (1400 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_1024(self, data: [u8; 1024]) { + let serialized_params: [Field; 1024 * 1] = <[u8; 1024] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2235915052_Field); + let calldata: [Field; 1 + (1024 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn keccak_hash_300(self, data: [u8; 300]) { - let serialized_params: [Field; 300 * 1] = <[u8; 300] as aztec::protocol::traits::Serialize>::serialize(data); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3065624740_Field); - let calldata: [Field; 1 + (300 * 1)] = [::to_field(selector)].concat(serialized_params); + pub fn sha256_hash_1536(self, data: [u8; 1536]) { + let serialized_params: [Field; 1536 * 1] = <[u8; 1536] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(373006257_Field); + let calldata: [Field; 1 + (1536 * 1)] = [::to_field(selector)].concat(serialized_params); + let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); + aztec::oracle::execution_cache::store(calldata, calldata_hash); + self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); + } + + pub fn pedersen_hash(self, data: [Field; 10]) { + let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2669406607_Field); + let calldata: [Field; 1 + (10 * 1)] = [::to_field(selector)].concat(serialized_params); + let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); + aztec::oracle::execution_cache::store(calldata, calldata_hash); + self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); + } + + pub fn pedersen_hash_with_index(self, data: [Field; 10]) { + let serialized_params: [Field; 10 * 1] = <[Field; 10] as aztec::protocol::traits::Serialize>::serialize(data); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3265405934_Field); + let calldata: [Field; 1 + (10 * 1)] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); diff --git a/noir-projects/contract-snapshots/tests/snapshots/expand/public_fns_with_emit_repro_contract/snapshots__expanded.snap b/noir-projects/contract-snapshots/tests/snapshots/expand/public_fns_with_emit_repro_contract/snapshots__expanded.snap index 8506d594f7bd..fba10051c65d 100644 --- a/noir-projects/contract-snapshots/tests/snapshots/expand/public_fns_with_emit_repro_contract/snapshots__expanded.snap +++ b/noir-projects/contract-snapshots/tests/snapshots/expand/public_fns_with_emit_repro_contract/snapshots__expanded.snap @@ -185,28 +185,10 @@ pub contract PublicFnsWithEmitRepro { Self { target_contract: aztec::protocol::address::AztecAddress::zero()} } - pub fn fn_05(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { - let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1024449064_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_05", serialized_params) - } - - pub fn fn_07(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { - let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3759335427_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_07", serialized_params) - } - - pub fn fn_14(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { - let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1096580269_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_14", serialized_params) - } - - pub fn fn_06(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_01(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4182861060_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_06", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1472103964_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_01", serialized_params) } pub fn fn_02(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { @@ -215,10 +197,10 @@ pub contract PublicFnsWithEmitRepro { aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_02", serialized_params) } - pub fn fn_01(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_03(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1472103964_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_01", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2154571552_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_03", serialized_params) } pub fn fn_04(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { @@ -227,28 +209,34 @@ pub contract PublicFnsWithEmitRepro { aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_04", serialized_params) } - pub fn fn_08(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_05(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4192827894_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_08", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1024449064_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_05", serialized_params) } - pub fn fn_11(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_06(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3056031378_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_11", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4182861060_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_06", serialized_params) } - pub fn fn_13(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_07(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2026372669_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_13", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3759335427_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_07", serialized_params) } - pub fn fn_03(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_08(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2154571552_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_03", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4192827894_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_08", serialized_params) + } + + pub fn fn_09(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + let serialized_params: [Field; 1] = ::serialize(v); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1901877638_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_09", serialized_params) } pub fn fn_10(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { @@ -257,22 +245,34 @@ pub contract PublicFnsWithEmitRepro { aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_10", serialized_params) } + pub fn fn_11(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + let serialized_params: [Field; 1] = ::serialize(v); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3056031378_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_11", serialized_params) + } + pub fn fn_12(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2749762129_Field); aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_12", serialized_params) } - pub fn fn_15(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_13(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(986670843_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_15", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2026372669_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_13", serialized_params) } - pub fn fn_09(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + pub fn fn_14(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1901877638_Field); - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_09", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1096580269_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_14", serialized_params) + } + + pub fn fn_15(self, v: u64) -> aztec::context::calls::PublicCall<5, 1, ()> { + let serialized_params: [Field; 1] = ::serialize(v); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(986670843_Field); + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.target_contract, selector, "fn_15", serialized_params) } pub fn offchain_receive(self, messages: BoundedVec) -> aztec::context::calls::UtilityCall<16, 321, ()> { @@ -326,66 +326,66 @@ pub contract PublicFnsWithEmitRepro { } impl CallSelf { - pub fn fn_05(self, v: u64) { + pub fn fn_01(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1024449064_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1472103964_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_05", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_01", serialized_params).call(self.context) } } - pub fn fn_07(self, v: u64) { + pub fn fn_02(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3759335427_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3685080997_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_07", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_02", serialized_params).call(self.context) } } - pub fn fn_14(self, v: u64) { + pub fn fn_03(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1096580269_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2154571552_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_14", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_03", serialized_params).call(self.context) } } - pub fn fn_06(self, v: u64) { + pub fn fn_04(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4182861060_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1049101134_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_06", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_04", serialized_params).call(self.context) } } - pub fn fn_02(self, v: u64) { + pub fn fn_05(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3685080997_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1024449064_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_02", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_05", serialized_params).call(self.context) } } - pub fn fn_01(self, v: u64) { + pub fn fn_06(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1472103964_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4182861060_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_01", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_06", serialized_params).call(self.context) } } - pub fn fn_04(self, v: u64) { + pub fn fn_07(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1049101134_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3759335427_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_04", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_07", serialized_params).call(self.context) } } @@ -398,66 +398,66 @@ pub contract PublicFnsWithEmitRepro { } } - pub fn fn_11(self, v: u64) { + pub fn fn_09(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3056031378_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1901877638_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_11", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_09", serialized_params).call(self.context) } } - pub fn fn_13(self, v: u64) { + pub fn fn_10(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2026372669_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2644440885_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_13", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_10", serialized_params).call(self.context) } } - pub fn fn_03(self, v: u64) { + pub fn fn_11(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2154571552_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3056031378_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_03", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_11", serialized_params).call(self.context) } } - pub fn fn_10(self, v: u64) { + pub fn fn_12(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2644440885_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2749762129_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_10", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_12", serialized_params).call(self.context) } } - pub fn fn_12(self, v: u64) { + pub fn fn_13(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2749762129_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2026372669_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_12", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_13", serialized_params).call(self.context) } } - pub fn fn_15(self, v: u64) { + pub fn fn_14(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(986670843_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1096580269_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_15", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_14", serialized_params).call(self.context) } } - pub fn fn_09(self, v: u64) { + pub fn fn_15(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1901877638_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(986670843_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_09", serialized_params).call(self.context) + aztec::context::calls::PublicCall::<5, 1, ()>::new(self.address, selector, "fn_15", serialized_params).call(self.context) } } } @@ -473,63 +473,63 @@ pub contract PublicFnsWithEmitRepro { } impl EnqueueSelf<&mut aztec::context::PrivateContext> { - pub fn fn_05(self, v: u64) { + pub fn fn_01(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1024449064_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1472103964_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_07(self, v: u64) { + pub fn fn_02(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3759335427_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3685080997_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_14(self, v: u64) { + pub fn fn_03(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1096580269_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2154571552_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_06(self, v: u64) { + pub fn fn_04(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4182861060_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1049101134_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_02(self, v: u64) { + pub fn fn_05(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3685080997_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1024449064_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_01(self, v: u64) { + pub fn fn_06(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1472103964_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4182861060_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_04(self, v: u64) { + pub fn fn_07(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1049101134_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3759335427_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); @@ -545,63 +545,63 @@ pub contract PublicFnsWithEmitRepro { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_11(self, v: u64) { + pub fn fn_09(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3056031378_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1901877638_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_13(self, v: u64) { + pub fn fn_10(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2026372669_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2644440885_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_03(self, v: u64) { + pub fn fn_11(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2154571552_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3056031378_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_10(self, v: u64) { + pub fn fn_12(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2644440885_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2749762129_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_12(self, v: u64) { + pub fn fn_13(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2749762129_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2026372669_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_15(self, v: u64) { + pub fn fn_14(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(986670843_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1096580269_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn fn_09(self, v: u64) { + pub fn fn_15(self, v: u64) { let serialized_params: [Field; 1] = ::serialize(v); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1901877638_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(986670843_Field); let calldata: [Field; 1 + 1] = [::to_field(selector)].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); @@ -626,77 +626,77 @@ pub contract PublicFnsWithEmitRepro { if selector == 1472103964_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_01(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 3685080997_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_02(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2154571552_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_03(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1049101134_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_04(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1024449064_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_05(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 4182861060_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_06(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 3759335427_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_07(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 4192827894_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_08(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1901877638_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_09(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2644440885_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_10(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 3056031378_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_11(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2749762129_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_12(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2026372669_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_13(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1096580269_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_14(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 986670843_Field { let arg0: u64 = __aztec_nr_internals__unpack_arguments_0(); __aztec_nr_internals__fn_15(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; panic(f"Unknown selector {selector}") } diff --git a/noir-projects/contract-snapshots/tests/snapshots/expand/storage_proof_test_contract/snapshots__expanded.snap b/noir-projects/contract-snapshots/tests/snapshots/expand/storage_proof_test_contract/snapshots__expanded.snap index 0e3aad62bf15..5b214a81e0b4 100644 --- a/noir-projects/contract-snapshots/tests/snapshots/expand/storage_proof_test_contract/snapshots__expanded.snap +++ b/noir-projects/contract-snapshots/tests/snapshots/expand/storage_proof_test_contract/snapshots__expanded.snap @@ -17,7 +17,6 @@ contract StorageProofTest { use crate::storage_proofs::types::StorageSlot; use crate::storage_proofs::utils::to_nibbles; use aztec::macros::functions::external; - use aztec::macros::functions::internal; use aztec::macros::functions::only_self; use aztec::macros::functions::view; use aztec::oracle::capsules; @@ -127,78 +126,78 @@ contract StorageProofTest { Self { target_contract: AztecAddress::zero()} } - pub fn verify_storage_proof_path_recursively(self, num_processed_nodes: u32, num_total_nodes: u32, start_nibble_index: u32, parent_hash: [u64; 4], storage_trie_key_nibbles: [u8; 64], storage_proof_capsule_key: Field) -> aztec::context::calls::PrivateCall<37, 72, ([u64; 4], u32)> { - let mut serialized_params: [Field; 72] = [0_Field; 72]; + pub fn storage_proof(self, address: EthAddress, slot_key: [u8; 32], slot_contents: StorageSlot, eth_storage_root: [u64; 4]) -> aztec::context::calls::PrivateCall<13, 70, ()> { + let mut serialized_params: [Field; 70] = [0_Field; 70]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = num_processed_nodes.serialize(); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = address.serialize(); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = num_total_nodes.serialize(); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 32 * 1] = slot_key.serialize(); + let serialized_member_len: u32 = <[u8; 32] as Serialize>::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = start_nibble_index.serialize(); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 33] = slot_contents.serialize(); + let serialized_member_len: u32 = >::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 4 * 1] = parent_hash.serialize(); + let serialized_member: [Field; 4 * 1] = eth_storage_root.serialize(); let serialized_member_len: u32 = <[u64; 4] as Serialize>::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 64 * 1] = storage_trie_key_nibbles.serialize(); - let serialized_member_len: u32 = <[u8; 64] as Serialize>::N; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2067008734_Field); + aztec::context::calls::PrivateCall::<13, 70, ()>::new(self.target_contract, selector, "storage_proof", serialized_params) + } + + pub fn verify_storage_proof_path_recursively(self, num_processed_nodes: u32, num_total_nodes: u32, start_nibble_index: u32, parent_hash: [u64; 4], storage_trie_key_nibbles: [u8; 64], storage_proof_capsule_key: Field) -> aztec::context::calls::PrivateCall<37, 72, ([u64; 4], u32)> { + let mut serialized_params: [Field; 72] = [0_Field; 72]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 1] = num_processed_nodes.serialize(); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = storage_proof_capsule_key.serialize(); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = num_total_nodes.serialize(); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2237949917_Field); - aztec::context::calls::PrivateCall::<37, 72, ([u64; 4], u32)>::new(self.target_contract, selector, "verify_storage_proof_path_recursively", serialized_params) - } - - pub fn storage_proof(self, address: EthAddress, slot_key: [u8; 32], slot_contents: StorageSlot, eth_storage_root: [u64; 4]) -> aztec::context::calls::PrivateCall<13, 70, ()> { - let mut serialized_params: [Field; 70] = [0_Field; 70]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = address.serialize(); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = start_nibble_index.serialize(); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 32 * 1] = slot_key.serialize(); - let serialized_member_len: u32 = <[u8; 32] as Serialize>::N; + let serialized_member: [Field; 4 * 1] = parent_hash.serialize(); + let serialized_member_len: u32 = <[u64; 4] as Serialize>::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 33] = slot_contents.serialize(); - let serialized_member_len: u32 = >::N; + let serialized_member: [Field; 64 * 1] = storage_trie_key_nibbles.serialize(); + let serialized_member_len: u32 = <[u8; 64] as Serialize>::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 4 * 1] = eth_storage_root.serialize(); - let serialized_member_len: u32 = <[u64; 4] as Serialize>::N; + let serialized_member: [Field; 1] = storage_proof_capsule_key.serialize(); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2067008734_Field); - aztec::context::calls::PrivateCall::<13, 70, ()>::new(self.target_contract, selector, "storage_proof", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2237949917_Field); + aztec::context::calls::PrivateCall::<37, 72, ([u64; 4], u32)>::new(self.target_contract, selector, "verify_storage_proof_path_recursively", serialized_params) } pub fn account_proof(self, account: Account, root: [u64; 4], nodes: [Node; 15], node_length: u32) -> aztec::context::calls::PublicStaticCall<13, 1290, ()> { @@ -463,7 +462,7 @@ contract StorageProofTest { let arg2: [Node; 15] = <[Node; 15] as Deserialize>::stream_deserialize(&mut reader); let arg3: u32 = ::stream_deserialize(&mut reader); __aztec_nr_internals__account_proof(arg0, arg1, arg2, arg3); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; panic(f"Unknown selector {selector}") } @@ -1194,6 +1193,16 @@ mod storage_proofs { } } } + + impl BytesSink for KeccakHasher { + fn add_byte(&mut self, byte: u8) { + self.add_byte(byte); + } + + fn add_u64(&mut self, mut value: u64) { + self.add_u64(value); + } + } } pub mod extension_hash { @@ -1460,16 +1469,6 @@ mod storage_proofs { } } - impl super::bytes_sink::BytesSink for KeccakHasher { - fn add_byte(&mut self, byte: u8) { - self.add_byte(byte); - } - - fn add_u64(&mut self, mut value: u64) { - self.add_u64(value); - } - } - pub fn keccak256(input: [u8; N], message_size: u32) -> [u8; 32] { keccak256lib(input, message_size) } diff --git a/noir-projects/contract-snapshots/tests/snapshots/expand/token_contract/snapshots__expanded.snap b/noir-projects/contract-snapshots/tests/snapshots/expand/token_contract/snapshots__expanded.snap index c69025b6d66c..daff8ee0e4dc 100644 --- a/noir-projects/contract-snapshots/tests/snapshots/expand/token_contract/snapshots__expanded.snap +++ b/noir-projects/contract-snapshots/tests/snapshots/expand/token_contract/snapshots__expanded.snap @@ -424,8 +424,26 @@ pub contract Token { Self { target_contract: AztecAddress::zero()} } - pub fn burn_public(self, from: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PublicCall<11, 3, ()> { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn private_get_name(self) -> aztec::context::calls::PrivateStaticCall<16, 0, FieldCompressedString> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3516522363_Field); + aztec::context::calls::PrivateStaticCall::<16, 0, FieldCompressedString>::new(self.target_contract, selector, "private_get_name", serialized_params) + } + + pub fn private_get_symbol(self) -> aztec::context::calls::PrivateStaticCall<18, 0, FieldCompressedString> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1295669651_Field); + aztec::context::calls::PrivateStaticCall::<18, 0, FieldCompressedString>::new(self.target_contract, selector, "private_get_symbol", serialized_params) + } + + pub fn private_get_decimals(self) -> aztec::context::calls::PrivateStaticCall<20, 0, u8> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2520508119_Field); + aztec::context::calls::PrivateStaticCall::<20, 0, u8>::new(self.target_contract, selector, "private_get_decimals", serialized_params) + } + + pub fn transfer_to_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<18, 4, ()> { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; @@ -433,25 +451,6 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3323048133_Field); - aztec::context::calls::PublicCall::<11, 3, ()>::new(self.target_contract, selector, "burn_public", serialized_params) - } - - pub fn transfer(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PrivateCall<8, 2, ()> { - let mut serialized_params: [Field; 2] = [0_Field; 2]; - let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { @@ -464,11 +463,17 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1968158567_Field); - aztec::context::calls::PrivateCall::<8, 2, ()>::new(self.target_contract, selector, "transfer", serialized_params) + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3880081865_Field); + aztec::context::calls::PrivateCall::<18, 4, ()>::new(self.target_contract, selector, "transfer_to_public", serialized_params) } - pub fn finalize_transfer_to_private_from_private(self, from: AztecAddress, partial_note: PartialUintNote, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<41, 4, ()> { + pub fn transfer_to_public_and_prepare_private_balance_increase(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<55, 4, PartialUintNote> { let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); @@ -477,8 +482,8 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; @@ -495,11 +500,11 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4221842038_Field); - aztec::context::calls::PrivateCall::<41, 4, ()>::new(self.target_contract, selector, "finalize_transfer_to_private_from_private", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2936463891_Field); + aztec::context::calls::PrivateCall::<55, 4, PartialUintNote>::new(self.target_contract, selector, "transfer_to_public_and_prepare_private_balance_increase", serialized_params) } - pub fn mint_to_public(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PublicCall<14, 2, ()> { + pub fn transfer(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PrivateCall<8, 2, ()> { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(to); @@ -514,14 +519,27 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1159421870_Field); - aztec::context::calls::PublicCall::<14, 2, ()>::new(self.target_contract, selector, "mint_to_public", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1968158567_Field); + aztec::context::calls::PrivateCall::<8, 2, ()>::new(self.target_contract, selector, "transfer", serialized_params) } - pub fn is_minter(self, minter: AztecAddress) -> aztec::context::calls::PublicStaticCall<9, 1, bool> { - let serialized_params: [Field; 1] = ::serialize(minter); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3315237398_Field); - aztec::context::calls::PublicStaticCall::<9, 1, bool>::new(self.target_contract, selector, "is_minter", serialized_params) + pub fn _recurse_subtract_balance(self, account: AztecAddress, amount: u128) -> aztec::context::calls::PrivateCall<25, 2, u128> { + let mut serialized_params: [Field; 2] = [0_Field; 2]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 1] = ::serialize(account); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1536394406_Field); + aztec::context::calls::PrivateCall::<25, 2, u128>::new(self.target_contract, selector, "_recurse_subtract_balance", serialized_params) } pub fn cancel_authwit(self, inner_hash: Field) -> aztec::context::calls::PrivateCall<14, 1, ()> { @@ -530,31 +548,7 @@ pub contract Token { aztec::context::calls::PrivateCall::<14, 1, ()>::new(self.target_contract, selector, "cancel_authwit", serialized_params) } - pub fn set_admin(self, new_admin: AztecAddress) -> aztec::context::calls::PublicCall<9, 1, ()> { - let serialized_params: [Field; 1] = ::serialize(new_admin); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2519591682_Field); - aztec::context::calls::PublicCall::<9, 1, ()>::new(self.target_contract, selector, "set_admin", serialized_params) - } - - pub fn total_supply(self) -> aztec::context::calls::PublicStaticCall<12, 0, u128> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2379449068_Field); - aztec::context::calls::PublicStaticCall::<12, 0, u128>::new(self.target_contract, selector, "total_supply", serialized_params) - } - - pub fn private_get_decimals(self) -> aztec::context::calls::PrivateStaticCall<20, 0, u8> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2520508119_Field); - aztec::context::calls::PrivateStaticCall::<20, 0, u8>::new(self.target_contract, selector, "private_get_decimals", serialized_params) - } - - pub fn get_admin(self) -> aztec::context::calls::PublicStaticCall<9, 0, Field> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(722579866_Field); - aztec::context::calls::PublicStaticCall::<9, 0, Field>::new(self.target_contract, selector, "get_admin", serialized_params) - } - - pub fn transfer_to_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<18, 4, ()> { + pub fn transfer_in_private(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<19, 4, ()> { let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); @@ -581,8 +575,8 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3880081865_Field); - aztec::context::calls::PrivateCall::<18, 4, ()>::new(self.target_contract, selector, "transfer_to_public", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3610465468_Field); + aztec::context::calls::PrivateCall::<19, 4, ()>::new(self.target_contract, selector, "transfer_in_private", serialized_params) } pub fn transfer_in_private_with_offchain_delivery(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<42, 4, ()> { @@ -616,10 +610,10 @@ pub contract Token { aztec::context::calls::PrivateCall::<42, 4, ()>::new(self.target_contract, selector, "transfer_in_private_with_offchain_delivery", serialized_params) } - pub fn mint_to_private(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PrivateCall<15, 2, ()> { - let mut serialized_params: [Field; 2] = [0_Field; 2]; + pub fn burn_private(self, from: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<12, 3, ()> { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -631,8 +625,14 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4177019161_Field); - aztec::context::calls::PrivateCall::<15, 2, ()>::new(self.target_contract, selector, "mint_to_private", serialized_params) + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3263360377_Field); + aztec::context::calls::PrivateCall::<12, 3, ()>::new(self.target_contract, selector, "burn_private", serialized_params) } pub fn transfer_to_private(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PrivateCall<19, 2, ()> { @@ -654,35 +654,47 @@ pub contract Token { aztec::context::calls::PrivateCall::<19, 2, ()>::new(self.target_contract, selector, "transfer_to_private", serialized_params) } - pub fn public_get_name(self) -> aztec::context::calls::PublicStaticCall<15, 0, FieldCompressedString> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3367753652_Field); - aztec::context::calls::PublicStaticCall::<15, 0, FieldCompressedString>::new(self.target_contract, selector, "public_get_name", serialized_params) + pub fn prepare_private_balance_increase(self, to: AztecAddress) -> aztec::context::calls::PrivateCall<32, 1, PartialUintNote> { + let serialized_params: [Field; 1] = ::serialize(to); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1824243228_Field); + aztec::context::calls::PrivateCall::<32, 1, PartialUintNote>::new(self.target_contract, selector, "prepare_private_balance_increase", serialized_params) } - pub fn _recurse_subtract_balance(self, account: AztecAddress, amount: u128) -> aztec::context::calls::PrivateCall<25, 2, u128> { - let mut serialized_params: [Field; 2] = [0_Field; 2]; + pub fn finalize_transfer_to_private_from_private(self, from: AztecAddress, partial_note: PartialUintNote, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<41, 4, ()> { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(account); + let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1536394406_Field); - aztec::context::calls::PrivateCall::<25, 2, u128>::new(self.target_contract, selector, "_recurse_subtract_balance", serialized_params) + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4221842038_Field); + aztec::context::calls::PrivateCall::<41, 4, ()>::new(self.target_contract, selector, "finalize_transfer_to_private_from_private", serialized_params) } - pub fn _finalize_transfer_to_private_unsafe(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<36, 3, ()> { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn mint_to_private(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PrivateCall<15, 2, ()> { + let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from_and_completer); + let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -694,14 +706,8 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1930102437_Field); - aztec::context::calls::PublicCall::<36, 3, ()>::new(self.target_contract, selector, "_finalize_transfer_to_private_unsafe", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4177019161_Field); + aztec::context::calls::PrivateCall::<15, 2, ()>::new(self.target_contract, selector, "mint_to_private", serialized_params) } pub fn constructor(self, admin: AztecAddress, name: str<31>, symbol: str<31>, decimals: u8) -> aztec::context::calls::PublicCall<11, 64, ()> { @@ -735,48 +741,90 @@ pub contract Token { aztec::context::calls::PublicCall::<11, 64, ()>::new(self.target_contract, selector, "constructor", serialized_params) } - pub fn finalize_transfer_to_private(self, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<28, 2, ()> { + pub fn set_admin(self, new_admin: AztecAddress) -> aztec::context::calls::PublicCall<9, 1, ()> { + let serialized_params: [Field; 1] = ::serialize(new_admin); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2519591682_Field); + aztec::context::calls::PublicCall::<9, 1, ()>::new(self.target_contract, selector, "set_admin", serialized_params) + } + + pub fn public_get_name(self) -> aztec::context::calls::PublicStaticCall<15, 0, FieldCompressedString> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3367753652_Field); + aztec::context::calls::PublicStaticCall::<15, 0, FieldCompressedString>::new(self.target_contract, selector, "public_get_name", serialized_params) + } + + pub fn public_get_symbol(self) -> aztec::context::calls::PublicStaticCall<17, 0, FieldCompressedString> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3454394185_Field); + aztec::context::calls::PublicStaticCall::<17, 0, FieldCompressedString>::new(self.target_contract, selector, "public_get_symbol", serialized_params) + } + + pub fn public_get_decimals(self) -> aztec::context::calls::PublicStaticCall<19, 0, u8> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1613003496_Field); + aztec::context::calls::PublicStaticCall::<19, 0, u8>::new(self.target_contract, selector, "public_get_decimals", serialized_params) + } + + pub fn get_admin(self) -> aztec::context::calls::PublicStaticCall<9, 0, Field> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(722579866_Field); + aztec::context::calls::PublicStaticCall::<9, 0, Field>::new(self.target_contract, selector, "get_admin", serialized_params) + } + + pub fn is_minter(self, minter: AztecAddress) -> aztec::context::calls::PublicStaticCall<9, 1, bool> { + let serialized_params: [Field; 1] = ::serialize(minter); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3315237398_Field); + aztec::context::calls::PublicStaticCall::<9, 1, bool>::new(self.target_contract, selector, "is_minter", serialized_params) + } + + pub fn total_supply(self) -> aztec::context::calls::PublicStaticCall<12, 0, u128> { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2379449068_Field); + aztec::context::calls::PublicStaticCall::<12, 0, u128>::new(self.target_contract, selector, "total_supply", serialized_params) + } + + pub fn balance_of_public(self, owner: AztecAddress) -> aztec::context::calls::PublicStaticCall<17, 1, u128> { + let serialized_params: [Field; 1] = ::serialize(owner); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4286138866_Field); + aztec::context::calls::PublicStaticCall::<17, 1, u128>::new(self.target_contract, selector, "balance_of_public", serialized_params) + } + + pub fn set_minter(self, minter: AztecAddress, approve: bool) -> aztec::context::calls::PublicCall<10, 2, ()> { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(minter); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(approve); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2599745508_Field); - aztec::context::calls::PublicCall::<28, 2, ()>::new(self.target_contract, selector, "finalize_transfer_to_private", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1957439757_Field); + aztec::context::calls::PublicCall::<10, 2, ()>::new(self.target_contract, selector, "set_minter", serialized_params) } - pub fn finalize_mint_to_private(self, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<24, 2, ()> { + pub fn mint_to_public(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PublicCall<14, 2, ()> { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1065137297_Field); - aztec::context::calls::PublicCall::<24, 2, ()>::new(self.target_contract, selector, "finalize_mint_to_private", serialized_params) - } - - pub fn _reduce_total_supply(self, amount: u128) -> aztec::context::calls::PublicCall<20, 1, ()> { - let serialized_params: [Field; 1] = ::serialize(amount); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2253390209_Field); - aztec::context::calls::PublicCall::<20, 1, ()>::new(self.target_contract, selector, "_reduce_total_supply", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1159421870_Field); + aztec::context::calls::PublicCall::<14, 2, ()>::new(self.target_contract, selector, "mint_to_public", serialized_params) } pub fn transfer_in_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PublicCall<18, 4, ()> { @@ -810,14 +858,8 @@ pub contract Token { aztec::context::calls::PublicCall::<18, 4, ()>::new(self.target_contract, selector, "transfer_in_public", serialized_params) } - pub fn prepare_private_balance_increase(self, to: AztecAddress) -> aztec::context::calls::PrivateCall<32, 1, PartialUintNote> { - let serialized_params: [Field; 1] = ::serialize(to); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1824243228_Field); - aztec::context::calls::PrivateCall::<32, 1, PartialUintNote>::new(self.target_contract, selector, "prepare_private_balance_increase", serialized_params) - } - - pub fn transfer_to_public_and_prepare_private_balance_increase(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<55, 4, PartialUintNote> { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn burn_public(self, from: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PublicCall<11, 3, ()> { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; @@ -825,12 +867,6 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { @@ -843,39 +879,33 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2936463891_Field); - aztec::context::calls::PrivateCall::<55, 4, PartialUintNote>::new(self.target_contract, selector, "transfer_to_public_and_prepare_private_balance_increase", serialized_params) - } - - pub fn balance_of_public(self, owner: AztecAddress) -> aztec::context::calls::PublicStaticCall<17, 1, u128> { - let serialized_params: [Field; 1] = ::serialize(owner); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4286138866_Field); - aztec::context::calls::PublicStaticCall::<17, 1, u128>::new(self.target_contract, selector, "balance_of_public", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3323048133_Field); + aztec::context::calls::PublicCall::<11, 3, ()>::new(self.target_contract, selector, "burn_public", serialized_params) } - pub fn set_minter(self, minter: AztecAddress, approve: bool) -> aztec::context::calls::PublicCall<10, 2, ()> { + pub fn finalize_transfer_to_private(self, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<28, 2, ()> { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(minter); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(approve); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1957439757_Field); - aztec::context::calls::PublicCall::<10, 2, ()>::new(self.target_contract, selector, "set_minter", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2599745508_Field); + aztec::context::calls::PublicCall::<28, 2, ()>::new(self.target_contract, selector, "finalize_transfer_to_private", serialized_params) } - pub fn _finalize_mint_to_private_unsafe(self, minter_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<32, 3, ()> { + pub fn _finalize_transfer_to_private_unsafe(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<36, 3, ()> { let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(minter_and_completer); + let serialized_member: [Field; 1] = ::serialize(from_and_completer); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -893,63 +923,33 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4058507562_Field); - aztec::context::calls::PublicCall::<32, 3, ()>::new(self.target_contract, selector, "_finalize_mint_to_private_unsafe", serialized_params) - } - - pub fn private_get_symbol(self) -> aztec::context::calls::PrivateStaticCall<18, 0, FieldCompressedString> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1295669651_Field); - aztec::context::calls::PrivateStaticCall::<18, 0, FieldCompressedString>::new(self.target_contract, selector, "private_get_symbol", serialized_params) - } - - pub fn private_get_name(self) -> aztec::context::calls::PrivateStaticCall<16, 0, FieldCompressedString> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3516522363_Field); - aztec::context::calls::PrivateStaticCall::<16, 0, FieldCompressedString>::new(self.target_contract, selector, "private_get_name", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1930102437_Field); + aztec::context::calls::PublicCall::<36, 3, ()>::new(self.target_contract, selector, "_finalize_transfer_to_private_unsafe", serialized_params) } - pub fn transfer_in_private(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<19, 4, ()> { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn finalize_mint_to_private(self, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<24, 2, ()> { + let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3610465468_Field); - aztec::context::calls::PrivateCall::<19, 4, ()>::new(self.target_contract, selector, "transfer_in_private", serialized_params) - } - - pub fn public_get_decimals(self) -> aztec::context::calls::PublicStaticCall<19, 0, u8> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1613003496_Field); - aztec::context::calls::PublicStaticCall::<19, 0, u8>::new(self.target_contract, selector, "public_get_decimals", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1065137297_Field); + aztec::context::calls::PublicCall::<24, 2, ()>::new(self.target_contract, selector, "finalize_mint_to_private", serialized_params) } - pub fn burn_private(self, from: AztecAddress, amount: u128, authwit_nonce: Field) -> aztec::context::calls::PrivateCall<12, 3, ()> { + pub fn _finalize_mint_to_private_unsafe(self, minter_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) -> aztec::context::calls::PublicCall<32, 3, ()> { let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member: [Field; 1] = ::serialize(minter_and_completer); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -961,14 +961,14 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3263360377_Field); - aztec::context::calls::PrivateCall::<12, 3, ()>::new(self.target_contract, selector, "burn_private", serialized_params) + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4058507562_Field); + aztec::context::calls::PublicCall::<32, 3, ()>::new(self.target_contract, selector, "_finalize_mint_to_private_unsafe", serialized_params) } pub fn _increase_public_balance(self, to: AztecAddress, amount: u128) -> aztec::context::calls::PublicCall<24, 2, ()> { @@ -990,10 +990,10 @@ pub contract Token { aztec::context::calls::PublicCall::<24, 2, ()>::new(self.target_contract, selector, "_increase_public_balance", serialized_params) } - pub fn public_get_symbol(self) -> aztec::context::calls::PublicStaticCall<17, 0, FieldCompressedString> { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3454394185_Field); - aztec::context::calls::PublicStaticCall::<17, 0, FieldCompressedString>::new(self.target_contract, selector, "public_get_symbol", serialized_params) + pub fn _reduce_total_supply(self, amount: u128) -> aztec::context::calls::PublicCall<20, 1, ()> { + let serialized_params: [Field; 1] = ::serialize(amount); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2253390209_Field); + aztec::context::calls::PublicCall::<20, 1, ()>::new(self.target_contract, selector, "_reduce_total_supply", serialized_params) } pub fn balance_of_private(self, owner: AztecAddress) -> aztec::context::calls::UtilityCall<18, 1, u128> { @@ -1052,9 +1052,9 @@ pub contract Token { pub context: Context, } - impl CallSelf { - pub fn burn_public(self, from: AztecAddress, amount: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + impl CallSelf<&mut aztec::context::PrivateContext> { + pub fn transfer_to_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; @@ -1062,6 +1062,12 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { @@ -1074,17 +1080,23 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3323048133_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<11, 3, ()>::new(self.address, selector, "burn_public", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3880081865_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn _finalize_transfer_to_private_unsafe(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn transfer_to_public_and_prepare_private_balance_increase(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> PartialUintNote { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from_and_completer); + let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1096,20 +1108,20 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1930102437_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<36, 3, ()>::new(self.address, selector, "_finalize_transfer_to_private_unsafe", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2936463891_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn mint_to_public(self, to: AztecAddress, amount: u128) { + pub fn transfer(self, to: AztecAddress, amount: u128) { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(to); @@ -1124,102 +1136,114 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1159421870_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<14, 2, ()>::new(self.address, selector, "mint_to_public", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1968158567_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn finalize_transfer_to_private(self, amount: u128, partial_note: PartialUintNote) { + pub fn _recurse_subtract_balance(self, account: AztecAddress, amount: u128) -> u128 { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(account); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2599745508_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<28, 2, ()>::new(self.address, selector, "finalize_transfer_to_private", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1536394406_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn constructor(self, admin: AztecAddress, name: str<31>, symbol: str<31>, decimals: u8) { - let mut serialized_params: [Field; 64] = [0_Field; 64]; + pub fn cancel_authwit(self, inner_hash: Field) { + let serialized_params: [Field; 1] = ::serialize(inner_hash); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3755840242_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() + } + + pub fn transfer_in_private(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(admin); + let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(name); - let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; + let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(symbol); - let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(decimals); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1578322623_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<11, 64, ()>::new(self.address, selector, "constructor", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3610465468_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn finalize_mint_to_private(self, amount: u128, partial_note: PartialUintNote) { - let mut serialized_params: [Field; 2] = [0_Field; 2]; + pub fn transfer_in_private_with_offchain_delivery(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; + let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1065137297_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<24, 2, ()>::new(self.address, selector, "finalize_mint_to_private", serialized_params).call(self.context) - } - } - - pub fn _reduce_total_supply(self, amount: u128) { - let serialized_params: [Field; 1] = ::serialize(amount); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2253390209_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<20, 1, ()>::new(self.address, selector, "_reduce_total_supply", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2994585803_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn transfer_in_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn burn_private(self, from: AztecAddress, amount: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; @@ -1227,12 +1251,6 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { @@ -1245,122 +1263,82 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2359186546_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<18, 4, ()>::new(self.address, selector, "transfer_in_public", serialized_params).call(self.context) - } - } - - pub fn set_admin(self, new_admin: AztecAddress) { - let serialized_params: [Field; 1] = ::serialize(new_admin); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2519591682_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<9, 1, ()>::new(self.address, selector, "set_admin", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3263360377_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn set_minter(self, minter: AztecAddress, approve: bool) { + pub fn transfer_to_private(self, to: AztecAddress, amount: u128) { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(minter); + let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(approve); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1957439757_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<10, 2, ()>::new(self.address, selector, "set_minter", serialized_params).call(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2306181952_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() } - pub fn _finalize_mint_to_private_unsafe(self, minter_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn prepare_private_balance_increase(self, to: AztecAddress) -> PartialUintNote { + let serialized_params: [Field; 1] = ::serialize(to); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1824243228_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); + returns_hash.get_preimage() + } + + pub fn finalize_transfer_to_private_from_private(self, from: AztecAddress, partial_note: PartialUintNote, amount: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(minter_and_completer); + let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(partial_note); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4058507562_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<32, 3, ()>::new(self.address, selector, "_finalize_mint_to_private_unsafe", serialized_params).call(self.context) - } - } - - pub fn _increase_public_balance(self, to: AztecAddress, amount: u128) { - let mut serialized_params: [Field; 2] = [0_Field; 2]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3891283455_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicCall::<24, 2, ()>::new(self.address, selector, "_increase_public_balance", serialized_params).call(self.context) - } - } - } - - impl CallSelf<&mut aztec::context::PrivateContext> { - pub fn transfer(self, to: AztecAddress, amount: u128) { - let mut serialized_params: [Field; 2] = [0_Field; 2]; - let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1968158567_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4221842038_Field); let args_hash: Field = aztec::hash::hash_args(serialized_params); aztec::oracle::execution_cache::store(serialized_params, args_hash); let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); returns_hash.get_preimage() } - pub fn _recurse_subtract_balance(self, account: AztecAddress, amount: u128) -> u128 { + pub fn mint_to_private(self, to: AztecAddress, amount: u128) { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(account); + let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1372,100 +1350,103 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1536394406_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4177019161_Field); let args_hash: Field = aztec::hash::hash_args(serialized_params); aztec::oracle::execution_cache::store(serialized_params, args_hash); let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); returns_hash.get_preimage() } + } - pub fn finalize_transfer_to_private_from_private(self, from: AztecAddress, partial_note: PartialUintNote, amount: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + impl CallSelf { + pub fn constructor(self, admin: AztecAddress, name: str<31>, symbol: str<31>, decimals: u8) { + let mut serialized_params: [Field; 64] = [0_Field; 64]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member: [Field; 1] = ::serialize(admin); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(name); + let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(symbol); + let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(decimals); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4221842038_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1578322623_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<11, 64, ()>::new(self.address, selector, "constructor", serialized_params).call(self.context) + } } - pub fn prepare_private_balance_increase(self, to: AztecAddress) -> PartialUintNote { - let serialized_params: [Field; 1] = ::serialize(to); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1824243228_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + pub fn set_admin(self, new_admin: AztecAddress) { + let serialized_params: [Field; 1] = ::serialize(new_admin); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2519591682_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<9, 1, ()>::new(self.address, selector, "set_admin", serialized_params).call(self.context) + } } - pub fn transfer_to_public_and_prepare_private_balance_increase(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) -> PartialUintNote { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn set_minter(self, minter: AztecAddress, approve: bool) { + let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member: [Field; 1] = ::serialize(minter); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(approve); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1957439757_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<10, 2, ()>::new(self.address, selector, "set_minter", serialized_params).call(self.context) + } + } + + pub fn mint_to_public(self, to: AztecAddress, amount: u128) { + let mut serialized_params: [Field; 2] = [0_Field; 2]; + let mut offset: u32 = 0_u32; + let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2936463891_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() - } - - pub fn cancel_authwit(self, inner_hash: Field) { - let serialized_params: [Field; 1] = ::serialize(inner_hash); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3755840242_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1159421870_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<14, 2, ()>::new(self.address, selector, "mint_to_public", serialized_params).call(self.context) + } } - pub fn transfer_in_private(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { + pub fn transfer_in_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); @@ -1492,14 +1473,14 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3610465468_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2359186546_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<18, 4, ()>::new(self.address, selector, "transfer_in_public", serialized_params).call(self.context) + } } - pub fn burn_private(self, from: AztecAddress, amount: u128, authwit_nonce: Field) { + pub fn burn_public(self, from: AztecAddress, amount: u128, authwit_nonce: Field) { let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(from); @@ -1520,85 +1501,89 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3263360377_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3323048133_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<11, 3, ()>::new(self.address, selector, "burn_public", serialized_params).call(self.context) + } } - pub fn transfer_to_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn finalize_transfer_to_private(self, amount: u128, partial_note: PartialUintNote) { + let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3880081865_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2599745508_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<28, 2, ()>::new(self.address, selector, "finalize_transfer_to_private", serialized_params).call(self.context) + } } - pub fn transfer_in_private_with_offchain_delivery(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn _finalize_transfer_to_private_unsafe(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member: [Field; 1] = ::serialize(from_and_completer); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(to); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1930102437_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<36, 3, ()>::new(self.address, selector, "_finalize_transfer_to_private_unsafe", serialized_params).call(self.context) + } + } + + pub fn finalize_mint_to_private(self, amount: u128, partial_note: PartialUintNote) { + let mut serialized_params: [Field; 2] = [0_Field; 2]; + let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(amount); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2994585803_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1065137297_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<24, 2, ()>::new(self.address, selector, "finalize_mint_to_private", serialized_params).call(self.context) + } } - pub fn mint_to_private(self, to: AztecAddress, amount: u128) { - let mut serialized_params: [Field; 2] = [0_Field; 2]; + pub fn _finalize_mint_to_private_unsafe(self, minter_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member: [Field; 1] = ::serialize(minter_and_completer); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1610,14 +1595,20 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4177019161_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4058507562_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<32, 3, ()>::new(self.address, selector, "_finalize_mint_to_private_unsafe", serialized_params).call(self.context) + } } - pub fn transfer_to_private(self, to: AztecAddress, amount: u128) { + pub fn _increase_public_balance(self, to: AztecAddress, amount: u128) { let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; let serialized_member: [Field; 1] = ::serialize(to); @@ -1632,11 +1623,20 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2306181952_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, false); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3891283455_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<24, 2, ()>::new(self.address, selector, "_increase_public_balance", serialized_params).call(self.context) + } + } + + pub fn _reduce_total_supply(self, amount: u128) { + let serialized_params: [Field; 1] = ::serialize(amount); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2253390209_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicCall::<20, 1, ()>::new(self.address, selector, "_reduce_total_supply", serialized_params).call(self.context) + } } } @@ -1645,25 +1645,36 @@ pub contract Token { pub context: Context, } - impl CallSelfStatic { - pub fn balance_of_public(self, owner: AztecAddress) -> u128 { - let serialized_params: [Field; 1] = ::serialize(owner); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4286138866_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicStaticCall::<17, 1, u128>::new(self.address, selector, "balance_of_public", serialized_params).view(self.context) - } + impl CallSelfStatic<&mut aztec::context::PrivateContext> { + pub fn private_get_name(self) -> FieldCompressedString { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3516522363_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, true); + returns_hash.get_preimage() } - pub fn total_supply(self) -> u128 { + pub fn private_get_symbol(self) -> FieldCompressedString { let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2379449068_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicStaticCall::<12, 0, u128>::new(self.address, selector, "total_supply", serialized_params).view(self.context) - } + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1295669651_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, true); + returns_hash.get_preimage() } + pub fn private_get_decimals(self) -> u8 { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2520508119_Field); + let args_hash: Field = aztec::hash::hash_args(serialized_params); + aztec::oracle::execution_cache::store(serialized_params, args_hash); + let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, true); + returns_hash.get_preimage() + } + } + + impl CallSelfStatic { pub fn public_get_name(self) -> FieldCompressedString { let serialized_params: [Field; 0] = []; let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3367753652_Field); @@ -1673,69 +1684,58 @@ pub contract Token { } } - pub fn public_get_decimals(self) -> u8 { + pub fn public_get_symbol(self) -> FieldCompressedString { let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1613003496_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3454394185_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicStaticCall::<19, 0, u8>::new(self.address, selector, "public_get_decimals", serialized_params).view(self.context) + aztec::context::calls::PublicStaticCall::<17, 0, FieldCompressedString>::new(self.address, selector, "public_get_symbol", serialized_params).view(self.context) } } - pub fn get_admin(self) -> Field { + pub fn public_get_decimals(self) -> u8 { let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(722579866_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1613003496_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicStaticCall::<9, 0, Field>::new(self.address, selector, "get_admin", serialized_params).view(self.context) + aztec::context::calls::PublicStaticCall::<19, 0, u8>::new(self.address, selector, "public_get_decimals", serialized_params).view(self.context) } } - pub fn public_get_symbol(self) -> FieldCompressedString { + pub fn get_admin(self) -> Field { let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3454394185_Field); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(722579866_Field); // Safety: comment added by `nargo expand` unsafe { - aztec::context::calls::PublicStaticCall::<17, 0, FieldCompressedString>::new(self.address, selector, "public_get_symbol", serialized_params).view(self.context) + aztec::context::calls::PublicStaticCall::<9, 0, Field>::new(self.address, selector, "get_admin", serialized_params).view(self.context) } } pub fn is_minter(self, minter: AztecAddress) -> bool { let serialized_params: [Field; 1] = ::serialize(minter); let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3315237398_Field); - // Safety: comment added by `nargo expand` - unsafe { - aztec::context::calls::PublicStaticCall::<9, 1, bool>::new(self.address, selector, "is_minter", serialized_params).view(self.context) - } - } - } - - impl CallSelfStatic<&mut aztec::context::PrivateContext> { - pub fn private_get_symbol(self) -> FieldCompressedString { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1295669651_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, true); - returns_hash.get_preimage() + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicStaticCall::<9, 1, bool>::new(self.address, selector, "is_minter", serialized_params).view(self.context) + } } - pub fn private_get_name(self) -> FieldCompressedString { + pub fn total_supply(self) -> u128 { let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3516522363_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, true); - returns_hash.get_preimage() + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2379449068_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicStaticCall::<12, 0, u128>::new(self.address, selector, "total_supply", serialized_params).view(self.context) + } } - pub fn private_get_decimals(self) -> u8 { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2520508119_Field); - let args_hash: Field = aztec::hash::hash_args(serialized_params); - aztec::oracle::execution_cache::store(serialized_params, args_hash); - let returns_hash: aztec::context::ReturnsHash = self.context.call_private_function_with_args_hash(self.address, selector, args_hash, true); - returns_hash.get_preimage() + pub fn balance_of_public(self, owner: AztecAddress) -> u128 { + let serialized_params: [Field; 1] = ::serialize(owner); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4286138866_Field); + // Safety: comment added by `nargo expand` + unsafe { + aztec::context::calls::PublicStaticCall::<17, 1, u128>::new(self.address, selector, "balance_of_public", serialized_params).view(self.context) + } } } @@ -1745,60 +1745,75 @@ pub contract Token { } impl EnqueueSelf<&mut aztec::context::PrivateContext> { - pub fn set_minter(self, minter: AztecAddress, approve: bool) { - let mut serialized_params: [Field; 2] = [0_Field; 2]; + pub fn constructor(self, admin: AztecAddress, name: str<31>, symbol: str<31>, decimals: u8) { + let mut serialized_params: [Field; 64] = [0_Field; 64]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(minter); + let serialized_member: [Field; 1] = ::serialize(admin); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(approve); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(name); + let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1957439757_Field); - let calldata: [Field; 1 + 2] = [selector.to_field()].concat(serialized_params); + let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(symbol); + let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(decimals); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1578322623_Field); + let calldata: [Field; 1 + 64] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn burn_public(self, from: AztecAddress, amount: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn set_admin(self, new_admin: AztecAddress) { + let serialized_params: [Field; 1] = ::serialize(new_admin); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2519591682_Field); + let calldata: [Field; 1 + 1] = [selector.to_field()].concat(serialized_params); + let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); + aztec::oracle::execution_cache::store(calldata, calldata_hash); + self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); + } + + pub fn set_minter(self, minter: AztecAddress, approve: bool) { + let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member: [Field; 1] = ::serialize(minter); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(amount); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(approve); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3323048133_Field); - let calldata: [Field; 1 + 3] = [selector.to_field()].concat(serialized_params); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1957439757_Field); + let calldata: [Field; 1 + 2] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn _finalize_transfer_to_private_unsafe(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn mint_to_public(self, to: AztecAddress, amount: u128) { + let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from_and_completer); + let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1810,23 +1825,23 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1930102437_Field); - let calldata: [Field; 1 + 3] = [selector.to_field()].concat(serialized_params); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1159421870_Field); + let calldata: [Field; 1 + 2] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn _finalize_mint_to_private_unsafe(self, minter_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { - let mut serialized_params: [Field; 3] = [0_Field; 3]; + pub fn transfer_in_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 4] = [0_Field; 4]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(minter_and_completer); + let serialized_member: [Field; 1] = ::serialize(from); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1838,23 +1853,23 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(partial_note); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4058507562_Field); - let calldata: [Field; 1 + 3] = [selector.to_field()].concat(serialized_params); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2359186546_Field); + let calldata: [Field; 1 + 4] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn mint_to_public(self, to: AztecAddress, amount: u128) { - let mut serialized_params: [Field; 2] = [0_Field; 2]; + pub fn burn_public(self, from: AztecAddress, amount: u128, authwit_nonce: Field) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member: [Field; 1] = ::serialize(from); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1866,8 +1881,14 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1159421870_Field); - let calldata: [Field; 1 + 2] = [selector.to_field()].concat(serialized_params); + let serialized_member: [Field; 1] = ::serialize(authwit_nonce); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3323048133_Field); + let calldata: [Field; 1 + 3] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); @@ -1895,35 +1916,29 @@ pub contract Token { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn constructor(self, admin: AztecAddress, name: str<31>, symbol: str<31>, decimals: u8) { - let mut serialized_params: [Field; 64] = [0_Field; 64]; + pub fn _finalize_transfer_to_private_unsafe(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(admin); + let serialized_member: [Field; 1] = ::serialize(from_and_completer); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(name); - let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let serialized_member: [Field; 31] = as aztec::protocol::traits::Serialize>::serialize(symbol); - let serialized_member_len: u32 = as aztec::protocol::traits::Serialize>::N; + let serialized_member: [Field; 1] = ::serialize(amount); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(decimals); - let serialized_member_len: u32 = ::N; + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1578322623_Field); - let calldata: [Field; 1 + 64] = [selector.to_field()].concat(serialized_params); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1930102437_Field); + let calldata: [Field; 1 + 3] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); @@ -1951,10 +1966,10 @@ pub contract Token { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn _increase_public_balance(self, to: AztecAddress, amount: u128) { - let mut serialized_params: [Field; 2] = [0_Field; 2]; + pub fn _finalize_mint_to_private_unsafe(self, minter_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { + let mut serialized_params: [Field; 3] = [0_Field; 3]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(to); + let serialized_member: [Field; 1] = ::serialize(minter_and_completer); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { serialized_params[i + offset] = serialized_member[i]; @@ -1966,22 +1981,22 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3891283455_Field); - let calldata: [Field; 1 + 2] = [selector.to_field()].concat(serialized_params); + let serialized_member: [Field; 1] = ::serialize(partial_note); + let serialized_member_len: u32 = ::N; + for i in 0_u32..serialized_member_len { + serialized_params[i + offset] = serialized_member[i]; + }; + offset = offset + serialized_member_len; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4058507562_Field); + let calldata: [Field; 1 + 3] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - pub fn transfer_in_public(self, from: AztecAddress, to: AztecAddress, amount: u128, authwit_nonce: Field) { - let mut serialized_params: [Field; 4] = [0_Field; 4]; + pub fn _increase_public_balance(self, to: AztecAddress, amount: u128) { + let mut serialized_params: [Field; 2] = [0_Field; 2]; let mut offset: u32 = 0_u32; - let serialized_member: [Field; 1] = ::serialize(from); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; let serialized_member: [Field; 1] = ::serialize(to); let serialized_member_len: u32 = ::N; for i in 0_u32..serialized_member_len { @@ -1994,14 +2009,8 @@ pub contract Token { serialized_params[i + offset] = serialized_member[i]; }; offset = offset + serialized_member_len; - let serialized_member: [Field; 1] = ::serialize(authwit_nonce); - let serialized_member_len: u32 = ::N; - for i in 0_u32..serialized_member_len { - serialized_params[i + offset] = serialized_member[i]; - }; - offset = offset + serialized_member_len; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2359186546_Field); - let calldata: [Field; 1 + 4] = [selector.to_field()].concat(serialized_params); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3891283455_Field); + let calldata: [Field; 1 + 2] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); @@ -2015,15 +2024,6 @@ pub contract Token { aztec::oracle::execution_cache::store(calldata, calldata_hash); self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); } - - pub fn set_admin(self, new_admin: AztecAddress) { - let serialized_params: [Field; 1] = ::serialize(new_admin); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(2519591682_Field); - let calldata: [Field; 1 + 1] = [selector.to_field()].concat(serialized_params); - let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); - aztec::oracle::execution_cache::store(calldata, calldata_hash); - self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, false, false); - } } pub struct EnqueueSelfStatic { @@ -2041,6 +2041,15 @@ pub contract Token { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, true, false); } + pub fn public_get_symbol(self) { + let serialized_params: [Field; 0] = []; + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3454394185_Field); + let calldata: [Field; 1 + 0] = [selector.to_field()].concat(serialized_params); + let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); + aztec::oracle::execution_cache::store(calldata, calldata_hash); + self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, true, false); + } + pub fn public_get_decimals(self) { let serialized_params: [Field; 0] = []; let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(1613003496_Field); @@ -2059,9 +2068,9 @@ pub contract Token { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, true, false); } - pub fn balance_of_public(self, owner: AztecAddress) { - let serialized_params: [Field; 1] = ::serialize(owner); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4286138866_Field); + pub fn is_minter(self, minter: AztecAddress) { + let serialized_params: [Field; 1] = ::serialize(minter); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3315237398_Field); let calldata: [Field; 1 + 1] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); @@ -2077,18 +2086,9 @@ pub contract Token { self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, true, false); } - pub fn public_get_symbol(self) { - let serialized_params: [Field; 0] = []; - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3454394185_Field); - let calldata: [Field; 1 + 0] = [selector.to_field()].concat(serialized_params); - let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); - aztec::oracle::execution_cache::store(calldata, calldata_hash); - self.context.call_public_function_with_calldata_hash(self.address, calldata_hash, true, false); - } - - pub fn is_minter(self, minter: AztecAddress) { - let serialized_params: [Field; 1] = ::serialize(minter); - let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(3315237398_Field); + pub fn balance_of_public(self, owner: AztecAddress) { + let serialized_params: [Field; 1] = ::serialize(owner); + let selector: aztec::protocol::abis::function_selector::FunctionSelector = ::from_field(4286138866_Field); let calldata: [Field; 1 + 1] = [selector.to_field()].concat(serialized_params); let calldata_hash: Field = aztec::hash::hash_calldata_array(calldata); aztec::oracle::execution_cache::store(calldata, calldata_hash); @@ -2113,16 +2113,6 @@ pub contract Token { pub context: Context, } - impl CallInternal { - pub unconstrained fn _finalize_mint_to_private(self, completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { - __aztec_nr_internals___finalize_mint_to_private(self.context, completer, amount, partial_note) - } - - pub unconstrained fn _finalize_transfer_to_private(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { - __aztec_nr_internals___finalize_transfer_to_private(self.context, from_and_completer, amount, partial_note) - } - } - impl CallInternal<&mut aztec::context::PrivateContext> { pub fn subtract_balance(self, account: AztecAddress, amount: u128, max_notes: u32) -> u128 { __aztec_nr_internals__subtract_balance(self.context, account, amount, max_notes) @@ -2133,6 +2123,16 @@ pub contract Token { } } + impl CallInternal { + pub unconstrained fn _finalize_transfer_to_private(self, from_and_completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { + __aztec_nr_internals___finalize_transfer_to_private(self.context, from_and_completer, amount, partial_note) + } + + pub unconstrained fn _finalize_mint_to_private(self, completer: AztecAddress, amount: u128, partial_note: PartialUintNote) { + __aztec_nr_internals___finalize_mint_to_private(self.context, completer, amount, partial_note) + } + } + pub unconstrained fn public_dispatch(selector: Field) { if selector == 1578322623_Field { let input_calldata: [Field; 64] = aztec::oracle::avm::calldata_copy(1_u32, ((::N + as aztec::protocol::traits::Serialize>::N) + as aztec::protocol::traits::Serialize>::N) + ::N); @@ -2142,14 +2142,14 @@ pub contract Token { let arg2: str<31> = as aztec::protocol::traits::Deserialize>::stream_deserialize(&mut reader); let arg3: u8 = ::stream_deserialize(&mut reader); __aztec_nr_internals__constructor(arg0, arg1, arg2, arg3); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2519591682_Field { let input_calldata: [Field; 1] = aztec::oracle::avm::calldata_copy(1_u32, ::N); let mut reader: aztec::protocol::utils::reader::Reader<1> = aztec::protocol::utils::reader::Reader::<1>::new(input_calldata); let arg0: AztecAddress = ::stream_deserialize(&mut reader); __aztec_nr_internals__set_admin(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 3367753652_Field { let return_value: [Field; 1] = ::serialize(__aztec_nr_internals__public_get_name()); @@ -2191,7 +2191,7 @@ pub contract Token { let arg0: AztecAddress = ::stream_deserialize(&mut reader); let arg1: bool = ::stream_deserialize(&mut reader); __aztec_nr_internals__set_minter(arg0, arg1); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1159421870_Field { let input_calldata: [Field; 2] = aztec::oracle::avm::calldata_copy(1_u32, ::N + ::N); @@ -2199,7 +2199,7 @@ pub contract Token { let arg0: AztecAddress = ::stream_deserialize(&mut reader); let arg1: u128 = ::stream_deserialize(&mut reader); __aztec_nr_internals__mint_to_public(arg0, arg1); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2359186546_Field { let input_calldata: [Field; 4] = aztec::oracle::avm::calldata_copy(1_u32, ((::N + ::N) + ::N) + ::N); @@ -2209,7 +2209,7 @@ pub contract Token { let arg2: u128 = ::stream_deserialize(&mut reader); let arg3: Field = ::stream_deserialize(&mut reader); __aztec_nr_internals__transfer_in_public(arg0, arg1, arg2, arg3); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 3323048133_Field { let input_calldata: [Field; 3] = aztec::oracle::avm::calldata_copy(1_u32, (::N + ::N) + ::N); @@ -2218,7 +2218,7 @@ pub contract Token { let arg1: u128 = ::stream_deserialize(&mut reader); let arg2: Field = ::stream_deserialize(&mut reader); __aztec_nr_internals__burn_public(arg0, arg1, arg2); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2599745508_Field { let input_calldata: [Field; 2] = aztec::oracle::avm::calldata_copy(1_u32, ::N + ::N); @@ -2226,7 +2226,7 @@ pub contract Token { let arg0: u128 = ::stream_deserialize(&mut reader); let arg1: PartialUintNote = ::stream_deserialize(&mut reader); __aztec_nr_internals__finalize_transfer_to_private(arg0, arg1); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1930102437_Field { let input_calldata: [Field; 3] = aztec::oracle::avm::calldata_copy(1_u32, (::N + ::N) + ::N); @@ -2235,7 +2235,7 @@ pub contract Token { let arg1: u128 = ::stream_deserialize(&mut reader); let arg2: PartialUintNote = ::stream_deserialize(&mut reader); __aztec_nr_internals___finalize_transfer_to_private_unsafe(arg0, arg1, arg2); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 1065137297_Field { let input_calldata: [Field; 2] = aztec::oracle::avm::calldata_copy(1_u32, ::N + ::N); @@ -2243,7 +2243,7 @@ pub contract Token { let arg0: u128 = ::stream_deserialize(&mut reader); let arg1: PartialUintNote = ::stream_deserialize(&mut reader); __aztec_nr_internals__finalize_mint_to_private(arg0, arg1); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 4058507562_Field { let input_calldata: [Field; 3] = aztec::oracle::avm::calldata_copy(1_u32, (::N + ::N) + ::N); @@ -2252,7 +2252,7 @@ pub contract Token { let arg1: u128 = ::stream_deserialize(&mut reader); let arg2: PartialUintNote = ::stream_deserialize(&mut reader); __aztec_nr_internals___finalize_mint_to_private_unsafe(arg0, arg1, arg2); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 3891283455_Field { let input_calldata: [Field; 2] = aztec::oracle::avm::calldata_copy(1_u32, ::N + ::N); @@ -2260,14 +2260,14 @@ pub contract Token { let arg0: AztecAddress = ::stream_deserialize(&mut reader); let arg1: u128 = ::stream_deserialize(&mut reader); __aztec_nr_internals___increase_public_balance(arg0, arg1); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; if selector == 2253390209_Field { let input_calldata: [Field; 1] = aztec::oracle::avm::calldata_copy(1_u32, ::N); let mut reader: aztec::protocol::utils::reader::Reader<1> = aztec::protocol::utils::reader::Reader::<1>::new(input_calldata); let arg0: u128 = ::stream_deserialize(&mut reader); __aztec_nr_internals___reduce_total_supply(arg0); - aztec::oracle::avm::avm_return([].as_slice()); + aztec::oracle::avm::avm_return([].as_vector()); }; panic(f"Unknown selector {selector}") } diff --git a/noir-projects/noir-contracts/bootstrap.sh b/noir-projects/noir-contracts/bootstrap.sh index 7394b8c60595..47626add7a86 100755 --- a/noir-projects/noir-contracts/bootstrap.sh +++ b/noir-projects/noir-contracts/bootstrap.sh @@ -123,7 +123,35 @@ function compile { local json_path="./target/$filename" local contract_hash=$(get_contract_hash $1 $2) if ! cache_download contract-$contract_hash.tar.gz; then - $NARGO compile --package $contract --inliner-aggressiveness 0 --deny-warnings + # Aztec private app circuits intentionally defer validation of some oracle outputs (including + # note-read requests) to the private kernels. Noir's local underconstrained and Brillig coverage + # checks cannot see those downstream constraints. + # + # beta.25 also recognizes constant fields in the fixed PrivateCircuitPublicInputs ABI and + # reports them as ReturnConstant warnings. Those fields cannot be removed from the protocol ABI, + # so allow that one diagnostic while continuing to reject every other compiler warning or bug. + local diagnostics_file=$(mktemp) + if ! $NARGO compile \ + --package $contract \ + --inliner-aggressiveness 0 \ + --skip-underconstrained-check \ + --skip-brillig-constraints-check \ + 2>"$diagnostics_file"; then + cat "$diagnostics_file" >&2 + rm "$diagnostics_file" + return 1 + fi + cat "$diagnostics_file" >&2 + + local unexpected_diagnostics + unexpected_diagnostics=$(grep -E '^(warning|bug):' "$diagnostics_file" \ + | grep -Fvx 'warning: Return variable contains a constant value' || true) + rm "$diagnostics_file" + if [ -n "$unexpected_diagnostics" ]; then + echo_stderr "Unexpected Noir compiler diagnostics:" + echo_stderr "$unexpected_diagnostics" + return 1 + fi $BB aztec_process -i $json_path cache_upload contract-$contract_hash.tar.gz $json_path fi diff --git a/noir-projects/noir-contracts/contracts/test/state_vars_contract/src/main.nr b/noir-projects/noir-contracts/contracts/test/state_vars_contract/src/main.nr index cff9cf2610b3..ddcd17f6d0a8 100644 --- a/noir-projects/noir-contracts/contracts/test/state_vars_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/test/state_vars_contract/src/main.nr @@ -4,7 +4,7 @@ use aztec::macros::aztec; #[aztec] pub contract StateVars { use aztec::{ - macros::{functions::{external, view}, storage::{storage, storage_no_init}}, + macros::{functions::{external, view}, storage::storage_no_init}, messages::delivery::MessageDelivery, protocol::{address::AztecAddress, traits::{Deserialize, Packable, Serialize}}, state_vars::{Owned, PrivateImmutable, PrivateMutable, PublicImmutable, PublicMutable, StateVariable}, diff --git a/noir-projects/noir-contracts/contracts/test/storage_proof_test_contract/src/main.nr b/noir-projects/noir-contracts/contracts/test/storage_proof_test_contract/src/main.nr index 2f0b597d10b4..0349fab8140a 100644 --- a/noir-projects/noir-contracts/contracts/test/storage_proof_test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/test/storage_proof_test_contract/src/main.nr @@ -12,7 +12,7 @@ contract StorageProofTest { utils::to_nibbles, }; use aztec::{ - macros::functions::{external, internal, only_self, view}, + macros::functions::{external, only_self, view}, oracle::capsules, protocol::{ address::{AztecAddress, EthAddress}, diff --git a/noir/noir-repo b/noir/noir-repo index c57152f91260..75061fab1598 160000 --- a/noir/noir-repo +++ b/noir/noir-repo @@ -1 +1 @@ -Subproject commit c57152f91260ecdb9faad4efc20abb14b6d2ece7 +Subproject commit 75061fab15986eedee4e7d9104ff87dd9fa4ca10 diff --git a/scripts/socket-fix-ci.sh b/scripts/socket-fix-ci.sh index 86f22c40591d..2e77d48e85c4 100755 --- a/scripts/socket-fix-ci.sh +++ b/scripts/socket-fix-ci.sh @@ -122,7 +122,7 @@ ${LINKS}" ${LINKS}" fi - data=$(jq -n --arg channel "#team-alpha" --arg text "$TEXT" '{channel: $channel, text: $text}') + data=$(jq -n --arg channel "#team-alpha-ci" --arg text "$TEXT" '{channel: $channel, text: $text}') curl -X POST https://slack.com/api/chat.postMessage \ -H "Authorization: Bearer $SLACK_BOT_TOKEN" \ diff --git a/yarn-project/foundation/src/config/env_var.ts b/yarn-project/foundation/src/config/env_var.ts index 43b33564aeb3..09971c31be3e 100644 --- a/yarn-project/foundation/src/config/env_var.ts +++ b/yarn-project/foundation/src/config/env_var.ts @@ -100,6 +100,7 @@ export type EnvVar = | 'NETWORK' | 'NETWORK_CONFIG_LOCATION' | 'ALLOW_OVERRIDING_NETWORK_CONFIG' + | 'USE_AWS_LOGGING' | 'USE_GCLOUD_LOGGING' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' diff --git a/yarn-project/foundation/src/log/aws-logger-config.ts b/yarn-project/foundation/src/log/aws-logger-config.ts new file mode 100644 index 000000000000..a9c23e32c71c --- /dev/null +++ b/yarn-project/foundation/src/log/aws-logger-config.ts @@ -0,0 +1,32 @@ +import type { pino } from 'pino'; + +function getSeverity(label: string): { severityText: string; severityNumber: number } { + switch (label) { + case 'trace': + return { severityText: 'TRACE', severityNumber: 1 }; + case 'debug': + return { severityText: 'DEBUG', severityNumber: 5 }; + case 'verbose': + return { severityText: 'VERBOSE', severityNumber: 7 }; + case 'info': + return { severityText: 'INFO', severityNumber: 9 }; + case 'warn': + return { severityText: 'WARN', severityNumber: 13 }; + case 'error': + return { severityText: 'ERROR', severityNumber: 17 }; + case 'fatal': + return { severityText: 'FATAL', severityNumber: 21 }; + default: + return { severityText: 'UNSPECIFIED', severityNumber: 0 }; + } +} + +/** Pino configuration that adds OpenTelemetry severity fields understood by CloudWatch Logs. */ +export const AWSCloudLoggerConfig = { + messageKey: 'msg', + formatters: { + level(label: string, level: number): object { + return { level, ...getSeverity(label) }; + }, + }, +} satisfies pino.LoggerOptions; diff --git a/yarn-project/foundation/src/log/pino-logger.ts b/yarn-project/foundation/src/log/pino-logger.ts index ce264b40da56..b4a6a12b117e 100644 --- a/yarn-project/foundation/src/log/pino-logger.ts +++ b/yarn-project/foundation/src/log/pino-logger.ts @@ -7,6 +7,7 @@ import { inspect } from 'util'; import { compactArray } from '../collection/array.js'; import type { EnvVar } from '../config/index.js'; import { parseBooleanEnv } from '../config/parse-env.js'; +import { AWSCloudLoggerConfig } from './aws-logger-config.js'; import { convertBigintsToStrings } from './bigint-utils.js'; import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js'; import { getLogLevelFromFilters, parseLogLevelEnvVar } from './log-filters.js'; @@ -134,8 +135,17 @@ export const [logLevel, logFilters] = parseLogLevelEnvVar(process.env.LOG_LEVEL, // Define custom logging levels for pino. const customLevels = { verbose: 25 }; -// Global pino options, tweaked for google cloud if running there. +// Global pino options, tweaked for the active cloud logging backend. const useGcloudLogging = parseBooleanEnv(process.env['USE_GCLOUD_LOGGING' satisfies EnvVar]); +const useAwsLogging = parseBooleanEnv(process.env['USE_AWS_LOGGING' satisfies EnvVar]); +const loggingConfig = useGcloudLogging + ? GoogleCloudLoggerConfig + : useAwsLogging + ? AWSCloudLoggerConfig + : { + formatters: {}, + messageKey: 'msg', + }; const redactedPaths = [ 'validatorPrivateKeys', @@ -156,7 +166,7 @@ const redactedPaths = [ const pinoOpts: pino.LoggerOptions = { customLevels, - messageKey: 'msg', + messageKey: loggingConfig.messageKey, useOnlyCustomLevels: false, level: logLevel, redact: { @@ -170,8 +180,8 @@ const pinoOpts: pino.LoggerOptions = { }, formatters: { log: obj => convertBigintsToStrings(obj) as Record, + ...loggingConfig.formatters, }, - ...(useGcloudLogging ? GoogleCloudLoggerConfig : {}), }; export const levels = { @@ -241,7 +251,7 @@ const pinoPrettyBaseOpts = { destination: 2, sync: true, colorize: useColor, - ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity', + ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity,severityText,severityNumber', customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10', customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray', minimumLevel: 'trace' as const, diff --git a/yarn-project/stdlib/src/abi/abi.ts b/yarn-project/stdlib/src/abi/abi.ts index ff92bc344e7d..582c3af0fecf 100644 --- a/yarn-project/stdlib/src/abi/abi.ts +++ b/yarn-project/stdlib/src/abi/abi.ts @@ -27,6 +27,14 @@ export type AbiValue = | IntegerValue | StructValue; +/** An exported value together with the name of the global that produced it. */ +export interface AbiNamedValue { + /** The name of the exported global. */ + name: string; + /** The exported value. */ + value: AbiValue; +} + export const AbiValueSchema: z.ZodType = z.discriminatedUnion('kind', [ z.object({ kind: z.literal('boolean'), value: z.boolean() }), z.object({ kind: z.literal('string'), value: z.string() }), diff --git a/yarn-project/stdlib/src/abi/contract_artifact.test.ts b/yarn-project/stdlib/src/abi/contract_artifact.test.ts index 4b41394fe44a..de89d86dadc8 100644 --- a/yarn-project/stdlib/src/abi/contract_artifact.test.ts +++ b/yarn-project/stdlib/src/abi/contract_artifact.test.ts @@ -1,10 +1,38 @@ +/* eslint-disable camelcase */ +import { Fr } from '@aztec/foundation/curves/bn254'; + +import type { NoirCompiledContract } from '../noir/index.js'; import { getBenchmarkContractArtifact } from '../tests/fixtures.js'; +import type { AbiValue } from './abi.js'; import { contractArtifactFromBuffer, contractArtifactToBuffer, + loadContractArtifact, loadContractArtifactWithValidation, } from './contract_artifact.js'; +const bareStorageLayout = { + kind: 'struct', + fields: [ + { name: 'contract_name', value: { kind: 'string', value: 'TestContract' } }, + { + name: 'fields', + value: { + kind: 'struct', + fields: [ + { + name: 'balance', + value: { + kind: 'struct', + fields: [{ name: 'slot', value: { kind: 'integer', sign: false, value: '01' } }], + }, + }, + ], + }, + }, + ], +} satisfies AbiValue; + describe('contract_artifact', () => { it('serializes and deserializes an instance', () => { const artifact = getBenchmarkContractArtifact(); @@ -31,4 +59,50 @@ describe('contract_artifact', () => { expect(() => loadContractArtifactWithValidation(input)).toThrow(); }); }); + + it('loads named global values emitted by Noir', () => { + const artifact = loadContractArtifact({ + name: 'TestContract', + aztec_version: '1.0.0', + transpiled: true, + functions: [], + outputs: { + structs: {}, + globals: { + storage: [ + { + name: 'STORAGE_LAYOUT_TestContract', + value: bareStorageLayout, + }, + ], + }, + }, + file_map: {}, + } satisfies NoirCompiledContract); + + expect(artifact.outputs.globals.storage[0]).toEqual({ + kind: 'struct', + fields: expect.any(Array), + }); + expect(artifact.storageLayout).toEqual({ balance: { slot: new Fr(1) } }); + }); + + it('loads bare global values emitted by older Noir versions', () => { + const artifact = loadContractArtifact({ + name: 'TestContract', + aztec_version: '1.0.0', + transpiled: true, + functions: [], + outputs: { + structs: {}, + globals: { + storage: [bareStorageLayout], + }, + }, + file_map: {}, + } satisfies NoirCompiledContract); + + expect(artifact.outputs.globals.storage).toEqual([bareStorageLayout]); + expect(artifact.storageLayout).toEqual({ balance: { slot: new Fr(1) } }); + }); }); diff --git a/yarn-project/stdlib/src/abi/contract_artifact.ts b/yarn-project/stdlib/src/abi/contract_artifact.ts index d04f3fea090f..8836fc6b0fdc 100644 --- a/yarn-project/stdlib/src/abi/contract_artifact.ts +++ b/yarn-project/stdlib/src/abi/contract_artifact.ts @@ -13,7 +13,9 @@ import { type ABIParameter, type ABIParameterVisibility, ARTIFACT_VERSION_BEFORE_INJECTION, + type AbiNamedValue, type AbiType, + type AbiValue, type BasicValue, type ContractArtifact, ContractArtifactSchema, @@ -265,20 +267,24 @@ function hasKernelFunctionInputs(params: ABIParameter[]): boolean { /** * Generates a storage layout for the contract artifact. - * @param input - The compiled noir contract to get storage layout for + * @param contractName - The name of the compiled Noir contract. + * @param globals - The normalized globals exported by the contract. * @returns A storage layout for the contract. */ -function getStorageLayout(input: NoirCompiledContract) { +function getStorageLayout(contractName: string, globals: Record) { // If another contract is imported by the main contract, its storage layout its going to also show up here. // The layout export includes the contract name, so here we can find the one that belongs to the current one and // ignore the rest. - const storageExports = input.outputs.globals.storage ? (input.outputs.globals.storage as StructValue[]) : []; - const storageForContract = storageExports.find(storageExport => { + const storageExports = globals.storage ?? []; + const storageForContract = storageExports.find((storageExport): storageExport is StructValue => { + if (storageExport.kind !== 'struct') { + return false; + } const contractNameField = storageExport.fields.find(field => field.name === 'contract_name')?.value as BasicValue< 'string', string >; - return contractNameField.value === input.name; + return contractNameField.value === contractName; }); const storageFields = storageForContract ? ((storageForContract.fields.find(field => field.name == 'fields') as TypedStructFieldValue).value @@ -299,6 +305,22 @@ function getStorageLayout(input: NoirCompiledContract) { }, {}); } +function isAbiNamedValue(value: AbiNamedValue | AbiValue): value is AbiNamedValue { + return 'name' in value; +} + +function normalizeContractOutputs(outputs: NoirCompiledContract['outputs']): ContractArtifact['outputs'] { + return { + structs: outputs.structs, + globals: Object.fromEntries( + Object.entries(outputs.globals).map(([tag, values]) => [ + tag, + values.map(value => (isAbiNamedValue(value) ? value.value : value)), + ]), + ), + }; +} + /** * Given a post-processed Nargo output defined as `contract` generates an Aztec-compatible contract artifact. * @@ -309,6 +331,7 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif if (!contract.transpiled) { throw new Error("Contract's public bytecode has not been transpiled"); } + const outputs = normalizeContractOutputs(contract.outputs); return ContractArtifactSchema.parse({ name: contract.name, aztecVersion: contract.aztec_version, @@ -316,8 +339,8 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif nonDispatchPublicFunctions: contract.functions .filter(f => !retainBytecode(f)) .map(f => generateFunctionAbi(f, contract)), - outputs: contract.outputs, - storageLayout: getStorageLayout(contract), + outputs, + storageLayout: getStorageLayout(contract.name, outputs.globals), fileMap: contract.file_map, }); } catch (err) { @@ -332,6 +355,7 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif */ function generateContractArtifactForPublic(contract: NoirCompiledContract): ContractArtifact { try { + const outputs = normalizeContractOutputs(contract.outputs); return ContractArtifactSchema.parse({ name: contract.name, aztecVersion: contract.aztec_version, @@ -339,8 +363,8 @@ function generateContractArtifactForPublic(contract: NoirCompiledContract): Cont nonDispatchPublicFunctions: contract.functions .filter(f => !retainBytecode(f)) .map(f => generateFunctionAbi(f, contract)), - outputs: contract.outputs, - storageLayout: getStorageLayout(contract), + outputs, + storageLayout: getStorageLayout(contract.name, outputs.globals), fileMap: contract.file_map, }); } catch (err) { diff --git a/yarn-project/stdlib/src/noir/index.ts b/yarn-project/stdlib/src/noir/index.ts index 3e7c2ff73984..56888cafe4c3 100644 --- a/yarn-project/stdlib/src/noir/index.ts +++ b/yarn-project/stdlib/src/noir/index.ts @@ -2,6 +2,7 @@ import type { ABIParameter, ABIParameterVisibility, AbiErrorType, + AbiNamedValue, AbiType, AbiValue, DebugFileMap, @@ -73,7 +74,7 @@ export interface NoirCompiledContract { /** The events of the contract */ outputs: { structs: Record; - globals: Record; + globals: Record; }; /** The map of file ID to the source code and path of the file. */ file_map: DebugFileMap; diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index ff07b196ee2f..98c17e5d8500 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -1621,7 +1621,7 @@ __metadata: version: 0.0.0-use.local resolution: "@aztec/noir-noir_codegen@portal:../noir/packages/noir_codegen::locator=%40aztec%2Faztec3-packages%40workspace%3A." dependencies: - "@aztec/noir-types": "npm:1.0.0-beta.22" + "@aztec/noir-types": "npm:1.0.0-beta.25" glob: "npm:^13.0.6" ts-command-line-args: "npm:^2.5.1" bin: @@ -1630,14 +1630,14 @@ __metadata: linkType: soft "@aztec/noir-noir_js@file:../noir/packages/noir_js::locator=%40aztec%2Faztec3-packages%40workspace%3A.": - version: 1.0.0-beta.22 - resolution: "@aztec/noir-noir_js@file:../noir/packages/noir_js#../noir/packages/noir_js::hash=893a3e&locator=%40aztec%2Faztec3-packages%40workspace%3A." + version: 1.0.0-beta.25 + resolution: "@aztec/noir-noir_js@file:../noir/packages/noir_js#../noir/packages/noir_js::hash=a013f4&locator=%40aztec%2Faztec3-packages%40workspace%3A." dependencies: - "@aztec/noir-acvm_js": "npm:1.0.0-beta.22" - "@aztec/noir-noirc_abi": "npm:1.0.0-beta.22" - "@aztec/noir-types": "npm:1.0.0-beta.22" + "@aztec/noir-acvm_js": "npm:1.0.0-beta.25" + "@aztec/noir-noirc_abi": "npm:1.0.0-beta.25" + "@aztec/noir-types": "npm:1.0.0-beta.25" pako: "npm:^2.1.0" - checksum: 10/b1c958ddcfc861e7f14d35bd29d654ba985baa7ca57530cdf2c13fae821b67b8a17d0df599f8ed697fc7a08bccde094b4aec145d2f07d0ce18d97d5731f6785f + checksum: 10/2bcad9b29f57968fa3ffe92b648eeec9515995867f3841fca4aa506f522424090b1783db8c54abe094b2dd2f3bdc65ea1cfb40c5272065eba96b62554ad6fc5f languageName: node linkType: hard @@ -1645,7 +1645,7 @@ __metadata: version: 0.0.0-use.local resolution: "@aztec/noir-noirc_abi@portal:../noir/packages/noirc_abi::locator=%40aztec%2Faztec3-packages%40workspace%3A." dependencies: - "@aztec/noir-types": "npm:1.0.0-beta.22" + "@aztec/noir-types": "npm:1.0.0-beta.25" languageName: node linkType: soft