htlcswitch: finish remainder of TestUpdateForwardingPolicy test case

In this commit, we address a lingering TODO within the
TestUpdateForwardingPolicy test case to ensure that Bob will reject the
payment the second time around due to an update in his fee policy.
This commit is contained in:
Olaoluwa Osuntokun 2017-10-24 18:31:39 -07:00
parent 57b9b78ce3
commit 21446c2872
No known key found for this signature in database
GPG Key ID: 964EA263DD637C21
2 changed files with 24 additions and 11 deletions

@ -629,8 +629,7 @@ func TestUpdateForwardingPolicy(t *testing.T) {
n.firstBobChannelLink, n.carolChannelLink)
// First, send this 1 BTC payment over the three hops, the payment
// should succeed, and all balances should be updated
// accordingly.
// should succeed, and all balances should be updated accordingly.
invoice, err := n.makePayment(n.aliceServer, n.carolServer,
n.bobServer.PubKey(), hops, amountNoFee, htlcAmt,
htlcExpiry)
@ -675,7 +674,25 @@ func TestUpdateForwardingPolicy(t *testing.T) {
newPolicy.BaseFee = lnwire.NewMSatFromSatoshis(1000)
n.firstBobChannelLink.UpdateForwardingPolicy(newPolicy)
// TODO(roasbeef): should send again an ensure rejected?
// Next, we'll send the payment again, using the exact same per-hop
// payload for each node. This payment should fail as it wont' factor
// in Bob's new fee policy.
_, err = n.makePayment(n.aliceServer, n.carolServer,
n.bobServer.PubKey(), hops, amountNoFee, htlcAmt,
htlcExpiry)
if err == nil {
t.Fatalf("payment should've been rejected")
}
ferr, ok := err.(*ForwardingError)
if !ok {
t.Fatalf("expected a ForwardingError, instead got: %T", err)
}
switch ferr.FailureMessage.(type) {
case *lnwire.FailFeeInsufficient:
default:
t.Fatalf("expected FailFeeInsufficient instead got: %v", err)
}
}
// TestChannelLinkMultiHopInsufficientPayment checks that we receive error if

@ -384,14 +384,10 @@ func generateHops(payAmt lnwire.MilliSatoshi, startingHeight uint32,
fee := ExpectedFee(path[i].cfg.FwrdingPolicy, prevAmount)
runningAmt += fee
// If the this the first hop, then we don't need to
// apply any fee, otherwise, the amount to forward
// needs to take into account the fees.
if i == 0 {
amount = prevAmount
} else {
amount = prevAmount + fee
}
// Otherwise, for a node to forward an HTLC, then
// following inequality most hold true:
// * amt_in - fee >= amt_to_forward
amount = runningAmt - fee
}
hops[i] = ForwardingInfo{