From dfd697b7fbe3bdee2c417f100c6f74e3a8be9860 Mon Sep 17 00:00:00 2001 From: Tom French Date: Wed, 5 Mar 2025 20:18:43 +0000 Subject: [PATCH 1/8] chore: fix trait import issues --- .../contracts/uniswap_contract/src/main.nr | 2 ++ .../contracts/uniswap_contract/src/util.nr | 2 +- .../crates/types/src/meta/mod.nr | 10 +++++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr b/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr index 83129a6ac48c..0a60d341c821 100644 --- a/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr @@ -20,6 +20,8 @@ pub contract Uniswap { use dep::token::Token; use dep::token_bridge::TokenBridge; + use dep::aztec::protocol_types::traits::ToField; + #[storage] struct Storage { portal_address: PublicImmutable, diff --git a/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr b/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr index 85709b150652..45bc44e78817 100644 --- a/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr +++ b/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr @@ -1,6 +1,6 @@ // docs:start:uniswap_public_content_hash use dep::aztec::prelude::{AztecAddress, EthAddress}; -use dep::aztec::protocol_types::hash::sha256_to_field; +use dep::aztec::protocol_types::{traits::ToField, hash::sha256_to_field}; // This method computes the L2 to L1 message content hash for the public // refer `l1-contracts/test/portals/UniswapPortal.sol` on how L2 to L1 message is expected diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr b/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr index 84e2018101b7..7b960bae2208 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr @@ -320,8 +320,7 @@ pub comptime fn generate_serialize_to_fields( if !omit.any(|to_omit| to_omit == name) { // If the type implements `Packable`, its length will be assigned to the `maybe_packed_len_typ` variable. let maybe_packed_len_typ = std::meta::typ::fresh_type_variable(); - let packable_constraint = - quote { crate::traits::Packable<$maybe_packed_len_typ> }.as_trait_constraint(); + let packable_constraint = quote { crate::traits::Packable<$maybe_packed_len_typ> }.as_trait_constraint(); if (should_pack & typ.implements(packable_constraint)) { // Packing is enabled and the given type implements the `Packable` trait so we call the `pack()` @@ -333,7 +332,12 @@ pub comptime fn generate_serialize_to_fields( let packed_struct_name = f"{name_at_one_token}_aux_var".quoted_contents(); // We add the individual fields to the fields array - let packed_struct = quote { let $packed_struct_name = $name.pack() }; + let pack_method = get_trait_impl_method( + typ, + quote { crate::traits::Packable<$maybe_packed_len_typ> }, + quote { pack }, + ); + let packed_struct = quote { let $packed_struct_name = $pack_method($name) }; for i in 0..packed_len { fields = fields.push_back(quote { $packed_struct_name[$i] }); } From bc9fa2e7aa1e83c327903f4f36e5b7f1c8d29644 Mon Sep 17 00:00:00 2001 From: Tom French Date: Thu, 6 Mar 2025 00:19:00 +0000 Subject: [PATCH 2/8] . --- .../noir-contracts/contracts/uniswap_contract/src/util.nr | 2 +- .../noir-protocol-circuits/crates/types/src/meta/mod.nr | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr b/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr index 45bc44e78817..2a924b2973a6 100644 --- a/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr +++ b/noir-projects/noir-contracts/contracts/uniswap_contract/src/util.nr @@ -1,6 +1,6 @@ // docs:start:uniswap_public_content_hash use dep::aztec::prelude::{AztecAddress, EthAddress}; -use dep::aztec::protocol_types::{traits::ToField, hash::sha256_to_field}; +use dep::aztec::protocol_types::{hash::sha256_to_field, traits::ToField}; // This method computes the L2 to L1 message content hash for the public // refer `l1-contracts/test/portals/UniswapPortal.sol` on how L2 to L1 message is expected diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr b/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr index 7b960bae2208..b5d69b4ffe5f 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr @@ -320,7 +320,8 @@ pub comptime fn generate_serialize_to_fields( if !omit.any(|to_omit| to_omit == name) { // If the type implements `Packable`, its length will be assigned to the `maybe_packed_len_typ` variable. let maybe_packed_len_typ = std::meta::typ::fresh_type_variable(); - let packable_constraint = quote { crate::traits::Packable<$maybe_packed_len_typ> }.as_trait_constraint(); + let packable_constraint = + quote { crate::traits::Packable<$maybe_packed_len_typ> }.as_trait_constraint(); if (should_pack & typ.implements(packable_constraint)) { // Packing is enabled and the given type implements the `Packable` trait so we call the `pack()` From df67cc8efdb58f62e114d6e5c63adf04d89f1f8e Mon Sep 17 00:00:00 2001 From: Tom French <15848336+TomAFrench@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:39:21 +0000 Subject: [PATCH 3/8] Update noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr Co-authored-by: Ary Borenszweig --- .../noir-protocol-circuits/crates/types/src/meta/mod.nr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr b/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr index b5d69b4ffe5f..368520da9a29 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr @@ -335,7 +335,7 @@ pub comptime fn generate_serialize_to_fields( // We add the individual fields to the fields array let pack_method = get_trait_impl_method( typ, - quote { crate::traits::Packable<$maybe_packed_len_typ> }, + quote { crate::traits::Packable<$packed_len> }, quote { pack }, ); let packed_struct = quote { let $packed_struct_name = $pack_method($name) }; From 5e69af7112261140b16681b6676712c4fca8c3bc Mon Sep 17 00:00:00 2001 From: Tom French Date: Thu, 6 Mar 2025 21:27:13 +0000 Subject: [PATCH 4/8] chore: more fixes --- .../aztec-nr/aztec/src/oracle/capsules.nr | 2 +- .../aztec-nr/aztec/src/utils/with_hash.nr | 2 +- noir-projects/noir-contracts/Nargo.toml | 1 + .../contracts/avm_test_contract/src/main.nr | 1 + .../contracts/nft_contract/src/main.nr | 3 ++- .../nft_contract/src/test/access_control.nr | 1 + .../contracts/parent_contract/src/main.nr | 1 + .../pending_note_hashes_contract/src/main.nr | 1 + .../src/auth_oracle.nr | 1 + .../spam_contract/src/types/balance_set.nr | 1 + .../static_child_contract/src/main.nr | 3 ++- .../contracts/test_contract/src/main.nr | 24 ++++++++++++------- .../contracts/test_log_contract/src/main.nr | 2 ++ .../token_blacklist_contract/src/main.nr | 6 +++++ .../src/types/balances_map.nr | 2 ++ .../src/types/roles.nr | 4 +++- .../contracts/token_contract/src/main.nr | 2 ++ .../contracts/updatable_contract/src/main.nr | 1 - .../contracts/updated_contract/src/main.nr | 2 +- .../crates/types/src/public_keys.nr | 2 +- 20 files changed, 45 insertions(+), 17 deletions(-) diff --git a/noir-projects/aztec-nr/aztec/src/oracle/capsules.nr b/noir-projects/aztec-nr/aztec/src/oracle/capsules.nr index 26c3b82b629e..1e439af23023 100644 --- a/noir-projects/aztec-nr/aztec/src/oracle/capsules.nr +++ b/noir-projects/aztec-nr/aztec/src/oracle/capsules.nr @@ -1,4 +1,4 @@ -use protocol_types::{address::AztecAddress, traits::{Deserialize, Serialize}}; +use protocol_types::{address::AztecAddress, traits::{Deserialize, Serialize, ToField}}; /// Stores arbitrary information in a per-contract non-volatile database, which can later be retrieved with `load`. If /// data was already stored at this slot, it is overwritten. diff --git a/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr b/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr index 28d03af2938f..dd5958881807 100644 --- a/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr +++ b/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr @@ -4,7 +4,7 @@ use crate::{ oracle, }; use dep::protocol_types::{ - address::AztecAddress, block_header::BlockHeader, hash::poseidon2_hash, traits::Packable, + address::AztecAddress, block_header::BlockHeader, hash::poseidon2_hash, traits::{Packable, ToField}, }; /// A struct that allows for efficient reading of value `T` from public storage in private. diff --git a/noir-projects/noir-contracts/Nargo.toml b/noir-projects/noir-contracts/Nargo.toml index 07a50cf33f8e..b0b34eaed84b 100644 --- a/noir-projects/noir-contracts/Nargo.toml +++ b/noir-projects/noir-contracts/Nargo.toml @@ -42,6 +42,7 @@ members = [ "contracts/token_contract", "contracts/token_blacklist_contract", "contracts/token_bridge_contract", + "contracts/token_portal_content_hash_lib", "contracts/uniswap_contract", "contracts/updatable_contract", "contracts/updated_contract", 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 bac8c853324c..5768b056fb54 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 @@ -33,6 +33,7 @@ pub contract AvmTest { }; use dep::aztec::state_vars::PublicMutable; use dep::compressed_string::CompressedString; + use aztec::protocol_types::traits::Serialize; use std::embedded_curve_ops::{EmbeddedCurvePoint, multi_scalar_mul}; use std::ops::Add; diff --git a/noir-projects/noir-contracts/contracts/nft_contract/src/main.nr b/noir-projects/noir-contracts/contracts/nft_contract/src/main.nr index 15cdb727687e..d0b22557f762 100644 --- a/noir-projects/noir-contracts/contracts/nft_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/nft_contract/src/main.nr @@ -20,7 +20,7 @@ pub contract NFT { functions::{initializer, internal, private, public, view}, storage::storage, }, - note::constants::MAX_NOTES_PER_PAGE, + note::{constants::MAX_NOTES_PER_PAGE, note_interface::{NoteProperties, PartialNote}}, oracle::random::random, prelude::{ AztecAddress, Map, NoteGetterOptions, NoteViewerOptions, PrivateContext, PrivateSet, @@ -30,6 +30,7 @@ pub contract NFT { utils::comparison::Comparator, }; use dep::compressed_string::FieldCompressedString; + use aztec::protocol_types::traits::ToField; use std::meta::derive; // docs:end:imports diff --git a/noir-projects/noir-contracts/contracts/nft_contract/src/test/access_control.nr b/noir-projects/noir-contracts/contracts/nft_contract/src/test/access_control.nr index e5f6a8e6dcf5..f3a5e14adc4b 100644 --- a/noir-projects/noir-contracts/contracts/nft_contract/src/test/access_control.nr +++ b/noir-projects/noir-contracts/contracts/nft_contract/src/test/access_control.nr @@ -1,5 +1,6 @@ use crate::NFT; use crate::test::utils; +use aztec::protocol_types::traits::ToField; #[test] unconstrained fn access_control() { 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 c3deef4b3321..155df0ebcf57 100644 --- a/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr @@ -6,6 +6,7 @@ pub contract Parent { use dep::aztec::{context::gas::GasOpts, macros::functions::{private, public}}; use dep::aztec::prelude::{AztecAddress, FunctionSelector}; use dep::aztec::protocol_types::constants::MAX_FR_ARGS_TO_ALL_ENQUEUED_CALLS; + use aztec::protocol_types::traits::ToField; // Private function to call another private function in the target_contract using the provided selector #[private] fn entry_point(target_contract: AztecAddress, target_selector: FunctionSelector) -> Field { diff --git a/noir-projects/noir-contracts/contracts/pending_note_hashes_contract/src/main.nr b/noir-projects/noir-contracts/contracts/pending_note_hashes_contract/src/main.nr index 712e467e784b..e5d64608f149 100644 --- a/noir-projects/noir-contracts/contracts/pending_note_hashes_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/pending_note_hashes_contract/src/main.nr @@ -17,6 +17,7 @@ pub contract PendingNoteHashes { MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NOTE_HASHES_PER_CALL, }; use dep::value_note::{filter::filter_notes_min_sum, value_note::ValueNote}; + use aztec::protocol_types::traits::ToField; #[storage] struct Storage { diff --git a/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/auth_oracle.nr b/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/auth_oracle.nr index 53e883aca577..8779b5c5776c 100644 --- a/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/auth_oracle.nr +++ b/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/auth_oracle.nr @@ -3,6 +3,7 @@ use dep::aztec::{ protocol_types::{address::PartialAddress, public_keys::{PUBLIC_KEYS_LENGTH, PublicKeys}}, utils::array, }; +use aztec::protocol_types::traits::Deserialize; pub struct AuthWitness { keys: PublicKeys, diff --git a/noir-projects/noir-contracts/contracts/spam_contract/src/types/balance_set.nr b/noir-projects/noir-contracts/contracts/spam_contract/src/types/balance_set.nr index a83c92df7d3c..b21d48459c90 100644 --- a/noir-projects/noir-contracts/contracts/spam_contract/src/types/balance_set.nr +++ b/noir-projects/noir-contracts/contracts/spam_contract/src/types/balance_set.nr @@ -10,6 +10,7 @@ use dep::aztec::{ use dep::aztec::prelude::{ NoteGetterOptions, NoteHash, NoteType, NoteViewerOptions, PrivateSet, RetrievedNote, }; +use std::ops::Add; pub struct BalanceSet { set: PrivateSet, diff --git a/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr b/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr index 2b718cf60070..46fd4a7cc591 100644 --- a/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr @@ -12,7 +12,8 @@ pub contract StaticChild { utils::comparison::Comparator, }; use dep::value_note::value_note::ValueNote; - + use aztec::note::note_interface::NoteProperties; + #[storage] struct Storage { current_value: PublicMutable, 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 515b93819464..2d108366d0ff 100644 --- a/noir-projects/noir-contracts/contracts/test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/test_contract/src/main.nr @@ -34,7 +34,7 @@ pub contract Test { deploy::deploy_contract as aztec_deploy_contract, discovery::private_logs::do_process_log, event::event_interface::EventInterface, - hash::{ArgsHasher, compute_secret_hash, pedersen_hash}, + hash::{ArgsHasher, pedersen_hash}, history::note_inclusion::ProveNoteInclusion, macros::{ events::event, @@ -48,7 +48,6 @@ pub contract Test { note_interface::NoteType, retrieved_note::RetrievedNote, }, - state_vars::storage::Storage as _, test::mocks::mock_struct::MockStruct, }; use dep::token_portal_content_hash_lib::{ @@ -140,7 +139,8 @@ pub contract Test { storage_slot: Field, ) { assert( - storage_slot != storage.example_constant.get_storage_slot(), + storage_slot + != aztec::state_vars::storage::Storage::get_storage_slot(storage.example_constant), "this storage slot is reserved for example_constant", ); @@ -156,7 +156,8 @@ pub contract Test { #[private] fn call_get_notes(storage_slot: Field, active_or_nullified: bool) -> Field { assert( - storage_slot != storage.example_constant.get_storage_slot(), + storage_slot + != aztec::state_vars::storage::Storage::get_storage_slot(storage.example_constant), "this storage slot is reserved for example_constant", ); @@ -176,7 +177,8 @@ pub contract Test { #[private] fn call_get_notes_many(storage_slot: Field, active_or_nullified: bool) -> [Field; 2] { assert( - storage_slot != storage.example_constant.get_storage_slot(), + storage_slot + != aztec::state_vars::storage::Storage::get_storage_slot(storage.example_constant), "this storage slot is reserved for example_constant", ); @@ -193,7 +195,8 @@ pub contract Test { unconstrained fn call_view_notes(storage_slot: Field, active_or_nullified: bool) -> pub Field { assert( - storage_slot != storage.example_constant.get_storage_slot(), + storage_slot + != aztec::state_vars::storage::Storage::get_storage_slot(storage.example_constant), "this storage slot is reserved for example_constant", ); @@ -212,7 +215,8 @@ pub contract Test { active_or_nullified: bool, ) -> pub [Field; 2] { assert( - storage_slot != storage.example_constant.get_storage_slot(), + storage_slot + != aztec::state_vars::storage::Storage::get_storage_slot(storage.example_constant), "this storage slot is reserved for example_constant", ); @@ -229,7 +233,8 @@ pub contract Test { #[private] fn call_destroy_note(storage_slot: Field) { assert( - storage_slot != storage.example_constant.get_storage_slot(), + storage_slot + != aztec::state_vars::storage::Storage::get_storage_slot(storage.example_constant), "this storage slot is reserved for example_constant", ); @@ -371,7 +376,8 @@ pub contract Test { #[private] fn emit_encrypted_logs_nested(value: Field, owner: AztecAddress, sender: AztecAddress) { - let mut storage_slot = storage.example_constant.get_storage_slot() + 1; + let mut storage_slot = + aztec::state_vars::storage::Storage::get_storage_slot(storage.example_constant) + 1; Test::at(context.this_address()).call_create_note(value, owner, sender, storage_slot).call( &mut context, ); 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 480227f57f98..91079f6f59a9 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 @@ -8,6 +8,8 @@ pub contract TestLog { use dep::aztec::protocol_types::{address::AztecAddress, traits::Serialize}; use dep::aztec::unencrypted_logs::unencrypted_event_emission::encode_event; use dep::value_note::value_note::ValueNote; + use aztec::event::event_interface::EventInterface; + use aztec::protocol_types::traits::FromField; use std::meta::derive; #[derive(Serialize)] diff --git a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr index df6c4e714fac..b2ee256a44cf 100644 --- a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr @@ -28,6 +28,12 @@ pub contract TokenBlacklist { utils::comparison::Comparator, }; + use aztec::note::note_interface::NoteHash; + use aztec::note::note_interface::NoteProperties; + use aztec::note::note_interface::NoteType; + use aztec::protocol_types::traits::ToField; + use std::ops::{Add, Sub}; + use dep::authwit::auth::{ assert_current_call_valid_authwit, assert_current_call_valid_authwit_public, }; diff --git a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/balances_map.nr b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/balances_map.nr index c9e43a93a28e..0f3dd13738da 100644 --- a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/balances_map.nr +++ b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/balances_map.nr @@ -9,6 +9,8 @@ use dep::aztec::prelude::{ RetrievedNote, }; +use std::ops::Add; + pub struct BalancesMap { map: Map, Context>, } diff --git a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr index 0a075b07292a..2ddecd88def7 100644 --- a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr +++ b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr @@ -1,4 +1,5 @@ use dep::aztec::protocol_types::traits::{Deserialize, Packable, Serialize}; +use aztec::protocol_types::traits::ToField; global ADMIN_FLAG: u64 = 1; global MINTER_FLAG: u64 = 2; @@ -72,7 +73,8 @@ impl Deserialize<3> for UserFlags { mod test { use crate::types::roles::UserFlags; - + use aztec::protocol_types::traits::Packable; + fn assert_packable(is_minter: bool, is_admin: bool, is_blacklisted: bool) { let flags = UserFlags { is_minter, is_admin, is_blacklisted }; let converted = UserFlags::unpack(flags.pack()); 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 15bac208b354..180f6e960053 100644 --- a/noir-projects/noir-contracts/contracts/token_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/token_contract/src/main.nr @@ -36,6 +36,8 @@ pub contract Token { protocol_types::{point::Point, traits::Serialize}, }; + use aztec::protocol_types::traits::ToField; + use dep::uint_note::uint_note::UintNote; // docs:start:import_authwit diff --git a/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr b/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr index c6d47def9e80..61decdfe7660 100644 --- a/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr @@ -9,7 +9,6 @@ contract Updatable { use aztec::protocol_types::{ constants::DEPLOYER_CONTRACT_ADDRESS, contract_class_id::ContractClassId, - traits::{Hash, Serialize}, }; use contract_instance_deployer::ContractInstanceDeployer; use value_note::value_note::ValueNote; diff --git a/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr b/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr index e676a53c040a..61dbdaa1a9d6 100644 --- a/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr @@ -6,7 +6,7 @@ contract Updated { use aztec::macros::{functions::{private, public}, storage::storage}; use aztec::prelude::{PrivateMutable, PublicMutable}; - use aztec::protocol_types::{constants::DEPLOYER_CONTRACT_ADDRESS, traits::Hash}; + use aztec::protocol_types::{constants::DEPLOYER_CONTRACT_ADDRESS}; use contract_instance_deployer::ContractInstanceDeployer; use value_note::value_note::ValueNote; diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr b/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr index ef369eaf2b5f..b62fba8356b0 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr @@ -6,7 +6,7 @@ use crate::{ }, hash::poseidon2_hash_with_separator, point::POINT_LENGTH, - traits::{Deserialize, Hash, Serialize}, + traits::{Deserialize, Hash, Serialize, ToField}, }; use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point; From 766e1164d3833df49a680e83cb33539945f14a0a Mon Sep 17 00:00:00 2001 From: Tom French Date: Thu, 6 Mar 2025 21:32:19 +0000 Subject: [PATCH 5/8] fmt --- .../static_child_contract/src/main.nr | 2 +- .../src/types/roles.nr | 2 +- .../token_portal_content_hash_lib/src/lib.nr | 18 ++++++++++++------ .../contracts/updatable_contract/src/main.nr | 3 +-- .../contracts/updated_contract/src/main.nr | 2 +- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr b/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr index 46fd4a7cc591..fb1a55df22d7 100644 --- a/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/static_child_contract/src/main.nr @@ -13,7 +13,7 @@ pub contract StaticChild { }; use dep::value_note::value_note::ValueNote; use aztec::note::note_interface::NoteProperties; - + #[storage] struct Storage { current_value: PublicMutable, diff --git a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr index 2ddecd88def7..170dfaadff44 100644 --- a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr +++ b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/types/roles.nr @@ -74,7 +74,7 @@ impl Deserialize<3> for UserFlags { mod test { use crate::types::roles::UserFlags; use aztec::protocol_types::traits::Packable; - + fn assert_packable(is_minter: bool, is_admin: bool, is_blacklisted: bool) { let flags = UserFlags { is_minter, is_admin, is_blacklisted }; let converted = UserFlags::unpack(flags.pack()); diff --git a/noir-projects/noir-contracts/contracts/token_portal_content_hash_lib/src/lib.nr b/noir-projects/noir-contracts/contracts/token_portal_content_hash_lib/src/lib.nr index cc2b8e9b0821..0ce55d887054 100644 --- a/noir-projects/noir-contracts/contracts/token_portal_content_hash_lib/src/lib.nr +++ b/noir-projects/noir-contracts/contracts/token_portal_content_hash_lib/src/lib.nr @@ -6,12 +6,13 @@ use dep::aztec::protocol_types::{hash::sha256_to_field, traits::ToField}; // Refer TokenPortal.sol for reference on L1. pub fn get_mint_to_public_content_hash(owner: AztecAddress, amount: u128) -> Field { let mut hash_bytes = [0; 68]; - let recipient_bytes:[u8; 32] = owner.to_field().to_be_bytes(); - let amount_bytes:[u8; 32] = (amount as Field).to_be_bytes(); + let recipient_bytes: [u8; 32] = owner.to_field().to_be_bytes(); + let amount_bytes: [u8; 32] = (amount as Field).to_be_bytes(); // The purpose of including the following selector is to make the message unique to that specific call. Note that // it has nothing to do with calling the function. - let selector = comptime { keccak256::keccak256("mint_to_public(bytes32,uint256)".as_bytes(), 31) }; + let selector = + comptime { keccak256::keccak256("mint_to_public(bytes32,uint256)".as_bytes(), 31) }; for i in 0..4 { hash_bytes[i] = selector[i]; @@ -32,7 +33,7 @@ pub fn get_mint_to_public_content_hash(owner: AztecAddress, amount: u128) -> Fie // Refer TokenPortal.sol for reference on L1. pub fn get_mint_to_private_content_hash(amount: u128) -> Field { let mut hash_bytes = [0; 36]; - let amount_bytes:[u8; 32] = (amount as Field).to_be_bytes(); + let amount_bytes: [u8; 32] = (amount as Field).to_be_bytes(); // The purpose of including the following selector is to make the message unique to that specific call. Note that // it has nothing to do with calling the function. @@ -53,7 +54,11 @@ pub fn get_mint_to_private_content_hash(amount: u128) -> Field { // docs:start:get_withdraw_content_hash // Computes a content hash of a withdraw message. -pub fn get_withdraw_content_hash(recipient: EthAddress, amount: u128, caller_on_l1: EthAddress) -> Field { +pub fn get_withdraw_content_hash( + recipient: EthAddress, + amount: u128, + caller_on_l1: EthAddress, +) -> Field { // Compute the content hash // Compute sha256(selector || amount || recipient) // then convert to a single field element @@ -65,7 +70,8 @@ pub fn get_withdraw_content_hash(recipient: EthAddress, amount: u128, caller_on_ // The purpose of including the following selector is to make the message unique to that specific call. Note that // it has nothing to do with calling the function. - let selector = comptime { keccak256::keccak256("withdraw(address,uint256,address)".as_bytes(), 33) }; + let selector = + comptime { keccak256::keccak256("withdraw(address,uint256,address)".as_bytes(), 33) }; for i in 0..4 { hash_bytes[i] = selector[i]; diff --git a/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr b/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr index 61decdfe7660..6ce789211275 100644 --- a/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/updatable_contract/src/main.nr @@ -7,8 +7,7 @@ contract Updatable { use aztec::prelude::{PrivateMutable, PublicMutable}; use aztec::protocol_types::{ - constants::DEPLOYER_CONTRACT_ADDRESS, - contract_class_id::ContractClassId, + constants::DEPLOYER_CONTRACT_ADDRESS, contract_class_id::ContractClassId, }; use contract_instance_deployer::ContractInstanceDeployer; use value_note::value_note::ValueNote; diff --git a/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr b/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr index 61dbdaa1a9d6..f765b0c1d4bf 100644 --- a/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/updated_contract/src/main.nr @@ -6,7 +6,7 @@ contract Updated { use aztec::macros::{functions::{private, public}, storage::storage}; use aztec::prelude::{PrivateMutable, PublicMutable}; - use aztec::protocol_types::{constants::DEPLOYER_CONTRACT_ADDRESS}; + use aztec::protocol_types::constants::DEPLOYER_CONTRACT_ADDRESS; use contract_instance_deployer::ContractInstanceDeployer; use value_note::value_note::ValueNote; From 1627ef6df3543e7947894f1aa2f88b16f80e885a Mon Sep 17 00:00:00 2001 From: Tom French Date: Thu, 6 Mar 2025 21:38:16 +0000 Subject: [PATCH 6/8] . --- noir-projects/aztec-nr/aztec/src/utils/with_hash.nr | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr b/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr index dd5958881807..04a9d077f575 100644 --- a/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr +++ b/noir-projects/aztec-nr/aztec/src/utils/with_hash.nr @@ -4,7 +4,10 @@ use crate::{ oracle, }; use dep::protocol_types::{ - address::AztecAddress, block_header::BlockHeader, hash::poseidon2_hash, traits::{Packable, ToField}, + address::AztecAddress, + block_header::BlockHeader, + hash::poseidon2_hash, + traits::{Packable, ToField}, }; /// A struct that allows for efficient reading of value `T` from public storage in private. From e8eb15830160260e578ea30e24e760547ce29a83 Mon Sep 17 00:00:00 2001 From: Tom French Date: Thu, 6 Mar 2025 21:46:18 +0000 Subject: [PATCH 7/8] . --- noir-projects/noir-contracts/Nargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/noir-projects/noir-contracts/Nargo.toml b/noir-projects/noir-contracts/Nargo.toml index b0b34eaed84b..3d143efdaa82 100644 --- a/noir-projects/noir-contracts/Nargo.toml +++ b/noir-projects/noir-contracts/Nargo.toml @@ -42,7 +42,8 @@ members = [ "contracts/token_contract", "contracts/token_blacklist_contract", "contracts/token_bridge_contract", - "contracts/token_portal_content_hash_lib", +# This breaks ci3's way of compiling contracts +# "contracts/token_portal_content_hash_lib", "contracts/uniswap_contract", "contracts/updatable_contract", "contracts/updated_contract", From 7d20691ed279ca57e55c4f528a04a655f6dfe829 Mon Sep 17 00:00:00 2001 From: Tom French Date: Thu, 6 Mar 2025 22:51:08 +0000 Subject: [PATCH 8/8] . --- noir-projects/noir-contracts/Nargo.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/noir-projects/noir-contracts/Nargo.toml b/noir-projects/noir-contracts/Nargo.toml index 3d143efdaa82..07a50cf33f8e 100644 --- a/noir-projects/noir-contracts/Nargo.toml +++ b/noir-projects/noir-contracts/Nargo.toml @@ -42,8 +42,6 @@ members = [ "contracts/token_contract", "contracts/token_blacklist_contract", "contracts/token_bridge_contract", -# This breaks ci3's way of compiling contracts -# "contracts/token_portal_content_hash_lib", "contracts/uniswap_contract", "contracts/updatable_contract", "contracts/updated_contract",