From 40d961cbd4ac20ca42c9402e32c539512f0adbdf Mon Sep 17 00:00:00 2001 From: Swen Date: Sat, 8 Jun 2024 07:34:55 +0100 Subject: [PATCH] fetching get_new_address_tree_proof --- .../programs/token-escrow/tests/test.rs | 4 +- forester/tests/test_indexer.rs | 14 +++++- test-programs/e2e-test/tests/test.rs | 47 +------------------ test-utils/src/e2e_test_env.rs | 8 +++- 4 files changed, 22 insertions(+), 51 deletions(-) diff --git a/examples/token-escrow/programs/token-escrow/tests/test.rs b/examples/token-escrow/programs/token-escrow/tests/test.rs index 9c4657e971..8708609d38 100644 --- a/examples/token-escrow/programs/token-escrow/tests/test.rs +++ b/examples/token-escrow/programs/token-escrow/tests/test.rs @@ -298,7 +298,7 @@ pub async fn perform_escrow_with_event( ) .await? .unwrap(); - test_indexer.add_compressed_accounts_with_token_data(&event); + test_indexer.add_compressed_accounts_with_token_data(&event.0); Ok(()) } @@ -449,7 +449,7 @@ pub async fn perform_withdrawal_with_event( ) .await? .unwrap(); - test_indexer.add_compressed_accounts_with_token_data(&event); + test_indexer.add_compressed_accounts_with_token_data(&event.0); Ok(()) } diff --git a/forester/tests/test_indexer.rs b/forester/tests/test_indexer.rs index 9026ed3e27..c66261d99a 100644 --- a/forester/tests/test_indexer.rs +++ b/forester/tests/test_indexer.rs @@ -364,6 +364,18 @@ async fn test_photon_interop() { // Insert value into address queue info!("Creating address"); - env.create_address().await; + let created_addresses = env.create_address().await; + + + // TODO: once Photon implements the get_multiple_new_address_proofs + // endpoint, adapt the method name and signature, fetch the exclusion proof + // from photon and assert that the proof is the same + let trees = env.get_address_merkle_tree_pubkeys(1).0; + let address_proof = env.indexer + .get_address_tree_proof(trees[0].to_bytes(), created_addresses[0].to_bytes()) + .unwrap(); + + info!("NewAddress proof test-indexer: {:?}", address_proof); + } diff --git a/test-programs/e2e-test/tests/test.rs b/test-programs/e2e-test/tests/test.rs index d8dc7dedde..077c715718 100644 --- a/test-programs/e2e-test/tests/test.rs +++ b/test-programs/e2e-test/tests/test.rs @@ -76,49 +76,4 @@ async fn test_10000_all() { ) .await; env.execute_rounds().await; -} - - -#[tokio::test(flavor = "multi_thread", worker_threads = 1)] -async fn test_photon_interop() { - spawn_test_validator_with_indexer().await; - let env_accounts = get_test_env_accounts(); - let rpc = SolanaRpcConnection::new(None).await; - let mut env = E2ETestEnv::<500, SolanaRpcConnection>::new( - rpc, - &env_accounts, - KeypairActionConfig { - max_output_accounts: Some(3), - ..KeypairActionConfig::all_default() - }, - GeneralActionConfig { - nullify_compressed_accounts: Some(1.0), - empty_address_queue: Some(1.0), - ..GeneralActionConfig::default() - }, - 0, - // Seed for deterministic randomness, select None for a random seed - Some(1), - "../../circuit-lib/circuitlib-rs/scripts/prover.sh", - ) - .await; - - let photon_indexer = PhotonIndexer::new(INDEXER_URL.to_string()); - - // E2ETestEnv is instantiated with one user - let user_index = 0; - // If user has no spl balance it receives an airdrop - env.transfer_sol(user_index).await; - // Nullifies alls tx in queue with probability 1, also empties the queue with probability 1 - // (but there is nothing to do) - env.activate_general_actions().await; - // TODO: wait for photon to index - env.transfer_sol(user_index).await; - env.create_address().await; - // TODO: wait for photon to index - // Nullifies tx in queue with probability 1, and empties the queue with probability 1 - env.activate_general_actions().await; - // TODO: wait for photon to index - env.create_address().await; - -} +} \ No newline at end of file diff --git a/test-utils/src/e2e_test_env.rs b/test-utils/src/e2e_test_env.rs index 254ac5c97a..9fd7cb4e98 100644 --- a/test-utils/src/e2e_test_env.rs +++ b/test-utils/src/e2e_test_env.rs @@ -709,7 +709,7 @@ where self.stats.sol_compress += 1; } - pub async fn create_address(&mut self) { + pub async fn create_address(&mut self) -> Vec { println!("\n --------------------------------------------------\n\t\t Create Address\n --------------------------------------------------"); // select number of addresses to create let num_addresses = self.rng.gen_range(1..=2); @@ -720,10 +720,13 @@ where info!("address_merkle_tree_pubkeys: {:?}", address_merkle_tree_pubkeys); info!("address_queue_pubkeys: {:?}", address_queue_pubkeys); let mut address_seeds = Vec::new(); + let mut created_addresses = Vec::new(); for _ in 0..num_addresses { let address_seed: [u8; 32] = bigint_to_be_bytes_array::<32>(&self.rng.gen_biguint(256)).unwrap(); - address_seeds.push(address_seed) + address_seeds.push(address_seed); + // Assuming the address is derived from the seed for simplicity + created_addresses.push(Pubkey::new(&address_seed)); } let output_compressed_accounts = self.get_merkle_tree_pubkeys(num_addresses); @@ -749,6 +752,7 @@ where .await .unwrap(); self.stats.create_address += num_addresses; + created_addresses } pub async fn transfer_spl(&mut self, user_index: usize) {