use crate::{
    call_handler_ext::TransactionConfig,
    utxo_manager::SharedUtxoManager,
    wallet_ext::BuilderData,
};

#[cfg(test)]
mod e2e;

pub mod blob_loader;
pub mod fuel_fast_bridge;
pub mod helpers;
pub mod log_decoder;
pub mod macros;
pub mod order_book;
pub mod order_book_deploy;
pub mod order_book_registry;
pub mod src20_mock;
pub mod test_contracts;
pub mod trade_account;
pub mod trade_account_deploy;
pub mod trade_account_registry;

#[path = "market_data/market_data.rs"]
pub mod market_data;

pub mod call_handler_ext;
pub mod contract_ext;
pub mod signature_ext;
pub mod utxo_manager;
pub mod wallet_ext;

#[derive(Clone)]
pub struct AwaitPreconfirmation {
    pub data_builder: BuilderData,
    pub utxo_manager: SharedUtxoManager,
    pub tx_config: Option<TransactionConfig>,
}

#[allow(clippy::large_enum_variant)]
#[derive(Clone)]
pub enum CallOption {
    AwaitBlock,
    AwaitPreconfirmation(AwaitPreconfirmation),
}
