@@ -8,7 +8,6 @@ use std::time::Duration;
88
99use borsh:: BorshSerialize ;
1010use masp_primitives:: asset_type:: AssetType ;
11- use masp_primitives:: transaction:: Transaction as MaspTransaction ;
1211use masp_primitives:: transaction:: builder:: Builder ;
1312use masp_primitives:: transaction:: components:: I128Sum ;
1413use masp_primitives:: transaction:: components:: sapling:: builder:: {
@@ -55,7 +54,7 @@ use namada_governance::storage::proposal::{
5554use namada_governance:: storage:: vote:: ProposalVote ;
5655use namada_ibc:: storage:: channel_key;
5756use namada_ibc:: trace:: is_nft_trace;
58- use namada_ibc:: { MsgNftTransfer , MsgTransfer } ;
57+ use namada_ibc:: { IbcShieldingData , MsgNftTransfer , MsgTransfer } ;
5958use namada_io:: { Client , Io , display_line, edisplay_line} ;
6059use namada_proof_of_stake:: parameters:: {
6160 MAX_VALIDATOR_METADATA_LEN , PosParams ,
@@ -2827,7 +2826,6 @@ pub async fn build_ibc_transfer(
28272826 masp_fee_data
28282827 } ;
28292828
2830- // FIXME: adjust this
28312829 if let Some ( TxTransparentTarget {
28322830 target,
28332831 token,
@@ -2844,14 +2842,20 @@ pub async fn build_ibc_transfer(
28442842 args. tx . force ,
28452843 )
28462844 . await ?;
2845+ masp_transfer_data. sources . push ( (
2846+ args. source . clone ( ) ,
2847+ args. token . clone ( ) ,
2848+ validated_amount,
2849+ ) ) ;
28472850 masp_transfer_data. targets . push ( (
28482851 TransferTarget :: Address ( target. to_owned ( ) ) ,
28492852 token. to_owned ( ) ,
28502853 validated_amount,
28512854 ) ) ;
28522855
28532856 transfer = transfer
2854- . credit (
2857+ . transfer (
2858+ source. to_owned ( ) ,
28552859 target. to_owned ( ) ,
28562860 token. to_owned ( ) ,
28572861 validated_amount,
@@ -4206,7 +4210,7 @@ pub async fn build_custom(
42064210pub async fn gen_ibc_shielding_transfer < N : Namada > (
42074211 context : & N ,
42084212 args : args:: GenIbcShieldingTransfer ,
4209- ) -> Result < Option < MaspTransaction > > {
4213+ ) -> Result < Option < IbcShieldingData > > {
42104214 let source = IBC ;
42114215
42124216 let token = match args. asset {
@@ -4247,26 +4251,28 @@ pub async fn gen_ibc_shielding_transfer<N: Namada>(
42474251 . precompute_asset_types ( context. client ( ) , tokens)
42484252 . await ;
42494253
4250- let ( extra_target, source_amount) = match & args. frontend_sus_fee {
4251- Some ( ( target, amount) ) => {
4252- // Validate the amount given
4253- let validated_fee_amount =
4254- validate_amount ( context, amount. to_owned ( ) , & token, false )
4255- . await ?;
4256- let source_amount =
4257- checked ! ( validated_amount + validated_fee_amount) ?;
4258-
4259- (
4260- vec ! [ (
4261- target. to_owned( ) ,
4262- token. to_owned( ) ,
4263- validated_fee_amount,
4264- ) ] ,
4265- source_amount,
4266- )
4267- }
4268- None => ( vec ! [ ] , validated_amount) ,
4269- } ;
4254+ let ( extra_recipient, extra_target, source_amount) =
4255+ match & args. frontend_sus_fee {
4256+ Some ( ( target, amount) ) => {
4257+ // Validate the amount given
4258+ let validated_fee_amount =
4259+ validate_amount ( context, amount. to_owned ( ) , & token, false )
4260+ . await ?;
4261+ let source_amount =
4262+ checked ! ( validated_amount + validated_fee_amount) ?;
4263+
4264+ (
4265+ target. address ( ) ,
4266+ vec ! [ (
4267+ target. to_owned( ) ,
4268+ token. to_owned( ) ,
4269+ validated_fee_amount,
4270+ ) ] ,
4271+ source_amount,
4272+ )
4273+ }
4274+ None => ( None , vec ! [ ] , validated_amount) ,
4275+ } ;
42704276
42714277 let masp_transfer_data = MaspTransferData {
42724278 sources : vec ! [ (
@@ -4281,9 +4287,6 @@ pub async fn gen_ibc_shielding_transfer<N: Namada>(
42814287 . concat ( ) ,
42824288 } ;
42834289
4284- // eprintln!("MASP TRANSFER DATA: {:#?}", masp_transfer_data); //FIXME:
4285- // remove
4286-
42874290 let shielded_transfer = {
42884291 let mut shielded = context. shielded_mut ( ) . await ;
42894292 shielded
@@ -4299,10 +4302,8 @@ pub async fn gen_ibc_shielding_transfer<N: Namada>(
42994302 . map_err ( |err| TxSubmitError :: MaspError ( err. to_string ( ) ) ) ?
43004303 } ;
43014304
4302- // eprintln!("GENERATED MASP BUNDLE: {:#?}", shielded_transfer); //FIXME:
4303- // remove
4304-
4305- Ok ( shielded_transfer. map ( |st| st. masp_tx ) )
4305+ Ok ( shielded_transfer
4306+ . map ( |st| IbcShieldingData ( st. masp_tx , extra_recipient) ) )
43064307}
43074308
43084309pub ( crate ) async fn get_ibc_src_port_channel (
0 commit comments