Skip to content

Commit

Permalink
chore(starknet_l1_provider): add fake l1 provider client
Browse files Browse the repository at this point in the history
  • Loading branch information
Gilad Chase committed Dec 20, 2024
1 parent 5ae8a1d commit 5c5c34b
Showing 1 changed file with 47 additions and 1 deletion.
48 changes: 47 additions & 1 deletion crates/starknet_l1_provider/src/test_utils.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
use std::sync::Mutex;

use async_trait::async_trait;
use indexmap::{IndexMap, IndexSet};
use starknet_api::executable_transaction::L1HandlerTransaction;
use itertools::Itertools;
use pretty_assertions::assert_eq;
use starknet_api::executable_transaction::{
L1HandlerTransaction as ExecutableL1HandlerTransaction,
L1HandlerTransaction,
};
use starknet_api::transaction::TransactionHash;
use starknet_l1_provider_types::{
Event,
L1ProviderClient,
L1ProviderClientResult,
ValidationStatus,
};

use crate::{L1Provider, ProviderState, TransactionManager};

Expand Down Expand Up @@ -119,3 +133,35 @@ impl TransactionManagerContentBuilder {
self.txs.is_none() && self.on_l2_awaiting_l1_consumption.is_none()
}
}

#[derive(Default)]
pub struct FakeL1ProviderClient {
pub events_received: Mutex<Vec<Event>>,
}

impl FakeL1ProviderClient {
#[track_caller]
pub fn assert_add_events_received_with(&self, expected: &[Event]) {
assert_eq!(self.events_received.lock().unwrap().drain(..).collect_vec(), expected);
}
}

#[async_trait]
impl L1ProviderClient for FakeL1ProviderClient {
async fn get_txs(
&self,
_n_txs: usize,
) -> L1ProviderClientResult<Vec<ExecutableL1HandlerTransaction>> {
todo!()
}
async fn add_events(&self, events: Vec<Event>) -> L1ProviderClientResult<()> {
self.events_received.lock().unwrap().extend(events);
Ok(())
}
async fn validate(
&self,
_tx_hash: TransactionHash,
) -> L1ProviderClientResult<ValidationStatus> {
todo!()
}
}

0 comments on commit 5c5c34b

Please sign in to comment.