pub trait TradingPairSourceManager<DEXId, AssetId> {
// Required methods
fn list_enabled_sources_for_trading_pair(
dex_id: &DEXId,
base_asset_id: &AssetId,
target_asset_id: &AssetId
) -> Result<BTreeSet<LiquiditySourceType>, DispatchError>;
fn is_source_enabled_for_trading_pair(
dex_id: &DEXId,
base_asset_id: &AssetId,
target_asset_id: &AssetId,
source_type: LiquiditySourceType
) -> Result<bool, DispatchError>;
fn enable_source_for_trading_pair(
dex_id: &DEXId,
base_asset_id: &AssetId,
target_asset_id: &AssetId,
source_type: LiquiditySourceType
) -> DispatchResult;
fn disable_source_for_trading_pair(
dex_id: &DEXId,
base_asset_id: &AssetId,
target_asset_id: &AssetId,
source_type: LiquiditySourceType
) -> DispatchResult;
}