Moudy
0183eac5cc
refactor: unify PDA AccountId construction via AccountId::for_{public,private}_pda
...
Addresses the following review comment:
- "I think this should be a constructor `AccountId::for_private_pda`.
Consider also removing the existing `impl From<(ProgramId, Seed)> for
AccountId` for public pdas in favor of a `AccountId::for_public_pda`
to have a unified way of constructing pdas"
I replaced `impl From<(&ProgramId, &PdaSeed)> for AccountId` with
`AccountId::for_public_pda(program_id: &ProgramId, seed: &PdaSeed) ->
Self` and replaced the free function `private_pda_account_id(...)`
with `AccountId::for_private_pda(program_id: &ProgramId, seed:
&PdaSeed, npk: &NullifierPublicKey) -> Self`. Both live in an inherent
`impl AccountId` block in nssa/core/src/program.rs next to the PDA
derivation logic. Migrated all call sites across nssa/core,
nssa/src/state.rs, nssa/src/validated_state_diff.rs,
program_methods/guest/src/bin/privacy_preserving_circuit.rs,
programs/amm/core, programs/associated_token_account/core, the example
tail-call binary, and the ATA tutorial doc. Test function names that
referenced the old free function were also renamed
(private_pda_account_id_* to for_private_pda_*).
2026-04-21 12:35:19 +02:00
Moudy
00cae12d41
docs: drop "wallet" references from nssa crate
...
Addresses the following review comments:
- "I'd keep this crate independent of wallet references"
I replaced all with "supplied npk".
- Rename request on locals attested_keys/wallet_keys
In mask_3_wallet_npk_mismatch_panics the two key sets play distinct
roles, one produces the pre_state's account_id (the registered pair)
and the other is supplied in private_account_keys as the mismatched
npk. Collapsing both to `keys` would be misleading. I renamed to
keys_a and keys_b with an inline comment noting which one is the
registered one and which one is mismatched.
2026-04-21 01:02:22 +02:00
Moudy
d3577f02bc
fix: reject multiple family members under same (program, seed) in one tx
2026-04-17 15:36:20 +02:00
Moudy
f9a5a7635e
refactor: make programs privacy-agnostic in the privacy circuit
2026-04-17 07:29:40 +02:00
Moudy
8da04ac898
fix: nightly fmt
2026-04-16 18:45:19 +02:00
Moudy
93c6921eaf
Merge remote-tracking branch 'origin/main' into moudy/feat-private-pdas
...
# Conflicts:
# artifacts/program_methods/amm.bin
# artifacts/program_methods/associated_token_account.bin
# artifacts/program_methods/authenticated_transfer.bin
# artifacts/program_methods/clock.bin
# artifacts/program_methods/pinata.bin
# artifacts/program_methods/pinata_token.bin
# artifacts/program_methods/privacy_preserving_circuit.bin
# artifacts/program_methods/token.bin
# artifacts/test_program_methods/burner.bin
# artifacts/test_program_methods/chain_caller.bin
# artifacts/test_program_methods/changer_claimer.bin
# artifacts/test_program_methods/claimer.bin
# artifacts/test_program_methods/clock_chain_caller.bin
# artifacts/test_program_methods/data_changer.bin
# artifacts/test_program_methods/extra_output.bin
# artifacts/test_program_methods/flash_swap_callback.bin
# artifacts/test_program_methods/flash_swap_initiator.bin
# artifacts/test_program_methods/malicious_authorization_changer.bin
# artifacts/test_program_methods/malicious_caller_program_id.bin
# artifacts/test_program_methods/malicious_self_program_id.bin
# artifacts/test_program_methods/minter.bin
# artifacts/test_program_methods/missing_output.bin
# artifacts/test_program_methods/modified_transfer.bin
# artifacts/test_program_methods/nonce_changer.bin
# artifacts/test_program_methods/noop.bin
# artifacts/test_program_methods/pinata_cooldown.bin
# artifacts/test_program_methods/program_owner_changer.bin
# artifacts/test_program_methods/simple_balance_transfer.bin
# artifacts/test_program_methods/time_locked_transfer.bin
# artifacts/test_program_methods/validity_window.bin
# artifacts/test_program_methods/validity_window_chain_caller.bin
# nssa/core/src/program.rs
# nssa/src/state.rs
2026-04-16 18:25:57 +02:00
Moudy
1fd4e4e8d9
test: pin private_pda_account_id formula against hardcoded value
2026-04-16 17:15:34 +02:00
Moudy
bda21fb5c5
refactor: move private PDA npk into proven ChainedCall and Claim
2026-04-16 16:53:54 +02:00
Moudy
a27da19a45
fix: nightly fmt
2026-04-15 22:10:02 +02:00
Moudy
40a1227871
fix: clippy lint issues
2026-04-15 22:08:26 +02:00
Moudy
47843eaa3e
fix: nightly fmt and clippy issues (item ordering, doc backticks, integer suffix)
2026-04-15 21:10:22 +02:00
Moudy
b0c10ee5a2
fix: cargo fmt, add #[must_use] to private_pda_account_id, rebuild artifacts
2026-04-15 21:10:22 +02:00
Moudy
7e63f9ddcd
test: add unit tests for private PDA AccountId derivation and compute_authorized_pdas
2026-04-15 21:10:21 +02:00
Moudy
10b26ca223
feat: thread private_pda_info through the privacy circuit and extend compute_authorized_pdas
2026-04-15 21:10:21 +02:00
Moudy
ac98fba1b1
feat: add private PDA AccountId derivation function
2026-04-15 21:10:21 +02:00
Daniil Polyakov
699e91363e
feat: introduce more descriptive error messages for public execution
2026-04-13 21:25:18 +03:00
Moudy
7d465dded7
fix: verify caller_program_id in program output
2026-04-07 19:03:06 +02:00
moudyellaz
087baebcca
feat: add caller_program_id to ProgramInput
2026-04-03 00:58:11 +02:00
Moudy
702ef4a46f
fix: cargo fmt
2026-04-02 20:30:27 +02:00
moudyellaz
eafc2969be
feat: add self_program_id to ProgramOutput struct
2026-04-02 20:30:16 +02:00
moudyellaz
27299e75cc
feat: add self_program_id to ProgramInput and read_nssa_inputs
2026-04-02 20:29:10 +02:00
Sergio Chouhy
eb14b8bf98
clippy
2026-03-31 13:51:12 +02:00
Sergio Chouhy
f627910468
fmt
2026-03-31 13:51:12 +02:00
Sergio Chouhy
8bfaf9ef4a
remove blockid from common
2026-03-31 13:50:47 +02:00
Sergio Chouhy
77c5032527
remove common TimeStamp
2026-03-31 13:50:30 +02:00
Sergio Chouhy
99f0ed03dc
add type aliases
2026-03-31 13:50:06 +02:00
Sergio Chouhy
9aa7caf3bf
refactor validity window with generic
2026-03-31 13:49:12 +02:00
Moudy
6d690a8d25
fix: add backticks to doc comment for clippy doc_markdown
2026-03-31 13:47:21 +02:00
moudyellaz
0823461012
style: apply nightly cargo fmt
2026-03-31 13:46:43 +02:00
moudyellaz
5c592312f9
feat: extend ValidityWindow with Unix timestamp bounds
2026-03-31 13:46:08 +02:00
Daniil Polyakov
6780f1c9a4
feat: protect from public pda griefing attacks
2026-03-28 01:23:57 +03:00
Sergio Chouhy
287b196569
remove redundant docstring
2026-03-26 18:16:18 -03:00
Sergio Chouhy
25a86d4bac
move standard derives to beginning
2026-03-26 15:27:37 -03:00
Sergio Chouhy
d7b0c42255
clippy
2026-03-25 20:26:04 -03:00
Sergio Chouhy
70ccb1befa
add constructors from ranges
2026-03-25 17:42:17 -03:00
Sergio Chouhy
953a1dacd3
clippy
2026-03-25 17:35:10 -03:00
Sergio Chouhy
79d70b3a66
add test for empty intersection in circuit
2026-03-25 17:33:27 -03:00
Sergio Chouhy
abc30c0ce0
remove old program output constructors
2026-03-25 16:56:04 -03:00
Sergio Chouhy
3356aef291
handle comments
2026-03-25 16:03:39 -03:00
Sergio Chouhy
4d5d767249
add tests. minor refactor
2026-03-25 14:55:23 -03:00
Sergio Chouhy
3257440448
enforce valid window construction
2026-03-20 13:49:17 -03:00
Sergio Chouhy
d9a1e56983
add docs
2026-03-19 19:41:02 -03:00
Sergio Chouhy
7bbd2dd5d7
add public validity window checks
2026-03-19 15:03:45 -03:00
Sergio Chouhy
895dd942cf
add validity range to program output
2026-03-19 12:10:02 -03:00
jonesmarvin8
5d9980cf63
lint fixes
2026-03-18 13:10:36 -04:00
jonesmarvin8
8dd5037e28
Merge branch 'main' into marvin/nonce
2026-03-17 16:45:08 -04:00
Daniil Polyakov
252848a145
feat: update rust to 1.94.0
2026-03-17 21:25:30 +03:00
Daniil Polyakov
aa462b66eb
feat: add nursery clippy lints
2026-03-17 21:25:30 +03:00
Daniil Polyakov
e3b93b6e9a
feat: add restriction clippy lints
2026-03-17 21:25:30 +03:00
Daniil Polyakov
efe8393ba0
feat: add pedantic clippy lints
2026-03-17 21:25:30 +03:00