@@ -74,14 +74,29 @@ func testMultiHopPayments(ht *lntest.HarnessTest) {
74
74
const aliceFeeRatePPM = 100000
75
75
updateChannelPolicy (
76
76
ht , alice , chanPointAlice , aliceBaseFeeSat * 1000 ,
77
- aliceFeeRatePPM , chainreg .DefaultBitcoinTimeLockDelta ,
77
+ aliceFeeRatePPM , 0 , 0 , chainreg .DefaultBitcoinTimeLockDelta ,
78
78
maxHtlc , carol ,
79
79
)
80
80
81
+ // Define a negative inbound fee for Alice, to verify that this is
82
+ // backwards compatible with an older sender ignoring the discount.
83
+ const (
84
+ aliceInboundBaseFeeMsat = - 1
85
+ aliceInboundFeeRate = - 10000
86
+ )
87
+
88
+ updateChannelPolicy (
89
+ ht , alice , chanPointDave , 0 , 0 ,
90
+ aliceInboundBaseFeeMsat , aliceInboundFeeRate ,
91
+ chainreg .DefaultBitcoinTimeLockDelta , maxHtlc ,
92
+ dave ,
93
+ )
94
+
81
95
const daveBaseFeeSat = 5
82
96
const daveFeeRatePPM = 150000
83
97
updateChannelPolicy (
84
98
ht , dave , chanPointDave , daveBaseFeeSat * 1000 , daveFeeRatePPM ,
99
+ 0 , 0 ,
85
100
chainreg .DefaultBitcoinTimeLockDelta , maxHtlc , carol ,
86
101
)
87
102
@@ -104,8 +119,9 @@ func testMultiHopPayments(ht *lntest.HarnessTest) {
104
119
ht .AssertAmountPaid ("Alice(local) => Bob(remote)" , alice ,
105
120
chanPointAlice , expectedAmountPaidAtoB , int64 (0 ))
106
121
107
- // To forward a payment of 1000 sat, Alice is charging a fee of
108
- // 1 sat + 10% = 101 sat.
122
+ // To forward a payment of 1000 sat, Alice is charging a fee of 1 sat +
123
+ // 10% = 101 sat. Note that this does not include the inbound fee
124
+ // (discount) because there is no sender support yet.
109
125
const aliceFeePerPayment = aliceBaseFeeSat +
110
126
(paymentAmt * aliceFeeRatePPM / 1_000_000 )
111
127
const expectedFeeAlice = numPayments * aliceFeePerPayment
@@ -224,15 +240,17 @@ func testMultiHopPayments(ht *lntest.HarnessTest) {
224
240
// NOTE: only used in current test.
225
241
func updateChannelPolicy (ht * lntest.HarnessTest , hn * node.HarnessNode ,
226
242
chanPoint * lnrpc.ChannelPoint , baseFee int64 ,
227
- feeRate int64 , timeLockDelta uint32 ,
228
- maxHtlc uint64 , listenerNode * node.HarnessNode ) {
243
+ feeRate int64 , inboundBaseFee , inboundFeeRate int32 ,
244
+ timeLockDelta uint32 , maxHtlc uint64 , listenerNode * node.HarnessNode ) {
229
245
230
246
expectedPolicy := & lnrpc.RoutingPolicy {
231
- FeeBaseMsat : baseFee ,
232
- FeeRateMilliMsat : feeRate ,
233
- TimeLockDelta : timeLockDelta ,
234
- MinHtlc : 1000 , // default value
235
- MaxHtlcMsat : maxHtlc ,
247
+ FeeBaseMsat : baseFee ,
248
+ FeeRateMilliMsat : feeRate ,
249
+ TimeLockDelta : timeLockDelta ,
250
+ MinHtlc : 1000 , // default value
251
+ MaxHtlcMsat : maxHtlc ,
252
+ InboundFeeBaseMsat : inboundBaseFee ,
253
+ InboundFeeRateMilliMsat : inboundFeeRate ,
236
254
}
237
255
238
256
updateFeeReq := & lnrpc.PolicyUpdateRequest {
@@ -242,7 +260,9 @@ func updateChannelPolicy(ht *lntest.HarnessTest, hn *node.HarnessNode,
242
260
Scope : & lnrpc.PolicyUpdateRequest_ChanPoint {
243
261
ChanPoint : chanPoint ,
244
262
},
245
- MaxHtlcMsat : maxHtlc ,
263
+ MaxHtlcMsat : maxHtlc ,
264
+ InboundBaseFeeMsat : inboundBaseFee ,
265
+ InboundFeeRatePpm : inboundFeeRate ,
246
266
}
247
267
248
268
hn .RPC .UpdateChannelPolicy (updateFeeReq )
0 commit comments