mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-07-10 07:50:11 +00:00
* refactoring integration_tests::keys * refactor integration_tests: extract new_account/send/restored_private_account helpers Move repeated account-creation and transfer boilerplate into four public helpers in integration_tests/src/lib.rs (new_account, send, restored_private_account, assert_public_account_restored), then apply them across keys.rs, ata.rs, auth_transfer/public.rs, auth_transfer/private.rs, token.rs, and amm.rs. Net result: -816 lines of boilerplate. * Additional refactors * refactor(integration_tests): apply shared helpers to remaining test files Use account_balance, get_account, new_account, send, and sync_private helpers in public.rs, pinata.rs, private_pda.rs, program_deployment.rs, and token.rs to reduce boilerplate and improve consistency.
79 lines
2.6 KiB
Rust
79 lines
2.6 KiB
Rust
#![expect(
|
|
clippy::tests_outside_test_module,
|
|
reason = "We don't care about these in tests"
|
|
)]
|
|
|
|
use std::time::Duration;
|
|
|
|
use anyhow::Result;
|
|
use indexer_service_rpc::RpcClient as _;
|
|
use integration_tests::{
|
|
TIME_TO_WAIT_FOR_BLOCK_SECONDS, TestContext, account_balance,
|
|
assert_private_commitment_in_state, get_account, private_mention, public_mention, send,
|
|
wait_for_indexer_to_catch_up,
|
|
};
|
|
use lee::AccountId;
|
|
use log::info;
|
|
|
|
#[tokio::test]
|
|
async fn indexer_state_consistency() -> Result<()> {
|
|
let mut ctx = TestContext::new().await?;
|
|
|
|
let (acc0, acc1) = (
|
|
ctx.existing_public_accounts()[0],
|
|
ctx.existing_public_accounts()[1],
|
|
);
|
|
send(&mut ctx, public_mention(acc0), public_mention(acc1), 100).await?;
|
|
|
|
info!("Waiting for next block creation");
|
|
tokio::time::sleep(Duration::from_secs(TIME_TO_WAIT_FOR_BLOCK_SECONDS)).await;
|
|
|
|
info!("Checking correct balance move");
|
|
let acc_1_balance = account_balance(&ctx, ctx.existing_public_accounts()[0]).await?;
|
|
let acc_2_balance = account_balance(&ctx, ctx.existing_public_accounts()[1]).await?;
|
|
|
|
info!("Balance of sender: {acc_1_balance:#?}");
|
|
info!("Balance of receiver: {acc_2_balance:#?}");
|
|
|
|
assert_eq!(acc_1_balance, 9900);
|
|
assert_eq!(acc_2_balance, 20100);
|
|
|
|
let from: AccountId = ctx.existing_private_accounts()[0];
|
|
let to: AccountId = ctx.existing_private_accounts()[1];
|
|
|
|
send(&mut ctx, private_mention(from), private_mention(to), 100).await?;
|
|
|
|
info!("Waiting for next block creation");
|
|
tokio::time::sleep(Duration::from_secs(TIME_TO_WAIT_FOR_BLOCK_SECONDS)).await;
|
|
|
|
assert_private_commitment_in_state(&ctx, from, "sender").await?;
|
|
assert_private_commitment_in_state(&ctx, to, "receiver").await?;
|
|
|
|
info!("Successfully transferred privately to owned account");
|
|
|
|
info!("Waiting for indexer to parse blocks");
|
|
wait_for_indexer_to_catch_up(&ctx).await?;
|
|
|
|
let acc1_ind_state = ctx
|
|
.indexer_client()
|
|
.get_account(ctx.existing_public_accounts()[0].into())
|
|
.await
|
|
.unwrap();
|
|
let acc2_ind_state = ctx
|
|
.indexer_client()
|
|
.get_account(ctx.existing_public_accounts()[1].into())
|
|
.await
|
|
.unwrap();
|
|
|
|
info!("Checking correct state transition");
|
|
let acc1_seq_state = get_account(&ctx, ctx.existing_public_accounts()[0]).await?;
|
|
let acc2_seq_state = get_account(&ctx, ctx.existing_public_accounts()[1]).await?;
|
|
|
|
assert_eq!(acc1_ind_state, acc1_seq_state.into());
|
|
assert_eq!(acc2_ind_state, acc2_seq_state.into());
|
|
|
|
// ToDo: Check private state transition
|
|
|
|
Ok(())
|
|
}
|