-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Epic: Tagging & Note Discovery #9119
Labels
Milestone
Comments
nventuro
added a commit
that referenced
this issue
Feb 6, 2025
Closes a bunch of things from #9119. Leaves us well positioned to tackle #10723. Currently in a draft status as I still need to adjust the `#[partial_note]` macro to produce the new structures (though these are simpler than the old one), update callsites, remove all of the code that dealt with partial note encoding etc. The new flow is complete already however, and I put together a (still under active development) small example of all we need to autogenerate to use this in `PartialUintNote` (which would eventually be autogenerated). I moved some stuff around to places where I think it fits much better, but the diff does not look too bad. Most (all?) of the new stuff has extended explanations of what it does and how it's meant to be used, so this should be hopefully easy to follow. The basic flow is: 1) a contract private or unconstrained function gets a call to `note::discovery::discover_new_notes()` 2) this results in a call to the `syncNotes` oracle 3) PXE finds logs based on the tagging scheme, updates indices 4) PXE decrypts logs (soon to be moved to nr) 5) PXE calls the `process_log` unconstrained contract function 6) this autogenerated function calls `note::discovery::private::do_process_log`, which continues handling the log 7) eventually we process all logs and `note::discovery::partial:...` runs, searching for public logs from inside noir (via a new `getTaggedLog` oracle call The interface of `PartialUintNote` can be greatly improved, I'm thinking we may have `UintNote::partial(recipient)` return a struct similar to this one with some `emit` method for the log. We'd then put this in storage, retrieve it and call e.g. `complete(amount)`. But these are ultimately small API details. --------- Co-authored-by: Jan Beneš <[email protected]>
AztecBot
pushed a commit
to AztecProtocol/aztec-nr
that referenced
this issue
Feb 7, 2025
Closes a bunch of things from AztecProtocol/aztec-packages#9119. Leaves us well positioned to tackle AztecProtocol/aztec-packages#10723. Currently in a draft status as I still need to adjust the `#[partial_note]` macro to produce the new structures (though these are simpler than the old one), update callsites, remove all of the code that dealt with partial note encoding etc. The new flow is complete already however, and I put together a (still under active development) small example of all we need to autogenerate to use this in `PartialUintNote` (which would eventually be autogenerated). I moved some stuff around to places where I think it fits much better, but the diff does not look too bad. Most (all?) of the new stuff has extended explanations of what it does and how it's meant to be used, so this should be hopefully easy to follow. The basic flow is: 1) a contract private or unconstrained function gets a call to `note::discovery::discover_new_notes()` 2) this results in a call to the `syncNotes` oracle 3) PXE finds logs based on the tagging scheme, updates indices 4) PXE decrypts logs (soon to be moved to nr) 5) PXE calls the `process_log` unconstrained contract function 6) this autogenerated function calls `note::discovery::private::do_process_log`, which continues handling the log 7) eventually we process all logs and `note::discovery::partial:...` runs, searching for public logs from inside noir (via a new `getTaggedLog` oracle call The interface of `PartialUintNote` can be greatly improved, I'm thinking we may have `UintNote::partial(recipient)` return a struct similar to this one with some `emit` method for the log. We'd then put this in storage, retrieve it and call e.g. `complete(amount)`. But these are ultimately small API details. --------- Co-authored-by: Jan Beneš <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This refers to the first version of tagging and note discovery, which will:
Misc
registerContact
command to the CLI wallet #9969PXE
Node
Aztec.nr
The text was updated successfully, but these errors were encountered: