Trait pallet_asset_conversion::Swap
source · pub trait Swap<AccountId, Balance, MultiAssetId> {
// Required methods
fn swap_exact_tokens_for_tokens(
sender: AccountId,
path: Vec<MultiAssetId>,
amount_in: Balance,
amount_out_min: Option<Balance>,
send_to: AccountId,
keep_alive: bool
) -> Result<Balance, DispatchError>;
fn swap_tokens_for_exact_tokens(
sender: AccountId,
path: Vec<MultiAssetId>,
amount_out: Balance,
amount_in_max: Option<Balance>,
send_to: AccountId,
keep_alive: bool
) -> Result<Balance, DispatchError>;
}
Expand description
Trait for providing methods to swap between the various asset classes.
Required Methods§
sourcefn swap_exact_tokens_for_tokens(
sender: AccountId,
path: Vec<MultiAssetId>,
amount_in: Balance,
amount_out_min: Option<Balance>,
send_to: AccountId,
keep_alive: bool
) -> Result<Balance, DispatchError>
fn swap_exact_tokens_for_tokens( sender: AccountId, path: Vec<MultiAssetId>, amount_in: Balance, amount_out_min: Option<Balance>, send_to: AccountId, keep_alive: bool ) -> Result<Balance, DispatchError>
Swap exactly amount_in
of asset path[0]
for asset path[1]
.
If an amount_out_min
is specified, it will return an error if it is unable to acquire
the amount desired.
Withdraws the path[0]
asset from sender
, deposits the path[1]
asset to send_to
,
respecting keep_alive
.
If successful, returns the amount of path[1]
acquired for the amount_in
.
sourcefn swap_tokens_for_exact_tokens(
sender: AccountId,
path: Vec<MultiAssetId>,
amount_out: Balance,
amount_in_max: Option<Balance>,
send_to: AccountId,
keep_alive: bool
) -> Result<Balance, DispatchError>
fn swap_tokens_for_exact_tokens( sender: AccountId, path: Vec<MultiAssetId>, amount_out: Balance, amount_in_max: Option<Balance>, send_to: AccountId, keep_alive: bool ) -> Result<Balance, DispatchError>
Take the path[0]
asset and swap some amount for amount_out
of the path[1]
. If an
amount_in_max
is specified, it will return an error if acquiring amount_out
would be
too costly.
Withdraws path[0]
asset from sender
, deposits path[1]
asset to send_to
,
respecting keep_alive
.
If successful returns the amount of the path[0]
taken to provide path[1]
.