Skip to content

Commit dd7404f

Browse files
svyatonikbkchr
authored andcommitted
fix conversion rate override in token swap (#1336)
1 parent cfdb9fe commit dd7404f

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

bridges/relays/bin-substrate/src/cli/swap_tokens.rs

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,18 @@ pub struct SwapTokens {
6565
/// Target chain balance that target signer wants to swap.
6666
#[structopt(long)]
6767
target_balance: Balance,
68-
/// A way to override conversion rate between bridge tokens.
68+
/// A way to override conversion rate from target to source tokens.
6969
///
7070
/// If not specified, conversion rate from runtime storage is used. It may be obsolete and
7171
/// your message won't be relayed.
7272
#[structopt(long)]
73-
conversion_rate_override: Option<ConversionRateOverride>,
73+
target_to_source_conversion_rate_override: Option<ConversionRateOverride>,
74+
/// A way to override conversion rate from source to target tokens.
75+
///
76+
/// If not specified, conversion rate from runtime storage is used. It may be obsolete and
77+
/// your message won't be relayed.
78+
#[structopt(long)]
79+
source_to_target_conversion_rate_override: Option<ConversionRateOverride>,
7480
}
7581

7682
/// Token swap type.
@@ -139,7 +145,10 @@ impl SwapTokens {
139145
let source_sign = self.source_sign.to_keypair::<Target>()?;
140146
let target_client = self.target.to_client::<Target>().await?;
141147
let target_sign = self.target_sign.to_keypair::<Target>()?;
142-
let conversion_rate_override = self.conversion_rate_override;
148+
let target_to_source_conversion_rate_override =
149+
self.target_to_source_conversion_rate_override;
150+
let source_to_target_conversion_rate_override =
151+
self.source_to_target_conversion_rate_override;
143152

144153
// names of variables in this function are matching names used by the
145154
// `pallet-bridge-token-swap`
@@ -212,7 +221,7 @@ impl SwapTokens {
212221
_,
213222
>(
214223
&source_client,
215-
conversion_rate_override.clone(),
224+
target_to_source_conversion_rate_override.clone(),
216225
ESTIMATE_SOURCE_TO_TARGET_MESSAGE_FEE_METHOD,
217226
SOURCE_TO_TARGET_LANE_ID,
218227
bp_message_dispatch::MessagePayload {
@@ -375,7 +384,7 @@ impl SwapTokens {
375384
_,
376385
>(
377386
&target_client,
378-
conversion_rate_override.clone(),
387+
source_to_target_conversion_rate_override.clone(),
379388
ESTIMATE_TARGET_TO_SOURCE_MESSAGE_FEE_METHOD,
380389
TARGET_TO_SOURCE_LANE_ID,
381390
claim_swap_message.clone(),
@@ -770,7 +779,8 @@ mod tests {
770779
swap_type: TokenSwapType::NoLock,
771780
source_balance: Balance(8000000000),
772781
target_balance: Balance(9000000000),
773-
conversion_rate_override: None,
782+
target_to_source_conversion_rate_override: None,
783+
source_to_target_conversion_rate_override: None,
774784
}
775785
);
776786
}
@@ -796,8 +806,10 @@ mod tests {
796806
"//Bob",
797807
"--target-balance",
798808
"9000000000",
799-
"--conversion-rate-override",
809+
"--target-to-source-conversion-rate-override",
800810
"metric",
811+
"--source-to-target-conversion-rate-override",
812+
"84.56",
801813
"lock-until-block",
802814
"--blocks-before-expire",
803815
"1",
@@ -847,7 +859,10 @@ mod tests {
847859
},
848860
source_balance: Balance(8000000000),
849861
target_balance: Balance(9000000000),
850-
conversion_rate_override: Some(ConversionRateOverride::Metric),
862+
target_to_source_conversion_rate_override: Some(ConversionRateOverride::Metric),
863+
source_to_target_conversion_rate_override: Some(ConversionRateOverride::Explicit(
864+
84.56
865+
)),
851866
}
852867
);
853868
}

0 commit comments

Comments
 (0)