pub use pool_base::PoolBase;
pub use pool_harvester::{
HarvestFeesAndRewardsParams, HarvestFeesAndRewardsResult, HarvestPositionResult,
HarvestQuoteData, PoolHarvester,
};
pub use pool_infuser::{
AddBatchLiquidityItem, AddBatchLiquidityParams, AddLiquidityOptions, AddLiquidityParams,
AddLiquiditySpecificOptions, IncreaseSpecificOptions, MintSpecificOptions, PoolInfuser,
RemoveBatchLiquidityItem, RemoveBatchLiquidityParams,
};
pub use pool_maker::{
CancelBatchOrdersParams, CancelBatchOrdersResult, CancelOrderResult, FulfillBatchOrderItem,
FulfillBatchOrdersParams, FulfillBatchOrdersResult, FulfillOrderOptions, FulfillOrderParams,
FulfillOrderResult, OrderInfo, OrderMetadata, OrderSide, OrderStatus, PlaceBatchOrderItem,
PlaceBatchOrdersParams, PlaceBatchOrdersResult, PlaceOrderOptions, PlaceOrderParams,
PlaceOrderResult, PoolMaker, PositionInfo, RestrictedPriceRange,
};
pub use pool_state::PoolState;
pub use pool_swapper::PoolSwapper;
pub use pool_viewer::PoolViewer;
pub use position_viewer::{
MultiPositionPredictor, MultiPositionViewer, PositionPredictor, PositionViewer,
};
pub use token_helper::TokenHelper;
pub use two_hop_swapper::TwoHopSwapper;
pub use waterpump_evm_core::traits::{
pool_base, pool_harvester, pool_infuser, pool_maker, pool_state, pool_swapper, pool_viewer,
position_viewer, token_helper, two_hop_swapper,
};
pub trait PoolSwapperWithViewer:
PoolSwapper + pool_viewer::PoolViewer + TokenHelper + Send + Sync + 'static
{
}
impl<T> PoolSwapperWithViewer for T where
T: PoolSwapper + pool_viewer::PoolViewer + TokenHelper + Send + Sync + 'static
{
}
pub trait TwoHopSwapperWithViewer:
PoolSwapperWithViewer + TwoHopSwapper + TokenHelper + Send + Sync + 'static
{
}
impl<T> TwoHopSwapperWithViewer for T where
T: TwoHopSwapper + pool_viewer::PoolViewer + TokenHelper + Send + Sync + 'static
{
}
pub trait PositionViewerWithPoolViewer:
PositionViewer + pool_viewer::PoolViewer + PoolState + Send + Sync + 'static
{
}
impl<T> PositionViewerWithPoolViewer for T where
T: PositionViewer + pool_viewer::PoolViewer + PoolState + Send + Sync + 'static
{
}
pub trait MultiPositionViewerWithPoolViewer:
MultiPositionViewer + pool_viewer::PoolViewer + PoolState + Send + Sync + 'static
{
}
impl<T> MultiPositionViewerWithPoolViewer for T where
T: MultiPositionViewer + pool_viewer::PoolViewer + PoolState + Send + Sync + 'static
{
}
pub trait PoolInfuserWithPoolViewer:
PoolInfuser + pool_viewer::PoolViewer + PoolState + TokenHelper + Send + Sync + 'static
{
}
impl<T> PoolInfuserWithPoolViewer for T where
T: PoolInfuser + pool_viewer::PoolViewer + PoolState + TokenHelper + Send + Sync + 'static
{
}
pub trait PoolMakerWithPoolViewer:
PoolMaker + PoolInfuser + pool_viewer::PoolViewer + PoolState + TokenHelper + Send + Sync + 'static
{
}
impl<T> PoolMakerWithPoolViewer for T where
T: PoolMaker
+ PoolInfuser
+ pool_viewer::PoolViewer
+ PoolState
+ TokenHelper
+ Send
+ Sync
+ 'static
{
}