@@ -2901,6 +2901,54 @@ func testCustomChannelsLiquidityEdgeCasesCore(ctx context.Context,
29012901	)
29022902
29032903	logBalance (t .t , nodes , assetID , "after safe asset htlc failure" )
2904+ 
2905+ 	// Another test case: Make sure an asset invoice contains the correct 
2906+ 	// channel policy. We expect it to be the policy for the direction from 
2907+ 	// edge node to receiver node. To test this, we first set two different 
2908+ 	// policies on the channel between Erin and Fabia. 
2909+ 	resp , err  :=  erin .UpdateChannelPolicy (ctx , & lnrpc.PolicyUpdateRequest {
2910+ 		Scope : & lnrpc.PolicyUpdateRequest_ChanPoint {
2911+ 			ChanPoint : chanPointEF ,
2912+ 		},
2913+ 		BaseFeeMsat :   31337 ,
2914+ 		FeeRatePpm :    443322 ,
2915+ 		TimeLockDelta : 19 ,
2916+ 	})
2917+ 	require .NoError (t .t , err )
2918+ 	require .Empty (t .t , resp .FailedUpdates )
2919+ 
2920+ 	resp , err  =  fabia .UpdateChannelPolicy (ctx , & lnrpc.PolicyUpdateRequest {
2921+ 		Scope : & lnrpc.PolicyUpdateRequest_ChanPoint {
2922+ 			ChanPoint : chanPointEF ,
2923+ 		},
2924+ 		BaseFeeMsat :   42069 ,
2925+ 		FeeRatePpm :    223344 ,
2926+ 		TimeLockDelta : 18 ,
2927+ 	})
2928+ 	require .NoError (t .t , err )
2929+ 	require .Empty (t .t , resp .FailedUpdates )
2930+ 
2931+ 	// We now create an invoice on Fabia and expect Erin's policy to be used 
2932+ 	// in the invoice. 
2933+ 	invoiceResp  =  createAssetInvoice (t .t , erin , fabia , 1_000 , assetID )
2934+ 	req , err  :=  erin .DecodePayReq (ctx , & lnrpc.PayReqString {
2935+ 		PayReq : invoiceResp .PaymentRequest ,
2936+ 	})
2937+ 	require .NoError (t .t , err )
2938+ 
2939+ 	require .Len (t .t , req .RouteHints , 1 )
2940+ 	require .Len (t .t , req .RouteHints [0 ].HopHints , 1 )
2941+ 	invoiceHint  :=  req .RouteHints [0 ].HopHints [0 ]
2942+ 	require .Equal (t .t , erin .PubKeyStr , invoiceHint .NodeId )
2943+ 	require .EqualValues (t .t , 31337 , invoiceHint .FeeBaseMsat )
2944+ 	require .EqualValues (t .t , 443322 , invoiceHint .FeeProportionalMillionths )
2945+ 	require .EqualValues (t .t , 19 , invoiceHint .CltvExpiryDelta )
2946+ 
2947+ 	// Now we pay the invoice and expect the same policy with very expensive 
2948+ 	// fees to be used. 
2949+ 	payInvoiceWithSatoshi (
2950+ 		t .t , dave , invoiceResp , withFeeLimit (100_000_000 ),
2951+ 	)
29042952}
29052953
29062954// testCustomChannelsLiquidityEdgeCases is a test that runs through some 
0 commit comments