mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-08-25 03:11:21 +00:00
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_*).
This commit is contained in:
+1
-1
@@ -46,7 +46,7 @@ async fn main() {
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
|
||||
// Compute the PDA to pass it as input account to the public execution
|
||||
let pda = AccountId::from((&program.id(), &PDA_SEED));
|
||||
let pda = AccountId::for_public_pda(&program.id(), &PDA_SEED);
|
||||
let account_ids = vec![pda];
|
||||
let instruction_data = ();
|
||||
let nonces = vec![];
|
||||
|
||||
Reference in New Issue
Block a user