mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-05-13 03:30:05 +00:00
use identifier in private gms command
This commit is contained in:
parent
ee0fecee25
commit
f3389571f8
@ -55,6 +55,7 @@ async fn group_create_and_shared_account_registration() -> Result<()> {
|
||||
pda: false,
|
||||
seed: None,
|
||||
program_id: None,
|
||||
identifier: None,
|
||||
}));
|
||||
|
||||
let result = wallet::cli::execute_subcommand(ctx.wallet_mut(), command).await?;
|
||||
@ -170,6 +171,7 @@ async fn fund_shared_account_from_public() -> Result<()> {
|
||||
pda: false,
|
||||
seed: None,
|
||||
program_id: None,
|
||||
identifier: None,
|
||||
}));
|
||||
let result = wallet::cli::execute_subcommand(ctx.wallet_mut(), command).await?;
|
||||
let SubcommandReturnValue::RegisterAccount {
|
||||
|
||||
@ -108,6 +108,10 @@ pub enum NewSubcommand {
|
||||
#[arg(long, requires = "pda")]
|
||||
/// Program ID as hex string.
|
||||
program_id: Option<String>,
|
||||
#[arg(long, requires = "pda")]
|
||||
/// Identifier that diversifies this PDA within the (program_id, seed, npk) family.
|
||||
/// Defaults to a random value if not specified.
|
||||
identifier: Option<u128>,
|
||||
},
|
||||
/// Recommended for receiving from multiple senders: creates a key node (npk + vpk) without
|
||||
/// registering any account.
|
||||
@ -208,6 +212,7 @@ impl WalletSubcommand for NewSubcommand {
|
||||
pda,
|
||||
seed,
|
||||
program_id,
|
||||
identifier,
|
||||
} => {
|
||||
if let Some(label) = &label
|
||||
&& wallet_core
|
||||
@ -239,7 +244,12 @@ impl WalletSubcommand for NewSubcommand {
|
||||
pid[i] = u32::from_le_bytes(chunk.try_into().unwrap());
|
||||
}
|
||||
|
||||
wallet_core.create_shared_pda_account(&group, pda_seed, pid)?
|
||||
wallet_core.create_shared_pda_account(
|
||||
&group,
|
||||
pda_seed,
|
||||
pid,
|
||||
identifier.unwrap_or_else(rand::random),
|
||||
)?
|
||||
} else {
|
||||
wallet_core.create_shared_regular_account(&group)?
|
||||
};
|
||||
|
||||
@ -409,6 +409,7 @@ impl WalletCore {
|
||||
group_name: &str,
|
||||
pda_seed: nssa_core::program::PdaSeed,
|
||||
program_id: nssa_core::program::ProgramId,
|
||||
identifier: nssa_core::Identifier,
|
||||
) -> Result<SharedAccountInfo> {
|
||||
let holder = self
|
||||
.storage
|
||||
@ -419,12 +420,12 @@ impl WalletCore {
|
||||
let keys = holder.derive_keys_for_pda(&program_id, &pda_seed);
|
||||
let npk = keys.generate_nullifier_public_key();
|
||||
let vpk = keys.generate_viewing_public_key();
|
||||
let account_id = AccountId::for_private_pda(&program_id, &pda_seed, &npk, u128::MAX);
|
||||
let account_id = AccountId::for_private_pda(&program_id, &pda_seed, &npk, identifier);
|
||||
|
||||
self.register_shared_account(
|
||||
account_id,
|
||||
String::from(group_name),
|
||||
u128::MAX,
|
||||
identifier,
|
||||
Some(pda_seed),
|
||||
Some(program_id),
|
||||
);
|
||||
@ -793,7 +794,7 @@ impl WalletCore {
|
||||
let shared_secret = SharedSecretKey::new(&vsk, &encrypted_data.epk);
|
||||
let commitment = &tx.message.new_commitments[ciph_id];
|
||||
|
||||
if let Some((_decrypted_identifier, new_acc)) = nssa_core::EncryptionScheme::decrypt(
|
||||
if let Some((_kind, new_acc)) = nssa_core::EncryptionScheme::decrypt(
|
||||
&encrypted_data.ciphertext,
|
||||
&shared_secret,
|
||||
commitment,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user