feat(privacy): screening policy decides an open-note deposit's subject - #946
Open
avi-starkware wants to merge 1 commit into
Open
Conversation
Collaborator
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Aug 12, 2026
avi-starkware
marked this pull request as ready for review
August 12, 2026 08:53
avi-starkware
force-pushed
the
avi/screening-v3/requirement-collection
branch
from
August 17, 2026 18:51
3174920 to
a363af7
Compare
avi-starkware
force-pushed
the
avi/screening-v3/invoke-generator
branch
from
August 17, 2026 18:51
13fec14 to
11fa395
Compare
avi-starkware
force-pushed
the
avi/screening-v3/requirement-collection
branch
from
August 18, 2026 13:45
a363af7 to
c814217
Compare
avi-starkware
force-pushed
the
avi/screening-v3/invoke-generator
branch
from
August 18, 2026 13:45
11fa395 to
627a712
Compare
An Invoke returning open-note deposits now consults its target's OpenNoteScreeningPolicy, inside the existing non-empty-deposits guard so an Invoke funding nothing is still never screened. `Required` — every unlisted address — makes the target itself the tx's screening subject; `Exempt` raises no requirement; `Delegated` reverts with the new DELEGATED_SCREENING_UNSUPPORTED until the pool can ask a target which addresses to screen. The devnet e2e now lists the swap and lending executors `Exempt`, the posture the deployed pools carry, since `Required` would refuse their notes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
avi-starkware
force-pushed
the
avi/screening-v3/requirement-collection
branch
from
August 18, 2026 14:31
c814217 to
c027b93
Compare
avi-starkware
force-pushed
the
avi/screening-v3/invoke-generator
branch
from
August 18, 2026 14:31
627a712 to
9d4b353
Compare
remollemo
approved these changes
Aug 18, 2026
remollemo
left a comment
Collaborator
There was a problem hiding this comment.
@remollemo reviewed 10 files and all commit messages, and made 2 comments.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on avi-starkware and Yoni-Starkware).
packages/privacy/src/privacy.cairo line 1013 at r1 (raw file):
// Apply deposits to open notes returned by Invoke. `contract_address` is the depositor, // and its policy decides what the deposits require. An Invoke returning no deposits // never consults the policy list.
Suggestion:
// Apply deposits to open notes returned by Invoke. `contract_address` is the depositor.
// Screening - if reqruired, and its subject is defined by the depositor screening policy. and applicaband its policy decides what the deposits require. An Invoke returning no depositspackages/privacy/src/privacy.cairo line 1017 at r1 (raw file):
match self.open_note_depositor_screening_policies.read(contract_address) { // The depositor funds open notes only under a screening attestation for its // own address.
remove
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.

An Invoke returning open-note deposits now consults its target's OpenNoteScreeningPolicy, inside
the existing non-empty-deposits guard so an Invoke funding nothing is still never screened.
Required— every unlisted address — makes the target itself the tx's screening subject;Exemptraises no requirement;
Delegatedreverts with the new DELEGATED_SCREENING_UNSUPPORTED until thepool can ask a target which addresses to screen. The devnet e2e now lists the swap and lending
executors
Exempt, the posture the deployed pools carry, sinceRequiredwould refuse their notes.Co-Authored-By: Claude Opus 5 noreply@anthropic.com
This change is