@@ -29,7 +29,6 @@ use namada_sdk::chain::Epoch;
2929use namada_sdk:: governance:: cli:: onchain:: PgfFunding ;
3030use namada_sdk:: governance:: pgf:: ADDRESS as PGF_ADDRESS ;
3131use namada_sdk:: governance:: storage:: proposal:: { PGFIbcTarget , PGFTarget } ;
32- use namada_sdk:: ibc:: IbcShieldingData ;
3332use namada_sdk:: ibc:: apps:: nft_transfer:: types:: {
3433 PORT_ID_STR as NFT_PORT_ID , VERSION as NFT_CHANNEL_VERSION ,
3534} ;
@@ -1807,24 +1806,15 @@ fn packet_forward_memo_value(
18071806 }
18081807}
18091808
1810- fn shielded_recv_memo_value (
1811- masp_transfer_path : & Path ,
1812- shielded_amount : Amount ,
1813- overflow_receiver : namada_core:: address:: Address ,
1809+ fn voluntary_fees_memo_value (
1810+ fee_amount : Amount ,
1811+ fee_receiver : namada_core:: address:: Address ,
18141812) -> serde_json:: Map < String , serde_json:: Value > {
1815- use namada_core:: string_encoding:: StringEncoded ;
18161813 use namada_sdk:: ibc:: { NamadaMemo , NamadaMemoData } ;
18171814
1818- let transfer =
1819- std:: fs:: read_to_string ( masp_transfer_path) . expect ( "Test failed" ) ;
1820- let tx = StringEncoded :: new (
1821- IbcShieldingData :: from_str ( & transfer) . expect ( "Test failed" ) ,
1822- ) ;
1823- #[ allow( deprecated) ]
1824- let data = NamadaMemoData :: OsmosisSwap {
1825- shielding_data : tx,
1826- shielded_amount,
1827- overflow_receiver,
1815+ let data = NamadaMemoData :: VoluntaryFees {
1816+ fee_amount,
1817+ fee_receiver,
18281818 } ;
18291819
18301820 let value = serde_json:: to_value ( & NamadaMemo { namada : data } )
@@ -2571,11 +2561,8 @@ fn ibc_pfm_unhappy_flows() -> Result<()> {
25712561 Ok ( ( ) )
25722562}
25732563
2574- /// Test that we are able to use the shielded-receive
2575- /// middleware to shield funds specified in the memo
2576- /// message.
25772564#[ test]
2578- fn ibc_shielded_recv_middleware_happy_flow ( ) -> Result < ( ) > {
2565+ fn ibc_voluntary_fees_middleware_happy_flow ( ) -> Result < ( ) > {
25792566 let update_genesis =
25802567 |mut genesis : templates:: All < templates:: Unvalidated > , base_dir : & _ | {
25812568 genesis. parameters . parameters . epochs_per_year =
@@ -2622,45 +2609,33 @@ fn ibc_shielded_recv_middleware_happy_flow() -> Result<()> {
26222609 ) ?;
26232610 check_shielded_balance ( & test, AA_VIEWING_KEY , NAM , 20 ) ?;
26242611
2625- // 2. Unshield from A_SPENDING_KEY to B_SPENDING_KEY,
2626- // using the packet forward and shielded receive
2612+ // 2. Unshield from A_SPENDING_KEY, using the packet forward and voluntary
2613+ // fees
26272614 // middlewares
26282615 for iter in 1 ..=2u64 {
2629- let nam_addr = find_address ( & test, NAM ) ?;
2630- let overflow_addr = "tnam1qrqzqa0l0rzzrlr20n487l6n865t8ndv6uhseulq" ;
2631- let ibc_denom_on_gaia =
2632- format ! ( "transfer/{channel_id_gaia}/{nam_addr}" ) ;
2633- let memo_path = gen_ibc_shielding_data (
2634- & test,
2635- AB_PAYMENT_ADDRESS ,
2636- & ibc_denom_on_gaia,
2637- 8 ,
2638- & port_id_namada,
2639- & channel_id_namada,
2640- None ,
2641- ) ?;
2642- let masp_receiver = match iter {
2616+ let recv_addr = "tnam1qpn2vkhm7f0ufh5nylnmr4yflc8x45gnlvdq3tcq" ;
2617+ let fees_addr = "tnam1qrqzqa0l0rzzrlr20n487l6n865t8ndv6uhseulq" ;
2618+ let receiver = match iter {
26432619 // Test addresses encoded using `bech32m`...
2644- 1 => MASP . encode ( ) ,
2620+ 1 => recv_addr ,
26452621 // ...as well as addresses encoded using `bech32`
26462622 2 => {
2647- let bech32 = "tnam1pcqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqh8f9c4 " ;
2623+ let bech32 = "tnam1qpn2vkhm7f0ufh5nylnmr4yflc8x45gnlvcup8az " ;
26482624 let addr: namada_core:: address:: Address =
26492625 bech32. parse ( ) . unwrap ( ) ;
2650- assert_eq ! ( addr, MASP ) ;
2651- bech32. to_owned ( )
2626+ assert_eq ! ( addr, recv_addr . parse ( ) . unwrap ( ) ) ;
2627+ bech32
26522628 }
26532629 _ => unreachable ! ( "there are only 2 iters" ) ,
26542630 } ;
26552631 let memo = packet_forward_memo (
2656- masp_receiver . into ( ) ,
2632+ receiver . to_owned ( ) . into ( ) ,
26572633 & PortId :: transfer ( ) ,
26582634 & channel_id_namada,
26592635 None ,
2660- Some ( shielded_recv_memo_value (
2661- & memo_path,
2636+ Some ( voluntary_fees_memo_value (
26622637 Amount :: native_whole ( 8 ) ,
2663- overflow_addr . parse ( ) . unwrap ( ) ,
2638+ fees_addr . parse ( ) . unwrap ( ) ,
26642639 ) ) ,
26652640 ) ;
26662641 transfer (
@@ -2689,17 +2664,15 @@ fn ibc_shielded_recv_middleware_happy_flow() -> Result<()> {
26892664
26902665 // Check the token on Namada
26912666 check_shielded_balance ( & test, AA_VIEWING_KEY , NAM , 20 - iter * 10 ) ?;
2692- check_shielded_balance ( & test, AB_VIEWING_KEY , NAM , 8 * iter) ?;
2693- check_balance ( & test, overflow_addr , NAM , 2 * iter) ?;
2667+ check_balance ( & test, recv_addr , NAM , 8 * iter) ?;
2668+ check_balance ( & test, fees_addr , NAM , 2 * iter) ?;
26942669 }
26952670
26962671 Ok ( ( ) )
26972672}
26982673
2699- /// Test that if the received amount underflows the minimum
2700- /// amount, we error out and refund assets.
27012674#[ test]
2702- fn ibc_shielded_recv_middleware_unhappy_flow ( ) -> Result < ( ) > {
2675+ fn ibc_voluntary_fees_middleware_unhappy_flow ( ) -> Result < ( ) > {
27032676 let update_genesis =
27042677 |mut genesis : templates:: All < templates:: Unvalidated > , base_dir : & _ | {
27052678 genesis. parameters . parameters . epochs_per_year =
@@ -2733,29 +2706,18 @@ fn ibc_shielded_recv_middleware_unhappy_flow() -> Result<()> {
27332706 let hermes = run_hermes ( & hermes_dir) ?;
27342707 let _bg_hermes = hermes. background ( ) ;
27352708
2736- let nam_addr = find_address ( & test, NAM ) ?;
2737- let overflow_addr = "tnam1qrqzqa0l0rzzrlr20n487l6n865t8ndv6uhseulq" ;
2738- let ibc_denom_on_gaia = format ! ( "transfer/{channel_id_gaia}/{nam_addr}" ) ;
2709+ let recv_addr = "tnam1qpn2vkhm7f0ufh5nylnmr4yflc8x45gnlvdq3tcq" ;
2710+ let fees_addr = "tnam1qrqzqa0l0rzzrlr20n487l6n865t8ndv6uhseulq" ;
27392711 check_balance ( & test, ALBERT , NAM , 2_000_000 ) ?;
27402712
2741- let memo_path = gen_ibc_shielding_data (
2742- & test,
2743- AB_PAYMENT_ADDRESS ,
2744- & ibc_denom_on_gaia,
2745- 8 ,
2746- & port_id_namada,
2747- & channel_id_namada,
2748- None ,
2749- ) ?;
27502713 let memo = packet_forward_memo (
2751- MASP . to_string ( ) . into ( ) ,
2714+ recv_addr . to_string ( ) . into ( ) ,
27522715 & PortId :: transfer ( ) ,
27532716 & channel_id_namada,
27542717 None ,
2755- Some ( shielded_recv_memo_value (
2756- & memo_path,
2718+ Some ( voluntary_fees_memo_value (
27572719 Amount :: native_whole ( 8 ) ,
2758- overflow_addr . parse ( ) . unwrap ( ) ,
2720+ fees_addr . parse ( ) . unwrap ( ) ,
27592721 ) ) ,
27602722 ) ;
27612723 transfer (
@@ -2779,8 +2741,8 @@ fn ibc_shielded_recv_middleware_unhappy_flow() -> Result<()> {
27792741
27802742 // Check the token on Namada
27812743 check_balance ( & test, ALBERT , NAM , 2_000_000 ) ?;
2782- check_shielded_balance ( & test, AB_VIEWING_KEY , NAM , 0 ) ?;
2783- check_balance ( & test, overflow_addr , NAM , 0 ) ?;
2744+ check_balance ( & test, recv_addr , NAM , 0 ) ?;
2745+ check_balance ( & test, fees_addr , NAM , 0 ) ?;
27842746
27852747 Ok ( ( ) )
27862748}
0 commit comments