@@ -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