@aztec/ivc-integration 1.0.0-staging.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"noir_version":"1.0.0-beta.7+0000000000000000000000000000000000000000","hash":"11326672643280938988","abi":{"parameters":[{"name":"a","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"},{"name":"b","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"}],"return_type":{"abi_type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"public"},"error_types":{"5019202896831570965":{"error_kind":"string","string":"attempt to add with overflow"}}},"bytecode":"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","debug_symbols":"tZPRioQgFIbfxesu0tSceZVlCSsbBLFwdGGJ3n1PYc50YSzEXB31+H/n+OOZUa/a8Gi0HcYnun/NqHXaGP1ozNhJr0cLp/NSoH3beKcUHKG3PKgm6ZT16G6DMQX6kSZsl56TtFv00kG2LJCyPUQADtqodbUUL3WZl2LKohizKsnZUY/zeipwHQFUsNuLgA8EckJgZSKwiuQIpz3UJBIYptke6IkLvEo21FgkAiH/9pHzBKA5H/llH+vLPvLLPt4+6qMQEUAwzv7Hs89Q8Z1AaUkPj/iGney0OwwhIpAsUAVY6ItCABPYGpa1itOyNSpO6xBs9za8/nfaM/t4T27sVB+cWmtsOaj6Bw==","file_map":{"22":{"source":"pub mod hash;\npub mod aes128;\npub mod array;\npub mod slice;\npub mod ecdsa_secp256k1;\npub mod ecdsa_secp256r1;\npub mod embedded_curve_ops;\npub mod field;\npub mod collections;\npub mod compat;\npub mod convert;\npub mod option;\npub mod string;\npub mod test;\npub mod cmp;\npub mod ops;\npub mod default;\npub mod prelude;\npub mod runtime;\npub mod meta;\npub mod append;\npub mod mem;\npub mod panic;\npub mod hint;\n\nuse convert::AsPrimitive;\n\n// Oracle calls are required to be wrapped in an unconstrained function\n// Thus, the only argument to the `println` oracle is expected to always be an ident\n#[oracle(print)]\nunconstrained fn print_oracle<T>(with_newline: bool, input: T) {}\n\nunconstrained fn print_unconstrained<T>(with_newline: bool, input: T) {\n print_oracle(with_newline, input);\n}\n\npub fn println<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(true, input);\n }\n}\n\npub fn print<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(false, input);\n }\n}\n\npub fn verify_proof<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n) {\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, 0);\n}\n\npub fn verify_proof_with_type<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(proof_type);\n }\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, proof_type);\n}\n\n#[foreign(recursive_aggregation)]\nfn verify_proof_internal<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {}\n\n// Asserts that the given value is known at compile-time.\n// Useful for debugging for-loop bounds.\n#[builtin(assert_constant)]\npub fn assert_constant<T>(x: T) {}\n\n// Asserts that the given value is both true and known at compile-time.\n// The message can be a string, a format string, or any value, as long as it is known at compile-time\n#[builtin(static_assert)]\npub fn static_assert<T>(predicate: bool, message: T) {}\n\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_add(y)\")]\npub fn wrapping_add<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() + y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_sub(y)\")]\npub fn wrapping_sub<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n //340282366920938463463374607431768211456 is 2^128, it is used to avoid underflow\n AsPrimitive::as_(x.as_() + 340282366920938463463374607431768211456 - y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_mul(y)\")]\npub fn wrapping_mul<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() * y.as_())\n}\n\n#[builtin(as_witness)]\npub fn as_witness(x: Field) {}\n\nmod tests {\n use super::ops::arith::WrappingMul;\n\n #[test(should_fail_with = \"custom message\")]\n fn test_static_assert_custom_message() {\n super::static_assert(1 == 2, \"custom message\");\n }\n\n #[test]\n fn test_wrapping_mul() {\n let zero: u128 = 0;\n let one: u128 = 1;\n let two_pow_64: u128 = 0x10000000000000000;\n let u128_max: u128 = 0xffffffffffffffffffffffffffffffff;\n\n // 1*0==0\n assert_eq(zero, zero.wrapping_mul(one));\n\n // 0*1==0\n assert_eq(zero, one.wrapping_mul(zero));\n\n // 1*1==1\n assert_eq(one, one.wrapping_mul(one));\n\n // 0 * ( 1 << 64 ) == 0\n assert_eq(zero, zero.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * 0 == 0\n assert_eq(zero, two_pow_64.wrapping_mul(zero));\n\n // 1 * ( 1 << 64 ) == 1 << 64\n assert_eq(two_pow_64, two_pow_64.wrapping_mul(one));\n\n // ( 1 << 64 ) * 1 == 1 << 64\n assert_eq(two_pow_64, one.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * ( 1 << 64 ) == 1 << 64\n assert_eq(zero, two_pow_64.wrapping_mul(two_pow_64));\n // -1 * -1 == 1\n assert_eq(one, u128_max.wrapping_mul(u128_max));\n }\n}\n","path":"std/lib.nr"},"50":{"source":"use mock_types::{PreviousRollupData, RollupPublicInputs};\n\nfn main(a: PreviousRollupData, b: PreviousRollupData) -> pub RollupPublicInputs {\n a.verify(false);\n b.verify(false);\n\n a.public_inputs().merge(b.public_inputs())\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-rollup-merge/src/main.nr"},"51":{"source":"pub global MAX_COMMITMENTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENTS_PER_TX: u32 = 4;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_TX: u32 = 4;\n\npub use protocol_types::{\n abis::avm_circuit_public_inputs::AvmCircuitPublicInputs,\n constants::{\n AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,\n CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,\n PROOF_TYPE_AVM, PROOF_TYPE_OINK, PROOF_TYPE_PG, PROOF_TYPE_ROLLUP_HONK,\n PROOF_TYPE_ROOT_ROLLUP_HONK, ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS,\n TUBE_PROOF_LENGTH,\n },\n proof::verification_key::{RollupHonkVerificationKey, VerificationKey},\n traits::Serialize,\n};\n\npub struct TxRequest {\n pub number_of_calls: u32,\n}\n\npub struct AppPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_CALL],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n}\n\nimpl Default for AppPublicInputs {\n fn default() -> Self {\n Self {\n commitments: [0; MAX_COMMITMENTS_PER_CALL],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n }\n }\n}\n\npub struct PrivateKernelPublicInputs {\n pub remaining_calls: u32,\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n}\n\nimpl Default for PrivateKernelPublicInputs {\n fn default() -> Self {\n Self {\n remaining_calls: 0,\n commitments: [0; MAX_COMMITMENTS_PER_TX],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n }\n }\n}\n\npub struct PrivateKernelPublicInputsBuilder {\n pub remaining_calls: u32,\n pub commitments: BoundedVec<Field, MAX_COMMITMENTS_PER_TX>,\n pub read_requests: BoundedVec<Field, MAX_COMMITMENT_READ_REQUESTS_PER_TX>,\n}\n\nimpl PrivateKernelPublicInputsBuilder {\n pub fn from_tx(tx: TxRequest) -> Self {\n Self {\n remaining_calls: tx.number_of_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n }\n }\n\n pub fn from_previous_kernel(prev_kernel_public_inputs: PrivateKernelPublicInputs) -> Self {\n let mut builder = PrivateKernelPublicInputsBuilder {\n remaining_calls: prev_kernel_public_inputs.remaining_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n };\n for i in 0..MAX_COMMITMENTS_PER_TX {\n if prev_kernel_public_inputs.commitments[i] != 0 {\n builder.commitments.push(prev_kernel_public_inputs.commitments[i]);\n }\n }\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_TX {\n if prev_kernel_public_inputs.read_requests[i] != 0 {\n builder.read_requests.push(prev_kernel_public_inputs.read_requests[i]);\n }\n }\n builder\n }\n\n pub fn ingest_app_inputs(&mut self, app_inputs: AppPublicInputs) {\n for i in 0..MAX_COMMITMENTS_PER_CALL {\n if app_inputs.commitments[i] != 0 {\n self.commitments.push(app_inputs.commitments[i]);\n }\n }\n\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_CALL {\n if app_inputs.read_requests[i] != 0 {\n self.read_requests.push(app_inputs.read_requests[i]);\n }\n }\n\n self.remaining_calls -= 1;\n }\n\n pub fn finish(self) -> PrivateKernelPublicInputs {\n PrivateKernelPublicInputs {\n remaining_calls: self.remaining_calls,\n commitments: self.commitments.storage(),\n read_requests: self.read_requests.storage(),\n }\n }\n}\n\npub struct KernelPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n}\n\nimpl Default for KernelPublicInputs {\n fn default() -> Self {\n Self { commitments: [0; MAX_COMMITMENTS_PER_TX] }\n }\n}\n\nimpl Serialize<MAX_COMMITMENTS_PER_TX> for KernelPublicInputs {\n fn serialize(self) -> [Field; MAX_COMMITMENTS_PER_TX] {\n self.commitments\n }\n}\n\npub struct RollupPublicInputs {\n accumulated: u32,\n}\n\nimpl RollupPublicInputs {\n pub fn new(accumulated: u32) -> Self {\n Self { accumulated }\n }\n\n pub fn merge(self, other: Self) -> Self {\n Self { accumulated: self.accumulated + other.accumulated }\n }\n}\n\nimpl Serialize<1> for RollupPublicInputs {\n fn serialize(self) -> [Field; 1] {\n [self.accumulated as Field]\n }\n}\n\npub struct PreviousRollupData {\n base_or_merge_public_inputs: RollupPublicInputs,\n proof: [Field; NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH],\n vk: RollupHonkVerificationKey,\n}\n\nimpl PreviousRollupData {\n pub fn verify(self, is_root: bool) {\n let inputs = self.base_or_merge_public_inputs.serialize();\n\n std::verify_proof_with_type(\n self.vk.key,\n self.proof,\n inputs,\n self.vk.hash,\n if is_root {\n PROOF_TYPE_ROOT_ROLLUP_HONK\n } else {\n PROOF_TYPE_ROLLUP_HONK\n },\n );\n }\n\n pub fn public_inputs(self) -> RollupPublicInputs {\n self.base_or_merge_public_inputs\n }\n}\n\npub struct TubeData {\n pub public_inputs: KernelPublicInputs,\n pub proof: [Field; TUBE_PROOF_LENGTH],\n pub vk_data: VerificationKey<ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS>,\n}\n\nimpl TubeData {\n pub fn verify(self) {\n let inputs = KernelPublicInputs::serialize(self.public_inputs);\n std::verify_proof_with_type(\n self.vk_data.key,\n self.proof,\n inputs,\n self.vk_data.hash,\n PROOF_TYPE_ROLLUP_HONK,\n );\n }\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-types/src/lib.nr"}},"names":["main"],"brillig_names":[]}
1
+ {"noir_version":"1.0.0-beta.7+0000000000000000000000000000000000000000","hash":"8833319856034982440","abi":{"parameters":[{"name":"a","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"},{"name":"b","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"}],"return_type":{"abi_type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"public"},"error_types":{"5019202896831570965":{"error_kind":"string","string":"attempt to add with overflow"}}},"bytecode":"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","debug_symbols":"tZPfqoQgEMbfxesu1r/VvsrhEFa2CGLh6oFD9O47Rdl2YSzEXo06fr8ZP5wRtaoOj0rbrn+i+8+IaqeN0Y/K9I30urdwOk4Z2raVd0rBEXrLg2qQTlmP7jYYk6E/acJy6TlIu0QvHWRvGVK2hQjAThs1r6ZsV9/SUsz4KsacRjk/6nFazwTNVwATebkT8IFATgiURALlJEU47aEkG6EUyR7YiQuCRhtyXEQCIR/7KEQEsJSP4rKP+WUfxWUfy6/6WBQrgGCc/I9nn2EnMELY4RG/sJONdochRASSGaKAhb4YBDCBz2Gaqzgta6PWae2Cbd6G1/8PW2Yb78H1jWqDU3ONJQdVXw==","file_map":{"22":{"source":"pub mod hash;\npub mod aes128;\npub mod array;\npub mod slice;\npub mod ecdsa_secp256k1;\npub mod ecdsa_secp256r1;\npub mod embedded_curve_ops;\npub mod field;\npub mod collections;\npub mod compat;\npub mod convert;\npub mod option;\npub mod string;\npub mod test;\npub mod cmp;\npub mod ops;\npub mod default;\npub mod prelude;\npub mod runtime;\npub mod meta;\npub mod append;\npub mod mem;\npub mod panic;\npub mod hint;\n\nuse convert::AsPrimitive;\n\n// Oracle calls are required to be wrapped in an unconstrained function\n// Thus, the only argument to the `println` oracle is expected to always be an ident\n#[oracle(print)]\nunconstrained fn print_oracle<T>(with_newline: bool, input: T) {}\n\nunconstrained fn print_unconstrained<T>(with_newline: bool, input: T) {\n print_oracle(with_newline, input);\n}\n\npub fn println<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(true, input);\n }\n}\n\npub fn print<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(false, input);\n }\n}\n\npub fn verify_proof<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n) {\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, 0);\n}\n\npub fn verify_proof_with_type<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(proof_type);\n }\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, proof_type);\n}\n\n#[foreign(recursive_aggregation)]\nfn verify_proof_internal<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {}\n\n// Asserts that the given value is known at compile-time.\n// Useful for debugging for-loop bounds.\n#[builtin(assert_constant)]\npub fn assert_constant<T>(x: T) {}\n\n// Asserts that the given value is both true and known at compile-time.\n// The message can be a string, a format string, or any value, as long as it is known at compile-time\n#[builtin(static_assert)]\npub fn static_assert<T>(predicate: bool, message: T) {}\n\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_add(y)\")]\npub fn wrapping_add<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() + y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_sub(y)\")]\npub fn wrapping_sub<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n //340282366920938463463374607431768211456 is 2^128, it is used to avoid underflow\n AsPrimitive::as_(x.as_() + 340282366920938463463374607431768211456 - y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_mul(y)\")]\npub fn wrapping_mul<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() * y.as_())\n}\n\n#[builtin(as_witness)]\npub fn as_witness(x: Field) {}\n\nmod tests {\n use super::ops::arith::WrappingMul;\n\n #[test(should_fail_with = \"custom message\")]\n fn test_static_assert_custom_message() {\n super::static_assert(1 == 2, \"custom message\");\n }\n\n #[test]\n fn test_wrapping_mul() {\n let zero: u128 = 0;\n let one: u128 = 1;\n let two_pow_64: u128 = 0x10000000000000000;\n let u128_max: u128 = 0xffffffffffffffffffffffffffffffff;\n\n // 1*0==0\n assert_eq(zero, zero.wrapping_mul(one));\n\n // 0*1==0\n assert_eq(zero, one.wrapping_mul(zero));\n\n // 1*1==1\n assert_eq(one, one.wrapping_mul(one));\n\n // 0 * ( 1 << 64 ) == 0\n assert_eq(zero, zero.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * 0 == 0\n assert_eq(zero, two_pow_64.wrapping_mul(zero));\n\n // 1 * ( 1 << 64 ) == 1 << 64\n assert_eq(two_pow_64, two_pow_64.wrapping_mul(one));\n\n // ( 1 << 64 ) * 1 == 1 << 64\n assert_eq(two_pow_64, one.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * ( 1 << 64 ) == 1 << 64\n assert_eq(zero, two_pow_64.wrapping_mul(two_pow_64));\n // -1 * -1 == 1\n assert_eq(one, u128_max.wrapping_mul(u128_max));\n }\n}\n","path":"std/lib.nr"},"50":{"source":"use mock_types::{PreviousRollupData, RollupPublicInputs};\n\nfn main(a: PreviousRollupData, b: PreviousRollupData) -> pub RollupPublicInputs {\n a.verify(false);\n b.verify(false);\n\n a.public_inputs().merge(b.public_inputs())\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-rollup-merge/src/main.nr"},"51":{"source":"pub global MAX_COMMITMENTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENTS_PER_TX: u32 = 4;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_TX: u32 = 4;\n\npub use protocol_types::{\n constants::{\n CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,\n PROOF_TYPE_OINK, PROOF_TYPE_PG, PROOF_TYPE_ROLLUP_HONK, PROOF_TYPE_ROOT_ROLLUP_HONK,\n ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS, TUBE_PROOF_LENGTH,\n },\n proof::verification_key::{RollupHonkVerificationKey, VerificationKey},\n traits::Serialize,\n};\n\npub struct TxRequest {\n pub number_of_calls: u32,\n}\n\npub struct AppPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_CALL],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n}\n\nimpl Default for AppPublicInputs {\n fn default() -> Self {\n Self {\n commitments: [0; MAX_COMMITMENTS_PER_CALL],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n }\n }\n}\n\npub struct PrivateKernelPublicInputs {\n pub remaining_calls: u32,\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n}\n\nimpl Default for PrivateKernelPublicInputs {\n fn default() -> Self {\n Self {\n remaining_calls: 0,\n commitments: [0; MAX_COMMITMENTS_PER_TX],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n }\n }\n}\n\npub struct PrivateKernelPublicInputsBuilder {\n pub remaining_calls: u32,\n pub commitments: BoundedVec<Field, MAX_COMMITMENTS_PER_TX>,\n pub read_requests: BoundedVec<Field, MAX_COMMITMENT_READ_REQUESTS_PER_TX>,\n}\n\nimpl PrivateKernelPublicInputsBuilder {\n pub fn from_tx(tx: TxRequest) -> Self {\n Self {\n remaining_calls: tx.number_of_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n }\n }\n\n pub fn from_previous_kernel(prev_kernel_public_inputs: PrivateKernelPublicInputs) -> Self {\n let mut builder = PrivateKernelPublicInputsBuilder {\n remaining_calls: prev_kernel_public_inputs.remaining_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n };\n for i in 0..MAX_COMMITMENTS_PER_TX {\n if prev_kernel_public_inputs.commitments[i] != 0 {\n builder.commitments.push(prev_kernel_public_inputs.commitments[i]);\n }\n }\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_TX {\n if prev_kernel_public_inputs.read_requests[i] != 0 {\n builder.read_requests.push(prev_kernel_public_inputs.read_requests[i]);\n }\n }\n builder\n }\n\n pub fn ingest_app_inputs(&mut self, app_inputs: AppPublicInputs) {\n for i in 0..MAX_COMMITMENTS_PER_CALL {\n if app_inputs.commitments[i] != 0 {\n self.commitments.push(app_inputs.commitments[i]);\n }\n }\n\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_CALL {\n if app_inputs.read_requests[i] != 0 {\n self.read_requests.push(app_inputs.read_requests[i]);\n }\n }\n\n self.remaining_calls -= 1;\n }\n\n pub fn finish(self) -> PrivateKernelPublicInputs {\n PrivateKernelPublicInputs {\n remaining_calls: self.remaining_calls,\n commitments: self.commitments.storage(),\n read_requests: self.read_requests.storage(),\n }\n }\n}\n\npub struct KernelPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n}\n\nimpl Default for KernelPublicInputs {\n fn default() -> Self {\n Self { commitments: [0; MAX_COMMITMENTS_PER_TX] }\n }\n}\n\nimpl Serialize<MAX_COMMITMENTS_PER_TX> for KernelPublicInputs {\n fn serialize(self) -> [Field; MAX_COMMITMENTS_PER_TX] {\n self.commitments\n }\n}\n\npub struct RollupPublicInputs {\n accumulated: u32,\n}\n\nimpl RollupPublicInputs {\n pub fn new(accumulated: u32) -> Self {\n Self { accumulated }\n }\n\n pub fn merge(self, other: Self) -> Self {\n Self { accumulated: self.accumulated + other.accumulated }\n }\n}\n\nimpl Serialize<1> for RollupPublicInputs {\n fn serialize(self) -> [Field; 1] {\n [self.accumulated as Field]\n }\n}\n\npub struct PreviousRollupData {\n base_or_merge_public_inputs: RollupPublicInputs,\n proof: [Field; NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH],\n vk: RollupHonkVerificationKey,\n}\n\nimpl PreviousRollupData {\n pub fn verify(self, is_root: bool) {\n let inputs = self.base_or_merge_public_inputs.serialize();\n\n std::verify_proof_with_type(\n self.vk.key,\n self.proof,\n inputs,\n self.vk.hash,\n if is_root {\n PROOF_TYPE_ROOT_ROLLUP_HONK\n } else {\n PROOF_TYPE_ROLLUP_HONK\n },\n );\n }\n\n pub fn public_inputs(self) -> RollupPublicInputs {\n self.base_or_merge_public_inputs\n }\n}\n\npub struct TubeData {\n pub public_inputs: KernelPublicInputs,\n pub proof: [Field; TUBE_PROOF_LENGTH],\n pub vk_data: VerificationKey<ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS>,\n}\n\nimpl TubeData {\n pub fn verify(self) {\n let inputs = KernelPublicInputs::serialize(self.public_inputs);\n std::verify_proof_with_type(\n self.vk_data.key,\n self.proof,\n inputs,\n self.vk_data.hash,\n PROOF_TYPE_ROLLUP_HONK,\n );\n }\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-types/src/lib.nr"}},"names":["main"],"brillig_names":[]}
@@ -1 +1 @@
1
- {"noir_version":"1.0.0-beta.7+0000000000000000000000000000000000000000","hash":"6537221059297646062","abi":{"parameters":[{"name":"a","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"},{"name":"b","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"}],"return_type":{"abi_type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"public"},"error_types":{"5019202896831570965":{"error_kind":"string","string":"attempt to add with overflow"}}},"bytecode":"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","debug_symbols":"tZPRioUgEIbfxesu0tTsvMqyhJUdBLHw6MISvftOYXW6MBbiXI06/t+MP86EOtWEZ61tP7zQ42tCjdPG6GdthlZ6PVg4neYMbdvaO6XgCL3lQTVKp6xHDxuMydCPNGG99BqlXaOXDrJ5hpTtIAKw10Ytqzk71HlaiimLYsyKXc7OepzWU4HLCKCCVQcBnwjkgsDyncAKkiJc9lCSSGCYJnugFy7wYrehxGInEPJvH/kBSPrIb/tY3vaR3/ax+qiPgkcAyavkf7z6DAUXmw00p6dHfMNOttqdhhARSGaoACz0RSGACWwJ81LFadkYFae1D7Z9G17/O26ZbbxHN7SqC04tNdYcVP0D","file_map":{"22":{"source":"pub mod hash;\npub mod aes128;\npub mod array;\npub mod slice;\npub mod ecdsa_secp256k1;\npub mod ecdsa_secp256r1;\npub mod embedded_curve_ops;\npub mod field;\npub mod collections;\npub mod compat;\npub mod convert;\npub mod option;\npub mod string;\npub mod test;\npub mod cmp;\npub mod ops;\npub mod default;\npub mod prelude;\npub mod runtime;\npub mod meta;\npub mod append;\npub mod mem;\npub mod panic;\npub mod hint;\n\nuse convert::AsPrimitive;\n\n// Oracle calls are required to be wrapped in an unconstrained function\n// Thus, the only argument to the `println` oracle is expected to always be an ident\n#[oracle(print)]\nunconstrained fn print_oracle<T>(with_newline: bool, input: T) {}\n\nunconstrained fn print_unconstrained<T>(with_newline: bool, input: T) {\n print_oracle(with_newline, input);\n}\n\npub fn println<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(true, input);\n }\n}\n\npub fn print<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(false, input);\n }\n}\n\npub fn verify_proof<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n) {\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, 0);\n}\n\npub fn verify_proof_with_type<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(proof_type);\n }\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, proof_type);\n}\n\n#[foreign(recursive_aggregation)]\nfn verify_proof_internal<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {}\n\n// Asserts that the given value is known at compile-time.\n// Useful for debugging for-loop bounds.\n#[builtin(assert_constant)]\npub fn assert_constant<T>(x: T) {}\n\n// Asserts that the given value is both true and known at compile-time.\n// The message can be a string, a format string, or any value, as long as it is known at compile-time\n#[builtin(static_assert)]\npub fn static_assert<T>(predicate: bool, message: T) {}\n\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_add(y)\")]\npub fn wrapping_add<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() + y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_sub(y)\")]\npub fn wrapping_sub<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n //340282366920938463463374607431768211456 is 2^128, it is used to avoid underflow\n AsPrimitive::as_(x.as_() + 340282366920938463463374607431768211456 - y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_mul(y)\")]\npub fn wrapping_mul<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() * y.as_())\n}\n\n#[builtin(as_witness)]\npub fn as_witness(x: Field) {}\n\nmod tests {\n use super::ops::arith::WrappingMul;\n\n #[test(should_fail_with = \"custom message\")]\n fn test_static_assert_custom_message() {\n super::static_assert(1 == 2, \"custom message\");\n }\n\n #[test]\n fn test_wrapping_mul() {\n let zero: u128 = 0;\n let one: u128 = 1;\n let two_pow_64: u128 = 0x10000000000000000;\n let u128_max: u128 = 0xffffffffffffffffffffffffffffffff;\n\n // 1*0==0\n assert_eq(zero, zero.wrapping_mul(one));\n\n // 0*1==0\n assert_eq(zero, one.wrapping_mul(zero));\n\n // 1*1==1\n assert_eq(one, one.wrapping_mul(one));\n\n // 0 * ( 1 << 64 ) == 0\n assert_eq(zero, zero.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * 0 == 0\n assert_eq(zero, two_pow_64.wrapping_mul(zero));\n\n // 1 * ( 1 << 64 ) == 1 << 64\n assert_eq(two_pow_64, two_pow_64.wrapping_mul(one));\n\n // ( 1 << 64 ) * 1 == 1 << 64\n assert_eq(two_pow_64, one.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * ( 1 << 64 ) == 1 << 64\n assert_eq(zero, two_pow_64.wrapping_mul(two_pow_64));\n // -1 * -1 == 1\n assert_eq(one, u128_max.wrapping_mul(u128_max));\n }\n}\n","path":"std/lib.nr"},"50":{"source":"use mock_types::{PreviousRollupData, RollupPublicInputs};\n\nfn main(a: PreviousRollupData, b: PreviousRollupData) -> pub RollupPublicInputs {\n a.verify(true);\n b.verify(true);\n\n a.public_inputs().merge(b.public_inputs())\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-rollup-root/src/main.nr"},"51":{"source":"pub global MAX_COMMITMENTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENTS_PER_TX: u32 = 4;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_TX: u32 = 4;\n\npub use protocol_types::{\n abis::avm_circuit_public_inputs::AvmCircuitPublicInputs,\n constants::{\n AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,\n CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,\n PROOF_TYPE_AVM, PROOF_TYPE_OINK, PROOF_TYPE_PG, PROOF_TYPE_ROLLUP_HONK,\n PROOF_TYPE_ROOT_ROLLUP_HONK, ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS,\n TUBE_PROOF_LENGTH,\n },\n proof::verification_key::{RollupHonkVerificationKey, VerificationKey},\n traits::Serialize,\n};\n\npub struct TxRequest {\n pub number_of_calls: u32,\n}\n\npub struct AppPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_CALL],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n}\n\nimpl Default for AppPublicInputs {\n fn default() -> Self {\n Self {\n commitments: [0; MAX_COMMITMENTS_PER_CALL],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n }\n }\n}\n\npub struct PrivateKernelPublicInputs {\n pub remaining_calls: u32,\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n}\n\nimpl Default for PrivateKernelPublicInputs {\n fn default() -> Self {\n Self {\n remaining_calls: 0,\n commitments: [0; MAX_COMMITMENTS_PER_TX],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n }\n }\n}\n\npub struct PrivateKernelPublicInputsBuilder {\n pub remaining_calls: u32,\n pub commitments: BoundedVec<Field, MAX_COMMITMENTS_PER_TX>,\n pub read_requests: BoundedVec<Field, MAX_COMMITMENT_READ_REQUESTS_PER_TX>,\n}\n\nimpl PrivateKernelPublicInputsBuilder {\n pub fn from_tx(tx: TxRequest) -> Self {\n Self {\n remaining_calls: tx.number_of_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n }\n }\n\n pub fn from_previous_kernel(prev_kernel_public_inputs: PrivateKernelPublicInputs) -> Self {\n let mut builder = PrivateKernelPublicInputsBuilder {\n remaining_calls: prev_kernel_public_inputs.remaining_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n };\n for i in 0..MAX_COMMITMENTS_PER_TX {\n if prev_kernel_public_inputs.commitments[i] != 0 {\n builder.commitments.push(prev_kernel_public_inputs.commitments[i]);\n }\n }\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_TX {\n if prev_kernel_public_inputs.read_requests[i] != 0 {\n builder.read_requests.push(prev_kernel_public_inputs.read_requests[i]);\n }\n }\n builder\n }\n\n pub fn ingest_app_inputs(&mut self, app_inputs: AppPublicInputs) {\n for i in 0..MAX_COMMITMENTS_PER_CALL {\n if app_inputs.commitments[i] != 0 {\n self.commitments.push(app_inputs.commitments[i]);\n }\n }\n\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_CALL {\n if app_inputs.read_requests[i] != 0 {\n self.read_requests.push(app_inputs.read_requests[i]);\n }\n }\n\n self.remaining_calls -= 1;\n }\n\n pub fn finish(self) -> PrivateKernelPublicInputs {\n PrivateKernelPublicInputs {\n remaining_calls: self.remaining_calls,\n commitments: self.commitments.storage(),\n read_requests: self.read_requests.storage(),\n }\n }\n}\n\npub struct KernelPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n}\n\nimpl Default for KernelPublicInputs {\n fn default() -> Self {\n Self { commitments: [0; MAX_COMMITMENTS_PER_TX] }\n }\n}\n\nimpl Serialize<MAX_COMMITMENTS_PER_TX> for KernelPublicInputs {\n fn serialize(self) -> [Field; MAX_COMMITMENTS_PER_TX] {\n self.commitments\n }\n}\n\npub struct RollupPublicInputs {\n accumulated: u32,\n}\n\nimpl RollupPublicInputs {\n pub fn new(accumulated: u32) -> Self {\n Self { accumulated }\n }\n\n pub fn merge(self, other: Self) -> Self {\n Self { accumulated: self.accumulated + other.accumulated }\n }\n}\n\nimpl Serialize<1> for RollupPublicInputs {\n fn serialize(self) -> [Field; 1] {\n [self.accumulated as Field]\n }\n}\n\npub struct PreviousRollupData {\n base_or_merge_public_inputs: RollupPublicInputs,\n proof: [Field; NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH],\n vk: RollupHonkVerificationKey,\n}\n\nimpl PreviousRollupData {\n pub fn verify(self, is_root: bool) {\n let inputs = self.base_or_merge_public_inputs.serialize();\n\n std::verify_proof_with_type(\n self.vk.key,\n self.proof,\n inputs,\n self.vk.hash,\n if is_root {\n PROOF_TYPE_ROOT_ROLLUP_HONK\n } else {\n PROOF_TYPE_ROLLUP_HONK\n },\n );\n }\n\n pub fn public_inputs(self) -> RollupPublicInputs {\n self.base_or_merge_public_inputs\n }\n}\n\npub struct TubeData {\n pub public_inputs: KernelPublicInputs,\n pub proof: [Field; TUBE_PROOF_LENGTH],\n pub vk_data: VerificationKey<ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS>,\n}\n\nimpl TubeData {\n pub fn verify(self) {\n let inputs = KernelPublicInputs::serialize(self.public_inputs);\n std::verify_proof_with_type(\n self.vk_data.key,\n self.proof,\n inputs,\n self.vk_data.hash,\n PROOF_TYPE_ROLLUP_HONK,\n );\n }\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-types/src/lib.nr"}},"names":["main"],"brillig_names":[]}
1
+ {"noir_version":"1.0.0-beta.7+0000000000000000000000000000000000000000","hash":"7024193937800499567","abi":{"parameters":[{"name":"a","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"},{"name":"b","type":{"kind":"struct","path":"mock_types::PreviousRollupData","fields":[{"name":"base_or_merge_public_inputs","type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"proof","type":{"kind":"array","length":535,"type":{"kind":"field"}}},{"name":"vk","type":{"kind":"struct","path":"types::proof::verification_key::VerificationKey","fields":[{"name":"key","type":{"kind":"array","length":113,"type":{"kind":"field"}}},{"name":"hash","type":{"kind":"field"}}]}}]},"visibility":"private"}],"return_type":{"abi_type":{"kind":"struct","path":"mock_types::RollupPublicInputs","fields":[{"name":"accumulated","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"public"},"error_types":{"5019202896831570965":{"error_kind":"string","string":"attempt to add with overflow"}}},"bytecode":"H4sIAAAAAAAA/83cVZCWZ7qF4a9xd0KIEEKIG00jTYQAgbgL7u7u7u7uFtzd3d3d3d2dnTt/M7knpzsH01UMV8FMF9XFEPKutZ6wIPSRMmYQxI5y2J/fokd9z0faf/xYx2h//1j8P7/V0P/u+T9/7kmUU8svyC/KL8kvy2nkV+S08qtyOvk1Ob38uvyG/Kb8lvy2/I78rvye/L78gfyhnEEOlzPKEXImObOcRc4qR8rZ5I/kj+VP5E/l7PJncg45p5xL/lzOLeeRv5C/lL+Sv5a/kb+Vv5O/l3+Qf5R/kn+Wf5F/lX+Tf5fzyvnk/HIBuaBcSC4sF5GLysXk4nIJuaRcSi4tl5HLyuXk8nIFuaJcSa4sV5GrytXk6nINuaZcS64t15HryvXk+nIDuaHcSG4sN5Gbys3k5nILuaXcSm4tt5Hbyu3k9lFO9ef3QdSP8e3Zz0eTo8sx5JhyLDm2HEeOK8eT48sJ5IRyIjmxnEROKieTk8sp5JTyc3Iq+Xk5tfyC/KL8kvyynEZ+RU4rvyqnk1+T08uvy2/Ib8pvyW/L78jvyu/J78sfyB/KGeRwOaMcIWeSM8tZ5KxypJxN/kj+WP5E/lTOLn8m55Bzyrnkz+Xcch75C/lL+Sv5a/kb+Vv5O/l7+Qf5R/kn+Wf5F/lX+Tf5dzmvnE/OLxeQC8qF5MJyEbmoXEwuLpeQS8ql5NJyGbmsXE4uL1eQK8qV5MpyFbmqXE2uLteQa8q15NpyHbmuXE+uLzeQG8qN5MZyE7mp3ExuLreQW8qt5NZyG7mt3E5uL3eQO8qd5M5yF7mr3E3uLveQe8q95N5yH7mv3E/uLw+QB8qD5MHyEHmoPEweLo+QR8p/yKPk0fIYeaw8Th4vT5AnypPkyfIUeao8TZ4uz5BnyrPk2fIcea48T54vL5AXyovkxfISeam8TF4ur5BXyqvk1fIaea28Tl4vb5A3ypvkzfIWeau8Td4u75B3yrvk3fIeea+8T94vH5APyofkw/IR+ah8TD4un5BPyqfk0/IZ+ax8Tj4vX5Avypfky/IV+ap8Tb4u35Bvyrfk2/Id+a58T74vP5Afyo/kx/IT+anMfzxzmBxNji7HkGPKseTYchw5rhxPji8nkBPKieTEchI5qZxMTi6nkFPKz8mp5Ofl1PIL8ovyS/LLchr5FTmt/KqcTn5NTi+/Lr8hvym/Jb8tvyO/K78nvy9/IH8oZ5DD5YxyhJxJzixnkbPKkXI2+SP5Y/kT+VM5u/yZnEPOKeeSP5dzy3nkL+Qv5a/kr+Vv5G/l7+Tv5R/kH+Wf5J/lX+Rf5d/k3+W8cj45v1xALigXkgvLReSicjG5uFxCLimXkkvLZeSycjm5vFxBrihXkivLVeSqcjW5ulxDrinXkmvLdeS6cj25vtxAbig3khvLTeSmcjO5udxCbim3klvLbeS2cju5vdxB7ih3kjvLXeSucje5u9xD7in3knvLfeS+cj+5vzxAHigPkgfLQ+Sh8jB5uDxCHin/IY+SR8tj5LHyOHm8PEGeKE+SJ8tT5KnyNHm6PEOeKc+SZ8tz5LnyPHm+vEBeKC+SF8tL5KXyMnm5vEJeKa+SV8tr5LXyOnm9vEHeKG+SN8tb5K3yNnm7vEPeKe+Sd8t75L3yPnm/fEA+KB+SD8tH5KPyMfm4fEI+KZ+ST8tn5LPyOfm8fEG+KF+SL8tX5KvyNfm6fEO+Kd+Sb8t35LvyPfm+/EB+KD+SH8tP5KdyoEwgTI4mR5djyDHlWHJsOY4cV44nx5cTyAnlRHJiOYmcVE4mJ5dTyCnl5+RUcqDvn/1Yh6ifj/Xs1x/8dzY9Mob+7JZHyaPlMfJYeZw8Xp4gT5QnyZPlKfJUeZo8XZ4hz5RnybPlOfJceZ48X14gL5QXyYvlJfJSeZm8XF4hr5RXyavlNfJaeZ28Xt4gb5Q3yZvlLfJWeZu8Xd4h75R3ybvlPfJeeZ+8Xz4gH5QPyYflI/JR+Zh8XD4hn5RPyaflM/JZ+Zx8Xr4gX5QvyZflK/JV+Zp8Xb4h35RvybflO/Jd+Z58X34gP5QfyY/lJ/JTmQD2P392y9Hk6HIMOaYcS44tx5HjyvHk+HICOaGcSE4sJ5GTysmi7Gy6k/5M7ix3kbvK3eTucg+5p9xL7i33kfvK/eT+8gB5oDxIHiwPkYfKw+Th8gh5pPyHPEoeLY+Rx8rj5PHyBHmiPEmeLE+Rp8rT5OnyDHmmPEueLc+R58rz5PnyAnmhvEheLC+Rl8rL5OXyCnmlvEpeLa+R18rr5PXyBnmjvEneLG+Rt8rb5O3yDnmnvEveLe+R98r75P3yAfmgfEg+LB+Rj8rH5OPyCfmkfEo+LZ+Rz8rn5PPyBfmifEm+LF+Rr8rX5OvyDfmmfEu+Ld+R78r35PvyA/mh/Eh+LD+Rn/rvwNH/dpgcTY4ux5BjyrHk2HIcOa4cT44vJ5ATyonkxHISOamcTE4up5BTys/JqeTn5dTyC/KL8kvyy3Ia+RU5rfyqnE5+TU4vvy6/Ib8pvyW/Lb8jvyu/J78vfyB/KGeQw+WMcoScSc4sZ5GzypFyNvkj+WP5E/lTObv8mZxDzinnkj+Xc8t55C/kL+Wv5K/lb+Rv5e/k7+Uf5B/ln+Sf5V/kX+Xf5N/lvHI+Ob9cQC4oF5ILy0XkonIxubhcQi4pl5JLy2XksnI5ubxcQa4oV5Iry1XkqnI1ubpcQ64p15Jry3XkunI9ub7cQG4oN5Iby03kpnIzubncQm4pt5Jby23ktnI7ub3cQe4od5I7y13krnI3ubvcQ+4p95J7y33kvnI/ub88QB4oD5IHy0PkofIwebg8Qh4p/yGPkkfLY+Sx8jh5vDxBnihPkifLU+Sp8jR5ujxDninPkmfLc+S58jx5vrxAXigvkhfLS+Sl8jJ5ubxCXimvklfLa+S18jp5vbxB3ihvkjfLW+St8jZ5u7xD3invknfLe+S98j55v3xAPigfkg/LR+Sj8jH5uHxCPimfkk/LZ+Sz8jn5vHxBvihfki/LV+Sr8jX5unxDvinfkm/Ld+S78j35vvxAfig/kh/LT+SncqA3pzA5mhxdjiHHlGPJseU4clw5nhxfTiAnlBPJieUkclI5mZxcTiGnlJ+TU8nPy6nlF+QX5Zfkl+U08ityWvlVOZ38mpxefl1+Q35Tfkt+W35Hfld+T35f/kD+UM4gh8sZ5Qg5k5xZziJnlSPlbPJH8sfyJ/Kncnb5MzmHnFPOJX8u55bzyF/IX8pfyV/L38jfyt/J38s/yD/KP8k/y7/Iv8q/yb/LeeV8cn65gFxQLiQXlovIReVicnG5hFxSLiWXlsvIZeVycnm5glxRriRXlqvIVeVqcnW5hlxTriXXluvIdeV6cn25gdxQbiQ3lpvITeVmcnO5hdxSbiW3ltvIbeV2cnu5g9xR7iR3lrvIXeVucne5h9xT7iX3lvvIfeV+cn95gDxQHiQPlofIQ+Vh8nB5hBw8+zo5647KTmIF//0RPer7HFHfZ/j/fYT/m5+LX/+zzxWRIUumTGWyZiwTHhFeIkPGbCUjM2fIlLlklsjwyPDMkZlLZ4yMiCgTmSkya7aS2bJmyBaeKaJMeNnM2SLKRn0y9uX/0q+Laut/tuh83rT/+JpG+5e/pili/u9+HWJEfS5+jYF+70WL+hrx8zGjft+x/2T3yd6TnSf9CHad7DnZcbLfZLfJXpOdJvtMdpnsMdlhsr9kd8nekp0l+0p2lewp0wSh/WTaILSXTBeE9pHpg9Aekh0k+0d2j+wd2Tmyb2TXyJ6RHSP7RXaL/CZmp8g+kV0ie0R2iOwP2R2yN2RnyL6QXSF7wuxBaD+YIwjtBXMFoX1g7iC0B2QHyP6P3R97P3Z+7PvY9bHnY8fHfo/dHns9dnrs89jlscdjh8f+jt0dezt2duzr2NWxpysahPZzxYPQXq5kENrHlQ5Cezh2cOzf2L2xd2Pnxr6NXRt7NnZs7NfYrdFZYafGPo1dGns0dmjsz9idsTdjZ8a+jF0Ze7KmQWg/1jwI7cVaBqF9WOsgtAdjB8b+i90Xey92Xuy72HWx52LHxX6L3RZ7LXZa7LPYZbHHYofF/ordFXsrdlbsq9hVsacaGoT2U8OD0F5qZBDaR40KQnsodlDsn9g9sXdi58S+iV0TeyZ2TOyX2C2xV2KnxD6JXRJ7JHZI7I/YHbE3YmfEvohdEXuiJUFoP7QsCO2FVgShfdCqILQHYgfE/ofdD3sfdj7se9j1sOdhx8N+h90Oex12Ouxz2OWwx2GHw/6G3Q17G3Y27GvY1bCnORKE9jPHgtBe5kQQ2secCkJ7GHYw7F/YvbB3YefCvoVdC3sWdizsV9itsFdhp8I+hV0KexR2KOxP2J2wN2Fnwr6EXcmzPQn7Ef7Pz16EnQj7EHYh7EHYgbD/YPfB3oOdB/sOdh3sOdhxsN9gt8Feg50G+wx2Gewx2GGwv2B3wd6CnQX7CnYV7CnYUbCfSBsW2kuwk2AfwS6CPQQ7CPYP7B7YO7BzYN/AroE9AzsG9gv8ocZegZ0C+wR2CewR2CGwP2B3wN6AnQH7AnYF7AnYEbAfyBEW2guwE2AfwC6APQA7APr/9P7p+9Pzp99Pr58+Pz1++vv09unr09Onn08vnz4+PXz69/Tu6dvTs6dfT6+ePj09evrzxcNCfXl68vTj6cXTh6cHT/+d3jt9d3ru9NvptdNnp8dOf53eOn11eur00+ml00enh07/nN45fXN65vTL6ZXTJ6dHTn+8eVioL05PnH44vXD64PTA6X/T+6bvTc+bfje9bvrc9Ljpb9Pbpq9NT5t+Nr1s+tj0sOlf07umb03Pmn41vWr61PSo6U8PDwv1pelJ04+mF00fmh40/Wd6z/Sd6TnTb6bXTJ+ZHjP9ZXrL9JXpKdNPppdMH5keMv1jesf0jekZ0y+mV0yfmB4x/eFlYaG+MD1h+sH0gukD0wOm/0vvl74vPV/6vfR66fPS46W/S2+Xvi49Xfq59HLp49LDpX9L75a+LT1b+rX0aunT0qOlP3ssLNSXpSdLP5ZeLH1YerD0X+m90nel50q/lV4rfVZ6rPRX6a3SV6WnSj+VXip9VHqo9E/pndI3pWdKv5Re6V990rBQf5R/8NMXpSdKP5ReKH1QeqD0P+l90vek50m/k14nfU56nPQ36W3S16SnST+TXiZ9THqY9H6478NdH+75cMeH+z3c7eFeD3d6uM/DXR7u8XCHh/s73N3h3g53drivw10d7ulwR4f7OdzN4V4Od3K4j8NdHO7hcAeH+zfcveHeDXduuG/DXRvu2XDHhvs13K3hXg13arhPw10a7tFwh4b7M9yd4d4Md2a4L8NdGe7JcEeG+zHcjeFeDHdiuA/DXRjuwXAHhvsv3H3h3gt3Xrjvwl0X7rlwx4X7Ldxt4V4Ld1q4z8JdFu6xcIeF+yvcXeHeCndWuK/CXRXuqXBHhfsp3E3hXgp3UriPwl0U7qFwB4X7J9w94d4Jd064b8JdE+6ZcMeE+yXcLeFeCXdKuE/CXRLukXCHhPsj3B3h3gh3RrgvQk+Wv9vT3aKzRVeLjhbdLDpZdLHoYNG9onNF14qOFd0qOlV0qehQ0Z2iM0VXio4U3Sg6UXSh6EDRfaLzRNeJjhPdJjpNdJnoMNFdorNEV4mOEt0kOkl0kegg0T2ic0TXiI4R3SI6RXSJ6BDRHaIzRFeIjhDdIDpBdIHoANH9ofND14eOD90eOj10eejw0N2hs0NXh44O3Rw6OXRx6ODQvaFzQ9eGjg3dGjo1dGno0NCdoTNDV4aODN0YOjF0YejA0H2h80LXhY4L3RY6LXRZ6LDQXaGzQleFjgrdFDopdFHooNA9oXNC14SOCd0SOiV0SeiQ0B2hM/JXVyRaqBvCX/rpgtABoftB54OuBx0Puh10Ouhy0OGgu0Fng64GHQ26GXQy6GLQwaB7QeeCrgUdC7oVdCroUtChoDtBZ4KuBB0JuhF0IuhC0IGg+0Dnga4DHQe6DXQa6DLQYaC7QGeBrgIdBboJdBLoItBBoHtA54CuAR0DugV0CugS0CGgO0BngK4AHQG6AXQC6ALQASD7J/Mn6yfjJ9sn0yfLJ8MnuyezJ6snoyebJ5MniyeDJ3sncydrJ2MnWydTJ0snQyc7JzMnKycjJxsnEycLJwMn+ybzJusm4ybbJtMmyybDJrsmsyarJqMmmyaTJosmgyZ7JnMmayZjJlsmUyZLJkMmOyYzJismIyYbJhMmCyYDJvsl8yXrJeMl2yXTJcslwyW7JbMlqyWjJZslkyWLJYMleyVzJWslYyVbJVMlSyVDJTslMyUrJSMlGyUTJQslAyX7JPMk6yTjJNsk0yTLJMMkuySzJKskoySbJJMkiySDJHskcyRrJGMkWyRTJEskQyQ7JDMkKyQjJBskEyQLJAMk+yPzI+sj4yPbI9MjyyPDI7sjsyOrI6MjmyOTI4sjgyN7I3MjayNjI1sjUyNLI0MjOyMzIysjIyMbIxMjCyMDI/si8yLrIuMi2yLTIssiwyK7IrMiqyKjIpsikyKLIoMieyJzImsiYyJbIlMiSyJDIjsiM/orK4oeyob4F36yIDIgsh8yH7IeMh6yHTIdshwyHLIbMhuyGjIashkyGbIYMhiyFzIXshYyFrIVMhWyFDIUshMyE7ISMhKyETIRshAyELIPMg+yDjIOsg0yDbIMMgyyCzILsgoyCrIJMgmyCDIIsgcyB7IGMgayBTIFsgQyBLIDMgOyAjICsgEyAbIAMgDe/nnz562fN37e9nnT5y2fN3ze7nmz562eN3re5nmT5y2eN3je3nlz562dN3be1nlT5y2dN3Teznkz562cN3LexnkT5y2cN3Devnnz5q2bN27etnnT5i2bN2zernmz5q2aN2repnmT5i2aN2jennlz5q2ZN2belnlT5i2ZN2Tejnkz5q2YN2LehnkT5i2YN2Defnnz5a2XN17ednnT5S2XN1zebnmz5a2WN1reZnmT5S2WN1jeXnlz5a2VN1beVnlT5S2VN1TeTnkz5a2UN1LeRnkT5S2UrQ0bG7Y1bGrY0rChYTvDZoatDBsZtjFsYtjCsIFh+8Lmha0LGxe2LWxa2LKwYWG7wmaFrQobFbYpbFLYorBBYXvC5oStCRsTtiVsStiSsCFhO8JmhK0IGxG2IWxC2IKwAWH7weaDrQcbD7YdbDrYcrDhYLvBZoOtBhsNthlsMthisMFge8Hmgq0FGwu2FWwq2FKwoWA7wWaCrQQbCbYRbCLYQrCBYPvA5oGtAxsHtg1sGtgysGFgu8Bmga0CGwW2CX9tEmKENgg89rE5YGvAxoBtAZsCtgRsCNgOsBlgK8BGgG0AmwC2AGwA6P7T+afrn/wfb4p88M4Y9vcPB8/+KylP5UxdY8PYPME/Pv4PjtR+9WBUAAA=","debug_symbols":"tZPfioUgEMbfxesu8k+W51WWJazsIIiFRxeW6N13iqzThbEQ52rU8fvN+OFMqFNNeNba9sMLPb4m1DhtjH7WZmil14OF02nOUNzW3ikFR+gtD6pROmU9ethgTIZ+pAnrpdco7Rq9dJDNM6RsBxGAvTZqWc3Zoc7TUsyKTYwLusuLsx6n9YzTcgMwXoqDgE8EckGgZCfQgqQIlz0IEgmCJ3tgFy5wuttQ4monEPJvH/kBSPrIb/tY3vaR3/ZRfNTHim8Akovkf7z6DLiq4iMIYadHfMNOttqdhhARSGaIAhb6YhDAhGIJ81LFadkYtU1rH2z7Nrz+d4yZON6jG1rVBaeWGmsOqv4B","file_map":{"22":{"source":"pub mod hash;\npub mod aes128;\npub mod array;\npub mod slice;\npub mod ecdsa_secp256k1;\npub mod ecdsa_secp256r1;\npub mod embedded_curve_ops;\npub mod field;\npub mod collections;\npub mod compat;\npub mod convert;\npub mod option;\npub mod string;\npub mod test;\npub mod cmp;\npub mod ops;\npub mod default;\npub mod prelude;\npub mod runtime;\npub mod meta;\npub mod append;\npub mod mem;\npub mod panic;\npub mod hint;\n\nuse convert::AsPrimitive;\n\n// Oracle calls are required to be wrapped in an unconstrained function\n// Thus, the only argument to the `println` oracle is expected to always be an ident\n#[oracle(print)]\nunconstrained fn print_oracle<T>(with_newline: bool, input: T) {}\n\nunconstrained fn print_unconstrained<T>(with_newline: bool, input: T) {\n print_oracle(with_newline, input);\n}\n\npub fn println<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(true, input);\n }\n}\n\npub fn print<T>(input: T) {\n // Safety: a print statement cannot be constrained\n unsafe {\n print_unconstrained(false, input);\n }\n}\n\npub fn verify_proof<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n) {\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, 0);\n}\n\npub fn verify_proof_with_type<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(proof_type);\n }\n verify_proof_internal(verification_key, proof, public_inputs, key_hash, proof_type);\n}\n\n#[foreign(recursive_aggregation)]\nfn verify_proof_internal<let N: u32, let M: u32, let K: u32>(\n verification_key: [Field; N],\n proof: [Field; M],\n public_inputs: [Field; K],\n key_hash: Field,\n proof_type: u32,\n) {}\n\n// Asserts that the given value is known at compile-time.\n// Useful for debugging for-loop bounds.\n#[builtin(assert_constant)]\npub fn assert_constant<T>(x: T) {}\n\n// Asserts that the given value is both true and known at compile-time.\n// The message can be a string, a format string, or any value, as long as it is known at compile-time\n#[builtin(static_assert)]\npub fn static_assert<T>(predicate: bool, message: T) {}\n\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_add(y)\")]\npub fn wrapping_add<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() + y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_sub(y)\")]\npub fn wrapping_sub<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n //340282366920938463463374607431768211456 is 2^128, it is used to avoid underflow\n AsPrimitive::as_(x.as_() + 340282366920938463463374607431768211456 - y.as_())\n}\n#[deprecated(\"wrapping operations should be done with the Wrapping traits. E.g: x.wrapping_mul(y)\")]\npub fn wrapping_mul<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() * y.as_())\n}\n\n#[builtin(as_witness)]\npub fn as_witness(x: Field) {}\n\nmod tests {\n use super::ops::arith::WrappingMul;\n\n #[test(should_fail_with = \"custom message\")]\n fn test_static_assert_custom_message() {\n super::static_assert(1 == 2, \"custom message\");\n }\n\n #[test]\n fn test_wrapping_mul() {\n let zero: u128 = 0;\n let one: u128 = 1;\n let two_pow_64: u128 = 0x10000000000000000;\n let u128_max: u128 = 0xffffffffffffffffffffffffffffffff;\n\n // 1*0==0\n assert_eq(zero, zero.wrapping_mul(one));\n\n // 0*1==0\n assert_eq(zero, one.wrapping_mul(zero));\n\n // 1*1==1\n assert_eq(one, one.wrapping_mul(one));\n\n // 0 * ( 1 << 64 ) == 0\n assert_eq(zero, zero.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * 0 == 0\n assert_eq(zero, two_pow_64.wrapping_mul(zero));\n\n // 1 * ( 1 << 64 ) == 1 << 64\n assert_eq(two_pow_64, two_pow_64.wrapping_mul(one));\n\n // ( 1 << 64 ) * 1 == 1 << 64\n assert_eq(two_pow_64, one.wrapping_mul(two_pow_64));\n\n // ( 1 << 64 ) * ( 1 << 64 ) == 1 << 64\n assert_eq(zero, two_pow_64.wrapping_mul(two_pow_64));\n // -1 * -1 == 1\n assert_eq(one, u128_max.wrapping_mul(u128_max));\n }\n}\n","path":"std/lib.nr"},"50":{"source":"use mock_types::{PreviousRollupData, RollupPublicInputs};\n\nfn main(a: PreviousRollupData, b: PreviousRollupData) -> pub RollupPublicInputs {\n a.verify(true);\n b.verify(true);\n\n a.public_inputs().merge(b.public_inputs())\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-rollup-root/src/main.nr"},"51":{"source":"pub global MAX_COMMITMENTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENTS_PER_TX: u32 = 4;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_CALL: u32 = 2;\npub global MAX_COMMITMENT_READ_REQUESTS_PER_TX: u32 = 4;\n\npub use protocol_types::{\n constants::{\n CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,\n PROOF_TYPE_OINK, PROOF_TYPE_PG, PROOF_TYPE_ROLLUP_HONK, PROOF_TYPE_ROOT_ROLLUP_HONK,\n ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS, TUBE_PROOF_LENGTH,\n },\n proof::verification_key::{RollupHonkVerificationKey, VerificationKey},\n traits::Serialize,\n};\n\npub struct TxRequest {\n pub number_of_calls: u32,\n}\n\npub struct AppPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_CALL],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n}\n\nimpl Default for AppPublicInputs {\n fn default() -> Self {\n Self {\n commitments: [0; MAX_COMMITMENTS_PER_CALL],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_CALL],\n }\n }\n}\n\npub struct PrivateKernelPublicInputs {\n pub remaining_calls: u32,\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n pub read_requests: [Field; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n}\n\nimpl Default for PrivateKernelPublicInputs {\n fn default() -> Self {\n Self {\n remaining_calls: 0,\n commitments: [0; MAX_COMMITMENTS_PER_TX],\n read_requests: [0; MAX_COMMITMENT_READ_REQUESTS_PER_TX],\n }\n }\n}\n\npub struct PrivateKernelPublicInputsBuilder {\n pub remaining_calls: u32,\n pub commitments: BoundedVec<Field, MAX_COMMITMENTS_PER_TX>,\n pub read_requests: BoundedVec<Field, MAX_COMMITMENT_READ_REQUESTS_PER_TX>,\n}\n\nimpl PrivateKernelPublicInputsBuilder {\n pub fn from_tx(tx: TxRequest) -> Self {\n Self {\n remaining_calls: tx.number_of_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n }\n }\n\n pub fn from_previous_kernel(prev_kernel_public_inputs: PrivateKernelPublicInputs) -> Self {\n let mut builder = PrivateKernelPublicInputsBuilder {\n remaining_calls: prev_kernel_public_inputs.remaining_calls,\n commitments: BoundedVec::new(),\n read_requests: BoundedVec::new(),\n };\n for i in 0..MAX_COMMITMENTS_PER_TX {\n if prev_kernel_public_inputs.commitments[i] != 0 {\n builder.commitments.push(prev_kernel_public_inputs.commitments[i]);\n }\n }\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_TX {\n if prev_kernel_public_inputs.read_requests[i] != 0 {\n builder.read_requests.push(prev_kernel_public_inputs.read_requests[i]);\n }\n }\n builder\n }\n\n pub fn ingest_app_inputs(&mut self, app_inputs: AppPublicInputs) {\n for i in 0..MAX_COMMITMENTS_PER_CALL {\n if app_inputs.commitments[i] != 0 {\n self.commitments.push(app_inputs.commitments[i]);\n }\n }\n\n for i in 0..MAX_COMMITMENT_READ_REQUESTS_PER_CALL {\n if app_inputs.read_requests[i] != 0 {\n self.read_requests.push(app_inputs.read_requests[i]);\n }\n }\n\n self.remaining_calls -= 1;\n }\n\n pub fn finish(self) -> PrivateKernelPublicInputs {\n PrivateKernelPublicInputs {\n remaining_calls: self.remaining_calls,\n commitments: self.commitments.storage(),\n read_requests: self.read_requests.storage(),\n }\n }\n}\n\npub struct KernelPublicInputs {\n pub commitments: [Field; MAX_COMMITMENTS_PER_TX],\n}\n\nimpl Default for KernelPublicInputs {\n fn default() -> Self {\n Self { commitments: [0; MAX_COMMITMENTS_PER_TX] }\n }\n}\n\nimpl Serialize<MAX_COMMITMENTS_PER_TX> for KernelPublicInputs {\n fn serialize(self) -> [Field; MAX_COMMITMENTS_PER_TX] {\n self.commitments\n }\n}\n\npub struct RollupPublicInputs {\n accumulated: u32,\n}\n\nimpl RollupPublicInputs {\n pub fn new(accumulated: u32) -> Self {\n Self { accumulated }\n }\n\n pub fn merge(self, other: Self) -> Self {\n Self { accumulated: self.accumulated + other.accumulated }\n }\n}\n\nimpl Serialize<1> for RollupPublicInputs {\n fn serialize(self) -> [Field; 1] {\n [self.accumulated as Field]\n }\n}\n\npub struct PreviousRollupData {\n base_or_merge_public_inputs: RollupPublicInputs,\n proof: [Field; NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH],\n vk: RollupHonkVerificationKey,\n}\n\nimpl PreviousRollupData {\n pub fn verify(self, is_root: bool) {\n let inputs = self.base_or_merge_public_inputs.serialize();\n\n std::verify_proof_with_type(\n self.vk.key,\n self.proof,\n inputs,\n self.vk.hash,\n if is_root {\n PROOF_TYPE_ROOT_ROLLUP_HONK\n } else {\n PROOF_TYPE_ROLLUP_HONK\n },\n );\n }\n\n pub fn public_inputs(self) -> RollupPublicInputs {\n self.base_or_merge_public_inputs\n }\n}\n\npub struct TubeData {\n pub public_inputs: KernelPublicInputs,\n pub proof: [Field; TUBE_PROOF_LENGTH],\n pub vk_data: VerificationKey<ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS>,\n}\n\nimpl TubeData {\n pub fn verify(self) {\n let inputs = KernelPublicInputs::serialize(self.public_inputs);\n std::verify_proof_with_type(\n self.vk_data.key,\n self.proof,\n inputs,\n self.vk_data.hash,\n PROOF_TYPE_ROLLUP_HONK,\n );\n }\n}\n","path":"/home/aztec-dev/aztec-packages/noir-projects/mock-protocol-circuits/crates/mock-types/src/lib.nr"}},"names":["main"],"brillig_names":[]}
@@ -3,13 +3,12 @@ import type { Logger } from '@aztec/foundation/log';
3
3
  import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
4
4
  import type { NoirCompiledCircuit } from '@aztec/stdlib/noir';
5
5
  import type { ClientIvcProof } from '@aztec/stdlib/proofs';
6
- import { VerificationKeyAsFields } from '@aztec/stdlib/vks';
7
6
  export declare function proveClientIVC(bbBinaryPath: string, bbWorkingDirectory: string, witnessStack: Uint8Array[], bytecodes: string[], vks: string[], logger: Logger): Promise<ClientIvcProof>;
8
7
  export declare function proveTube(pathToBB: string, workingDirectory: string, logger: Logger): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<535>>;
9
8
  export declare function proveRollupHonk(name: string, pathToBB: string, workingDirectory: string, circuit: NoirCompiledCircuit, witness: Uint8Array, logger: Logger): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<535>>;
10
9
  export declare function proveKeccakHonk(name: string, pathToBB: string, workingDirectory: string, circuit: NoirCompiledCircuit, witness: Uint8Array, logger: Logger): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<456>>;
11
10
  export declare function proveAvm(avmCircuitInputs: AvmCircuitInputs, workingDirectory: string, logger: Logger, skipPublicInputsValidation?: boolean): Promise<{
12
- vk: VerificationKeyAsFields;
11
+ vk: Fr[];
13
12
  proof: Fr[];
14
13
  publicInputs: AvmCircuitPublicInputs;
15
14
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"prove_native.d.ts","sourceRoot":"","sources":["../src/prove_native.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,uBAAuB,EAA4B,MAAM,mBAAmB,CAAC;AAMtF,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,UAAU,EAAE,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAyBD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mFAczF;AAoCD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,mFAYf;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,mFAYf;AAED,wBAAsB,QAAQ,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,0BAA0B,GAAE,OAAe,GAC1C,OAAO,CAAC;IACT,EAAE,EAAE,uBAAuB,CAAC;IAC5B,KAAK,EAAE,EAAE,EAAE,CAAC;IACZ,YAAY,EAAE,sBAAsB,CAAC;CACtC,CAAC,CAsED"}
1
+ {"version":3,"file":"prove_native.d.ts","sourceRoot":"","sources":["../src/prove_native.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAC;AAQlE,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,UAAU,EAAE,EAC1B,SAAS,EAAE,MAAM,EAAE,EACnB,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAyBD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mFAczF;AAoCD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,mFAYf;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,mFAYf;AAED,wBAAsB,QAAQ,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,0BAA0B,GAAE,OAAe,GAC1C,OAAO,CAAC;IACT,EAAE,EAAE,EAAE,EAAE,CAAC;IACT,KAAK,EAAE,EAAE,EAAE,CAAC;IACZ,YAAY,EAAE,sBAAsB,CAAC;CACtC,CAAC,CAsED"}
@@ -4,7 +4,6 @@ import { Fr } from '@aztec/foundation/fields';
4
4
  import { BufferReader } from '@aztec/foundation/serialize';
5
5
  import { makeProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
6
6
  import { enhanceProofWithPiValidationFlag } from '@aztec/stdlib/rollup';
7
- import { VerificationKeyAsFields } from '@aztec/stdlib/vks';
8
7
  import * as fs from 'fs/promises';
9
8
  import { Encoder } from 'msgpackr';
10
9
  import * as path from 'path';
@@ -119,7 +118,7 @@ export async function proveAvm(avmCircuitInputs, workingDirectory, logger, skipP
119
118
  const proofWithPublicInputsValidationFlag = enhanceProofWithPiValidationFlag(proof, skipPublicInputsValidation);
120
119
  return {
121
120
  proof: proofWithPublicInputsValidationFlag,
122
- vk: await VerificationKeyAsFields.fromKey(vk),
121
+ vk,
123
122
  publicInputs: avmCircuitInputs.publicInputs
124
123
  };
125
124
  }
@@ -14,10 +14,6 @@ export type AppPublicInputs = {
14
14
  export type TxRequest = {
15
15
  number_of_calls: u32;
16
16
  };
17
- export type VerificationKey<A extends number> = {
18
- key: FixedLengthArray<Field, A>;
19
- hash: Field;
20
- };
21
17
  export type PrivateKernelPublicInputs = {
22
18
  remaining_calls: u32;
23
19
  commitments: FixedLengthArray<Field, 4>;
@@ -29,7 +25,11 @@ export type KernelPublicInputs = {
29
25
  export type TubeData = {
30
26
  public_inputs: KernelPublicInputs;
31
27
  proof: FixedLengthArray<Field, 535>;
32
- vk_data: VerificationKey<113>;
28
+ vk_data: VerificationKey;
29
+ };
30
+ export type VerificationKey = {
31
+ key: FixedLengthArray<Field, 113>;
32
+ hash: Field;
33
33
  };
34
34
  export type AvmCircuitPublicInputs = {
35
35
  global_variables: GlobalVariables;
@@ -154,7 +154,7 @@ export type RollupPublicInputs = {
154
154
  export type PreviousRollupData = {
155
155
  base_or_merge_public_inputs: RollupPublicInputs;
156
156
  proof: FixedLengthArray<Field, 535>;
157
- vk: VerificationKey<113>;
157
+ vk: VerificationKey;
158
158
  };
159
159
  export type AppCreatorInputType = {
160
160
  commitments_to_create: FixedLengthArray<Field, 2>;
@@ -169,39 +169,39 @@ export declare function AppReader(commitments_to_read: FixedLengthArray<Field, 2
169
169
  export type MockPrivateKernelInitInputType = {
170
170
  tx: TxRequest;
171
171
  app_inputs: AppPublicInputs;
172
- app_vk: VerificationKey<127>;
172
+ app_vk: FixedLengthArray<Field, 127>;
173
173
  };
174
174
  export type MockPrivateKernelInitReturnType = PrivateKernelPublicInputs;
175
- export declare function MockPrivateKernelInit(tx: TxRequest, app_inputs: AppPublicInputs, app_vk: VerificationKey<127>, MockPrivateKernelInit_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<PrivateKernelPublicInputs>;
175
+ export declare function MockPrivateKernelInit(tx: TxRequest, app_inputs: AppPublicInputs, app_vk: FixedLengthArray<Field, 127>, MockPrivateKernelInit_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<PrivateKernelPublicInputs>;
176
176
  export type MockPrivateKernelInnerInputType = {
177
177
  prev_kernel_public_inputs: PrivateKernelPublicInputs;
178
- kernel_vk: VerificationKey<127>;
178
+ kernel_vk: FixedLengthArray<Field, 127>;
179
179
  app_inputs: AppPublicInputs;
180
- app_vk: VerificationKey<127>;
180
+ app_vk: FixedLengthArray<Field, 127>;
181
181
  };
182
182
  export type MockPrivateKernelInnerReturnType = PrivateKernelPublicInputs;
183
- export declare function MockPrivateKernelInner(prev_kernel_public_inputs: PrivateKernelPublicInputs, kernel_vk: VerificationKey<127>, app_inputs: AppPublicInputs, app_vk: VerificationKey<127>, MockPrivateKernelInner_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<PrivateKernelPublicInputs>;
183
+ export declare function MockPrivateKernelInner(prev_kernel_public_inputs: PrivateKernelPublicInputs, kernel_vk: FixedLengthArray<Field, 127>, app_inputs: AppPublicInputs, app_vk: FixedLengthArray<Field, 127>, MockPrivateKernelInner_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<PrivateKernelPublicInputs>;
184
184
  export type MockPrivateKernelResetInputType = {
185
185
  prev_kernel_public_inputs: PrivateKernelPublicInputs;
186
- kernel_vk: VerificationKey<127>;
186
+ kernel_vk: FixedLengthArray<Field, 127>;
187
187
  commitment_read_hints: FixedLengthArray<u32, 4>;
188
188
  };
189
189
  export type MockPrivateKernelResetReturnType = PrivateKernelPublicInputs;
190
- export declare function MockPrivateKernelReset(prev_kernel_public_inputs: PrivateKernelPublicInputs, kernel_vk: VerificationKey<127>, commitment_read_hints: FixedLengthArray<u32, 4>, MockPrivateKernelReset_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<PrivateKernelPublicInputs>;
190
+ export declare function MockPrivateKernelReset(prev_kernel_public_inputs: PrivateKernelPublicInputs, kernel_vk: FixedLengthArray<Field, 127>, commitment_read_hints: FixedLengthArray<u32, 4>, MockPrivateKernelReset_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<PrivateKernelPublicInputs>;
191
191
  export type MockPrivateKernelTailInputType = {
192
192
  prev_kernel_public_inputs: PrivateKernelPublicInputs;
193
- kernel_vk: VerificationKey<127>;
193
+ kernel_vk: FixedLengthArray<Field, 127>;
194
194
  };
195
195
  export type MockPrivateKernelTailReturnType = KernelPublicInputs;
196
- export declare function MockPrivateKernelTail(prev_kernel_public_inputs: PrivateKernelPublicInputs, kernel_vk: VerificationKey<127>, MockPrivateKernelTail_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<KernelPublicInputs>;
196
+ export declare function MockPrivateKernelTail(prev_kernel_public_inputs: PrivateKernelPublicInputs, kernel_vk: FixedLengthArray<Field, 127>, MockPrivateKernelTail_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<KernelPublicInputs>;
197
197
  export type MockRollupBasePublicInputType = {
198
198
  tube_data: TubeData;
199
- verification_key: VerificationKey<1000>;
199
+ verification_key: FixedLengthArray<Field, 1000>;
200
200
  proof: FixedLengthArray<Field, 20000>;
201
201
  public_inputs: AvmCircuitPublicInputs;
202
202
  };
203
203
  export type MockRollupBasePublicReturnType = RollupPublicInputs;
204
- export declare function MockRollupBasePublic(tube_data: TubeData, verification_key: VerificationKey<1000>, proof: FixedLengthArray<Field, 20000>, public_inputs: AvmCircuitPublicInputs, MockRollupBasePublic_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<RollupPublicInputs>;
204
+ export declare function MockRollupBasePublic(tube_data: TubeData, verification_key: FixedLengthArray<Field, 1000>, proof: FixedLengthArray<Field, 20000>, public_inputs: AvmCircuitPublicInputs, MockRollupBasePublic_circuit: CompiledCircuit, foreignCallHandler?: ForeignCallHandler): Promise<RollupPublicInputs>;
205
205
  export type MockRollupBasePrivateInputType = {
206
206
  tube_data: TubeData;
207
207
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/dest/witgen.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS } from '@aztec/constants';
1
+ import { AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED, CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import type { AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
4
4
  import type { RecursiveProof } from '@aztec/stdlib/proofs';
5
- import { VerificationKeyAsFields } from '@aztec/stdlib/vks';
5
+ import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
6
6
  import MockAppCreatorCircuit from '../artifacts/app_creator.json';
7
7
  import MockAppReaderCircuit from '../artifacts/app_reader.json';
8
8
  import MockAppCreatorVk from '../artifacts/keys/app_creator.vk.data.json';
@@ -23,11 +23,12 @@ import MockRollupBasePrivateCircuit from '../artifacts/mock_rollup_base_private.
23
23
  import MockRollupBasePublicCircuit from '../artifacts/mock_rollup_base_public.json';
24
24
  import MockRollupMergeCircuit from '../artifacts/mock_rollup_merge.json';
25
25
  import MockRollupRootCircuit from '../artifacts/mock_rollup_root.json';
26
- import type { AppCreatorInputType, AppPublicInputs, AppReaderInputType, FixedLengthArray, KernelPublicInputs, MockPrivateKernelInitInputType, MockPrivateKernelInnerInputType, MockPrivateKernelResetInputType, MockPrivateKernelTailInputType, MockRollupBasePrivateInputType, MockRollupBasePublicInputType, MockRollupMergeInputType, MockRollupRootInputType, PrivateKernelPublicInputs, RollupPublicInputs, VerificationKey } from './types/index.js';
27
- export { MockAppCreatorCircuit, MockAppCreatorVk, MockAppReaderCircuit, MockAppReaderVk, MockPrivateKernelInitCircuit, MockPrivateKernelInitVk, MockPrivateKernelInnerCircuit, MockPrivateKernelInnerVk, MockPrivateKernelResetCircuit, MockPrivateKernelResetVk, MockPrivateKernelTailCircuit, MockPrivateKernelTailVk, MockRollupBasePrivateCircuit, MockRollupBasePrivateVk, MockRollupBasePublicCircuit, MockRollupBasePublicVk, MockRollupMergeCircuit, MockRollupMergeVk, MockRollupRootCircuit, MockRollupRootVk, };
28
- export declare function getVkAsFields({ keyAsFields, }: {
26
+ import type { AppCreatorInputType, AppPublicInputs, AppReaderInputType, FixedLengthArray, KernelPublicInputs, MockPrivateKernelInitInputType, MockPrivateKernelInnerInputType, MockPrivateKernelResetInputType, MockPrivateKernelTailInputType, MockRollupBasePrivateInputType, MockRollupBasePublicInputType, MockRollupMergeInputType, MockRollupRootInputType, PrivateKernelPublicInputs, RollupPublicInputs } from './types/index.js';
27
+ export { MockAppCreatorCircuit, MockAppReaderCircuit, MockPrivateKernelInitCircuit, MockPrivateKernelInnerCircuit, MockPrivateKernelResetCircuit, MockPrivateKernelTailCircuit, MockRollupBasePublicCircuit, MockRollupBasePrivateCircuit, MockRollupMergeCircuit, MockRollupRootCircuit, MockAppCreatorVk, MockAppReaderVk, MockPrivateKernelInitVk, MockPrivateKernelInnerVk, MockPrivateKernelResetVk, MockPrivateKernelTailVk, MockRollupBasePublicVk, MockRollupBasePrivateVk, MockRollupMergeVk, MockRollupRootVk, };
28
+ export declare function getVkAsFields(vk: {
29
+ keyAsBytes: string;
29
30
  keyAsFields: string[];
30
- }): Promise<VerificationKey<typeof CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS>>;
31
+ }): FixedLengthArray<string, typeof CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS>;
31
32
  export declare const MOCK_MAX_COMMITMENTS_PER_TX = 4;
32
33
  export interface WitnessGenResult<PublicInputsType> {
33
34
  witness: Uint8Array;
@@ -61,5 +62,6 @@ export declare function mapVerificationKeyToNoir<N extends number>(vk: Verificat
61
62
  key: FixedLengthArray<string, N>;
62
63
  hash: string;
63
64
  };
65
+ export declare function mapAvmVerificationKeyToNoir(vk: Fr[]): FixedLengthArray<string, typeof AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED>;
64
66
  export declare function mapAvmPublicInputsToNoir(publicInputs: AvmCircuitPublicInputs): FixedLengthArray<string, typeof AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH>;
65
67
  //# sourceMappingURL=witgen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"witgen.d.ts","sourceRoot":"","sources":["../src/witgen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"witgen.d.ts","sourceRoot":"","sources":["../src/witgen.ts"],"names":[],"mappings":"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"}
package/dest/witgen.js CHANGED
@@ -1,8 +1,7 @@
1
- import { AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS } from '@aztec/constants';
1
+ import { AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { applyStringFormatting, createLogger } from '@aztec/foundation/log';
4
4
  import { Noir } from '@aztec/noir-noir_js';
5
- import { VerificationKeyAsFields } from '@aztec/stdlib/vks';
6
5
  import { strict as assert } from 'assert';
7
6
  import MockAppCreatorCircuit from '../artifacts/app_creator.json' with {
8
7
  type: 'json'
@@ -65,12 +64,10 @@ import MockRollupRootCircuit from '../artifacts/mock_rollup_root.json' with {
65
64
  type: 'json'
66
65
  };
67
66
  // Re export the circuit jsons
68
- export { MockAppCreatorCircuit, MockAppCreatorVk, MockAppReaderCircuit, MockAppReaderVk, MockPrivateKernelInitCircuit, MockPrivateKernelInitVk, MockPrivateKernelInnerCircuit, MockPrivateKernelInnerVk, MockPrivateKernelResetCircuit, MockPrivateKernelResetVk, MockPrivateKernelTailCircuit, MockPrivateKernelTailVk, MockRollupBasePrivateCircuit, MockRollupBasePrivateVk, MockRollupBasePublicCircuit, MockRollupBasePublicVk, MockRollupMergeCircuit, MockRollupMergeVk, MockRollupRootCircuit, MockRollupRootVk };
67
+ export { MockAppCreatorCircuit, MockAppReaderCircuit, MockPrivateKernelInitCircuit, MockPrivateKernelInnerCircuit, MockPrivateKernelResetCircuit, MockPrivateKernelTailCircuit, MockRollupBasePublicCircuit, MockRollupBasePrivateCircuit, MockRollupMergeCircuit, MockRollupRootCircuit, MockAppCreatorVk, MockAppReaderVk, MockPrivateKernelInitVk, MockPrivateKernelInnerVk, MockPrivateKernelResetVk, MockPrivateKernelTailVk, MockRollupBasePublicVk, MockRollupBasePrivateVk, MockRollupMergeVk, MockRollupRootVk };
69
68
  /* eslint-disable camelcase */ const log = createLogger('aztec:ivc-test');
70
- export async function getVkAsFields({ keyAsFields }) {
71
- const key = keyAsFields.map((f)=>Fr.fromString(f));
72
- const vk = await VerificationKeyAsFields.fromKey(key);
73
- return mapVerificationKeyToNoir(vk, CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS);
69
+ export function getVkAsFields(vk) {
70
+ return vk.keyAsFields;
74
71
  }
75
72
  export const MOCK_MAX_COMMITMENTS_PER_TX = 4;
76
73
  function foreignCallHandler(name, args) {
@@ -180,12 +177,12 @@ export async function generate3FunctionTestingIVCStack() {
180
177
  const initWitnessGenResult = await witnessGenMockPrivateKernelInitCircuit({
181
178
  app_inputs: appWitnessGenResult.publicInputs,
182
179
  tx,
183
- app_vk: await getVkAsFields(MockAppCreatorVk)
180
+ app_vk: getVkAsFields(MockAppCreatorVk)
184
181
  });
185
182
  log.debug('generated mock private kernel init witness');
186
183
  const tailWitnessGenResult = await witnessGenMockPrivateKernelTailCircuit({
187
184
  prev_kernel_public_inputs: initWitnessGenResult.publicInputs,
188
- kernel_vk: await getVkAsFields(MockPrivateKernelInitVk)
185
+ kernel_vk: getVkAsFields(MockPrivateKernelInitVk)
189
186
  });
190
187
  log.debug('generated mock private kernel tail witness');
191
188
  // Create client IVC proof
@@ -231,13 +228,13 @@ export async function generate6FunctionTestingIVCStack() {
231
228
  const initWitnessGenResult = await witnessGenMockPrivateKernelInitCircuit({
232
229
  app_inputs: creatorAppWitnessGenResult.publicInputs,
233
230
  tx,
234
- app_vk: await getVkAsFields(MockAppCreatorVk)
231
+ app_vk: getVkAsFields(MockAppCreatorVk)
235
232
  });
236
233
  const innerWitnessGenResult = await witnessGenMockPrivateKernelInnerCircuit({
237
234
  prev_kernel_public_inputs: initWitnessGenResult.publicInputs,
238
235
  app_inputs: readerAppWitnessGenResult.publicInputs,
239
- app_vk: await getVkAsFields(MockAppReaderVk),
240
- kernel_vk: await getVkAsFields(MockPrivateKernelInitVk)
236
+ app_vk: getVkAsFields(MockAppReaderVk),
237
+ kernel_vk: getVkAsFields(MockPrivateKernelInitVk)
241
238
  });
242
239
  const resetWitnessGenResult = await witnessGenMockPrivateKernelResetCircuit({
243
240
  prev_kernel_public_inputs: innerWitnessGenResult.publicInputs,
@@ -247,11 +244,11 @@ export async function generate6FunctionTestingIVCStack() {
247
244
  MOCK_MAX_COMMITMENTS_PER_TX.toString(),
248
245
  MOCK_MAX_COMMITMENTS_PER_TX.toString()
249
246
  ],
250
- kernel_vk: await getVkAsFields(MockPrivateKernelInnerVk)
247
+ kernel_vk: getVkAsFields(MockPrivateKernelInnerVk)
251
248
  });
252
249
  const tailWitnessGenResult = await witnessGenMockPrivateKernelTailCircuit({
253
250
  prev_kernel_public_inputs: resetWitnessGenResult.publicInputs,
254
- kernel_vk: await getVkAsFields(MockPrivateKernelResetVk)
251
+ kernel_vk: getVkAsFields(MockPrivateKernelResetVk)
255
252
  });
256
253
  // Create client IVC proof
257
254
  const bytecodes = [
@@ -303,6 +300,12 @@ export function mapVerificationKeyToNoir(vk, len) {
303
300
  hash: vk.hash.toString()
304
301
  };
305
302
  }
303
+ export function mapAvmVerificationKeyToNoir(vk) {
304
+ if (vk.length != AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED) {
305
+ throw new Error('Invalid number of AVM verification key fields');
306
+ }
307
+ return vk.map((field)=>field.toString());
308
+ }
306
309
  export function mapAvmPublicInputsToNoir(publicInputs) {
307
310
  const serialized = publicInputs.toFields();
308
311
  if (serialized.length != AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/ivc-integration",
3
- "version": "1.0.0-staging.2",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -62,14 +62,14 @@
62
62
  ]
63
63
  },
64
64
  "dependencies": {
65
- "@aztec/bb.js": "1.0.0-staging.2",
66
- "@aztec/constants": "1.0.0-staging.2",
67
- "@aztec/foundation": "1.0.0-staging.2",
68
- "@aztec/noir-noir_codegen": "1.0.0-staging.2",
69
- "@aztec/noir-noir_js": "1.0.0-staging.2",
70
- "@aztec/noir-noirc_abi": "1.0.0-staging.2",
71
- "@aztec/noir-types": "1.0.0-staging.2",
72
- "@aztec/stdlib": "1.0.0-staging.2",
65
+ "@aztec/bb.js": "1.0.0",
66
+ "@aztec/constants": "1.0.0",
67
+ "@aztec/foundation": "1.0.0",
68
+ "@aztec/noir-noir_codegen": "1.0.0",
69
+ "@aztec/noir-noir_js": "1.0.0",
70
+ "@aztec/noir-noirc_abi": "1.0.0",
71
+ "@aztec/noir-types": "1.0.0",
72
+ "@aztec/stdlib": "1.0.0",
73
73
  "change-case": "^5.4.4",
74
74
  "pako": "^2.1.0",
75
75
  "playwright": "1.49.0",
@@ -77,13 +77,13 @@
77
77
  "tslib": "^2.4.0"
78
78
  },
79
79
  "devDependencies": {
80
- "@aztec/bb-prover": "1.0.0-staging.2",
81
- "@aztec/kv-store": "1.0.0-staging.2",
82
- "@aztec/noir-protocol-circuits-types": "1.0.0-staging.2",
83
- "@aztec/noir-test-contracts.js": "1.0.0-staging.2",
84
- "@aztec/simulator": "1.0.0-staging.2",
85
- "@aztec/telemetry-client": "1.0.0-staging.2",
86
- "@aztec/world-state": "1.0.0-staging.2",
80
+ "@aztec/bb-prover": "1.0.0",
81
+ "@aztec/kv-store": "1.0.0",
82
+ "@aztec/noir-protocol-circuits-types": "1.0.0",
83
+ "@aztec/noir-test-contracts.js": "1.0.0",
84
+ "@aztec/simulator": "1.0.0",
85
+ "@aztec/telemetry-client": "1.0.0",
86
+ "@aztec/world-state": "1.0.0",
87
87
  "@jest/globals": "^30.0.0",
88
88
  "@playwright/test": "1.49.0",
89
89
  "@types/jest": "^30.0.0",