#[cfg(feature = "odos-example")]
use alloy_primitives::address;
#[cfg(feature = "odos-example")]
use semioscan::price::odos::OdosPriceSource;
#[cfg(feature = "odos-example")]
use semioscan::price::PriceSource;
#[test]
#[cfg(feature = "odos-example")]
fn test_odos_event_topics_not_empty() {
let router = address!("a669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13");
let price_source = OdosPriceSource::new(router);
let topics = price_source.event_topics();
assert!(!topics.is_empty(), "Event topics should not be empty");
assert!(
topics.len() >= 2,
"Odos should have at least 2 event types (Swap, SwapMulti)"
);
}
#[test]
#[cfg(feature = "odos-example")]
fn test_price_source_trait_object_safety() {
let router = address!("a669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13");
let price_source = OdosPriceSource::new(router);
let _boxed: Box<dyn PriceSource> = Box::new(price_source);
}