Skip to content
Closed
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5fb9539
chore: Update noir-repo-ref to nightly-2025-03-25
Mar 25, 2025
faf9324
Merge branch 'master' into bump-noir
TomAFrench Mar 25, 2025
5f61795
Merge branch 'master' into bump-noir
TomAFrench Mar 25, 2025
3403450
Merge branch 'master' into bump-noir
TomAFrench Mar 26, 2025
90394e2
chore: Update noir-repo-ref to nightly-2025-03-26
Mar 26, 2025
018e671
chore: Update noir-repo-ref to nightly-2025-03-27
Mar 27, 2025
d5aaf45
chore: Update noir-repo-ref to nightly-2025-03-28
Mar 28, 2025
37df9f7
chore: Update noir-repo-ref to nightly-2025-03-29
Mar 29, 2025
4128c33
chore: Update noir-repo-ref to nightly-2025-03-30
Mar 30, 2025
7616a00
chore: Update noir-repo-ref to nightly-2025-03-31
Mar 31, 2025
4d052f4
chore: Update noir-repo-ref to nightly-2025-04-01
Apr 1, 2025
dd895e0
chore: Update noir-repo-ref to nightly-2025-04-02
Apr 2, 2025
53fd02a
chore: Update noir-repo-ref to nightly-2025-04-03
Apr 3, 2025
28ec693
chore: Update noir-repo-ref to nightly-2025-04-04
Apr 4, 2025
7363142
chore: Update noir-repo-ref to nightly-2025-04-05
Apr 5, 2025
7201ed2
chore: Update noir-repo-ref to nightly-2025-04-06
Apr 6, 2025
1ebc0b9
chore: Update noir-repo-ref to nightly-2025-04-07
Apr 7, 2025
4c01b41
nargo fmt
TomAFrench Apr 7, 2025
51dc3dd
.
TomAFrench Apr 7, 2025
c7b1da5
Merge branch 'master' into bump-noir
TomAFrench Apr 7, 2025
6795cca
.
TomAFrench Apr 7, 2025
455eb40
fmt
TomAFrench Apr 7, 2025
4e658ef
.
TomAFrench Apr 7, 2025
f338a47
.
TomAFrench Apr 7, 2025
5da8677
Merge branch 'master' into bump-noir
TomAFrench Apr 7, 2025
3e46406
chore: Update noir-repo-ref to nightly-2025-04-08
Apr 8, 2025
f786b1f
chore: Update noir-repo-ref to nightly-2025-04-09
Apr 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .test_patterns.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,15 @@ tests:
skip: true
owners:
- *charlie
# CI3 is breaking noir tests due to handling of paths.
- regex: "tests::execution_success"
skip: true
owners:
- *tom
- regex: "tests::compile_failure"
skip: true
owners:
- *tom

# e2e tests
- regex: "simple e2e_p2p"
Expand Down
9 changes: 5 additions & 4 deletions noir-projects/aztec-nr/aztec/src/context/private_context.nr
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,9 @@ impl PrivateContext {
}

fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {
let cached_request =
self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());
let cached_request = self.last_key_validation_requests[key_index as u32].unwrap_or(
KeyValidationRequest::empty(),
);

if cached_request.pk_m.hash() == pk_m_hash {
// We get a match so the cached request is the latest one
Expand All @@ -282,10 +283,10 @@ impl PrivateContext {
self.key_validation_requests_and_generators.push(
KeyValidationRequestAndGenerator {
request,
sk_app_generator: sk_generators[key_index],
sk_app_generator: sk_generators[key_index as u32],
},
);
self.last_key_validation_requests[key_index] = Option::some(request);
self.last_key_validation_requests[key_index as u32] = Option::some(request);
request.sk_app
}
}
Expand Down
8 changes: 5 additions & 3 deletions noir-projects/aztec-nr/aztec/src/macros/utils.nr
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,10 @@ pub(crate) comptime fn get_trait_impl_method(
target_method: Quoted,
) -> TypedExpr {
let trait_constraint = target_trait.as_trait_constraint();
typ.get_trait_impl(trait_constraint).expect(f"Type does not implement trait").methods().filter(
|m| m.name() == target_method,
)[0]
typ
.get_trait_impl(trait_constraint)
.expect(f"Type does not implement trait")
.methods()
.filter(|m| m.name() == target_method)[0]
.as_typed_expr()
}
17 changes: 10 additions & 7 deletions noir-projects/aztec-nr/aztec/src/note/note_getter.nr
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@ fn extract_property_value_from_selector<let N: u32>(
// Selectors use PropertySelectors in order to locate note properties inside the packed note.
// This allows easier packing and custom (un)packing schemas. A note property is located
// inside the packed note using the index inside the array, a byte offset and a length.
let value: [u8; 32] = packed_note[selector.index].to_be_bytes();
let value: [u8; 32] = packed_note[selector.index as u32].to_be_bytes();
let offset = selector.offset;
let length = selector.length;
let mut value_field = 0 as Field;
let mut acc: Field = 1;
for i in 0..32 {
if i < length {
value_field += value[31 + offset - i] as Field * acc;
value_field += value[(31 + offset - i) as u32] as Field * acc;
acc = acc * 256;
}
}
Expand Down Expand Up @@ -302,11 +302,14 @@ unconstrained fn flatten_options<let N: u32>(
for i in 0..selects.len() {
let select = selects.get(i);
if select.is_some() {
select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;
select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;
select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;
select_values[num_selects] = select.unwrap_unchecked().value;
select_comparators[num_selects] = select.unwrap_unchecked().comparator;
select_by_indexes[num_selects as u32] =
select.unwrap_unchecked().property_selector.index;
select_by_offsets[num_selects as u32] =
select.unwrap_unchecked().property_selector.offset;
select_by_lengths[num_selects as u32] =
select.unwrap_unchecked().property_selector.length;
select_values[num_selects as u32] = select.unwrap_unchecked().value;
select_comparators[num_selects as u32] = select.unwrap_unchecked().comparator;
num_selects += 1;
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ mod tests {
// Obtain the byte representation of the maximum field value
let max_field_value_as_bytes: [u8; 32] = (-1).to_be_bytes();

let byte_to_bump = max_field_value_as_bytes[index_of_byte_to_bump];
let byte_to_bump = max_field_value_as_bytes[index_of_byte_to_bump as u32];

// Skip test execution if the selected byte is already at maximum value (255).
// This is acceptable since we are using fuzz testing to generate many test cases.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ pub unconstrained fn squash_transient_data<let M: u32, let N: u32, let P: u32, l
if log.inner.note_hash_counter == 0 {
propagated_logs.push(log);
} else {
let linked_note_hash_propagated = propagated_note_hashes.storage().any(
|n: ScopedNoteHash| (n.counter() == log.inner.note_hash_counter),
);
let linked_note_hash_propagated = propagated_note_hashes
.storage()
.any(|n: ScopedNoteHash| (n.counter() == log.inner.note_hash_counter));
if linked_note_hash_propagated {
propagated_logs.push(log);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,10 @@ impl TailOutputComposer {
source.l2_to_l1_msgs.storage().map(|m: ScopedL2ToL1Message| m.expose_to_public());
data.private_logs =
source.private_logs.storage().map(|l: Scoped<PrivateLogData>| l.inner.log);
data.contract_class_logs_hashes = source.contract_class_logs_hashes.storage().map(
|l: ScopedLogHash| l.expose_to_public(),
);
data.contract_class_logs_hashes = source
.contract_class_logs_hashes
.storage()
.map(|l: ScopedLogHash| l.expose_to_public());
data
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,11 @@ mod tests {

let public_inputs = builder.execute();

let output_nullifiers = builder.previous_kernel.nullifiers.storage().map(
|n: ScopedNullifier| n.nullifier.value,
);
let output_nullifiers = builder
.previous_kernel
.nullifiers
.storage()
.map(|n: ScopedNullifier| n.nullifier.value);

assert_array_eq(
public_inputs.non_revertible_accumulated_data.nullifiers,
Expand Down Expand Up @@ -201,9 +203,11 @@ mod tests {

let public_inputs = builder.execute();

let exposed_note_hashes = builder.previous_kernel.note_hashes.storage().map(
|n: ScopedNoteHash| n.note_hash.value,
);
let exposed_note_hashes = builder
.previous_kernel
.note_hashes
.storage()
.map(|n: ScopedNoteHash| n.note_hash.value);

assert_array_eq(
public_inputs.non_revertible_accumulated_data.note_hashes,
Expand Down Expand Up @@ -236,9 +240,11 @@ mod tests {
// expect 2 revertible note hashes
builder.previous_kernel.append_siloed_private_logs_for_note(3, 12);

let exposed_private_logs = builder.previous_kernel.private_logs.storage().map(
|n: Scoped<PrivateLogData>| n.inner.log,
);
let exposed_private_logs = builder
.previous_kernel
.private_logs
.storage()
.map(|n: Scoped<PrivateLogData>| n.inner.log);

let public_inputs = builder.execute();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,16 @@ impl PrivateBaseRollupInputs {
all_public_data_update_requests[0] = fee_public_data_write;

// Append the tx effects for blob(s)
let siloed_l2_to_l1_msgs = self.tube_data.public_inputs.end.l2_to_l1_msgs.map(
|message: ScopedL2ToL1Message| silo_l2_to_l1_message(
let siloed_l2_to_l1_msgs = self
.tube_data
.public_inputs
.end
.l2_to_l1_msgs
.map(|message: ScopedL2ToL1Message| silo_l2_to_l1_message(
message,
self.tube_data.public_inputs.constants.tx_context.version,
self.tube_data.public_inputs.constants.tx_context.chain_id,
),
);
));

let out_hash = compute_kernel_out_hash(siloed_l2_to_l1_msgs);

Expand Down Expand Up @@ -433,11 +436,11 @@ mod tests {
res.nullifiers = self.pre_existing_nullifiers.map(|nullifier: NullifierLeafPreimage| {
nullifier.nullifier
});
let all_public_data_update_requests = self.pre_existing_public_data.map(
|leaf_preimage: PublicDataTreeLeafPreimage| {
let all_public_data_update_requests = self
.pre_existing_public_data
.map(|leaf_preimage: PublicDataTreeLeafPreimage| {
PublicDataWrite { leaf_slot: leaf_preimage.slot, value: leaf_preimage.value }
},
);
});
res.public_data_writes = array_concat(
all_public_data_update_requests,
[
Expand Down Expand Up @@ -1090,13 +1093,14 @@ mod tests {
}

let out_hash = builder.execute().out_hash;
let siloed_l2_to_l1_msgs = builder.tube_data.l2_to_l1_msgs.map(
|l2_to_l1_message: ScopedL2ToL1Message| silo_l2_to_l1_message(
let siloed_l2_to_l1_msgs = builder
.tube_data
.l2_to_l1_msgs
.map(|l2_to_l1_message: ScopedL2ToL1Message| silo_l2_to_l1_message(
l2_to_l1_message,
builder.constants.global_variables.version,
builder.constants.global_variables.chain_id,
),
);
));

// Since we fill the tree completely, we know to expect a full tree as below
let expected_tree = generate_full_sha_tree(siloed_l2_to_l1_msgs.storage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,14 @@ impl PublicBaseRollupInputs {
let from_private = self.tube_data.public_inputs;
let from_public = self.avm_proof_data.public_inputs;
let revert_code = if reverted { 1 } else { 0 };
let siloed_l2_to_l1_msgs = from_public.accumulated_data.l2_to_l1_msgs.map(
|message: ScopedL2ToL1Message| silo_l2_to_l1_message(
let siloed_l2_to_l1_msgs = from_public
.accumulated_data
.l2_to_l1_msgs
.map(|message: ScopedL2ToL1Message| silo_l2_to_l1_message(
message,
combined_constant_data.tx_context.version,
combined_constant_data.tx_context.chain_id,
),
);
));

let private_logs = if reverted {
from_private.non_revertible_accumulated_data.private_logs
Expand Down Expand Up @@ -268,11 +269,11 @@ mod tests {
res.nullifiers = self.pre_existing_nullifiers.map(|nullifier: NullifierLeafPreimage| {
nullifier.nullifier
});
let all_public_data_update_requests = self.pre_existing_public_data.map(
|leaf_preimage: PublicDataTreeLeafPreimage| {
let all_public_data_update_requests = self
.pre_existing_public_data
.map(|leaf_preimage: PublicDataTreeLeafPreimage| {
PublicDataWrite { leaf_slot: leaf_preimage.slot, value: leaf_preimage.value }
},
);
});
res.public_data_writes = array_concat(
all_public_data_update_requests,
[
Expand Down Expand Up @@ -646,13 +647,14 @@ mod tests {
}

let out_hash = builder.execute().out_hash;
let siloed_l2_to_l1_msgs = builder.avm_data.l2_to_l1_msgs.map(
|l2_to_l1_message: ScopedL2ToL1Message| silo_l2_to_l1_message(
let siloed_l2_to_l1_msgs = builder
.avm_data
.l2_to_l1_msgs
.map(|l2_to_l1_message: ScopedL2ToL1Message| silo_l2_to_l1_message(
l2_to_l1_message,
builder.constants.global_variables.version,
builder.constants.global_variables.chain_id,
),
);
));

// Since we fill the tree completely, we know to expect a full tree as below
let expected_tree = generate_full_sha_tree(siloed_l2_to_l1_msgs.storage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -390,12 +390,14 @@ impl FixtureBuilder {
min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,
is_fee_payer: self.is_fee_payer,
max_block_number: self.max_block_number,
note_hash_read_requests: subarray(self.note_hash_read_requests.storage().map(
|r: ScopedReadRequest| r.read_request,
)),
nullifier_read_requests: subarray(self.nullifier_read_requests.storage().map(
|r: ScopedReadRequest| r.read_request,
)),
note_hash_read_requests: subarray(self
.note_hash_read_requests
.storage()
.map(|r: ScopedReadRequest| r.read_request)),
nullifier_read_requests: subarray(self
.nullifier_read_requests
.storage()
.map(|r: ScopedReadRequest| r.read_request)),
key_validation_requests_and_generators: subarray(self
.scoped_key_validation_requests_and_generators
.storage()
Expand All @@ -417,9 +419,10 @@ impl FixtureBuilder {
private_logs: subarray(self.private_logs.storage().map(|l: Scoped<PrivateLogData>| {
l.inner
})),
contract_class_logs_hashes: subarray(self.contract_class_logs_hashes.storage().map(
|l: ScopedLogHash| l.log_hash,
)),
contract_class_logs_hashes: subarray(self
.contract_class_logs_hashes
.storage()
.map(|l: ScopedLogHash| l.log_hash)),
historical_header: self.historical_header,
tx_context: self.tx_context,
}
Expand Down Expand Up @@ -552,12 +555,14 @@ impl FixtureBuilder {
m.expose_to_public()
}),
private_logs: self.private_logs.storage().map(|l: Scoped<PrivateLogData>| l.inner.log),
contract_class_logs_hashes: self.contract_class_logs_hashes.storage().map(
|l: ScopedLogHash| l.expose_to_public(),
),
public_call_requests: self.public_call_requests.storage().map(
|cr: Counted<PublicCallRequest>| cr.inner,
),
contract_class_logs_hashes: self
.contract_class_logs_hashes
.storage()
.map(|l: ScopedLogHash| l.expose_to_public()),
public_call_requests: self
.public_call_requests
.storage()
.map(|cr: Counted<PublicCallRequest>| cr.inner),
}
}

Expand All @@ -569,9 +574,10 @@ impl FixtureBuilder {
m.expose_to_public()
}),
private_logs: self.private_logs.storage().map(|l: Scoped<PrivateLogData>| l.inner.log),
contract_class_logs_hashes: self.contract_class_logs_hashes.storage().map(
|l: ScopedLogHash| l.expose_to_public(),
),
contract_class_logs_hashes: self
.contract_class_logs_hashes
.storage()
.map(|l: ScopedLogHash| l.expose_to_public()),
}
}

Expand Down
2 changes: 1 addition & 1 deletion noir/noir-repo-ref
Original file line number Diff line number Diff line change
@@ -1 +1 @@
nightly-2025-03-24
nightly-2025-04-07
Loading