@@ -7,6 +7,7 @@ use namada_sdk::args::{
77} ;
88use namada_sdk:: borsh:: { BorshDeserialize , BorshSerialize , BorshSerializeExt } ;
99use namada_sdk:: collections:: HashMap ;
10+ use namada_sdk:: dec:: Dec ;
1011use namada_sdk:: ibc:: core:: host:: types:: identifiers:: { ChannelId , PortId } ;
1112use namada_sdk:: ibc:: IbcShieldingData ;
1213use namada_sdk:: masp:: partial_deauthorize;
@@ -342,9 +343,6 @@ pub enum Slippage {
342343 /// actual trade price. This must be a decimal number in the range
343344 /// `[0, 100]`.
344345 slippage_percentage : String ,
345- /// The time period (in seconds) over which the average price is
346- /// calculated
347- window_seconds : u64 ,
348346 } ,
349347}
350348
@@ -358,11 +356,14 @@ impl From<Slippage> for args::Slippage {
358356 }
359357 Slippage :: Twap {
360358 slippage_percentage,
361- window_seconds,
362- } => args:: Slippage :: Twap {
363- slippage_percentage,
364- window_seconds,
365- } ,
359+ } => {
360+ let slippage_percentage = Dec :: from_str ( & slippage_percentage)
361+ . expect ( "Slippage percentage to be valid decimal." ) ;
362+
363+ args:: Slippage :: Twap {
364+ slippage_percentage,
365+ }
366+ }
366367 }
367368 }
368369}
@@ -386,12 +387,13 @@ pub struct OsmosisSwapMsg {
386387 pub route : Option < Vec < OsmosisPoolHop > > ,
387388 /// The route to take through Osmosis pools
388389 /// A REST rpc endpoint to Osmosis
389- pub osmosis_rest_rpc : String ,
390+ pub osmosis_lcd_rpc : String ,
390391}
391392
392393pub fn osmosis_swap_tx_args (
393394 osmosis_swap_msg : & [ u8 ] ,
394395 tx_msg : & [ u8 ] ,
396+ native_token : Address ,
395397) -> Result < ( args:: TxOsmosisSwap , Option < StoredBuildParams > ) , JsError > {
396398 let osmosis_swap_msg = OsmosisSwapMsg :: try_from_slice ( osmosis_swap_msg) ?;
397399
@@ -403,10 +405,11 @@ pub fn osmosis_swap_tx_args(
403405 slippage,
404406 local_recovery_addr,
405407 route,
406- osmosis_rest_rpc ,
408+ osmosis_lcd_rpc ,
407409 } = osmosis_swap_msg;
408410
409- let ( ibc_transfer_args, bparams) = ibc_transfer_tx_args ( & transfer. serialize_to_vec ( ) , tx_msg) ?;
411+ let ( ibc_transfer_args, bparams) =
412+ ibc_transfer_tx_args ( & transfer. serialize_to_vec ( ) , tx_msg, native_token) ?;
410413
411414 let recipient = match Address :: from_str ( & recipient) {
412415 Ok ( address) => Ok ( Either :: Left ( address) ) ,
@@ -428,10 +431,12 @@ pub fn osmosis_swap_tx_args(
428431 output_denom,
429432 recipient,
430433 overflow : Some ( overflow) ,
431- slippage : slippage. into ( ) ,
434+ slippage : Some ( slippage. into ( ) ) ,
432435 local_recovery_addr,
433436 route,
434- osmosis_rest_rpc,
437+ osmosis_lcd_rpc : Some ( osmosis_lcd_rpc) ,
438+ // TODO: not sure if needed
439+ osmosis_sqs_rpc : None ,
435440 } ;
436441
437442 Ok ( ( tx_osmosis_swap_args, bparams) )
0 commit comments