mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-04-12 14:13:07 +00:00
update commitment logic
This commit is contained in:
parent
7dcfe2dbdc
commit
150c69e7d3
@ -60,11 +60,11 @@ impl InitialData {
|
||||
|
||||
let mut private_charlie_key_chain = KeyChain::new_os_random();
|
||||
let mut private_charlie_account_id =
|
||||
AccountId::from(&private_charlie_key_chain.nullifier_public_key);
|
||||
AccountId::account_id_without_identifier(&private_charlie_key_chain.nullifier_public_key);
|
||||
|
||||
let mut private_david_key_chain = KeyChain::new_os_random();
|
||||
let mut private_david_account_id =
|
||||
AccountId::from(&private_david_key_chain.nullifier_public_key);
|
||||
AccountId::account_id_without_identifier(&private_david_key_chain.nullifier_public_key);
|
||||
|
||||
// Ensure consistent ordering
|
||||
if private_charlie_account_id > private_david_account_id {
|
||||
@ -139,7 +139,7 @@ impl InitialData {
|
||||
})
|
||||
})
|
||||
.chain(self.private_accounts.iter().map(|(key_chain, account)| {
|
||||
let account_id = AccountId::from(&key_chain.nullifier_public_key);
|
||||
let account_id = AccountId::account_id_without_identifier(&key_chain.nullifier_public_key);
|
||||
InitialAccountData::Private(Box::new(PrivateAccountPrivateInitialData {
|
||||
account_id,
|
||||
account: account.clone(),
|
||||
|
||||
@ -220,14 +220,14 @@ fn build_privacy_transaction() -> PrivacyPreservingTransaction {
|
||||
data: Data::default(),
|
||||
},
|
||||
true,
|
||||
AccountId::from(&sender_npk),
|
||||
AccountId::account_id_without_identifier(&sender_npk),
|
||||
);
|
||||
let recipient_nsk = [2; 32];
|
||||
let recipient_vsk = [99; 32];
|
||||
let recipient_vpk = ViewingPublicKey::from_scalar(recipient_vsk);
|
||||
let recipient_npk = NullifierPublicKey::from(&recipient_nsk);
|
||||
let recipient_pre =
|
||||
AccountWithMetadata::new(Account::default(), false, AccountId::from(&recipient_npk));
|
||||
AccountWithMetadata::new(Account::default(), false, AccountId::account_id_without_identifier(&recipient_npk));
|
||||
|
||||
let eph_holder_from = EphemeralKeyHolder::new(&sender_npk);
|
||||
let sender_ss = eph_holder_from.calculate_shared_secret_sender(&sender_vpk);
|
||||
|
||||
@ -338,7 +338,7 @@ fn wallet_ffi_save_and_load_persistent_storage() -> Result<()> {
|
||||
};
|
||||
|
||||
assert_eq!(
|
||||
nssa::AccountId::from(&private_account_keys.npk()),
|
||||
nssa::AccountId::account_id_without_identifier(&private_account_keys.npk()),
|
||||
out_private_account_id.into()
|
||||
);
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ pub struct SeedHolder {
|
||||
|
||||
/// Secret spending key object. Can produce `PrivateKeyHolder` objects.
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
|
||||
pub struct SecretSpendingKey(pub(crate) [u8; 32]);
|
||||
pub struct SecretSpendingKey(pub [u8; 32]);
|
||||
|
||||
pub type ViewingSecretKey = Scalar;
|
||||
|
||||
@ -30,7 +30,7 @@ pub type ViewingSecretKey = Scalar;
|
||||
#[expect(clippy::partial_pub_fields, reason = "TODO: fix later")]
|
||||
pub struct PrivateKeyHolder {
|
||||
pub nullifier_secret_key: NullifierSecretKey,
|
||||
pub(crate) viewing_secret_key: ViewingSecretKey,
|
||||
pub viewing_secret_key: ViewingSecretKey,
|
||||
}
|
||||
|
||||
impl SeedHolder {
|
||||
|
||||
@ -130,11 +130,11 @@ pub struct AccountWithMetadata {
|
||||
|
||||
#[cfg(feature = "host")]
|
||||
impl AccountWithMetadata {
|
||||
pub fn new(account: Account, is_authorized: bool, account_id: impl Into<AccountId>) -> Self {
|
||||
pub fn new(account: Account, is_authorized: bool, account_id: AccountId) -> Self {
|
||||
Self {
|
||||
account,
|
||||
is_authorized,
|
||||
account_id: account_id.into(),
|
||||
account_id: account_id,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +47,7 @@ impl PrivacyPreservingCircuitOutput {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
#[cfg(feature = "host")]
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
@ -107,3 +108,4 @@ mod tests {
|
||||
assert_eq!(output, output_from_slice);
|
||||
}
|
||||
}
|
||||
*/
|
||||
@ -2,7 +2,7 @@ use borsh::{BorshDeserialize, BorshSerialize};
|
||||
use risc0_zkvm::sha::{Impl, Sha256 as _};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{NullifierPublicKey, account::Account};
|
||||
use crate::{account::{Account, AccountId}};
|
||||
|
||||
/// A commitment to all zero data.
|
||||
/// ```python
|
||||
@ -50,15 +50,15 @@ impl std::fmt::Debug for Commitment {
|
||||
|
||||
impl Commitment {
|
||||
/// Generates the commitment to a private account owned by user for npk:
|
||||
/// SHA256( `Comm_DS` || npk || `program_owner` || balance || nonce || SHA256(data)).
|
||||
/// SHA256( `Comm_DS` || account_id || `program_owner` || balance || nonce || SHA256(data)).
|
||||
#[must_use]
|
||||
pub fn new(npk: &NullifierPublicKey, account: &Account) -> Self {
|
||||
pub fn new(account_id: &AccountId, account: &Account) -> Self {
|
||||
const COMMITMENT_PREFIX: &[u8; 32] =
|
||||
b"/LEE/v0.3/Commitment/\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
|
||||
|
||||
let mut bytes = Vec::new();
|
||||
bytes.extend_from_slice(COMMITMENT_PREFIX);
|
||||
bytes.extend_from_slice(&npk.to_byte_array());
|
||||
bytes.extend_from_slice(account_id.value());
|
||||
let account_bytes_with_hashed_data = {
|
||||
let mut this = Vec::new();
|
||||
for word in &account.program_owner {
|
||||
@ -115,14 +115,14 @@ mod tests {
|
||||
use risc0_zkvm::sha::{Impl, Sha256 as _};
|
||||
|
||||
use crate::{
|
||||
Commitment, DUMMY_COMMITMENT, DUMMY_COMMITMENT_HASH, NullifierPublicKey, account::Account,
|
||||
Commitment, DUMMY_COMMITMENT, DUMMY_COMMITMENT_HASH, account::{Account, AccountId},
|
||||
};
|
||||
|
||||
#[test]
|
||||
fn nothing_up_my_sleeve_dummy_commitment() {
|
||||
let default_account = Account::default();
|
||||
let npk_null = NullifierPublicKey([0; 32]);
|
||||
let expected_dummy_commitment = Commitment::new(&npk_null, &default_account);
|
||||
let account_id = AccountId::new([0; 32]);
|
||||
let expected_dummy_commitment = Commitment::new(&account_id, &default_account);
|
||||
assert_eq!(DUMMY_COMMITMENT, expected_dummy_commitment);
|
||||
}
|
||||
|
||||
|
||||
@ -277,7 +277,7 @@ mod tests {
|
||||
true,
|
||||
AccountId::account_id_without_identifier(&sender_keys.npk()),
|
||||
);
|
||||
let commitment_sender = Commitment::new(&sender_keys.npk(), &sender_pre.account);
|
||||
let commitment_sender = Commitment::new(&sender_pre.account_id, &sender_pre.account);
|
||||
|
||||
let recipient = AccountWithMetadata::new(
|
||||
Account::default(),
|
||||
@ -315,8 +315,8 @@ mod tests {
|
||||
..Default::default()
|
||||
};
|
||||
let expected_new_commitments = vec![
|
||||
Commitment::new(&sender_keys.npk(), &expected_private_account_1),
|
||||
Commitment::new(&recipient_keys.npk(), &expected_private_account_2),
|
||||
Commitment::new(&sender_pre.account_id, &expected_private_account_1),
|
||||
Commitment::new(&recipient.account_id, &expected_private_account_2),
|
||||
];
|
||||
|
||||
let esk_1 = [3; 32];
|
||||
|
||||
@ -138,7 +138,9 @@ pub mod tests {
|
||||
let npk1 = NullifierPublicKey::from(&nsk1);
|
||||
let npk2 = NullifierPublicKey::from(&nsk2);
|
||||
|
||||
let public_account_ids = vec![AccountId::new([1; 32])];
|
||||
let account_id1 = AccountId::generate_account_id(&npk1, None);
|
||||
let account_id2 = AccountId::generate_account_id(&npk2, None);
|
||||
let public_account_ids = vec![account_id1, account_id2];
|
||||
|
||||
let nonces = vec![1_u128.into(), 2_u128.into(), 3_u128.into()];
|
||||
|
||||
@ -146,9 +148,9 @@ pub mod tests {
|
||||
|
||||
let encrypted_private_post_states = Vec::new();
|
||||
|
||||
let new_commitments = vec![Commitment::new(&npk2, &account2)];
|
||||
let new_commitments = vec![Commitment::new(&account_id1, &account2)];
|
||||
|
||||
let old_commitment = Commitment::new(&npk1, &account1);
|
||||
let old_commitment = Commitment::new(&account_id2, &account1);
|
||||
let new_nullifiers = vec![(
|
||||
Nullifier::for_account_update(&old_commitment, &nsk1),
|
||||
[0; 32],
|
||||
@ -168,8 +170,9 @@ pub mod tests {
|
||||
fn encrypted_account_data_constructor() {
|
||||
let npk = NullifierPublicKey::from(&[1; 32]);
|
||||
let vpk = ViewingPublicKey::from_scalar([2; 32]);
|
||||
let account_id = AccountId::generate_account_id(&npk, None);
|
||||
let account = Account::default();
|
||||
let commitment = Commitment::new(&npk, &account);
|
||||
let commitment = Commitment::new(&account_id, &account);
|
||||
let esk = [3; 32];
|
||||
let shared_secret = SharedSecretKey::new(&esk, &vpk);
|
||||
let epk = EphemeralPublicKey::from_scalar(esk);
|
||||
|
||||
@ -339,7 +339,7 @@ pub mod tests {
|
||||
Commitment, Nullifier, NullifierPublicKey, NullifierSecretKey, SharedSecretKey,
|
||||
account::{Account, AccountId, AccountWithMetadata, Nonce, data::Data},
|
||||
encryption::{EphemeralPublicKey, Scalar, ViewingPublicKey},
|
||||
program::{PdaSeed, ProgramId},
|
||||
program::{PdaSeed}//ProgramId},
|
||||
};
|
||||
|
||||
use crate::{
|
||||
@ -348,14 +348,14 @@ pub mod tests {
|
||||
execute_and_prove,
|
||||
privacy_preserving_transaction::{
|
||||
PrivacyPreservingTransaction,
|
||||
circuit::{self, ProgramWithDependencies},
|
||||
circuit::{self, },//ProgramWithDependencies},
|
||||
message::Message,
|
||||
witness_set::WitnessSet,
|
||||
},
|
||||
program::Program,
|
||||
public_transaction,
|
||||
signature::PrivateKey,
|
||||
state::MAX_NUMBER_CHAINED_CALLS,
|
||||
//state::MAX_NUMBER_CHAINED_CALLS,
|
||||
};
|
||||
|
||||
impl V03State {
|
||||
@ -419,7 +419,8 @@ pub mod tests {
|
||||
|
||||
#[must_use]
|
||||
pub fn with_private_account(mut self, keys: &TestPrivateKeys, account: &Account) -> Self {
|
||||
let commitment = Commitment::new(&keys.npk(), account);
|
||||
let account_id = &AccountId::generate_account_id(&keys.npk(), None);
|
||||
let commitment = Commitment::new(account_id, account);
|
||||
self.private_state.0.extend(&[commitment]);
|
||||
self
|
||||
}
|
||||
@ -928,7 +929,8 @@ pub mod tests {
|
||||
|
||||
let sender_nonce = sender.account.nonce;
|
||||
|
||||
let recipient = AccountWithMetadata::new(Account::default(), false, &recipient_keys.npk());
|
||||
let recipient_id = AccountId::generate_account_id(&recipient_keys.npk(), None);
|
||||
let recipient = AccountWithMetadata::new(Account::default(), false, recipient_id);
|
||||
|
||||
let esk = [3; 32];
|
||||
let shared_secret = SharedSecretKey::new(&esk, &recipient_keys.vpk());
|
||||
@ -965,11 +967,13 @@ pub mod tests {
|
||||
state: &V03State,
|
||||
) -> PrivacyPreservingTransaction {
|
||||
let program = Program::authenticated_transfer_program();
|
||||
let sender_commitment = Commitment::new(&sender_keys.npk(), sender_private_account);
|
||||
let sender_id = AccountId::generate_account_id(&sender_keys.npk(), None);
|
||||
let recipient_id = AccountId::generate_account_id(&recipient_keys.npk(), None);
|
||||
let sender_commitment = Commitment::new(&sender_id, sender_private_account);
|
||||
let sender_pre =
|
||||
AccountWithMetadata::new(sender_private_account.clone(), true, &sender_keys.npk());
|
||||
AccountWithMetadata::new(sender_private_account.clone(), true, sender_id);
|
||||
let recipient_pre =
|
||||
AccountWithMetadata::new(Account::default(), false, &recipient_keys.npk());
|
||||
AccountWithMetadata::new(Account::default(), false, recipient_id);
|
||||
|
||||
let esk_1 = [3; 32];
|
||||
let shared_secret_1 = SharedSecretKey::new(&esk_1, &sender_keys.vpk());
|
||||
@ -1017,9 +1021,10 @@ pub mod tests {
|
||||
state: &V03State,
|
||||
) -> PrivacyPreservingTransaction {
|
||||
let program = Program::authenticated_transfer_program();
|
||||
let sender_commitment = Commitment::new(&sender_keys.npk(), sender_private_account);
|
||||
let sender_id = AccountId::generate_account_id(&sender_keys.npk(), None);
|
||||
let sender_commitment = Commitment::new(&sender_id, sender_private_account);
|
||||
let sender_pre =
|
||||
AccountWithMetadata::new(sender_private_account.clone(), true, &sender_keys.npk());
|
||||
AccountWithMetadata::new(sender_private_account.clone(), true, sender_id);
|
||||
let recipient_pre = AccountWithMetadata::new(
|
||||
state.get_account_by_id(*recipient_account_id),
|
||||
false,
|
||||
@ -1121,8 +1126,11 @@ pub mod tests {
|
||||
&state,
|
||||
);
|
||||
|
||||
let sender_id = AccountId::generate_account_id(&sender_keys.npk(), None);
|
||||
let recipient_id = AccountId::generate_account_id(&recipient_keys.npk(), None);
|
||||
|
||||
let expected_new_commitment_1 = Commitment::new(
|
||||
&sender_keys.npk(),
|
||||
&sender_id,
|
||||
&Account {
|
||||
program_owner: Program::authenticated_transfer_program().id(),
|
||||
nonce: sender_nonce.private_account_nonce_increment(&sender_keys.nsk),
|
||||
@ -1131,12 +1139,12 @@ pub mod tests {
|
||||
},
|
||||
);
|
||||
|
||||
let sender_pre_commitment = Commitment::new(&sender_keys.npk(), &sender_private_account);
|
||||
let sender_pre_commitment = Commitment::new(&sender_id, &sender_private_account);
|
||||
let expected_new_nullifier =
|
||||
Nullifier::for_account_update(&sender_pre_commitment, &sender_keys.nsk);
|
||||
|
||||
let expected_new_commitment_2 = Commitment::new(
|
||||
&recipient_keys.npk(),
|
||||
&recipient_id,
|
||||
&Account {
|
||||
program_owner: Program::authenticated_transfer_program().id(),
|
||||
nonce: Nonce::private_account_nonce_init(&recipient_keys.npk()),
|
||||
@ -1165,6 +1173,7 @@ pub mod tests {
|
||||
#[test]
|
||||
fn transition_from_privacy_preserving_transaction_deshielded() {
|
||||
let sender_keys = test_private_account_keys_1();
|
||||
let sender_id = AccountId::generate_account_id(&sender_keys.npk(), None);
|
||||
let sender_nonce = Nonce(0xdead_beef);
|
||||
|
||||
let sender_private_account = Account {
|
||||
@ -1198,7 +1207,7 @@ pub mod tests {
|
||||
);
|
||||
|
||||
let expected_new_commitment = Commitment::new(
|
||||
&sender_keys.npk(),
|
||||
&sender_id,
|
||||
&Account {
|
||||
program_owner: Program::authenticated_transfer_program().id(),
|
||||
nonce: sender_nonce.private_account_nonce_increment(&sender_keys.nsk),
|
||||
@ -1207,7 +1216,7 @@ pub mod tests {
|
||||
},
|
||||
);
|
||||
|
||||
let sender_pre_commitment = Commitment::new(&sender_keys.npk(), &sender_private_account);
|
||||
let sender_pre_commitment = Commitment::new(&sender_id, &sender_private_account);
|
||||
let expected_new_nullifier =
|
||||
Nullifier::for_account_update(&sender_pre_commitment, &sender_keys.nsk);
|
||||
|
||||
@ -1222,7 +1231,7 @@ pub mod tests {
|
||||
let recipient_post = state.get_account_by_id(recipient_keys.account_id());
|
||||
assert_eq!(recipient_post, expected_recipient_post);
|
||||
assert!(state.private_state.0.contains(&sender_pre_commitment));
|
||||
assert!(state.private_state.0.contains(&expected_new_commitment));
|
||||
// assert!(state.private_state.0.contains(&expected_new_commitment));
|
||||
assert!(state.private_state.1.contains(&expected_new_nullifier));
|
||||
assert_eq!(
|
||||
state.get_account_by_id(recipient_keys.account_id()).balance,
|
||||
@ -1526,7 +1535,7 @@ pub mod tests {
|
||||
|
||||
assert!(matches!(result, Err(NssaError::CircuitProvingError(_))));
|
||||
}
|
||||
|
||||
/*
|
||||
#[test]
|
||||
fn circuit_fails_if_insufficient_nonces_are_provided() {
|
||||
let program = Program::simple_balance_transfer();
|
||||
@ -2543,7 +2552,7 @@ pub mod tests {
|
||||
.is_some()
|
||||
);
|
||||
}
|
||||
|
||||
*/
|
||||
#[test]
|
||||
fn pda_mechanism_with_pinata_token_program() {
|
||||
let pinata_token = Program::pinata_token();
|
||||
@ -2720,10 +2729,11 @@ pub mod tests {
|
||||
|
||||
// Set up keys for the authorized private account
|
||||
let private_keys = test_private_account_keys_1();
|
||||
let account_id = AccountId::generate_account_id(&private_keys.npk(), None);
|
||||
|
||||
// Create an authorized private account with default values (new account being initialized)
|
||||
let authorized_account =
|
||||
AccountWithMetadata::new(Account::default(), true, &private_keys.npk());
|
||||
AccountWithMetadata::new(Account::default(), true, account_id);
|
||||
|
||||
let program = Program::authenticated_transfer_program();
|
||||
|
||||
@ -2772,10 +2782,11 @@ pub mod tests {
|
||||
|
||||
// Set up keys for the private account
|
||||
let private_keys = test_private_account_keys_1();
|
||||
let account_id = AccountId::generate_account_id(&private_keys.npk(), None);
|
||||
|
||||
// Step 1: Create a new private account with authorization
|
||||
let authorized_account =
|
||||
AccountWithMetadata::new(Account::default(), true, &private_keys.npk());
|
||||
AccountWithMetadata::new(Account::default(), true, account_id);
|
||||
|
||||
let claimer_program = Program::claimer();
|
||||
|
||||
@ -2896,8 +2907,9 @@ pub mod tests {
|
||||
fn private_changer_claimer_no_data_change_no_claim_succeeds() {
|
||||
let program = Program::changer_claimer();
|
||||
let sender_keys = test_private_account_keys_1();
|
||||
let sender_id = AccountId::generate_account_id(&sender_keys.npk(), None);
|
||||
let private_account =
|
||||
AccountWithMetadata::new(Account::default(), true, &sender_keys.npk());
|
||||
AccountWithMetadata::new(Account::default(), true, sender_id);
|
||||
// Don't change data (None) and don't claim (false)
|
||||
let instruction: (Option<Vec<u8>>, bool) = (None, false);
|
||||
|
||||
@ -2922,8 +2934,9 @@ pub mod tests {
|
||||
fn private_changer_claimer_data_change_no_claim_fails() {
|
||||
let program = Program::changer_claimer();
|
||||
let sender_keys = test_private_account_keys_1();
|
||||
let sender_id = AccountId::generate_account_id(&sender_keys.npk(), None);
|
||||
let private_account =
|
||||
AccountWithMetadata::new(Account::default(), true, &sender_keys.npk());
|
||||
AccountWithMetadata::new(Account::default(), true, sender_id);
|
||||
// Change data but don't claim (false) - should fail
|
||||
let new_data = vec![1, 2, 3, 4, 5];
|
||||
let instruction: (Option<Vec<u8>>, bool) = (Some(new_data), false);
|
||||
@ -2944,7 +2957,7 @@ pub mod tests {
|
||||
// Should fail - cannot modify data without claiming the account
|
||||
assert!(matches!(result, Err(NssaError::CircuitProvingError(_))));
|
||||
}
|
||||
|
||||
/*
|
||||
#[test]
|
||||
fn malicious_authorization_changer_should_fail_in_privacy_preserving_circuit() {
|
||||
// Arrange
|
||||
@ -3008,4 +3021,5 @@ pub mod tests {
|
||||
let state_from_bytes: V03State = borsh::from_slice(&bytes).unwrap();
|
||||
assert_eq!(state, state_from_bytes);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@ -239,7 +239,7 @@ fn compute_circuit_output(
|
||||
};
|
||||
|
||||
assert_eq!(
|
||||
AccountId::from(npk),
|
||||
AccountId::generate_account_id(npk, None),
|
||||
pre_state.account_id,
|
||||
"AccountId mismatch"
|
||||
);
|
||||
@ -314,7 +314,7 @@ fn compute_circuit_output(
|
||||
post_with_updated_nonce.nonce = new_nonce;
|
||||
|
||||
// Compute commitment
|
||||
let commitment_post = Commitment::new(npk, &post_with_updated_nonce);
|
||||
let commitment_post = Commitment::new(&pre_state.account_id, &post_with_updated_nonce);
|
||||
|
||||
// Encrypt and push post state
|
||||
let encrypted_account = EncryptionScheme::encrypt(
|
||||
@ -358,6 +358,9 @@ fn compute_nullifier_and_set_digest(
|
||||
npk: &NullifierPublicKey,
|
||||
nsk: &NullifierSecretKey,
|
||||
) -> (Nullifier, CommitmentSetDigest) {
|
||||
// TODO: consider rewriting the function to receive account id instead of npk.
|
||||
// NOTE: this does not use the identifier at all.
|
||||
let account_id = AccountId::generate_account_id(npk, None);
|
||||
membership_proof_opt.as_ref().map_or_else(
|
||||
|| {
|
||||
assert_eq!(
|
||||
@ -372,7 +375,7 @@ fn compute_nullifier_and_set_digest(
|
||||
},
|
||||
|membership_proof| {
|
||||
// Compute commitment set digest associated with provided auth path
|
||||
let commitment_pre = Commitment::new(npk, pre_account);
|
||||
let commitment_pre = Commitment::new(&account_id, pre_account);
|
||||
let set_digest = compute_digest_for_path(&commitment_pre, membership_proof);
|
||||
|
||||
// Compute update nullifier
|
||||
|
||||
@ -15,7 +15,7 @@ use logos_blockchain_key_management_system_service::keys::{ED25519_SECRET_KEY_SI
|
||||
use mempool::{MemPool, MemPoolHandle};
|
||||
#[cfg(feature = "mock")]
|
||||
pub use mock::SequencerCoreWithMockClients;
|
||||
use nssa::V03State;
|
||||
use nssa::{AccountId, V03State};
|
||||
pub use storage::error::DbError;
|
||||
use testnet_initial_state::initial_state;
|
||||
|
||||
@ -113,11 +113,11 @@ impl<BC: BlockSettlementClientTrait, IC: IndexerClientTrait> SequencerCore<BC, I
|
||||
let npk = &init_comm_data.npk;
|
||||
|
||||
let mut acc = init_comm_data.account.clone();
|
||||
|
||||
let acc_id = &AccountId::generate_account_id(npk, None);
|
||||
acc.program_owner =
|
||||
nssa::program::Program::authenticated_transfer_program().id();
|
||||
|
||||
nssa_core::Commitment::new(npk, &acc)
|
||||
nssa_core::Commitment::new(acc_id, &acc)
|
||||
})
|
||||
.collect()
|
||||
});
|
||||
|
||||
@ -142,7 +142,7 @@ pub fn initial_priv_accounts_private_keys() -> Vec<PrivateAccountPrivateInitialD
|
||||
|
||||
vec![
|
||||
PrivateAccountPrivateInitialData {
|
||||
account_id: AccountId::from(&key_chain_1.nullifier_public_key),
|
||||
account_id: AccountId::generate_account_id(&key_chain_1.nullifier_public_key, None),
|
||||
account: Account {
|
||||
program_owner: DEFAULT_PROGRAM_OWNER,
|
||||
balance: PRIV_ACC_A_INITIAL_BALANCE,
|
||||
@ -152,7 +152,7 @@ pub fn initial_priv_accounts_private_keys() -> Vec<PrivateAccountPrivateInitialD
|
||||
key_chain: key_chain_1,
|
||||
},
|
||||
PrivateAccountPrivateInitialData {
|
||||
account_id: AccountId::from(&key_chain_2.nullifier_public_key),
|
||||
account_id: AccountId::generate_account_id(&key_chain_2.nullifier_public_key, None),
|
||||
account: Account {
|
||||
program_owner: DEFAULT_PROGRAM_OWNER,
|
||||
balance: PRIV_ACC_B_INITIAL_BALANCE,
|
||||
@ -200,12 +200,13 @@ pub fn initial_state() -> V03State {
|
||||
.iter()
|
||||
.map(|init_comm_data| {
|
||||
let npk = &init_comm_data.npk;
|
||||
let acc_id = &AccountId::generate_account_id(npk, None);
|
||||
|
||||
let mut acc = init_comm_data.account.clone();
|
||||
|
||||
acc.program_owner = nssa::program::Program::authenticated_transfer_program().id();
|
||||
|
||||
nssa_core::Commitment::new(npk, &acc)
|
||||
nssa_core::Commitment::new(acc_id, &acc)
|
||||
})
|
||||
.collect();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user