## Liquidity proxy batch swap
`swap_transfer_batch` makes swap of `input_asset_id` to sum of `target_amount`s of `receivers` of `output_asset_id` and transfer `target_amount` of `output_asset_id` to receivers
For example
```
swap_transfer_batch(
[
{account_id: bob(), target_amount: 100.0},
{account_id: charlie(), target_amount: 150.0},
],
0,
0x0200080000000000000000000000000000000000000000000000000000000000,
0x0200060000000000000000000000000000000000000000000000000000000000
250.0,
[
LiquiditySourceType::PoolXYK,
],
FilterMode::Disabled
).sign_by(alice())
```
```rust
pub struct BatchReceiverInfo<T: Config> {
// Receiver account id
pub account_id: T::AccountId,
// Amount of output_asset_id to be transferred to receiver
pub target_amount: Balance,
}
pub fn swap_transfer_batch(
origin: OriginFor<T>,
// Receivers array
receivers: Vec<BatchReceiverInfo<T>>,
// 0 - Polkaswap, 1 - PolkaswapXSTUSD
dex_id: T::DEXId,
input_asset_id: T::AssetId,
output_asset_id: T::AssetId,
// Upper bound for input asset.
// If swap require more tokens function return error
max_input_amount: Balance,
selected_source_types: Vec<LiquiditySourceType>,
filter_mode: FilterMode,
)
```