pub trait PreValidateSwaps<AccountId, Balance, CurrencyId> {
// Required methods
fn pre_validate_sell_asset(
sender: &AccountId,
sold_asset_id: CurrencyId,
bought_asset_id: CurrencyId,
sold_asset_amount: Balance,
min_amount_out: Balance
) -> Result<(Balance, Balance, Balance, Balance, Balance, Balance), DispatchError>;
fn pre_validate_multiswap_sell_asset(
sender: &AccountId,
swap_token_list: Vec<CurrencyId>,
sold_asset_amount: Balance,
min_amount_out: Balance
) -> Result<(Balance, Balance, Balance, Balance, Balance, CurrencyId, CurrencyId), DispatchError>;
fn pre_validate_buy_asset(
sender: &AccountId,
sold_asset_id: CurrencyId,
bought_asset_id: CurrencyId,
bought_asset_amount: Balance,
max_amount_in: Balance
) -> Result<(Balance, Balance, Balance, Balance, Balance, Balance), DispatchError>;
fn pre_validate_multiswap_buy_asset(
sender: &AccountId,
swap_token_list: Vec<CurrencyId>,
final_bought_asset_amount: Balance,
max_amount_in: Balance
) -> Result<(Balance, Balance, Balance, Balance, Balance, CurrencyId, CurrencyId), DispatchError>;
}