diff --git a/noir-projects/aztec-nr/authwit/src/auth.nr b/noir-projects/aztec-nr/authwit/src/auth.nr index 3809f76566a5..edbc461034c1 100644 --- a/noir-projects/aztec-nr/authwit/src/auth.nr +++ b/noir-projects/aztec-nr/authwit/src/auth.nr @@ -190,7 +190,7 @@ use dep::aztec::protocol_types::{ * chain to avoid a case where the same message could be used across multiple chains. */ -global IS_VALID_SELECTOR = 0x47dacd73; // 4 last bytes of poseidon2_hash_bytes("IS_VALID()") +global IS_VALID_SELECTOR: Field = 0x47dacd73; // 4 last bytes of poseidon2_hash_bytes("IS_VALID()") /** * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness diff --git a/noir-projects/aztec-nr/aztec/src/generators.nr b/noir-projects/aztec-nr/aztec/src/generators.nr index 8a6fe384ed8c..315ed58d101a 100644 --- a/noir-projects/aztec-nr/aztec/src/generators.nr +++ b/noir-projects/aztec-nr/aztec/src/generators.nr @@ -1,33 +1,33 @@ use dep::protocol_types::point::Point; // A set of generators generated with `derive_generators(...)` function from noir::std -pub global Ga1 = Point { +pub global Ga1: Point = Point { x: 0x30426e64aee30e998c13c8ceecda3a77807dbead52bc2f3bf0eae851b4b710c1, y: 0x113156a068f603023240c96b4da5474667db3b8711c521c748212a15bc034ea6, is_infinite: false, }; -pub global Ga2 = Point { +pub global Ga2: Point = Point { x: 0x2825c79cc6a5cbbeef7d6a8f1b6a12b312aa338440aefeb4396148c89147c049, y: 0x129bfd1da54b7062d6b544e7e36b90736350f6fba01228c41c72099509f5701e, is_infinite: false, }; -pub global Ga3 = Point { +pub global Ga3: Point = Point { x: 0x0edb1e293c3ce91bfc04e3ceaa50d2c541fa9d091c72eb403efb1cfa2cb3357f, y: 0x1341d675fa030ece3113ad53ca34fd13b19b6e9762046734f414824c4d6ade35, is_infinite: false, }; -pub global Ga4 = Point { +pub global Ga4: Point = Point { x: 0x0e0dad2250583f2a9f0acb04ededf1701b85b0393cae753fe7e14b88af81cb52, y: 0x0973b02c5caac339ee4ad5dab51329920f7bf1b6a07e1dabe5df67040b300962, is_infinite: false, }; -pub global Ga5 = Point { +pub global Ga5: Point = Point { x: 0x2f3342e900e8c488a28931aae68970738fdc68afde2910de7b320c00c902087d, y: 0x1bf958dc63cb09d59230603a0269ae86d6f92494da244910351f1132df20fc08, is_infinite: false, }; // If you change this update `G_SLOT` in `yarn-project/simulator/src/client/test_utils.ts` as well -pub global G_slot = Point { +pub global G_slot: Point = Point { x: 0x041223147b680850dc82e8a55a952d4df20256fe0593d949a9541ca00f0abf15, y: 0x0a8c72e60d0e60f5d804549d48f3044d06140b98ed717a9b532af630c1530791, is_infinite: false, diff --git a/noir-projects/aztec-nr/aztec/src/keys/constants.nr b/noir-projects/aztec-nr/aztec/src/keys/constants.nr index f069d678e852..f0de98203617 100644 --- a/noir-projects/aztec-nr/aztec/src/keys/constants.nr +++ b/noir-projects/aztec-nr/aztec/src/keys/constants.nr @@ -3,14 +3,14 @@ use dep::protocol_types::constants::{ GENERATOR_INDEX__TSK_M, }; -pub global NULLIFIER_INDEX = 0; -pub global INCOMING_INDEX = 1; -pub global OUTGOING_INDEX = 2; -pub global TAGGING_INDEX = 3; +pub global NULLIFIER_INDEX: Field = 0; +pub global INCOMING_INDEX: Field = 1; +pub global OUTGOING_INDEX: Field = 2; +pub global TAGGING_INDEX: Field = 3; -pub global NUM_KEY_TYPES = 4; +pub global NUM_KEY_TYPES: u32 = 4; -pub global sk_generators = [ +pub global sk_generators: [Field; 4] = [ GENERATOR_INDEX__NSK_M as Field, GENERATOR_INDEX__IVSK_M as Field, GENERATOR_INDEX__OVSK_M as Field, diff --git a/noir-projects/aztec-nr/aztec/src/keys/getters/test.nr b/noir-projects/aztec-nr/aztec/src/keys/getters/test.nr index 565ca62b47e4..d38f159ae113 100644 --- a/noir-projects/aztec-nr/aztec/src/keys/getters/test.nr +++ b/noir-projects/aztec-nr/aztec/src/keys/getters/test.nr @@ -3,7 +3,7 @@ use crate::keys::getters::get_public_keys; use crate::test::helpers::{cheatcodes, test_environment::TestEnvironment, utils::TestAccount}; use dep::std::test::OracleMock; -global KEY_ORACLE_RESPONSE_LENGTH = 13; // 12 fields for the keys, one field for the partial address +global KEY_ORACLE_RESPONSE_LENGTH: u32 = 13; // 12 fields for the keys, one field for the partial address unconstrained fn setup() -> TestAccount { let _ = TestEnvironment::new(); diff --git a/noir-projects/aztec-nr/aztec/src/macros/functions/interfaces.nr b/noir-projects/aztec-nr/aztec/src/macros/functions/interfaces.nr index ff768788ffff..5fffb892d8ea 100644 --- a/noir-projects/aztec-nr/aztec/src/macros/functions/interfaces.nr +++ b/noir-projects/aztec-nr/aztec/src/macros/functions/interfaces.nr @@ -99,7 +99,7 @@ pub comptime fn stub_fn(f: FunctionDefinition) -> Quoted { let fn_parameters_list = fn_parameters.map(|(name, typ): (Quoted, Type)| quote { $name: $typ }).join(quote {,}); - let fn_name_str = fn_name.as_str_quote(); + let (fn_name_str, _) = fn_name.as_str_quote(); let fn_name_len: u32 = unquote!(quote { $fn_name_str.as_bytes().len()}); diff --git a/noir-projects/aztec-nr/aztec/src/macros/notes/mod.nr b/noir-projects/aztec-nr/aztec/src/macros/notes/mod.nr index 4570d2ce5717..e3b11d000cc8 100644 --- a/noir-projects/aztec-nr/aztec/src/macros/notes/mod.nr +++ b/noir-projects/aztec-nr/aztec/src/macros/notes/mod.nr @@ -10,7 +10,7 @@ use std::{ meta::{typ::fresh_type_variable, type_of, unquote}, }; -comptime global NOTE_HEADER_TYPE = type_of(NoteHeader::empty()); +comptime global NOTE_HEADER_TYPE: Type = type_of(NoteHeader::empty()); /// A map from note type to (note_struct_definition, serialized_note_length, note_type_id, fields). /// `fields` is an array of tuples where each tuple contains the name of the field/struct member (e.g. `amount` @@ -22,7 +22,7 @@ pub comptime mut global NOTES: UHashMap Field { - let name_as_str_quote = name.as_str_quote(); + let (name_as_str_quote, _) = name.as_str_quote(); unquote!( quote { @@ -267,7 +267,7 @@ pub(crate) comptime fn generate_note_export( let hash = hasher.finish() as u32; let global_export_name = f"{name}_{hash}_EXPORTS".quoted_contents(); let note_fields_name = f"{name}Fields_{hash}".quoted_contents(); - let note_name_as_str = name.as_str_quote(); + let (note_name_as_str, _) = name.as_str_quote(); let note_name_str_len = unquote!(quote { $note_name_as_str.as_bytes().len() }); let mut note_fields = &[]; diff --git a/noir-projects/aztec-nr/aztec/src/macros/storage/mod.nr b/noir-projects/aztec-nr/aztec/src/macros/storage/mod.nr index c48fb8f5161a..77abd9e25174 100644 --- a/noir-projects/aztec-nr/aztec/src/macros/storage/mod.nr +++ b/noir-projects/aztec-nr/aztec/src/macros/storage/mod.nr @@ -63,7 +63,7 @@ pub comptime fn storage(s: StructDefinition) -> Quoted { let module = s.module(); let module_name = module.name(); let storage_layout_name = f"STORAGE_LAYOUT_{module_name}".quoted_contents(); - let module_name_str = module_name.as_str_quote(); + let (module_name_str, module_name_len) = module_name.as_str_quote(); STORAGE_LAYOUT_NAME.insert(module, storage_layout_name); quote { @@ -79,7 +79,7 @@ pub comptime fn storage(s: StructDefinition) -> Quoted { } #[abi(storage)] - pub global $storage_layout_name = StorageLayout { + pub global $storage_layout_name: StorageLayout<$module_name_len> = StorageLayout { contract_name: $module_name_str, fields: StorageLayoutFields { $storage_layout_constructors } }; diff --git a/noir-projects/aztec-nr/aztec/src/macros/utils.nr b/noir-projects/aztec-nr/aztec/src/macros/utils.nr index 2f516e9ffd94..4160022fd145 100644 --- a/noir-projects/aztec-nr/aztec/src/macros/utils.nr +++ b/noir-projects/aztec-nr/aztec/src/macros/utils.nr @@ -143,12 +143,12 @@ comptime fn signature_of_type(typ: Type) -> Quoted { } trait AsStrQuote { - fn as_str_quote(self) -> Self; + fn as_str_quote(self) -> (Self, u32); } impl AsStrQuote for Quoted { - // Used to convert an arbirary quoted type into a quoted string, removing whitespace between tokens - comptime fn as_str_quote(self) -> Quoted { + // Used to convert an arbitrary quoted type into a quoted string, removing whitespace between tokens + comptime fn as_str_quote(self) -> (Quoted, u32) { let tokens = self.tokens(); let mut acc: [u8] = &[]; let mut total_len: u32 = 0; @@ -166,7 +166,7 @@ impl AsStrQuote for Quoted { signature_as_array.as_str_unchecked() }, ); - quote { $result } + (quote { $result }, total_len) } } @@ -181,7 +181,7 @@ pub(crate) comptime fn compute_fn_selector(f: FunctionDefinition) -> Field { let args_signatures = f.parameters().map(|(_, typ): (Quoted, Type)| signature_of_type(typ)).join(quote {,}); let signature_quote = quote { $fn_name($args_signatures) }; - let signature_str_quote = signature_quote.as_str_quote(); + let (signature_str_quote, _) = signature_quote.as_str_quote(); let computation_quote = quote { protocol_types::abis::function_selector::FunctionSelector::from_signature($signature_str_quote).to_field() @@ -207,7 +207,7 @@ pub(crate) comptime fn compute_event_selector(s: StructDefinition) -> Field { }) .join(quote {,}); let signature_quote = quote { $event_name($args_signatures) }; - let signature_str_quote = signature_quote.as_str_quote(); + let (signature_str_quote, _) = signature_quote.as_str_quote(); let computation_quote = quote { protocol_types::abis::event_selector::EventSelector::from_signature($signature_str_quote).to_field() diff --git a/noir-projects/aztec-nr/aztec/src/note/note_getter_options.nr b/noir-projects/aztec-nr/aztec/src/note/note_getter_options.nr index 00de16117cc3..1b80000f315e 100644 --- a/noir-projects/aztec-nr/aztec/src/note/note_getter_options.nr +++ b/noir-projects/aztec-nr/aztec/src/note/note_getter_options.nr @@ -27,7 +27,7 @@ pub struct SortOrderEnum { pub ASC: u8, } -pub global SortOrder = SortOrderEnum { DESC: 1, ASC: 2 }; +pub global SortOrder: SortOrderEnum = SortOrderEnum { DESC: 1, ASC: 2 }; pub struct Sort { pub(crate) property_selector: PropertySelector, @@ -45,7 +45,7 @@ pub struct NoteStatusEnum { pub ACTIVE_OR_NULLIFIED: u8, } -pub global NoteStatus = NoteStatusEnum { +pub global NoteStatus: NoteStatusEnum = NoteStatusEnum { ACTIVE: 1, ACTIVE_OR_NULLIFIED: 2, // TODO 4217: add 'NULLIFIED' diff --git a/noir-projects/aztec-nr/aztec/src/oracle/get_membership_witness.nr b/noir-projects/aztec-nr/aztec/src/oracle/get_membership_witness.nr index b1783ddea149..02f8a0267ccb 100644 --- a/noir-projects/aztec-nr/aztec/src/oracle/get_membership_witness.nr +++ b/noir-projects/aztec-nr/aztec/src/oracle/get_membership_witness.nr @@ -3,8 +3,8 @@ use dep::protocol_types::{ utils::arr_copy_slice, }; -global NOTE_HASH_TREE_ID = 1; -global ARCHIVE_TREE_ID = 4; +global NOTE_HASH_TREE_ID: Field = 1; +global ARCHIVE_TREE_ID: Field = 4; // Note: We have M here because we need to somehow set it when calling get_membership_witness function and one way to // do it is to set M here and then set type of the return param, e.g.: diff --git a/noir-projects/aztec-nr/aztec/src/oracle/storage.nr b/noir-projects/aztec-nr/aztec/src/oracle/storage.nr index c766c739a304..67e86790e43d 100644 --- a/noir-projects/aztec-nr/aztec/src/oracle/storage.nr +++ b/noir-projects/aztec-nr/aztec/src/oracle/storage.nr @@ -39,9 +39,9 @@ mod tests { use crate::test::mocks::mock_struct::MockStruct; use std::test::OracleMock; - global address = AztecAddress::from_field(29); - global slot = 7; - global block_number = 17; + global address: AztecAddress = AztecAddress::from_field(29); + global slot: Field = 7; + global block_number: u32 = 17; #[test] unconstrained fn test_raw_storage_read() { diff --git a/noir-projects/aztec-nr/aztec/src/state_vars/private_mutable/test.nr b/noir-projects/aztec-nr/aztec/src/state_vars/private_mutable/test.nr index 6f9ca70cbab0..4eaae18e25ba 100644 --- a/noir-projects/aztec-nr/aztec/src/state_vars/private_mutable/test.nr +++ b/noir-projects/aztec-nr/aztec/src/state_vars/private_mutable/test.nr @@ -5,7 +5,7 @@ use crate::{ use crate::test::{helpers::test_environment::TestEnvironment, mocks::mock_note::MockNote}; use std::test::OracleMock; -global storage_slot = 17; +global storage_slot: Field = 17; unconstrained fn setup() -> TestEnvironment { let mut env = TestEnvironment::new(); diff --git a/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/test.nr b/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/test.nr index de2d1f2c0bb1..f3ec3434abf3 100644 --- a/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/test.nr +++ b/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/test.nr @@ -9,11 +9,11 @@ use crate::{ use dep::std::{mem::zeroed, test::OracleMock}; -global new_value = 17; +global new_value: Field = 17; -global new_delay = 20; +global new_delay: u32 = 20; -global storage_slot = 47; +global storage_slot: Field = 47; global TEST_INITIAL_DELAY: u32 = 32; diff --git a/noir-projects/aztec-nr/aztec/src/test/helpers/utils.nr b/noir-projects/aztec-nr/aztec/src/test/helpers/utils.nr index cb48749b1f2a..d8a683889625 100644 --- a/noir-projects/aztec-nr/aztec/src/test/helpers/utils.nr +++ b/noir-projects/aztec-nr/aztec/src/test/helpers/utils.nr @@ -115,7 +115,7 @@ impl Deployer { } // Keys length + address -global TEST_ACCOUNT_LENGTH = PUBLIC_KEYS_LENGTH + 1; +global TEST_ACCOUNT_LENGTH: u32 = PUBLIC_KEYS_LENGTH + 1; pub struct TestAccount { pub address: AztecAddress, diff --git a/noir-projects/aztec-nr/aztec/src/utils/comparison.nr b/noir-projects/aztec-nr/aztec/src/utils/comparison.nr index bbb54221c732..b6b744b50320 100644 --- a/noir-projects/aztec-nr/aztec/src/utils/comparison.nr +++ b/noir-projects/aztec-nr/aztec/src/utils/comparison.nr @@ -7,7 +7,8 @@ struct ComparatorEnum { pub GTE: u8, } -pub global Comparator = ComparatorEnum { EQ: 1, NEQ: 2, LT: 3, LTE: 4, GT: 5, GTE: 6 }; +pub global Comparator: ComparatorEnum = + ComparatorEnum { EQ: 1, NEQ: 2, LT: 3, LTE: 4, GT: 5, GTE: 6 }; pub fn compare(lhs: Field, operation: u8, rhs: Field) -> bool { // Values are computed ahead of time because circuits evaluate all branches diff --git a/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr b/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr index c00ac1910604..168260ebcc27 100644 --- a/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr @@ -29,8 +29,8 @@ contract AppSubscription { fee_juice_limit_per_tx: PublicImmutable, } - global SUBSCRIPTION_DURATION_IN_BLOCKS = 5; - global SUBSCRIPTION_TXS = 5; + global SUBSCRIPTION_DURATION_IN_BLOCKS: Field = 5; + global SUBSCRIPTION_TXS: Field = 5; #[private] fn entrypoint(payload: DAppPayload, user_address: AztecAddress) { diff --git a/noir-projects/noir-contracts/contracts/auth_contract/src/test/main.nr b/noir-projects/noir-contracts/contracts/auth_contract/src/test/main.nr index 12eabed00375..7f8368a70057 100644 --- a/noir-projects/noir-contracts/contracts/auth_contract/src/test/main.nr +++ b/noir-projects/noir-contracts/contracts/auth_contract/src/test/main.nr @@ -3,7 +3,7 @@ use crate::test::utils; use dep::aztec::prelude::AztecAddress; -global CHANGE_AUTHORIZED_DELAY_BLOCKS = 5; +global CHANGE_AUTHORIZED_DELAY_BLOCKS: u32 = 5; // TODO (#8588): These were ported over directly from e2e tests. Refactor these in the correct TXe style. #[test] diff --git a/noir-projects/noir-contracts/contracts/card_game_contract/src/cards.nr b/noir-projects/noir-contracts/contracts/card_game_contract/src/cards.nr index 34edfa95d375..ed1e4257d8fe 100644 --- a/noir-projects/noir-contracts/contracts/card_game_contract/src/cards.nr +++ b/noir-projects/noir-contracts/contracts/card_game_contract/src/cards.nr @@ -150,7 +150,7 @@ impl Deck { } } -global PACK_CARDS = 3; // Limited by number of write requests (max 4) +global PACK_CARDS: u32 = 3; // Limited by number of write requests (max 4) pub fn get_pack_cards( seed: Field, diff --git a/noir-projects/noir-contracts/contracts/test_log_contract/src/main.nr b/noir-projects/noir-contracts/contracts/test_log_contract/src/main.nr index 19e5c1092436..dcfa77208370 100644 --- a/noir-projects/noir-contracts/contracts/test_log_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/test_log_contract/src/main.nr @@ -33,7 +33,7 @@ contract TestLog { } // EXAMPLE_EVENT_0_BYTES_LEN + 16 - global EXAMPLE_EVENT_0_CIPHERTEXT_BYTES_LEN = 144; + global EXAMPLE_EVENT_0_CIPHERTEXT_BYTES_LEN: Field = 144; #[private] fn emit_encrypted_events(other: AztecAddress, randomness: [Field; 2], preimages: [Field; 4]) { diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_inner.nr b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_inner.nr index 0a67842e305b..dba69275d12d 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_inner.nr +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_inner.nr @@ -16,7 +16,7 @@ use dep::types::{ constants::{PRIVATE_KERNEL_INIT_INDEX, PRIVATE_KERNEL_INNER_INDEX, PRIVATE_KERNEL_RESET_INDEX}, }; -global ALLOWED_PREVIOUS_CIRCUITS = +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 3] = [PRIVATE_KERNEL_INIT_INDEX, PRIVATE_KERNEL_INNER_INDEX, PRIVATE_KERNEL_RESET_INDEX]; pub struct PrivateKernelInnerCircuitPrivateInputs { diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_reset.nr b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_reset.nr index fb958f868764..8a2a11b7e091 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_reset.nr +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_reset.nr @@ -13,7 +13,7 @@ use dep::types::{ PrivateKernelCircuitPublicInputs, }; -global ALLOWED_PREVIOUS_CIRCUITS = +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 3] = [PRIVATE_KERNEL_INIT_INDEX, PRIVATE_KERNEL_INNER_INDEX, PRIVATE_KERNEL_RESET_INDEX]; pub struct PrivateKernelResetHints { diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail.nr b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail.nr index 08eae183bd0b..df248d4e3c03 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail.nr +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail.nr @@ -11,7 +11,7 @@ use dep::types::{ PrivateKernelCircuitPublicInputs, }; -global ALLOWED_PREVIOUS_CIRCUITS = +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 3] = [PRIVATE_KERNEL_INIT_INDEX, PRIVATE_KERNEL_INNER_INDEX, PRIVATE_KERNEL_RESET_INDEX]; pub struct PrivateKernelTailCircuitPrivateInputs { diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail_to_public.nr b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail_to_public.nr index fdc7a788ce9e..8af1c4218111 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail_to_public.nr +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_tail_to_public.nr @@ -12,7 +12,7 @@ use dep::types::{ PrivateKernelCircuitPublicInputs, }; -global ALLOWED_PREVIOUS_CIRCUITS = +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 3] = [PRIVATE_KERNEL_INIT_INDEX, PRIVATE_KERNEL_INNER_INDEX, PRIVATE_KERNEL_RESET_INDEX]; pub struct PrivateKernelTailToPublicCircuitPrivateInputs { diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset-simulated/src/main.nr b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset-simulated/src/main.nr index 89199192db0c..7ae49c443c7c 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset-simulated/src/main.nr +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset-simulated/src/main.nr @@ -11,15 +11,15 @@ use dep::types::{ }; use types::abis::private_kernel_data::PrivateKernelDataWithoutPublicInputs; -global NOTE_HASH_PENDING_AMOUNT = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; // 64 -global NOTE_HASH_SETTLED_AMOUNT = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; -global NULLIFIER_PENDING_AMOUNT = MAX_NULLIFIER_READ_REQUESTS_PER_TX; // 64 -global NULLIFIER_SETTLED_AMOUNT = MAX_NULLIFIER_READ_REQUESTS_PER_TX; -global NULLIFIER_KEYS = MAX_KEY_VALIDATION_REQUESTS_PER_TX; // 64 -global TRANSIENT_DATA_AMOUNT = MAX_NULLIFIERS_PER_TX; // 64 -global NOTE_HASH_SILOING_AMOUNT = MAX_NOTE_HASHES_PER_TX; // 64 -global NULLIFIER_SILOING_AMOUNT = MAX_NULLIFIERS_PER_TX; // 64 -global ENCRYPTED_LOG_SILOING_AMOUNT = MAX_ENCRYPTED_LOGS_PER_TX; // 8 +global NOTE_HASH_PENDING_AMOUNT: u32 = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; // 64 +global NOTE_HASH_SETTLED_AMOUNT: u32 = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; +global NULLIFIER_PENDING_AMOUNT: u32 = MAX_NULLIFIER_READ_REQUESTS_PER_TX; // 64 +global NULLIFIER_SETTLED_AMOUNT: u32 = MAX_NULLIFIER_READ_REQUESTS_PER_TX; +global NULLIFIER_KEYS: u32 = MAX_KEY_VALIDATION_REQUESTS_PER_TX; // 64 +global TRANSIENT_DATA_AMOUNT: u32 = MAX_NULLIFIERS_PER_TX; // 64 +global NOTE_HASH_SILOING_AMOUNT: u32 = MAX_NOTE_HASHES_PER_TX; // 64 +global NULLIFIER_SILOING_AMOUNT: u32 = MAX_NULLIFIERS_PER_TX; // 64 +global ENCRYPTED_LOG_SILOING_AMOUNT: u32 = MAX_ENCRYPTED_LOGS_PER_TX; // 8 unconstrained fn main( previous_kernel: PrivateKernelDataWithoutPublicInputs, diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/src/main.nr b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/src/main.nr index a5371db73d7b..03b594983f54 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/src/main.nr +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/src/main.nr @@ -11,15 +11,15 @@ use dep::types::{ }; use types::abis::private_kernel_data::PrivateKernelDataWithoutPublicInputs; -global NOTE_HASH_PENDING_AMOUNT = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; // 64 -global NOTE_HASH_SETTLED_AMOUNT = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; -global NULLIFIER_PENDING_AMOUNT = MAX_NULLIFIER_READ_REQUESTS_PER_TX; // 64 -global NULLIFIER_SETTLED_AMOUNT = MAX_NULLIFIER_READ_REQUESTS_PER_TX; -global NULLIFIER_KEYS = MAX_KEY_VALIDATION_REQUESTS_PER_TX; // 64 -global TRANSIENT_DATA_AMOUNT = MAX_NULLIFIERS_PER_TX; // 64 -global NOTE_HASH_SILOING_AMOUNT = MAX_NOTE_HASHES_PER_TX; // 64 -global NULLIFIER_SILOING_AMOUNT = MAX_NULLIFIERS_PER_TX; // 64 -global ENCRYPTED_LOG_SILOING_AMOUNT = MAX_ENCRYPTED_LOGS_PER_TX; // 8 +global NOTE_HASH_PENDING_AMOUNT: u32 = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; // 64 +global NOTE_HASH_SETTLED_AMOUNT: u32 = MAX_NOTE_HASH_READ_REQUESTS_PER_TX; +global NULLIFIER_PENDING_AMOUNT: u32 = MAX_NULLIFIER_READ_REQUESTS_PER_TX; // 64 +global NULLIFIER_SETTLED_AMOUNT: u32 = MAX_NULLIFIER_READ_REQUESTS_PER_TX; +global NULLIFIER_KEYS: u32 = MAX_KEY_VALIDATION_REQUESTS_PER_TX; // 64 +global TRANSIENT_DATA_AMOUNT: u32 = MAX_NULLIFIERS_PER_TX; // 64 +global NOTE_HASH_SILOING_AMOUNT: u32 = MAX_NOTE_HASHES_PER_TX; // 64 +global NULLIFIER_SILOING_AMOUNT: u32 = MAX_NULLIFIERS_PER_TX; // 64 +global ENCRYPTED_LOG_SILOING_AMOUNT: u32 = MAX_ENCRYPTED_LOGS_PER_TX; // 8 fn main( previous_kernel: PrivateKernelDataWithoutPublicInputs, diff --git a/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/read_request.nr b/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/read_request.nr index ec5271424ead..1f02c1c37ee7 100644 --- a/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/read_request.nr +++ b/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/read_request.nr @@ -10,7 +10,8 @@ pub struct ReadRequestStateEnum { pub SETTLED: u8, } -pub global ReadRequestState = ReadRequestStateEnum { NADA: 0, PENDING: 1, SETTLED: 2 }; +pub global ReadRequestState: ReadRequestStateEnum = + ReadRequestStateEnum { NADA: 0, PENDING: 1, SETTLED: 2 }; pub struct ReadRequestStatus { pub state: u8, diff --git a/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/transient_data.nr b/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/transient_data.nr index a1956abdee8d..d53e1889e499 100644 --- a/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/transient_data.nr +++ b/noir-projects/noir-protocol-circuits/crates/reset-kernel-lib/src/reset/transient_data.nr @@ -205,7 +205,7 @@ mod tests { address::AztecAddress, }; - global contract_address = AztecAddress::from_field(987654); + global contract_address: AztecAddress = AztecAddress::from_field(987654); struct TestDataBuilder { note_hashes: [ScopedNoteHash; NUM_NOTE_HASHES], diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/base_or_merge_rollup_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/base_or_merge_rollup_public_inputs.nr index c591c30cdfa9..ca62021ee1e1 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/base_or_merge_rollup_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/base_or_merge_rollup_public_inputs.nr @@ -6,8 +6,8 @@ use dep::types::{ utils::reader::Reader, }; -pub(crate) global BASE_ROLLUP_TYPE = 0; -pub(crate) global MERGE_ROLLUP_TYPE = 1; +pub(crate) global BASE_ROLLUP_TYPE: u32 = 0; +pub(crate) global MERGE_ROLLUP_TYPE: u32 = 1; pub struct BaseOrMergeRollupPublicInputs { // rollup_type is either 0 (base) or 1 (merge) diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/private_base_rollup.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/private_base_rollup.nr index 30b20e4b88f3..6afb8711abc3 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/private_base_rollup.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/private_base_rollup.nr @@ -33,7 +33,7 @@ use dep::types::{ traits::is_empty, }; -global ALLOWED_PREVIOUS_CIRCUITS = [PRIVATE_KERNEL_EMPTY_INDEX, TUBE_VK_INDEX]; +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 2] = [PRIVATE_KERNEL_EMPTY_INDEX, TUBE_VK_INDEX]; pub struct PrivateBaseRollupInputs { tube_data: PrivateTubeData, @@ -263,9 +263,9 @@ mod tests { } global MAX_NULLIFIERS_PER_TEST: u32 = 4; - global AVAILABLE_PUBLIC_DATA_LEAVES_FOR_TEST = 64; - global AVAILABLE_PUBLIC_DATA_SUBTREE_HEIGHT_FOR_TEST = 6; - global PRE_EXISTING_PUBLIC_DATA_LEAVES = 10; + global AVAILABLE_PUBLIC_DATA_LEAVES_FOR_TEST: u32 = 64; + global AVAILABLE_PUBLIC_DATA_SUBTREE_HEIGHT_FOR_TEST: u32 = 6; + global PRE_EXISTING_PUBLIC_DATA_LEAVES: u32 = 10; fn update_public_data_tree( public_data_tree: &mut NonEmptyMerkleTree, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/public_base_rollup.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/public_base_rollup.nr index 1fff4bb07ffe..bc7e07cb74f6 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/public_base_rollup.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/base/public_base_rollup.nr @@ -407,9 +407,9 @@ mod tests { } global MAX_NULLIFIERS_PER_TEST: u32 = 4; - global AVAILABLE_PUBLIC_DATA_LEAVES_FOR_TEST = 128; - global AVAILABLE_PUBLIC_DATA_SUBTREE_HEIGHT_FOR_TEST = 7; - global PRE_EXISTING_PUBLIC_DATA_LEAVES = 10; + global AVAILABLE_PUBLIC_DATA_LEAVES_FOR_TEST: u32 = 128; + global AVAILABLE_PUBLIC_DATA_SUBTREE_HEIGHT_FOR_TEST: u32 = 7; + global PRE_EXISTING_PUBLIC_DATA_LEAVES: u32 = 10; fn update_public_data_tree( public_data_tree: &mut NonEmptyMerkleTree, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr index 50b956e01a8f..bd4bdf585e30 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr @@ -3,7 +3,7 @@ use crate::abis::previous_rollup_block_data::PreviousRollupBlockData; use crate::components; use dep::types::{constants::{BLOCK_MERGE_ROLLUP_INDEX, BLOCK_ROOT_ROLLUP_INDEX}, traits::Empty}; // TODO(#7346): Currently unused! Will be used when batch rollup circuits are integrated. -global ALLOWED_PREVIOUS_CIRCUITS = [BLOCK_ROOT_ROLLUP_INDEX, BLOCK_MERGE_ROLLUP_INDEX]; +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 2] = [BLOCK_ROOT_ROLLUP_INDEX, BLOCK_MERGE_ROLLUP_INDEX]; pub struct BlockMergeRollupInputs { previous_rollup_data: [PreviousRollupBlockData; 2], diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr index bd2ee6a1cb6e..bf64b16d093c 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr @@ -20,9 +20,8 @@ use types::{ state_reference::StateReference, traits::Empty, }; -use types::debug_log::debug_log_format; -global ALLOWED_PREVIOUS_CIRCUITS = +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 3] = [MERGE_ROLLUP_INDEX, PRIVATE_BASE_ROLLUP_VK_INDEX, PUBLIC_BASE_ROLLUP_VK_INDEX]; pub struct BlockRootRollupInputs { diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr index 7dbe6021d88e..217ba2e1b376 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr @@ -242,7 +242,7 @@ fn silo_and_hash_encrypted_logs( // 1 encrypted logs hash --> 1 sha256 hash -> 31 bytes -> 1 fields | Beware when populating bytes that we fill (prepend) to 32! | -> 4 types of logs - 4 fields for its hashes // 1 unencrypted logs hash --> 1 sha256 hash -> 31 bytes -> 1 fields | Beware when populating bytes that we fill (prepend) to 32! | // 1 contract class logs hash --> 1 sha256 hash -> 31 bytes -> 1 fields | Beware when populating bytes that we fill (prepend) to 32! __| -global TX_EFFECTS_HASH_INPUT_FIELDS = 1 +global TX_EFFECTS_HASH_INPUT_FIELDS: u32 = 1 + 1 + MAX_NOTE_HASHES_PER_TX + MAX_NULLIFIERS_PER_TX diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/merge/merge_rollup_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/merge/merge_rollup_inputs.nr index c23386096729..cc45af921a1c 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/merge/merge_rollup_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/merge/merge_rollup_inputs.nr @@ -8,7 +8,7 @@ use dep::types::{ traits::Empty, }; -global ALLOWED_PREVIOUS_CIRCUITS = +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 3] = [MERGE_ROLLUP_INDEX, PRIVATE_BASE_ROLLUP_VK_INDEX, PUBLIC_BASE_ROLLUP_VK_INDEX]; pub struct MergeRollupInputs { diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr index 619aed711df5..1b4e6343ff07 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr @@ -7,7 +7,7 @@ use types::{ traits::Empty, }; // TODO(#7346): Currently unused! Will be used when batch rollup circuits are integrated. -global ALLOWED_PREVIOUS_CIRCUITS = +global ALLOWED_PREVIOUS_CIRCUITS: [u32; 3] = [BLOCK_ROOT_ROLLUP_INDEX, BLOCK_MERGE_ROLLUP_INDEX, BLOCK_ROOT_ROLLUP_EMPTY_INDEX]; pub struct RootRollupInputs { diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index fcf4127112fd..3a2b03254f70 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -53,11 +53,11 @@ pub global PUBLIC_DATA_TREE_HEIGHT: u32 = 40; pub global NULLIFIER_TREE_HEIGHT: u32 = 40; pub global L1_TO_L2_MSG_TREE_HEIGHT: u32 = 39; pub global ARTIFACT_FUNCTION_TREE_MAX_HEIGHT: u32 = 5; -pub global NULLIFIER_TREE_ID = 0; -pub global NOTE_HASH_TREE_ID = 1; -pub global PUBLIC_DATA_TREE_ID = 2; -pub global L1_TO_L2_MESSAGE_TREE_ID = 3; -pub global ARCHIVE_TREE_ID = 4; +pub global NULLIFIER_TREE_ID: Field = 0; +pub global NOTE_HASH_TREE_ID: Field = 1; +pub global PUBLIC_DATA_TREE_ID: Field = 2; +pub global L1_TO_L2_MESSAGE_TREE_ID: Field = 3; +pub global ARCHIVE_TREE_ID: Field = 4; // SUB-TREES RELATED CONSTANTS pub global NOTE_HASH_SUBTREE_HEIGHT: u32 = 6; @@ -156,18 +156,18 @@ pub global REGISTERER_UNCONSTRAINED_FUNCTION_BROADCASTED_ADDITIONAL_FIELDS: u32 // Since we are not yet emitting selectors we'll use this magic value to identify events emitted by the ClassRegisterer. // This is just a stopgap until we implement proper selectors. // sha224sum 'struct ContractClassRegistered {contract_class_id: ContractClassId, version: Field, artifact_hash: Field, private_functions_root: Field, packed_public_bytecode: [Field; MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS] }' -pub global REGISTERER_CONTRACT_CLASS_REGISTERED_MAGIC_VALUE = +pub global REGISTERER_CONTRACT_CLASS_REGISTERED_MAGIC_VALUE: Field = 0x6999d1e02b08a447a463563453cb36919c9dd7150336fc7c4d2b52f8; // sha224sum 'struct ClassPrivateFunctionBroadcasted' -pub global REGISTERER_PRIVATE_FUNCTION_BROADCASTED_MAGIC_VALUE = +pub global REGISTERER_PRIVATE_FUNCTION_BROADCASTED_MAGIC_VALUE: Field = 0x1b70e95fde0b70adc30496b90a327af6a5e383e028e7a43211a07bcd; // sha224sum 'struct ClassUnconstrainedFunctionBroadcasted' -pub global REGISTERER_UNCONSTRAINED_FUNCTION_BROADCASTED_MAGIC_VALUE = +pub global REGISTERER_UNCONSTRAINED_FUNCTION_BROADCASTED_MAGIC_VALUE: Field = 0xe7af816635466f128568edb04c9fa024f6c87fb9010fdbffa68b3d99; // CONTRACT INSTANCE CONSTANTS // sha224sum 'struct ContractInstanceDeployed' -pub global DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE = +pub global DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE: Field = 0x85864497636cf755ae7bde03f267ce01a520981c21c3682aaf82a631; // GAS DEFAULTS @@ -221,12 +221,12 @@ pub global L2_GAS_PER_L2_TO_L1_MSG: u32 = 200; // CANONICAL CONTRACT ADDRESSES pub global MAX_PROTOCOL_CONTRACTS: u32 = (1 << PROTOCOL_CONTRACT_TREE_HEIGHT as u8) - 1; // Index 0 can't be used. -pub global CANONICAL_AUTH_REGISTRY_ADDRESS = AztecAddress::from_field(1); -pub global DEPLOYER_CONTRACT_ADDRESS = AztecAddress::from_field(2); -pub global REGISTERER_CONTRACT_ADDRESS = AztecAddress::from_field(3); -pub global MULTI_CALL_ENTRYPOINT_ADDRESS = AztecAddress::from_field(4); -pub global FEE_JUICE_ADDRESS = AztecAddress::from_field(5); -pub global ROUTER_ADDRESS = AztecAddress::from_field(6); +pub global CANONICAL_AUTH_REGISTRY_ADDRESS: AztecAddress = AztecAddress::from_field(1); +pub global DEPLOYER_CONTRACT_ADDRESS: AztecAddress = AztecAddress::from_field(2); +pub global REGISTERER_CONTRACT_ADDRESS: AztecAddress = AztecAddress::from_field(3); +pub global MULTI_CALL_ENTRYPOINT_ADDRESS: AztecAddress = AztecAddress::from_field(4); +pub global FEE_JUICE_ADDRESS: AztecAddress = AztecAddress::from_field(5); +pub global ROUTER_ADDRESS: AztecAddress = AztecAddress::from_field(6); // CANONICAL DEFAULT KEYS // This below are: @@ -235,14 +235,22 @@ pub global ROUTER_ADDRESS = AztecAddress::from_field(6); // "az_null_ovpk" // "az_null_tpk" // as bytes, hashed to curve using grumpkin::g1::affine_element::hash_to_curve(, 0); -pub global DEFAULT_NPK_M_X = 0x01498945581e0eb9f8427ad6021184c700ef091d570892c437d12c7d90364bbd; -pub global DEFAULT_NPK_M_Y = 0x170ae506787c5c43d6ca9255d571c10fa9ffa9d141666e290c347c5c9ab7e344; -pub global DEFAULT_IVPK_M_X = 0x00c044b05b6ca83b9c2dbae79cc1135155956a64e136819136e9947fe5e5866c; -pub global DEFAULT_IVPK_M_Y = 0x1c1f0ca244c7cd46b682552bff8ae77dea40b966a71de076ec3b7678f2bdb151; -pub global DEFAULT_OVPK_M_X = 0x1b00316144359e9a3ec8e49c1cdb7eeb0cedd190dfd9dc90eea5115aa779e287; -pub global DEFAULT_OVPK_M_Y = 0x080ffc74d7a8b0bccb88ac11f45874172f3847eb8b92654aaa58a3d2b8dc7833; -pub global DEFAULT_TPK_M_X = 0x019c111f36ad3fc1d9b7a7a14344314d2864b94f030594cd67f753ef774a1efb; -pub global DEFAULT_TPK_M_Y = 0x2039907fe37f08d10739255141bb066c506a12f7d1e8dfec21abc58494705b6f; +pub global DEFAULT_NPK_M_X: Field = + 0x01498945581e0eb9f8427ad6021184c700ef091d570892c437d12c7d90364bbd; +pub global DEFAULT_NPK_M_Y: Field = + 0x170ae506787c5c43d6ca9255d571c10fa9ffa9d141666e290c347c5c9ab7e344; +pub global DEFAULT_IVPK_M_X: Field = + 0x00c044b05b6ca83b9c2dbae79cc1135155956a64e136819136e9947fe5e5866c; +pub global DEFAULT_IVPK_M_Y: Field = + 0x1c1f0ca244c7cd46b682552bff8ae77dea40b966a71de076ec3b7678f2bdb151; +pub global DEFAULT_OVPK_M_X: Field = + 0x1b00316144359e9a3ec8e49c1cdb7eeb0cedd190dfd9dc90eea5115aa779e287; +pub global DEFAULT_OVPK_M_Y: Field = + 0x080ffc74d7a8b0bccb88ac11f45874172f3847eb8b92654aaa58a3d2b8dc7833; +pub global DEFAULT_TPK_M_X: Field = + 0x019c111f36ad3fc1d9b7a7a14344314d2864b94f030594cd67f753ef774a1efb; +pub global DEFAULT_TPK_M_Y: Field = + 0x2039907fe37f08d10739255141bb066c506a12f7d1e8dfec21abc58494705b6f; // LENGTH OF STRUCTS SERIALIZED TO FIELDS pub global AZTEC_ADDRESS_LENGTH: u32 = 1; @@ -288,7 +296,7 @@ pub global PUBLIC_CALL_REQUEST_LENGTH: u32 = AZTEC_ADDRESS_LENGTH /* msg_sender + 1 /* function_selector */ + 1 /* is_static_call */ + 1 /* args_hash */; -pub global COUNTED_PUBLIC_CALL_REQUEST_LENGTH = PUBLIC_CALL_REQUEST_LENGTH + 1; +pub global COUNTED_PUBLIC_CALL_REQUEST_LENGTH: u32 = PUBLIC_CALL_REQUEST_LENGTH + 1; pub global PUBLIC_INNER_CALL_REQUEST_LENGTH: u32 = PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH + 1 /* counter */; pub global ROLLUP_VALIDATION_REQUESTS_LENGTH: u32 = MAX_BLOCK_NUMBER_LENGTH; @@ -566,13 +574,13 @@ pub global GENERATOR_INDEX__NOTE_HIDING_POINT: u32 = 54; pub global GENERATOR_INDEX__SYMMETRIC_KEY: u8 = 55; // AVM memory tags -pub global MEM_TAG_FF = 0; -pub global MEM_TAG_U1 = 1; -pub global MEM_TAG_U8 = 2; -pub global MEM_TAG_U16 = 3; -pub global MEM_TAG_U32 = 4; -pub global MEM_TAG_U64 = 5; -pub global MEM_TAG_U128 = 6; +pub global MEM_TAG_FF: Field = 0; +pub global MEM_TAG_U1: Field = 1; +pub global MEM_TAG_U8: Field = 2; +pub global MEM_TAG_U16: Field = 3; +pub global MEM_TAG_U32: Field = 4; +pub global MEM_TAG_U64: Field = 5; +pub global MEM_TAG_U128: Field = 6; // AVM CIRCUIT - PUBLIC KERNEL INPUTS COLUMN OFFSETS // Keep the number of offsets aligned with KERNEL_INPUTS_LENGTH defined in constants.hpp @@ -589,10 +597,10 @@ pub global TIMESTAMP_KERNEL_INPUTS_COL_OFFSET: u32 = 7; pub global FEE_PER_DA_GAS_KERNEL_INPUTS_COL_OFFSET: u32 = 8; pub global FEE_PER_L2_GAS_KERNEL_INPUTS_COL_OFFSET: u32 = 9; // Gas - start and end values -pub global DA_START_GAS_KERNEL_INPUTS_COL_OFFSET = 10; -pub global L2_START_GAS_KERNEL_INPUTS_COL_OFFSET = 11; -pub global DA_END_GAS_KERNEL_INPUTS_COL_OFFSET = 12; -pub global L2_END_GAS_KERNEL_INPUTS_COL_OFFSET = 13; +pub global DA_START_GAS_KERNEL_INPUTS_COL_OFFSET: Field = 10; +pub global L2_START_GAS_KERNEL_INPUTS_COL_OFFSET: Field = 11; +pub global DA_END_GAS_KERNEL_INPUTS_COL_OFFSET: Field = 12; +pub global L2_END_GAS_KERNEL_INPUTS_COL_OFFSET: Field = 13; // Top-level members pub global TRANSACTION_FEE_KERNEL_INPUTS_COL_OFFSET: u32 = 14; diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/membership.nr b/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/membership.nr index 340be40393dc..178449af97d3 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/membership.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/membership.nr @@ -124,7 +124,7 @@ mod tests { } } - global leaf_preimages = [ + global leaf_preimages: [TestLeafPreimage; 4] = [ TestLeafPreimage { value: 20, next_value: 30 }, TestLeafPreimage { value: 40, next_value: 0 }, TestLeafPreimage { value: 10, next_value: 20 }, diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures.nr b/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures.nr index 1cdb5a4bd761..2522ddc10a3b 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures.nr @@ -5,9 +5,9 @@ pub(crate) mod vk_tree; use crate::address::AztecAddress; -pub(crate) global MSG_SENDER = AztecAddress { inner: 27 }; +pub(crate) global MSG_SENDER: AztecAddress = AztecAddress { inner: 27 }; -pub(crate) global CHAIN_ID = 1; +pub(crate) global CHAIN_ID: Field = 1; -pub(crate) global VERSION = 3; +pub(crate) global VERSION: Field = 3; diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contract_functions.nr b/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contract_functions.nr index d84418d2e754..a2df67e162ee 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contract_functions.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contract_functions.nr @@ -9,10 +9,10 @@ pub struct ContractFunction { pub membership_witness: MembershipWitness, } -pub global default_vk = [0; CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS]; +pub global default_vk: [Field; 143] = [0; CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS]; // sibling_path taken from __snapshots__/noir_test_gen.test.ts.snap -pub global default_private_function = ContractFunction { +pub global default_private_function: ContractFunction = ContractFunction { data: FunctionData { selector: FunctionSelector { inner: 1010101 }, is_private: true }, vk_hash: crate::hash::verification_key_hash(default_vk), acir_hash: 1111, diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contracts.nr b/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contracts.nr index b1671efeb28f..d5ce931c51f9 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contracts.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/tests/fixtures/contracts.nr @@ -20,7 +20,7 @@ pub struct ContractData { } // taken from __snapshots__/noir_test_gen.test.ts.snap -pub global default_contract = ContractData { +pub global default_contract: ContractData = ContractData { contract_address_salt: 0x000000000000000000000000000000000000000000000000000000000000ddd5, artifact_hash: 0x0000000000000000000000000000000000000000000000000000000000003039, public_bytecode_commitment: 0x0000000000000000000000000000000000000000000000000000000000000005, @@ -44,7 +44,7 @@ pub global default_contract = ContractData { }; // taken from __snapshots__/noir_test_gen.test.ts.snap -pub global parent_contract = ContractData { +pub global parent_contract: ContractData = ContractData { contract_address_salt: 0x0000000000000000000000000000000000000000000000000000000000001618, artifact_hash: 0x00000000000000000000000000000000000000000000000000000000000004bc, public_bytecode_commitment: 0x0000000000000000000000000000000000000000000000000000000000000005, diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays.nr b/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays.nr index c9daa70eddf0..b2a846b6680f 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays.nr @@ -140,7 +140,7 @@ mod tests { }, }; - global original_array = [ + global original_array: [TestTwoValues; 8] = [ TestTwoValues { value_1: 1, value_2: 0, counter: 33 }, TestTwoValues { value_1: 10, value_2: 6, counter: 44 }, TestTwoValues { value_1: 20, value_2: 7, counter: 11 }, diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays/get_split_order_hints.nr b/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays/get_split_order_hints.nr index bf683c3cd971..25a2d44ed9ff 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays/get_split_order_hints.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays/assert_split_sorted_transformed_value_arrays/get_split_order_hints.nr @@ -105,7 +105,7 @@ mod tests { }, }; - global full_array = [ + global full_array: [TestValue; 5] = [ TestValue { value: 100, counter: 11 }, TestValue { value: 200, counter: 17 }, TestValue { value: 300, counter: 7 }, diff --git a/noir-projects/noir-protocol-circuits/scripts/generate_variants.js b/noir-projects/noir-protocol-circuits/scripts/generate_variants.js index 94b27106cf04..6625333516fb 100644 --- a/noir-projects/noir-protocol-circuits/scripts/generate_variants.js +++ b/noir-projects/noir-protocol-circuits/scripts/generate_variants.js @@ -110,8 +110,12 @@ function generateCircuits(dimensionsList, nargoToml, isSimulated) { for (let i = 0; i < dimensions.length; i++) { const value = dimensions[i]; const name = dimensionNames[i]; + const regex = new RegExp(`^global\\s+${name}:\\su32\\s=\\s.*;.*$`, "m"); + if (!mainDotNoirCode.match(regex)) { + throw new Error(`Could not find dimension ${name} in main.nr`); + } mainDotNoirCode = mainDotNoirCode.replace( - new RegExp(`^global\\s+${name}\\s=\\s.*;.*$`, "m"), + regex, `global ${name}: u32 = ${value};` ); }