Merged
Conversation
This was referenced Oct 24, 2025
Contributor
Author
4511ff7 to
c1e6fa2
Compare
25e1bcf to
9226d0a
Compare
18995f0 to
08237d7
Compare
f83ebf5 to
d0178d6
Compare
42a9663 to
b3cbde8
Compare
d0178d6 to
99304a7
Compare
b8aafc7 to
e4dac47
Compare
99304a7 to
fa29492
Compare
e4dac47 to
6910414
Compare
1f908ad to
623a4b1
Compare
797441f to
bcc396a
Compare
Base automatically changed from
10-27-refactor_dropping_pub_context_mutable_refs
to
next
October 29, 2025 21:55
623a4b1 to
b6171c8
Compare
b6171c8 to
e61889b
Compare
e61889b to
ae26939
Compare
This was referenced Nov 6, 2025
benesjan
commented
Nov 6, 2025
78376ff to
69667c0
Compare
803e713 to
f59e55f
Compare
5ef6d41 to
d5d1f0d
Compare
Base automatically changed from
10-31-feat_panicking_on_direct_calls_to_external_funcs
to
next
November 9, 2025 12:58
f59e55f to
8ba4963
Compare
Collaborator
Flakey Tests🤖 says: This CI run detected 2 tests that failed, but were tolerated due to a .test_patterns.yml entry. |
nventuro
approved these changes
Nov 10, 2025
noir-projects/aztec-nr/aztec/src/macros/calls_generation/internal_functions.nr
Outdated
Show resolved
Hide resolved
noir-projects/aztec-nr/aztec/src/macros/calls_generation/internal_functions.nr
Show resolved
Hide resolved
nventuro
approved these changes
Nov 10, 2025
35153b1 to
571f69f
Compare
571f69f to
fd11b14
Compare
Fixes F-22 Fixes #9180 Introduces `#[internal(...)]` macro that injects ContractSelf just like `#[external(...)]` macro but instead of constructing relevant context from inputs it directly accepts the context as first arg to the function (this is also injected into params by the macro). Then when a call to internal is formed via `self.internal.my_internal_func(...)` the call directly passes the relevant context. The same approach is used as what was introduced for`#[external(...)]` in a PR down the stack in that the `#[aztec]` macro makes the original functions uncallable and generates new function with `__aztec_nr_internals__` prefix and injects it into the contract. This gives devs a nice error if they attempt to call the function directly instead of via the intended API.
fd11b14 to
7241673
Compare
auto-merge was automatically disabled
November 10, 2025 15:42
Pull Request is not mergeable
This was referenced Nov 13, 2025
ludamad
pushed a commit
that referenced
this pull request
Dec 16, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Fixes F-22
Fixes #9180
Introduces
#[internal(...)]macro that injects ContractSelf just like#[external(...)]macro but instead of constructing relevant context from inputs it directly accepts the context as first arg to the function (this is also injected into params by the macro). Then when a call to internal is formed viaself.internal.my_internal_func(...)the call directly passes the relevant context.The same approach is used as what was introduced for
#[external(...)]in a PR down the stack in that the#[aztec]macro makes the original functions uncallable and generates new function with__aztec_nr_internals__prefix and injects it into the contract. This gives devs a nice error if they attempt to call the function directly instead of via the intended API.