diff --git a/noir-projects/aztec-nr/authwit/src/auth.nr b/noir-projects/aztec-nr/authwit/src/auth.nr index 7e8f33c0396..9e240682fae 100644 --- a/noir-projects/aztec-nr/authwit/src/auth.nr +++ b/noir-projects/aztec-nr/authwit/src/auth.nr @@ -219,7 +219,9 @@ pub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_o // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter. let result: Field = context.static_call_private_function( on_behalf_of, - FunctionSelector::from_signature("verify_private_authwit(Field)"), + comptime { + FunctionSelector::from_signature("verify_private_authwit(Field)") + }, [inner_hash] ).unpack_into(); assert(result == IS_VALID_SELECTOR, "Message not authorized by account"); @@ -263,7 +265,9 @@ pub fn assert_current_call_valid_authwit_public(context: &mut PublicContext, on_ pub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) { let result: Field = context.call_public_function( CANONICAL_AUTH_REGISTRY_ADDRESS, - FunctionSelector::from_signature("consume((Field),Field)"), + comptime { + FunctionSelector::from_signature("consume((Field),Field)") + }, [on_behalf_of.to_field(), inner_hash].as_slice(), GasOpts::default() ).deserialize_into(); @@ -357,7 +361,9 @@ pub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, ver pub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) { context.call_public_function( CANONICAL_AUTH_REGISTRY_ADDRESS, - FunctionSelector::from_signature("set_authorized(Field,bool)"), + comptime { + FunctionSelector::from_signature("set_authorized(Field,bool)") + }, [message_hash, authorize as Field].as_slice(), GasOpts::default() ).assert_empty(); @@ -373,7 +379,9 @@ pub fn set_authorized(context: &mut PublicContext, message_hash: Field, authoriz pub fn set_reject_all(context: &mut PublicContext, reject: bool) { context.call_public_function( CANONICAL_AUTH_REGISTRY_ADDRESS, - FunctionSelector::from_signature("set_reject_all(bool)"), + comptime { + FunctionSelector::from_signature("set_reject_all(bool)") + }, [context.this_address().to_field(), reject as Field].as_slice(), GasOpts::default() ).assert_empty(); diff --git a/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr b/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr index e3d2ea44262..39af0fba85a 100644 --- a/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr +++ b/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr @@ -177,7 +177,7 @@ mod test { impl EventInterface for TestEvent { fn get_event_type_id() -> EventSelector { - EventSelector::from_signature("TestEvent(Field,Field,Field)") + comptime { EventSelector::from_signature("TestEvent(Field,Field,Field)") } } fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] { diff --git a/noir-projects/noir-contracts/contracts/avm_test_contract/src/main.nr b/noir-projects/noir-contracts/contracts/avm_test_contract/src/main.nr index c319467272f..81ef861d364 100644 --- a/noir-projects/noir-contracts/contracts/avm_test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/avm_test_contract/src/main.nr @@ -341,7 +341,9 @@ contract AvmTest { #[aztec(public)] fn check_selector() { assert( - context.selector() == FunctionSelector::from_signature("check_selector()"), "Unexpected selector!" + context.selector() == comptime { + FunctionSelector::from_signature("check_selector()") + }, "Unexpected selector!" ); } diff --git a/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr b/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr index 2aab1481669..823591a754c 100644 --- a/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr @@ -28,7 +28,9 @@ contract FPC { // FPC::at(context.this_address()).pay_refund_with_shielded_rebate(amount, asset, secret_hash).set_public_teardown_function(&mut context); context.set_public_teardown_function( context.this_address(), - FunctionSelector::from_signature("pay_refund_with_shielded_rebate(Field,(Field),Field)"), + comptime { + FunctionSelector::from_signature("pay_refund_with_shielded_rebate(Field,(Field),Field)") + }, [amount, asset.to_field(), secret_hash] ); } @@ -41,7 +43,9 @@ contract FPC { // FPC::at(context.this_address()).pay_refund(context.msg_sender(), amount, asset).set_public_teardown_function(&mut context); context.set_public_teardown_function( context.this_address(), - FunctionSelector::from_signature("pay_refund((Field),Field,(Field))"), + comptime { + FunctionSelector::from_signature("pay_refund((Field),Field,(Field))") + }, [context.msg_sender().to_field(), amount, asset.to_field()] ); } diff --git a/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr b/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr index b8638f670c9..7825f85a167 100644 --- a/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr @@ -64,7 +64,9 @@ contract Parent { target_contract: AztecAddress, target_selector: FunctionSelector ) { - let enqueue_call_to_child_selector = FunctionSelector::from_signature("enqueue_call_to_child((Field),(u32),Field)"); + let enqueue_call_to_child_selector = comptime { + FunctionSelector::from_signature("enqueue_call_to_child((Field),(u32),Field)") + }; let _ret = context.call_private_function( context.this_address(), enqueue_call_to_child_selector, @@ -82,7 +84,9 @@ contract Parent { target_selector: FunctionSelector ) { context.call_public_function(target_contract, target_selector, [20]); - let enqueue_call_to_child_selector = FunctionSelector::from_signature("enqueue_call_to_child((Field),(u32),Field)"); + let enqueue_call_to_child_selector = comptime { + FunctionSelector::from_signature("enqueue_call_to_child((Field),(u32),Field)") + }; let _ret = context.call_private_function( context.this_address(), enqueue_call_to_child_selector, @@ -110,7 +114,9 @@ contract Parent { target_selector: FunctionSelector, target_value: Field ) { - let pub_entry_point_selector = FunctionSelector::from_signature("pub_entry_point((Field),(u32),Field)"); + let pub_entry_point_selector = comptime { + FunctionSelector::from_signature("pub_entry_point((Field),(u32),Field)") + }; let this_address = context.this_address(); let _void = context.call_public_function( this_address, @@ -126,7 +132,9 @@ contract Parent { target_selector: FunctionSelector, target_value: Field ) { - let pub_entry_point_selector = FunctionSelector::from_signature("pub_entry_point((Field),(u32),Field)"); + let pub_entry_point_selector = comptime { + FunctionSelector::from_signature("pub_entry_point((Field),(u32),Field)") + }; let this_address = context.this_address(); context.call_public_function( @@ -265,7 +273,9 @@ contract Parent { let value_to_set = 7; let parent_private_set_call_interface = Parent::interface().private_call( child_contract_address, - FunctionSelector::from_signature("private_set_value(Field,(Field))"), + comptime { + FunctionSelector::from_signature("private_set_value(Field,(Field))") + }, [value_to_set, owner.to_field()] ); let result: Field = env.call_private(parent_private_set_call_interface); @@ -282,7 +292,9 @@ contract Parent { // Get value from child through parent let parent_private_get_call_interface = Parent::interface().private_call( child_contract_address, - FunctionSelector::from_signature("private_get_value(Field,(Field))"), + comptime { + FunctionSelector::from_signature("private_get_value(Field,(Field))") + }, [7, owner.to_field()] ); let read_result: Field = env.call_private(parent_private_get_call_interface); diff --git a/noir-projects/noir-contracts/contracts/test_contract/src/main.nr b/noir-projects/noir-contracts/contracts/test_contract/src/main.nr index 703e0e7e9cb..b14a44df769 100644 --- a/noir-projects/noir-contracts/contracts/test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/test_contract/src/main.nr @@ -213,7 +213,9 @@ contract Test { fn test_setting_teardown() { context.set_public_teardown_function( context.this_address(), - FunctionSelector::from_signature("dummy_public_call()"), + comptime { + FunctionSelector::from_signature("dummy_public_call()") + }, [] ); } diff --git a/noir-projects/noir-contracts/contracts/token_contract/src/main.nr b/noir-projects/noir-contracts/contracts/token_contract/src/main.nr index cfed8a53189..1bcba8c0d32 100644 --- a/noir-projects/noir-contracts/contracts/token_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/token_contract/src/main.nr @@ -572,7 +572,9 @@ contract Token { // function has access to the final transaction fee, which is needed to compute the actual refund amount. context.set_public_teardown_function( context.this_address(), - FunctionSelector::from_signature("complete_refund(((Field,Field,bool)),((Field,Field,bool)),Field)"), + comptime { + FunctionSelector::from_signature("complete_refund(((Field,Field,bool)),((Field,Field,bool)),Field)") + }, [ fee_payer_point.inner.x, fee_payer_point.inner.y, fee_payer_point.inner.is_infinite as Field, user_point.inner.x, user_point.inner.y, user_point.inner.is_infinite as Field, funded_amount ] diff --git a/noir/noir-repo/aztec_macros/src/transforms/events.rs b/noir/noir-repo/aztec_macros/src/transforms/events.rs index b02cf1cc622..ede8a350bf2 100644 --- a/noir/noir-repo/aztec_macros/src/transforms/events.rs +++ b/noir/noir-repo/aztec_macros/src/transforms/events.rs @@ -230,7 +230,7 @@ fn generate_fn_get_event_type_id( let function_source = format!( " fn get_event_type_id() -> dep::aztec::protocol_types::abis::event_selector::EventSelector {{ - dep::aztec::protocol_types::abis::event_selector::EventSelector::from_signature(\"{event_type}({from_signature_input})\") + comptime {{ dep::aztec::protocol_types::abis::event_selector::EventSelector::from_signature(\"{event_type}({from_signature_input})\") }} }} ", ) diff --git a/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr b/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr index e3a5877725a..cb7505f845c 100644 --- a/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr +++ b/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr @@ -1,6 +1,6 @@ -// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. -// Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -// Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +// Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +// Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. // Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. contract Benchmarking { use aztec::protocol_types::abis::function_selector::FunctionSelector; @@ -63,7 +63,9 @@ contract Benchmarking { storage.balances.at(owner).write(current + value); let _callStackItem1 = context.call_public_function( context.this_address(), - FunctionSelector::from_signature("broadcast(Field)"), + comptime { + FunctionSelector::from_signature("broadcast(Field)") + }, [owner] ); } @@ -75,5 +77,5 @@ contract Benchmarking { } } -// Uses the token bridge contract, which tells which input token we need to talk to and handles the exit funds to L1 +// Uses the token bridge contract, which tells which input token we need to talk to and handles the exit funds to L1 contract Uniswap {} diff --git a/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr b/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr index e3a5877725a..cb7505f845c 100644 --- a/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr +++ b/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr @@ -1,6 +1,6 @@ -// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. -// Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -// Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +// Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +// Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. // Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. contract Benchmarking { use aztec::protocol_types::abis::function_selector::FunctionSelector; @@ -63,7 +63,9 @@ contract Benchmarking { storage.balances.at(owner).write(current + value); let _callStackItem1 = context.call_public_function( context.this_address(), - FunctionSelector::from_signature("broadcast(Field)"), + comptime { + FunctionSelector::from_signature("broadcast(Field)") + }, [owner] ); } @@ -75,5 +77,5 @@ contract Benchmarking { } } -// Uses the token bridge contract, which tells which input token we need to talk to and handles the exit funds to L1 +// Uses the token bridge contract, which tells which input token we need to talk to and handles the exit funds to L1 contract Uniswap {}