Merge pull request #2224 from halseth/itest-timeouts

lnd_test: increase test timeouts
This commit is contained in:
Johan T. Halseth 2018-11-28 08:22:46 +01:00 committed by GitHub
commit b07499f227
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -608,7 +608,6 @@ const (
// performs multiple restorations using the same seed and various recovery // performs multiple restorations using the same seed and various recovery
// windows to ensure we detect funds properly. // windows to ensure we detect funds properly.
func testOnchainFundRecovery(net *lntest.NetworkHarness, t *harnessTest) { func testOnchainFundRecovery(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
// First, create a new node with strong passphrase and grab the mnemonic // First, create a new node with strong passphrase and grab the mnemonic
@ -641,7 +640,7 @@ func testOnchainFundRecovery(net *lntest.NetworkHarness, t *harnessTest) {
var currBalance int64 var currBalance int64
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
req := &lnrpc.WalletBalanceRequest{} req := &lnrpc.WalletBalanceRequest{}
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
resp, err := node.WalletBalance(ctxt, req) resp, err := node.WalletBalance(ctxt, req)
if err != nil { if err != nil {
t.Fatalf("unable to query wallet balance: %v", t.Fatalf("unable to query wallet balance: %v",
@ -690,14 +689,14 @@ func testOnchainFundRecovery(net *lntest.NetworkHarness, t *harnessTest) {
// Generate and skip the number of addresses requested. // Generate and skip the number of addresses requested.
for i := 0; i < nskip; i++ { for i := 0; i < nskip; i++ {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
_, err = node.NewAddress(ctxt, newP2WKHAddrReq) _, err = node.NewAddress(ctxt, newP2WKHAddrReq)
if err != nil { if err != nil {
t.Fatalf("unable to generate new "+ t.Fatalf("unable to generate new "+
"p2wkh address: %v", err) "p2wkh address: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
_, err = node.NewAddress(ctxt, newNP2WKHAddrReq) _, err = node.NewAddress(ctxt, newNP2WKHAddrReq)
if err != nil { if err != nil {
t.Fatalf("unable to generate new "+ t.Fatalf("unable to generate new "+
@ -706,7 +705,7 @@ func testOnchainFundRecovery(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Send one BTC to the next P2WKH address. // Send one BTC to the next P2WKH address.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
err = net.SendCoins( err = net.SendCoins(
ctxt, btcutil.SatoshiPerBitcoin, node, ctxt, btcutil.SatoshiPerBitcoin, node,
) )
@ -716,7 +715,7 @@ func testOnchainFundRecovery(net *lntest.NetworkHarness, t *harnessTest) {
} }
// And another to the next NP2WKH address. // And another to the next NP2WKH address.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.SendCoinsNP2WKH( err = net.SendCoinsNP2WKH(
ctxt, btcutil.SatoshiPerBitcoin, node, ctxt, btcutil.SatoshiPerBitcoin, node,
) )
@ -771,7 +770,6 @@ func testOnchainFundRecovery(net *lntest.NetworkHarness, t *harnessTest) {
// conditions. Finally, the chain itself is checked to ensure the closing // conditions. Finally, the chain itself is checked to ensure the closing
// transaction was mined. // transaction was mined.
func testBasicChannelFunding(net *lntest.NetworkHarness, t *harnessTest) { func testBasicChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 5)
ctxb := context.Background() ctxb := context.Background()
chanAmt := maxBtcFundingAmount chanAmt := maxBtcFundingAmount
@ -783,7 +781,7 @@ func testBasicChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
// open or an error occurs in the funding process. A series of // open or an error occurs in the funding process. A series of
// assertions will be executed to ensure the funding process completed // assertions will be executed to ensure the funding process completed
// successfully. // successfully.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -792,7 +790,7 @@ func testBasicChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't report channel: %v", err) t.Fatalf("alice didn't report channel: %v", err)
@ -825,7 +823,7 @@ func testBasicChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
// Finally, immediately close the channel. This function will also // Finally, immediately close the channel. This function will also
// block until the channel is closed and will additionally assert the // block until the channel is closed and will additionally assert the
// relevant channel closing post conditions. // relevant channel closing post conditions.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
@ -833,7 +831,6 @@ func testBasicChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
// can be used to fund channels. // can be used to fund channels.
func testUnconfirmedChannelFunding(net *lntest.NetworkHarness, t *harnessTest) { func testUnconfirmedChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
const ( const (
timeout = time.Duration(15 * time.Second)
chanAmt = maxBtcFundingAmount chanAmt = maxBtcFundingAmount
pushAmt = btcutil.Amount(100000) pushAmt = btcutil.Amount(100000)
) )
@ -848,7 +845,7 @@ func testUnconfirmedChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
defer shutdownAndAssert(net, t, carol) defer shutdownAndAssert(net, t, carol)
// We'll send her some funds that should not confirm. // We'll send her some funds that should not confirm.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
err = net.SendCoinsUnconfirmed(ctxt, 2*chanAmt, carol) err = net.SendCoinsUnconfirmed(ctxt, 2*chanAmt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
@ -857,11 +854,11 @@ func testUnconfirmedChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
// Now, we'll connect her to Alice so that they can open a channel // Now, we'll connect her to Alice so that they can open a channel
// together. The funding flow should select Carol's unconfirmed output // together. The funding flow should select Carol's unconfirmed output
// as she doesn't have any other funds since it's a new node. // as she doesn't have any other funds since it's a new node.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, carol, net.Alice); err != nil { if err := net.ConnectNodes(ctxt, carol, net.Alice); err != nil {
t.Fatalf("unable to connect dave to alice: %v", err) t.Fatalf("unable to connect dave to alice: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanOpenUpdate, err := net.OpenChannel( chanOpenUpdate, err := net.OpenChannel(
ctxt, carol, net.Alice, ctxt, carol, net.Alice,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -877,7 +874,7 @@ func testUnconfirmedChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
// Confirm the channel and wait for it to be recognized by both parties. // Confirm the channel and wait for it to be recognized by both parties.
mineBlocks(t, net, 6) mineBlocks(t, net, 6)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
chanPoint, err := net.WaitForChannelOpen(ctxt, chanOpenUpdate) chanPoint, err := net.WaitForChannelOpen(ctxt, chanOpenUpdate)
if err != nil { if err != nil {
t.Fatalf("error while waiting for channel open: %v", err) t.Fatalf("error while waiting for channel open: %v", err)
@ -886,12 +883,12 @@ func testUnconfirmedChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
// With the channel open, we'll check the balances on each side of the // With the channel open, we'll check the balances on each side of the
// channel as a sanity check to ensure things worked out as intended. // channel as a sanity check to ensure things worked out as intended.
balReq := &lnrpc.ChannelBalanceRequest{} balReq := &lnrpc.ChannelBalanceRequest{}
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolBal, err := carol.ChannelBalance(ctxt, balReq) carolBal, err := carol.ChannelBalance(ctxt, balReq)
if err != nil { if err != nil {
t.Fatalf("unable to get carol's balance: %v", err) t.Fatalf("unable to get carol's balance: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
aliceBal, err := net.Alice.ChannelBalance(ctxt, balReq) aliceBal, err := net.Alice.ChannelBalance(ctxt, balReq)
if err != nil { if err != nil {
t.Fatalf("unable to get alice's balance: %v", err) t.Fatalf("unable to get alice's balance: %v", err)
@ -906,7 +903,7 @@ func testUnconfirmedChannelFunding(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Now that we're done with the test, the channel can be closed. // Now that we're done with the test, the channel can be closed.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPoint, false) closeChannelAndAssert(ctxt, t, net, carol, chanPoint, false)
} }
@ -1008,10 +1005,13 @@ func assertChannelPolicy(t *harnessTest, node *lntest.HarnessNode,
advertisingNode string, expectedPolicy *lnrpc.RoutingPolicy, advertisingNode string, expectedPolicy *lnrpc.RoutingPolicy,
chanPoints ...*lnrpc.ChannelPoint) { chanPoints ...*lnrpc.ChannelPoint) {
ctxb := context.Background()
descReq := &lnrpc.ChannelGraphRequest{ descReq := &lnrpc.ChannelGraphRequest{
IncludeUnannounced: true, IncludeUnannounced: true,
} }
chanGraph, err := node.DescribeGraph(context.Background(), descReq) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
chanGraph, err := node.DescribeGraph(ctxt, descReq)
if err != nil { if err != nil {
t.Fatalf("unable to query for alice's graph: %v", err) t.Fatalf("unable to query for alice's graph: %v", err)
} }
@ -1076,7 +1076,6 @@ func checkChannelPolicy(policy, expectedPolicy *lnrpc.RoutingPolicy) error {
// testUpdateChannelPolicy tests that policy updates made to a channel // testUpdateChannelPolicy tests that policy updates made to a channel
// gets propagated to other nodes in the network. // gets propagated to other nodes in the network.
func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) { func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
const ( const (
@ -1098,7 +1097,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
pushAmt := chanAmt / 2 pushAmt := chanAmt / 2
// Create a channel Alice->Bob. // Create a channel Alice->Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -1141,7 +1140,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
) )
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't report channel: %v", err) t.Fatalf("alice didn't report channel: %v", err)
@ -1167,7 +1166,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
nodes = append(nodes, carol) nodes = append(nodes, carol)
// Send some coins to Carol that can be used for channel funding. // Send some coins to Carol that can be used for channel funding.
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.SendCoins(ctxt, btcutil.SatoshiPerBitcoin, carol) err = net.SendCoins(ctxt, btcutil.SatoshiPerBitcoin, carol)
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
@ -1182,7 +1181,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
// HTLCs smaller than this value, and hence he should advertise it as // HTLCs smaller than this value, and hence he should advertise it as
// part of his ChannelUpdate. // part of his ChannelUpdate.
const customMinHtlc = 5000 const customMinHtlc = 5000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint2 := openChannelAndAssert( chanPoint2 := openChannelAndAssert(
ctxt, t, net, carol, net.Bob, ctxt, t, net, carol, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -1228,17 +1227,17 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
) )
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint2) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint2)
if err != nil { if err != nil {
t.Fatalf("alice didn't report channel: %v", err) t.Fatalf("alice didn't report channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPoint2) err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPoint2)
if err != nil { if err != nil {
t.Fatalf("bob didn't report channel: %v", err) t.Fatalf("bob didn't report channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint2) err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint2)
if err != nil { if err != nil {
t.Fatalf("carol didn't report channel: %v", err) t.Fatalf("carol didn't report channel: %v", err)
@ -1257,7 +1256,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("unable to add invoice: %v", err) t.Fatalf("unable to add invoice: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests( err = completePaymentRequests(
ctxt, net.Alice, []string{resp.PaymentRequest}, true, ctxt, net.Alice, []string{resp.PaymentRequest}, true,
) )
@ -1280,7 +1279,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
FinalCltvDelta: 144, FinalCltvDelta: 144,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
routes, err := net.Alice.QueryRoutes(ctxt, routesReq) routes, err := net.Alice.QueryRoutes(ctxt, routesReq)
if err != nil { if err != nil {
t.Fatalf("unable to get route: %v", err) t.Fatalf("unable to get route: %v", err)
@ -1301,7 +1300,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
routes.Routes[0].Hops[1].AmtToForwardMsat = amtMSat routes.Routes[0].Hops[1].AmtToForwardMsat = amtMSat
// Send the payment with the modified value. // Send the payment with the modified value.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
alicePayStream, err := net.Alice.SendToRoute(ctxt) alicePayStream, err := net.Alice.SendToRoute(ctxt)
if err != nil { if err != nil {
t.Fatalf("unable to create payment stream for alice: %v", err) t.Fatalf("unable to create payment stream for alice: %v", err)
@ -1425,7 +1424,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("unable to add invoice: %v", err) t.Fatalf("unable to add invoice: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests( err = completePaymentRequests(
ctxt, net.Alice, []string{resp.PaymentRequest}, true, ctxt, net.Alice, []string{resp.PaymentRequest}, true,
) )
@ -1437,7 +1436,7 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil {
t.Fatalf("unable to connect dave to alice: %v", err) t.Fatalf("unable to connect dave to alice: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint3 := openChannelAndAssert( chanPoint3 := openChannelAndAssert(
ctxt, t, net, net.Alice, carol, ctxt, t, net, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -1446,12 +1445,12 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint3) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint3)
if err != nil { if err != nil {
t.Fatalf("alice didn't report channel: %v", err) t.Fatalf("alice didn't report channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint3) err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint3)
if err != nil { if err != nil {
t.Fatalf("bob didn't report channel: %v", err) t.Fatalf("bob didn't report channel: %v", err)
@ -1501,11 +1500,11 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Close the channels. // Close the channels.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint2, false) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint2, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint3, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint3, false)
} }
@ -1513,7 +1512,6 @@ func testUpdateChannelPolicy(net *lntest.NetworkHarness, t *harnessTest) {
// channel where the funding tx gets reorged out, the channel will no // channel where the funding tx gets reorged out, the channel will no
// longer be present in the node's routing table. // longer be present in the node's routing table.
func testOpenChannelAfterReorg(net *lntest.NetworkHarness, t *harnessTest) { func testOpenChannelAfterReorg(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 5)
ctxb := context.Background() ctxb := context.Background()
// Set up a new miner that we can use to cause a reorg. // Set up a new miner that we can use to cause a reorg.
@ -1569,7 +1567,7 @@ func testOpenChannelAfterReorg(net *lntest.NetworkHarness, t *harnessTest) {
// open, then broadcast the funding transaction // open, then broadcast the funding transaction
chanAmt := maxBtcFundingAmount chanAmt := maxBtcFundingAmount
pushAmt := btcutil.Amount(0) pushAmt := btcutil.Amount(0)
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
pendingUpdate, err := net.OpenPendingChannel(ctxt, net.Alice, net.Bob, pendingUpdate, err := net.OpenPendingChannel(ctxt, net.Alice, net.Bob,
chanAmt, pushAmt) chanAmt, pushAmt)
if err != nil { if err != nil {
@ -1578,7 +1576,7 @@ func testOpenChannelAfterReorg(net *lntest.NetworkHarness, t *harnessTest) {
// At this point, the channel's funding transaction will have been // At this point, the channel's funding transaction will have been
// broadcast, but not confirmed, and the channel should be pending. // broadcast, but not confirmed, and the channel should be pending.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
assertNumOpenChannelsPending(ctxt, t, net.Alice, net.Bob, 1) assertNumOpenChannelsPending(ctxt, t, net.Alice, net.Bob, 1)
fundingTxID, err := chainhash.NewHash(pendingUpdate.Txid) fundingTxID, err := chainhash.NewHash(pendingUpdate.Txid)
@ -1622,13 +1620,13 @@ func testOpenChannelAfterReorg(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Alice and Bob to recognize and advertise the new channel // Wait for Alice and Bob to recognize and advertise the new channel
// generated above. // generated above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't advertise channel before "+ t.Fatalf("alice didn't advertise channel before "+
"timeout: %v", err) "timeout: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("bob didn't advertise channel before "+ t.Fatalf("bob didn't advertise channel before "+
@ -1719,12 +1717,10 @@ func testDisconnectingTargetPeer(net *lntest.NetworkHarness, t *harnessTest) {
chanAmt := maxBtcFundingAmount chanAmt := maxBtcFundingAmount
pushAmt := btcutil.Amount(0) pushAmt := btcutil.Amount(0)
timeout := time.Duration(time.Second * 10)
ctxt, _ := context.WithTimeout(ctxb, timeout)
// Create a new channel that requires 1 confs before it's considered // Create a new channel that requires 1 confs before it's considered
// open, then broadcast the funding transaction // open, then broadcast the funding transaction
const numConfs = 1 const numConfs = 1
ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
pendingUpdate, err := net.OpenPendingChannel(ctxt, net.Alice, net.Bob, pendingUpdate, err := net.OpenPendingChannel(ctxt, net.Alice, net.Bob,
chanAmt, pushAmt) chanAmt, pushAmt)
if err != nil { if err != nil {
@ -1734,7 +1730,7 @@ func testDisconnectingTargetPeer(net *lntest.NetworkHarness, t *harnessTest) {
// At this point, the channel's funding transaction will have // At this point, the channel's funding transaction will have
// been broadcast, but not confirmed. Alice and Bob's nodes // been broadcast, but not confirmed. Alice and Bob's nodes
// should reflect this when queried via RPC. // should reflect this when queried via RPC.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
assertNumOpenChannelsPending(ctxt, t, net.Alice, net.Bob, 1) assertNumOpenChannelsPending(ctxt, t, net.Alice, net.Bob, 1)
// Disconnect Alice-peer from Bob-peer and get error // Disconnect Alice-peer from Bob-peer and get error
@ -1764,7 +1760,7 @@ func testDisconnectingTargetPeer(net *lntest.NetworkHarness, t *harnessTest) {
// At this point, the channel should be fully opened and there should // At this point, the channel should be fully opened and there should
// be no pending channels remaining for either node. // be no pending channels remaining for either node.
time.Sleep(time.Millisecond * 300) time.Sleep(time.Millisecond * 300)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
assertNumOpenChannelsPending(ctxt, t, net.Alice, net.Bob, 0) assertNumOpenChannelsPending(ctxt, t, net.Alice, net.Bob, 0)
@ -1776,11 +1772,11 @@ func testDisconnectingTargetPeer(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Check both nodes to ensure that the channel is ready for operation. // Check both nodes to ensure that the channel is ready for operation.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.AssertChannelExists(ctxt, net.Alice, &outPoint); err != nil { if err := net.AssertChannelExists(ctxt, net.Alice, &outPoint); err != nil {
t.Fatalf("unable to assert channel existence: %v", err) t.Fatalf("unable to assert channel existence: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.AssertChannelExists(ctxt, net.Bob, &outPoint); err != nil { if err := net.AssertChannelExists(ctxt, net.Bob, &outPoint); err != nil {
t.Fatalf("unable to assert channel existence: %v", err) t.Fatalf("unable to assert channel existence: %v", err)
} }
@ -1805,7 +1801,7 @@ func testDisconnectingTargetPeer(net *lntest.NetworkHarness, t *harnessTest) {
// Check existing connection. // Check existing connection.
assertNumConnections(ctxb, t, net.Alice, net.Bob, 1) assertNumConnections(ctxb, t, net.Alice, net.Bob, 1)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, true) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, true)
// Disconnect Alice-peer from Bob-peer without getting error // Disconnect Alice-peer from Bob-peer without getting error
@ -1827,7 +1823,7 @@ func testDisconnectingTargetPeer(net *lntest.NetworkHarness, t *harnessTest) {
assertNumConnections(ctxb, t, net.Alice, net.Bob, 0) assertNumConnections(ctxb, t, net.Alice, net.Bob, 0)
// Finally, re-connect both nodes. // Finally, re-connect both nodes.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, net.Alice, net.Bob); err != nil { if err := net.ConnectNodes(ctxt, net.Alice, net.Bob); err != nil {
t.Fatalf("unable to connect Alice's peer to Bob's: err %v", err) t.Fatalf("unable to connect Alice's peer to Bob's: err %v", err)
} }
@ -1851,8 +1847,6 @@ func testChannelFundingPersistence(net *lntest.NetworkHarness, t *harnessTest) {
chanAmt := maxBtcFundingAmount chanAmt := maxBtcFundingAmount
pushAmt := btcutil.Amount(0) pushAmt := btcutil.Amount(0)
timeout := time.Duration(time.Second * 10)
// As we need to create a channel that requires more than 1 // As we need to create a channel that requires more than 1
// confirmation before it's open, with the current set of defaults, // confirmation before it's open, with the current set of defaults,
// we'll need to create a new node instance. // we'll need to create a new node instance.
@ -1866,14 +1860,14 @@ func testChannelFundingPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// Clean up carol's node when the test finishes. // Clean up carol's node when the test finishes.
defer shutdownAndAssert(net, t, carol) defer shutdownAndAssert(net, t, carol)
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, net.Alice, carol); err != nil { if err := net.ConnectNodes(ctxt, net.Alice, carol); err != nil {
t.Fatalf("unable to connect alice to carol: %v", err) t.Fatalf("unable to connect alice to carol: %v", err)
} }
// Create a new channel that requires 5 confs before it's considered // Create a new channel that requires 5 confs before it's considered
// open, then broadcast the funding transaction // open, then broadcast the funding transaction
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
pendingUpdate, err := net.OpenPendingChannel(ctxt, net.Alice, carol, pendingUpdate, err := net.OpenPendingChannel(ctxt, net.Alice, carol,
chanAmt, pushAmt) chanAmt, pushAmt)
if err != nil { if err != nil {
@ -1883,7 +1877,7 @@ func testChannelFundingPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// At this point, the channel's funding transaction will have been // At this point, the channel's funding transaction will have been
// broadcast, but not confirmed. Alice and Bob's nodes should reflect // broadcast, but not confirmed. Alice and Bob's nodes should reflect
// this when queried via RPC. // this when queried via RPC.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
assertNumOpenChannelsPending(ctxt, t, net.Alice, carol, 1) assertNumOpenChannelsPending(ctxt, t, net.Alice, carol, 1)
// Restart both nodes to test that the appropriate state has been // Restart both nodes to test that the appropriate state has been
@ -1930,7 +1924,7 @@ func testChannelFundingPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// Both nodes should still show a single channel as pending. // Both nodes should still show a single channel as pending.
time.Sleep(time.Second * 1) time.Sleep(time.Second * 1)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
assertNumOpenChannelsPending(ctxt, t, net.Alice, carol, 1) assertNumOpenChannelsPending(ctxt, t, net.Alice, carol, 1)
// Finally, mine the last block which should mark the channel as open. // Finally, mine the last block which should mark the channel as open.
@ -1941,7 +1935,7 @@ func testChannelFundingPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// At this point, the channel should be fully opened and there should // At this point, the channel should be fully opened and there should
// be no pending channels remaining for either node. // be no pending channels remaining for either node.
time.Sleep(time.Second * 1) time.Sleep(time.Second * 1)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
assertNumOpenChannelsPending(ctxt, t, net.Alice, carol, 0) assertNumOpenChannelsPending(ctxt, t, net.Alice, carol, 0)
// The channel should be listed in the peer information returned by // The channel should be listed in the peer information returned by
@ -1952,11 +1946,11 @@ func testChannelFundingPersistence(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Check both nodes to ensure that the channel is ready for operation. // Check both nodes to ensure that the channel is ready for operation.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.AssertChannelExists(ctxt, net.Alice, &outPoint); err != nil { if err := net.AssertChannelExists(ctxt, net.Alice, &outPoint); err != nil {
t.Fatalf("unable to assert channel existence: %v", err) t.Fatalf("unable to assert channel existence: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.AssertChannelExists(ctxt, carol, &outPoint); err != nil { if err := net.AssertChannelExists(ctxt, carol, &outPoint); err != nil {
t.Fatalf("unable to assert channel existence: %v", err) t.Fatalf("unable to assert channel existence: %v", err)
} }
@ -1970,26 +1964,26 @@ func testChannelFundingPersistence(net *lntest.NetworkHarness, t *harnessTest) {
}, },
OutputIndex: pendingUpdate.OutputIndex, OutputIndex: pendingUpdate.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
// testChannelBalance creates a new channel between Alice and Bob, then // testChannelBalance creates a new channel between Alice and Bob, then
// checks channel balance to be equal amount specified while creation of channel. // checks channel balance to be equal amount specified while creation of channel.
func testChannelBalance(net *lntest.NetworkHarness, t *harnessTest) { func testChannelBalance(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 5) ctxb := context.Background()
// Open a channel with 0.16 BTC between Alice and Bob, ensuring the // Open a channel with 0.16 BTC between Alice and Bob, ensuring the
// channel has been opened properly. // channel has been opened properly.
amount := maxBtcFundingAmount amount := maxBtcFundingAmount
ctx, _ := context.WithTimeout(context.Background(), timeout)
// Creates a helper closure to be used below which asserts the proper // Creates a helper closure to be used below which asserts the proper
// response to a channel balance RPC. // response to a channel balance RPC.
checkChannelBalance := func(node lnrpc.LightningClient, checkChannelBalance := func(node lnrpc.LightningClient,
amount btcutil.Amount) { amount btcutil.Amount) {
response, err := node.ChannelBalance(ctx, &lnrpc.ChannelBalanceRequest{}) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
response, err := node.ChannelBalance(ctxt, &lnrpc.ChannelBalanceRequest{})
if err != nil { if err != nil {
t.Fatalf("unable to get channel balance: %v", err) t.Fatalf("unable to get channel balance: %v", err)
} }
@ -2002,25 +1996,27 @@ func testChannelBalance(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Before beginning, make sure alice and bob are connected. // Before beginning, make sure alice and bob are connected.
if err := net.EnsureConnected(ctx, net.Alice, net.Bob); err != nil { ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
if err := net.EnsureConnected(ctxt, net.Alice, net.Bob); err != nil {
t.Fatalf("unable to connect alice and bob: %v", err) t.Fatalf("unable to connect alice and bob: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctx, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: amount, Amt: amount,
}, },
) )
// Wait for both Alice and Bob to recognize this new channel. // Wait for both Alice and Bob to recognize this new channel.
ctxt, _ := context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't advertise channel before "+ t.Fatalf("alice didn't advertise channel before "+
"timeout: %v", err) "timeout: %v", err)
} }
ctxt, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("bob didn't advertise channel before "+ t.Fatalf("bob didn't advertise channel before "+
@ -2036,8 +2032,8 @@ func testChannelBalance(net *lntest.NetworkHarness, t *harnessTest) {
// Finally close the channel between Alice and Bob, asserting that the // Finally close the channel between Alice and Bob, asserting that the
// channel has been properly closed on-chain. // channel has been properly closed on-chain.
ctx, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctx, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
// findForceClosedChannel searches a pending channel response for a particular // findForceClosedChannel searches a pending channel response for a particular
@ -2173,7 +2169,6 @@ func checkPendingHtlcStageAndMaturity(
func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) { func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 10)
chanAmt = btcutil.Amount(10e6) chanAmt = btcutil.Amount(10e6)
pushAmt = btcutil.Amount(5e6) pushAmt = btcutil.Amount(5e6)
paymentAmt = 100000 paymentAmt = 100000
@ -2209,7 +2204,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
carolStartingBalance := carolBalResp.ConfirmedBalance carolStartingBalance := carolBalResp.ConfirmedBalance
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, carol, ctxt, t, net, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -2220,7 +2215,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Alice and Carol to receive the channel edge from the // Wait for Alice and Carol to receive the channel edge from the
// funding manager. // funding manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't see the alice->carol channel before "+ t.Fatalf("alice didn't see the alice->carol channel before "+
@ -2284,7 +2279,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
htlcCsvMaturityHeight = startHeight + defaultCLTV + 1 + defaultCSV htlcCsvMaturityHeight = startHeight + defaultCLTV + 1 + defaultCSV
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
aliceChan, err := getChanInfo(ctxt, net.Alice) aliceChan, err := getChanInfo(ctxt, net.Alice)
if err != nil { if err != nil {
t.Fatalf("unable to get alice's channel info: %v", err) t.Fatalf("unable to get alice's channel info: %v", err)
@ -2358,7 +2353,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// Now that the commitment has been confirmed, the channel should be // Now that the commitment has been confirmed, the channel should be
// marked as force closed. // marked as force closed.
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err := net.Alice.PendingChannels( pendingChanResp, err := net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -2434,7 +2429,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// Alice should see the channel in her set of pending force closed // Alice should see the channel in her set of pending force closed
// channels with her funds still in limbo. // channels with her funds still in limbo.
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err := net.Alice.PendingChannels( pendingChanResp, err := net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -2495,7 +2490,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// At this point, the sweeping transaction should now be broadcast. So // At this point, the sweeping transaction should now be broadcast. So
// we fetch the node's mempool to ensure it has been properly // we fetch the node's mempool to ensure it has been properly
// broadcast. // broadcast.
sweepingTXID, err := waitForTxInMempool(net.Miner.Node, 3*time.Second) sweepingTXID, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("failed to get sweep tx from mempool: %v", err) t.Fatalf("failed to get sweep tx from mempool: %v", err)
} }
@ -2537,7 +2532,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
// Now that the commit output has been fully swept, check to see // Now that the commit output has been fully swept, check to see
// that the channel remains open for the pending htlc outputs. // that the channel remains open for the pending htlc outputs.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err := net.Alice.PendingChannels( pendingChanResp, err := net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -2604,7 +2599,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// Alice should now see the channel in her set of pending force closed // Alice should now see the channel in her set of pending force closed
// channels with one pending HTLC. // channels with one pending HTLC.
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err := net.Alice.PendingChannels( pendingChanResp, err := net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -2666,7 +2661,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// closing, we expect Alice to broadcast an htlc timeout txn for each // closing, we expect Alice to broadcast an htlc timeout txn for each
// one. Wait for them all to show up in the mempool. // one. Wait for them all to show up in the mempool.
htlcTxIDs, err := waitForNTxsInMempool(net.Miner.Node, numInvoices, htlcTxIDs, err := waitForNTxsInMempool(net.Miner.Node, numInvoices,
10*time.Second) minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find htlc timeout txns in mempool: %v", err) t.Fatalf("unable to find htlc timeout txns in mempool: %v", err)
} }
@ -2734,7 +2729,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// incubated, check to see that Alice's node still reports the channel // incubated, check to see that Alice's node still reports the channel
// as pending force closed. // as pending force closed.
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err = net.Alice.PendingChannels( pendingChanResp, err = net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -2779,7 +2774,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Wait for the single sweep txn to appear in the mempool. // Wait for the single sweep txn to appear in the mempool.
htlcSweepTxID, err := waitForTxInMempool(net.Miner.Node, 15*time.Second) htlcSweepTxID, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("failed to get sweep tx from mempool: %v", err) t.Fatalf("failed to get sweep tx from mempool: %v", err)
} }
@ -2833,7 +2828,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// incubated, check to see that Alice's node still reports the channel // incubated, check to see that Alice's node still reports the channel
// as pending force closed. // as pending force closed.
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err := net.Alice.PendingChannels( pendingChanResp, err := net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -2884,7 +2879,7 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// Now that the channel has been fully swept, it should no longer show // Now that the channel has been fully swept, it should no longer show
// up within the pending channels RPC. // up within the pending channels RPC.
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err := net.Alice.PendingChannels( pendingChanResp, err := net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -2936,7 +2931,6 @@ func testChannelForceClosure(net *lntest.NetworkHarness, t *harnessTest) {
// expect for replayed onion packets. // expect for replayed onion packets.
func testSphinxReplayPersistence(net *lntest.NetworkHarness, t *harnessTest) { func testSphinxReplayPersistence(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 5)
// Open a channel with 100k satoshis between Carol and Dave with Carol being // Open a channel with 100k satoshis between Carol and Dave with Carol being
// the sole funder of the channel. // the sole funder of the channel.
@ -2970,7 +2964,7 @@ func testSphinxReplayPersistence(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -3020,7 +3014,7 @@ func testSphinxReplayPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Carol to recognize and advertise the new channel generated // Wait for Carol to recognize and advertise the new channel generated
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint) err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't advertise channel before "+ t.Fatalf("alice didn't advertise channel before "+
@ -3100,7 +3094,7 @@ func testSphinxReplayPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// unaltered. // unaltered.
assertAmountSent(0) assertAmountSent(0)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPoint, true) closeChannelAndAssert(ctxt, t, net, carol, chanPoint, true)
// Cleanup by mining the force close and sweep transaction. // Cleanup by mining the force close and sweep transaction.
@ -3109,11 +3103,10 @@ func testSphinxReplayPersistence(net *lntest.NetworkHarness, t *harnessTest) {
func testSingleHopInvoice(net *lntest.NetworkHarness, t *harnessTest) { func testSingleHopInvoice(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 5)
// Open a channel with 100k satoshis between Alice and Bob with Alice being // Open a channel with 100k satoshis between Alice and Bob with Alice being
// the sole funder of the channel. // the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanAmt := btcutil.Amount(100000) chanAmt := btcutil.Amount(100000)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
@ -3164,7 +3157,7 @@ func testSingleHopInvoice(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Alice to recognize and advertise the new channel generated // Wait for Alice to recognize and advertise the new channel generated
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't advertise channel before "+ t.Fatalf("alice didn't advertise channel before "+
@ -3181,7 +3174,7 @@ func testSingleHopInvoice(net *lntest.NetworkHarness, t *harnessTest) {
sendReq := &lnrpc.SendRequest{ sendReq := &lnrpc.SendRequest{
PaymentRequest: invoiceResp.PaymentRequest, PaymentRequest: invoiceResp.PaymentRequest,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
resp, err := net.Alice.SendPaymentSync(ctxt, sendReq) resp, err := net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
t.Fatalf("unable to send payment: %v", err) t.Fatalf("unable to send payment: %v", err)
@ -3230,7 +3223,7 @@ func testSingleHopInvoice(net *lntest.NetworkHarness, t *harnessTest) {
sendReq = &lnrpc.SendRequest{ sendReq = &lnrpc.SendRequest{
PaymentRequest: invoiceResp.PaymentRequest, PaymentRequest: invoiceResp.PaymentRequest,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
resp, err = net.Alice.SendPaymentSync(ctxt, sendReq) resp, err = net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
t.Fatalf("unable to send payment: %v", err) t.Fatalf("unable to send payment: %v", err)
@ -3244,13 +3237,12 @@ func testSingleHopInvoice(net *lntest.NetworkHarness, t *harnessTest) {
time.Sleep(time.Millisecond * 200) time.Sleep(time.Millisecond * 200)
assertAmountSent(paymentAmt * 2) assertAmountSent(paymentAmt * 2)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
func testListPayments(net *lntest.NetworkHarness, t *harnessTest) { func testListPayments(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 5)
// First start by deleting all payments that Alice knows of. This will // First start by deleting all payments that Alice knows of. This will
// allow us to execute the test with a clean state for Alice. // allow us to execute the test with a clean state for Alice.
@ -3273,7 +3265,7 @@ func testListPayments(net *lntest.NetworkHarness, t *harnessTest) {
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
chanAmt := btcutil.Amount(100000) chanAmt := btcutil.Amount(100000)
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -3291,7 +3283,7 @@ func testListPayments(net *lntest.NetworkHarness, t *harnessTest) {
RPreimage: preimage, RPreimage: preimage,
Value: paymentAmt, Value: paymentAmt,
} }
addInvoiceCtxt, _ := context.WithTimeout(ctxb, timeout) addInvoiceCtxt, _ := context.WithTimeout(ctxb, defaultTimeout)
invoiceResp, err := net.Bob.AddInvoice(addInvoiceCtxt, invoice) invoiceResp, err := net.Bob.AddInvoice(addInvoiceCtxt, invoice)
if err != nil { if err != nil {
t.Fatalf("unable to add invoice: %v", err) t.Fatalf("unable to add invoice: %v", err)
@ -3299,7 +3291,7 @@ func testListPayments(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Alice to recognize and advertise the new channel generated // Wait for Alice to recognize and advertise the new channel generated
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint); err != nil { if err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint); err != nil {
t.Fatalf("alice didn't advertise channel before "+ t.Fatalf("alice didn't advertise channel before "+
"timeout: %v", err) "timeout: %v", err)
@ -3314,7 +3306,7 @@ func testListPayments(net *lntest.NetworkHarness, t *harnessTest) {
sendReq := &lnrpc.SendRequest{ sendReq := &lnrpc.SendRequest{
PaymentRequest: invoiceResp.PaymentRequest, PaymentRequest: invoiceResp.PaymentRequest,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
resp, err := net.Alice.SendPaymentSync(ctxt, sendReq) resp, err := net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
t.Fatalf("unable to send payment: %v", err) t.Fatalf("unable to send payment: %v", err)
@ -3383,7 +3375,7 @@ func testListPayments(net *lntest.NetworkHarness, t *harnessTest) {
len(paymentsRespInit.Payments), 0) len(paymentsRespInit.Payments), 0)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
@ -3458,7 +3450,6 @@ func updateChannelPolicy(t *harnessTest, node *lntest.HarnessNode,
timeLockDelta uint32, listenerNode *lntest.HarnessNode) { timeLockDelta uint32, listenerNode *lntest.HarnessNode) {
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
expectedPolicy := &lnrpc.RoutingPolicy{ expectedPolicy := &lnrpc.RoutingPolicy{
FeeBaseMsat: baseFee, FeeBaseMsat: baseFee,
@ -3476,13 +3467,13 @@ func updateChannelPolicy(t *harnessTest, node *lntest.HarnessNode,
}, },
} }
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
if _, err := node.UpdateChannelPolicy(ctxt, updateFeeReq); err != nil { if _, err := node.UpdateChannelPolicy(ctxt, updateFeeReq); err != nil {
t.Fatalf("unable to update chan policy: %v", err) t.Fatalf("unable to update chan policy: %v", err)
} }
// Wait for listener node to receive the channel update from node. // Wait for listener node to receive the channel update from node.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
graphSub := subscribeGraphNotifications(t, ctxt, listenerNode) graphSub := subscribeGraphNotifications(t, ctxt, listenerNode)
defer close(graphSub.quit) defer close(graphSub.quit)
@ -3497,12 +3488,11 @@ func updateChannelPolicy(t *harnessTest, node *lntest.HarnessNode,
func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) { func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -3544,7 +3534,7 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to dave: %v", err) t.Fatalf("unable to send coins to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointDave := openChannelAndAssert( chanPointDave := openChannelAndAssert(
ctxt, t, net, dave, net.Alice, ctxt, t, net, dave, net.Alice,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -3580,7 +3570,7 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -3620,7 +3610,7 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -3634,7 +3624,7 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numPayments, ctxt, net.Bob, paymentAmt, numPayments,
) )
@ -3644,12 +3634,12 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
// We'll wait for all parties to recognize the new channels within the // We'll wait for all parties to recognize the new channels within the
// network. // network.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave) err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave)
if err != nil { if err != nil {
t.Fatalf("dave didn't advertise his channel: %v", err) t.Fatalf("dave didn't advertise his channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol) err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("carol didn't advertise her channel in time: %v", t.Fatalf("carol didn't advertise her channel in time: %v",
@ -3669,7 +3659,7 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, carol, payReqs, true) err = completePaymentRequests(ctxt, carol, payReqs, true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -3765,11 +3755,11 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
} }
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false) closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
} }
@ -3782,12 +3772,11 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) { func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -3827,7 +3816,7 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -3848,7 +3837,7 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
NumRoutes: 1, NumRoutes: 1,
FinalCltvDelta: 144, FinalCltvDelta: 144,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
routes, err := net.Alice.QueryRoutes(ctxt, routesReq) routes, err := net.Alice.QueryRoutes(ctxt, routesReq)
if err != nil { if err != nil {
t.Fatalf("unable to get route: %v", err) t.Fatalf("unable to get route: %v", err)
@ -3857,7 +3846,7 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// Create 5 invoices for Bob, which expect a payment from Alice for 1k // Create 5 invoices for Bob, which expect a payment from Alice for 1k
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
_, rHashes, _, err := createPayReqs( _, rHashes, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numPayments, ctxt, net.Bob, paymentAmt, numPayments,
) )
@ -3867,7 +3856,7 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// We'll wait for all parties to recognize the new channels within the // We'll wait for all parties to recognize the new channels within the
// network. // network.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPointAlice) err = net.Bob.WaitForNetworkChannelOpen(ctxt, chanPointAlice)
if err != nil { if err != nil {
t.Fatalf("alice didn't advertise her channel in time: %v", err) t.Fatalf("alice didn't advertise her channel in time: %v", err)
@ -3877,7 +3866,7 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// Using Alice as the source, pay to the 5 invoices from Carol created // Using Alice as the source, pay to the 5 invoices from Carol created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
alicePayStream, err := net.Alice.SendToRoute(ctxt) alicePayStream, err := net.Alice.SendToRoute(ctxt)
if err != nil { if err != nil {
t.Fatalf("unable to create payment stream for alice: %v", err) t.Fatalf("unable to create payment stream for alice: %v", err)
@ -3916,7 +3905,7 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
assertAmountPaid(t, ctxb, "Alice(local) => Bob(remote)", net.Alice, assertAmountPaid(t, ctxb, "Alice(local) => Bob(remote)", net.Alice,
aliceFundPoint, amountPaid, int64(0)) aliceFundPoint, amountPaid, int64(0))
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
} }
@ -3928,12 +3917,11 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) { func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -3971,7 +3959,7 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to bob: %v", err) t.Fatalf("unable to send coins to bob: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointBob := openChannelAndAssert( chanPointBob := openChannelAndAssert(
ctxt, t, net, net.Bob, carol, ctxt, t, net, net.Bob, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4010,7 +3998,7 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -4031,7 +4019,7 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
NumRoutes: 1, NumRoutes: 1,
FinalCltvDelta: 144, FinalCltvDelta: 144,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
routes, err := net.Alice.QueryRoutes(ctxt, routesReq) routes, err := net.Alice.QueryRoutes(ctxt, routesReq)
if err != nil { if err != nil {
t.Fatalf("unable to get route: %v", err) t.Fatalf("unable to get route: %v", err)
@ -4040,7 +4028,7 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// Create 5 invoices for Carol, which expect a payment from Alice for 1k // Create 5 invoices for Carol, which expect a payment from Alice for 1k
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
_, rHashes, _, err := createPayReqs( _, rHashes, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, ctxt, carol, paymentAmt, numPayments,
) )
@ -4050,7 +4038,7 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// We'll wait for all parties to recognize the new channels within the // We'll wait for all parties to recognize the new channels within the
// network. // network.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPointBob) err = carol.WaitForNetworkChannelOpen(ctxt, chanPointBob)
if err != nil { if err != nil {
t.Fatalf("bob didn't advertise his channel in time: %v", err) t.Fatalf("bob didn't advertise his channel in time: %v", err)
@ -4060,7 +4048,7 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// Using Alice as the source, pay to the 5 invoices from Carol created // Using Alice as the source, pay to the 5 invoices from Carol created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
alicePayStream, err := net.Alice.SendToRoute(ctxt) alicePayStream, err := net.Alice.SendToRoute(ctxt)
if err != nil { if err != nil {
t.Fatalf("unable to create payment stream for alice: %v", err) t.Fatalf("unable to create payment stream for alice: %v", err)
@ -4109,9 +4097,9 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
assertAmountPaid(t, ctxb, "Alice(local) => Bob(remote)", net.Alice, assertAmountPaid(t, ctxb, "Alice(local) => Bob(remote)", net.Alice,
aliceFundPoint, amountPaid+(baseFee*numPayments), int64(0)) aliceFundPoint, amountPaid+(baseFee*numPayments), int64(0))
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointBob, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointBob, false)
} }
@ -4120,18 +4108,18 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
func testSendToRouteErrorPropagation(net *lntest.NetworkHarness, t *harnessTest) { func testSendToRouteErrorPropagation(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 5)
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: chanAmt, Amt: chanAmt,
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout)
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPointAlice) err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPointAlice)
if err != nil { if err != nil {
t.Fatalf("alice didn't advertise her channel: %v", err) t.Fatalf("alice didn't advertise her channel: %v", err)
@ -4170,14 +4158,14 @@ func testSendToRouteErrorPropagation(net *lntest.NetworkHarness, t *harnessTest)
t.Fatalf("unable to connect carol to alice: %v", err) t.Fatalf("unable to connect carol to alice: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, charlie, ctxt, t, net, carol, charlie,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: chanAmt, Amt: chanAmt,
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol) err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("carol didn't advertise her channel: %v", err) t.Fatalf("carol didn't advertise her channel: %v", err)
@ -4190,7 +4178,7 @@ func testSendToRouteErrorPropagation(net *lntest.NetworkHarness, t *harnessTest)
Amt: int64(1), Amt: int64(1),
NumRoutes: 1, NumRoutes: 1,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
fakeRoute, err := carol.QueryRoutes(ctxt, fakeReq) fakeRoute, err := carol.QueryRoutes(ctxt, fakeReq)
if err != nil { if err != nil {
t.Fatalf("unable get fake route: %v", err) t.Fatalf("unable get fake route: %v", err)
@ -4235,22 +4223,21 @@ func testSendToRouteErrorPropagation(net *lntest.NetworkHarness, t *harnessTest)
t.Fatalf("payment stream has been closed but fake route has consumed: %v", err) t.Fatalf("payment stream has been closed but fake route has consumed: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
} }
// testUnannouncedChannels checks unannounced channels are not returned by // testUnannouncedChannels checks unannounced channels are not returned by
// describeGraph RPC request unless explicity asked for. // describeGraph RPC request unless explicity asked for.
func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) { func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 5)
ctb := context.Background() ctb := context.Background()
amount := maxBtcFundingAmount amount := maxBtcFundingAmount
// Open a channel between Alice and Bob, ensuring the // Open a channel between Alice and Bob, ensuring the
// channel has been opened properly. // channel has been opened properly.
ctx, _ := context.WithTimeout(ctb, timeout) ctx, _ := context.WithTimeout(ctb, channelOpenTimeout)
chanOpenUpdate, err := net.OpenChannel( chanOpenUpdate, err := net.OpenChannel(
ctx, net.Alice, net.Bob, ctx, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4267,7 +4254,7 @@ func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
// One block is enough to make the channel ready for use, since the // One block is enough to make the channel ready for use, since the
// nodes have defaultNumConfs=1 set. // nodes have defaultNumConfs=1 set.
ctx, _ = context.WithTimeout(ctb, timeout) ctx, _ = context.WithTimeout(ctb, defaultTimeout)
fundingChanPoint, err := net.WaitForChannelOpen(ctx, chanOpenUpdate) fundingChanPoint, err := net.WaitForChannelOpen(ctx, chanOpenUpdate)
if err != nil { if err != nil {
t.Fatalf("error while waiting for channel open: %v", err) t.Fatalf("error while waiting for channel open: %v", err)
@ -4277,7 +4264,7 @@ func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
req := &lnrpc.ChannelGraphRequest{ req := &lnrpc.ChannelGraphRequest{
IncludeUnannounced: true, IncludeUnannounced: true,
} }
ctx, _ = context.WithTimeout(ctb, timeout) ctx, _ = context.WithTimeout(ctb, defaultTimeout)
chanGraph, err := net.Alice.DescribeGraph(ctx, req) chanGraph, err := net.Alice.DescribeGraph(ctx, req)
if err != nil { if err != nil {
t.Fatalf("unable to query alice's graph: %v", err) t.Fatalf("unable to query alice's graph: %v", err)
@ -4291,7 +4278,7 @@ func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
// Channels should not be announced yet, hence Alice should have no // Channels should not be announced yet, hence Alice should have no
// announced edges in her graph. // announced edges in her graph.
req.IncludeUnannounced = false req.IncludeUnannounced = false
ctx, _ = context.WithTimeout(ctb, timeout) ctx, _ = context.WithTimeout(ctb, defaultTimeout)
chanGraph, err = net.Alice.DescribeGraph(ctx, req) chanGraph, err = net.Alice.DescribeGraph(ctx, req)
if err != nil { if err != nil {
t.Fatalf("unable to query alice's graph: %v", err) t.Fatalf("unable to query alice's graph: %v", err)
@ -4312,7 +4299,7 @@ func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
// The channel should now be announced. Check that Alice has 1 // The channel should now be announced. Check that Alice has 1
// announced edge. // announced edge.
req.IncludeUnannounced = false req.IncludeUnannounced = false
ctx, _ = context.WithTimeout(ctb, timeout) ctx, _ = context.WithTimeout(ctb, defaultTimeout)
chanGraph, err = net.Alice.DescribeGraph(ctx, req) chanGraph, err = net.Alice.DescribeGraph(ctx, req)
if err != nil { if err != nil {
predErr = fmt.Errorf("unable to query alice's graph: %v", err) predErr = fmt.Errorf("unable to query alice's graph: %v", err)
@ -4334,7 +4321,7 @@ func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
// The channel should now be announced. Check that Alice has 1 announced // The channel should now be announced. Check that Alice has 1 announced
// edge. // edge.
req.IncludeUnannounced = false req.IncludeUnannounced = false
ctx, _ = context.WithTimeout(ctb, timeout) ctx, _ = context.WithTimeout(ctb, defaultTimeout)
chanGraph, err = net.Alice.DescribeGraph(ctx, req) chanGraph, err = net.Alice.DescribeGraph(ctx, req)
if err != nil { if err != nil {
t.Fatalf("unable to query alice's graph: %v", err) t.Fatalf("unable to query alice's graph: %v", err)
@ -4347,7 +4334,7 @@ func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Close the channel used during the test. // Close the channel used during the test.
ctx, _ = context.WithTimeout(ctb, timeout) ctx, _ = context.WithTimeout(ctb, channelCloseTimeout)
closeChannelAndAssert(ctx, t, net, net.Alice, fundingChanPoint, false) closeChannelAndAssert(ctx, t, net, net.Alice, fundingChanPoint, false)
} }
@ -4357,7 +4344,6 @@ func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) { func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 5)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// We create the following topology: // We create the following topology:
@ -4372,7 +4358,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
// where the 100k channel between Carol and Alice is private. // where the 100k channel between Carol and Alice is private.
// Open a channel with 200k satoshis between Alice and Bob. // Open a channel with 200k satoshis between Alice and Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4408,7 +4394,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to dave: %v", err) t.Fatalf("unable to send coins to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointDave := openChannelAndAssert( chanPointDave := openChannelAndAssert(
ctxt, t, net, dave, net.Alice, ctxt, t, net, dave, net.Alice,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4444,7 +4430,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4485,7 +4471,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -4551,7 +4537,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
// by only using one of the channels. // by only using one of the channels.
const numPayments = 2 const numPayments = 2
const paymentAmt = 70000 const paymentAmt = 70000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numPayments, ctxt, net.Bob, paymentAmt, numPayments,
) )
@ -4562,7 +4548,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
time.Sleep(time.Millisecond * 50) time.Sleep(time.Millisecond * 50)
// Let Carol pay the invoices. // Let Carol pay the invoices.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, carol, payReqs, true) err = completePaymentRequests(ctxt, carol, payReqs, true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -4608,7 +4594,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
// Alice should also be able to route payments using this channel, // Alice should also be able to route payments using this channel,
// so send two payments of 60k back to Carol. // so send two payments of 60k back to Carol.
const paymentAmt60k = 60000 const paymentAmt60k = 60000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err = createPayReqs( payReqs, _, _, err = createPayReqs(
ctxt, carol, paymentAmt60k, numPayments, ctxt, carol, paymentAmt60k, numPayments,
) )
@ -4619,7 +4605,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
time.Sleep(time.Millisecond * 50) time.Sleep(time.Millisecond * 50)
// Let Bob pay the invoices. // Let Bob pay the invoices.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Alice, payReqs, true) err = completePaymentRequests(ctxt, net.Alice, payReqs, true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -4639,7 +4625,7 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
req := &lnrpc.ChannelGraphRequest{ req := &lnrpc.ChannelGraphRequest{
IncludeUnannounced: includeUnannounced, IncludeUnannounced: includeUnannounced,
} }
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
chanGraph, err := node.DescribeGraph(ctxt, req) chanGraph, err := node.DescribeGraph(ctxt, req)
if err != nil { if err != nil {
t.Fatalf("unable go describegraph: %v", err) t.Fatalf("unable go describegraph: %v", err)
@ -4692,13 +4678,13 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Close all channels. // Close all channels.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false) closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointPrivate, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointPrivate, false)
} }
@ -4706,7 +4692,6 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
// created properly. // created properly.
func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) { func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(15 * time.Second)
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
// Throughout this test, we'll be opening a channel between Alice and // Throughout this test, we'll be opening a channel between Alice and
@ -4717,7 +4702,7 @@ func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
// throughout this test. We'll include a push amount since we currently // throughout this test. We'll include a push amount since we currently
// require channels to have enough remote balance to cover the invoice's // require channels to have enough remote balance to cover the invoice's
// payment. // payment.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointBob := openChannelAndAssert( chanPointBob := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4739,7 +4724,7 @@ func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil {
t.Fatalf("unable to connect alice to carol: %v", err) t.Fatalf("unable to connect alice to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, net.Alice, carol, ctxt, t, net, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4756,7 +4741,7 @@ func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil {
t.Fatalf("unable to connect alice to carol: %v", err) t.Fatalf("unable to connect alice to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointBobCarol := openChannelAndAssert( chanPointBobCarol := openChannelAndAssert(
ctxt, t, net, net.Bob, carol, ctxt, t, net, net.Bob, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4778,7 +4763,7 @@ func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Alice, dave); err != nil { if err := net.ConnectNodes(ctxb, net.Alice, dave); err != nil {
t.Fatalf("unable to connect alice to dave: %v", err) t.Fatalf("unable to connect alice to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointDave := openChannelAndAssert( chanPointDave := openChannelAndAssert(
ctxt, t, net, net.Alice, dave, ctxt, t, net, net.Alice, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4798,7 +4783,7 @@ func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Alice, eve); err != nil { if err := net.ConnectNodes(ctxb, net.Alice, eve); err != nil {
t.Fatalf("unable to connect alice to eve: %v", err) t.Fatalf("unable to connect alice to eve: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointEve := openChannelAndAssert( chanPointEve := openChannelAndAssert(
ctxt, t, net, net.Alice, eve, ctxt, t, net, net.Alice, eve,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4815,7 +4800,7 @@ func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
chanPointEve, chanPointEve,
} }
for i, chanPoint := range aliceChans { for i, chanPoint := range aliceChans {
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("timed out waiting for channel open between "+ t.Fatalf("timed out waiting for channel open between "+
@ -4899,18 +4884,18 @@ func testInvoiceRoutingHints(net *lntest.NetworkHarness, t *harnessTest) {
// Now that we've confirmed the routing hints were added correctly, we // Now that we've confirmed the routing hints were added correctly, we
// can close all the channels and shut down all the nodes created. // can close all the channels and shut down all the nodes created.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointBob, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointBob, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointCarol, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBobCarol, false) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBobCarol, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointDave, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointDave, false)
// The channel between Alice and Eve should be force closed since Eve // The channel between Alice and Eve should be force closed since Eve
// is offline. // is offline.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointEve, true) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointEve, true)
// Cleanup by mining the force close and sweep transaction. // Cleanup by mining the force close and sweep transaction.
@ -4926,12 +4911,11 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
// Alice <--100k--> Bob <--100k--> Carol <--100k--> Dave // Alice <--100k--> Bob <--100k--> Carol <--100k--> Dave
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(15 * time.Second)
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
// First, we'll open a private channel between Alice and Bob with Alice // First, we'll open a private channel between Alice and Bob with Alice
// being the funder. // being the funder.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4940,13 +4924,13 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err := net.Alice.WaitForNetworkChannelOpen(ctxb, chanPointAlice) err := net.Alice.WaitForNetworkChannelOpen(ctxb, chanPointAlice)
if err != nil { if err != nil {
t.Fatalf("alice didn't see the channel alice <-> bob before "+ t.Fatalf("alice didn't see the channel alice <-> bob before "+
"timeout: %v", err) "timeout: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxb, chanPointAlice) err = net.Bob.WaitForNetworkChannelOpen(ctxb, chanPointAlice)
if err != nil { if err != nil {
t.Fatalf("bob didn't see the channel alice <-> bob before "+ t.Fatalf("bob didn't see the channel alice <-> bob before "+
@ -4978,7 +4962,7 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil {
t.Fatalf("unable to connect bob to carol: %v", err) t.Fatalf("unable to connect bob to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointBob := openChannelAndAssert( chanPointBob := openChannelAndAssert(
ctxt, t, net, net.Bob, carol, ctxt, t, net, net.Bob, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -4986,19 +4970,19 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxb, chanPointBob) err = net.Bob.WaitForNetworkChannelOpen(ctxb, chanPointBob)
if err != nil { if err != nil {
t.Fatalf("bob didn't see the channel bob <-> carol before "+ t.Fatalf("bob didn't see the channel bob <-> carol before "+
"timeout: %v", err) "timeout: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxb, chanPointBob) err = carol.WaitForNetworkChannelOpen(ctxb, chanPointBob)
if err != nil { if err != nil {
t.Fatalf("carol didn't see the channel bob <-> carol before "+ t.Fatalf("carol didn't see the channel bob <-> carol before "+
"timeout: %v", err) "timeout: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxb, chanPointBob) err = net.Alice.WaitForNetworkChannelOpen(ctxb, chanPointBob)
if err != nil { if err != nil {
t.Fatalf("alice didn't see the channel bob <-> carol before "+ t.Fatalf("alice didn't see the channel bob <-> carol before "+
@ -5034,7 +5018,7 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -5043,19 +5027,19 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxb, chanPointCarol) err = carol.WaitForNetworkChannelOpen(ctxb, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("carol didn't see the channel carol <-> dave before "+ t.Fatalf("carol didn't see the channel carol <-> dave before "+
"timeout: %v", err) "timeout: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxb, chanPointCarol) err = dave.WaitForNetworkChannelOpen(ctxb, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("dave didn't see the channel carol <-> dave before "+ t.Fatalf("dave didn't see the channel carol <-> dave before "+
"timeout: %v", err) "timeout: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxb, chanPointBob) err = dave.WaitForNetworkChannelOpen(ctxb, chanPointBob)
if err != nil { if err != nil {
t.Fatalf("dave didn't see the channel bob <-> carol before "+ t.Fatalf("dave didn't see the channel bob <-> carol before "+
@ -5097,7 +5081,7 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
// Let Alice pay the invoice. // Let Alice pay the invoice.
payReqs := []string{resp.PaymentRequest} payReqs := []string{resp.PaymentRequest}
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Alice, payReqs, true) err = completePaymentRequests(ctxt, net.Alice, payReqs, true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments from alice to dave: %v", err) t.Fatalf("unable to send payments from alice to dave: %v", err)
@ -5134,22 +5118,21 @@ func testMultiHopOverPrivateChannels(net *lntest.NetworkHarness, t *harnessTest)
// At this point, the payment was successful. We can now close all the // At this point, the payment was successful. We can now close all the
// channels and shutdown the nodes created throughout this test. // channels and shutdown the nodes created throughout this test.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBob, false) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBob, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
} }
func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) { func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = btcutil.Amount(500000) const chanAmt = btcutil.Amount(500000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 5)
// Open a channel with 500k satoshis between Alice and Bob with Alice // Open a channel with 500k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -5175,7 +5158,7 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
// Create a new invoice subscription client for Bob, the notification // Create a new invoice subscription client for Bob, the notification
// should be dispatched shortly below. // should be dispatched shortly below.
req := &lnrpc.InvoiceSubscription{} req := &lnrpc.InvoiceSubscription{}
ctx, cancelInvoiceSubscription := context.WithCancel(context.Background()) ctx, cancelInvoiceSubscription := context.WithCancel(ctxb)
bobInvoiceSubscription, err := net.Bob.SubscribeInvoices(ctx, req) bobInvoiceSubscription, err := net.Bob.SubscribeInvoices(ctx, req)
if err != nil { if err != nil {
t.Fatalf("unable to subscribe to bob's invoice updates: %v", err) t.Fatalf("unable to subscribe to bob's invoice updates: %v", err)
@ -5222,7 +5205,7 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for the channel to be recognized by both Alice and Bob before // Wait for the channel to be recognized by both Alice and Bob before
// continuing the rest of the test. // continuing the rest of the test.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
// TODO(roasbeef): will need to make num blocks to advertise a // TODO(roasbeef): will need to make num blocks to advertise a
@ -5236,7 +5219,7 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
sendReq := &lnrpc.SendRequest{ sendReq := &lnrpc.SendRequest{
PaymentRequest: invoiceResp.PaymentRequest, PaymentRequest: invoiceResp.PaymentRequest,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
resp, err := net.Alice.SendPaymentSync(ctxt, sendReq) resp, err := net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
close(quit) close(quit)
@ -5260,7 +5243,7 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
// We'll now add 3 more invoices to Bob's invoice registry. // We'll now add 3 more invoices to Bob's invoice registry.
const numInvoices = 3 const numInvoices = 3
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, newInvoices, err := createPayReqs( payReqs, _, newInvoices, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, ctxt, net.Bob, paymentAmt, numInvoices,
) )
@ -5274,7 +5257,7 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
req = &lnrpc.InvoiceSubscription{ req = &lnrpc.InvoiceSubscription{
AddIndex: lastAddIndex, AddIndex: lastAddIndex,
} }
ctx, cancelInvoiceSubscription = context.WithCancel(context.Background()) ctx, cancelInvoiceSubscription = context.WithCancel(ctxb)
bobInvoiceSubscription, err = net.Bob.SubscribeInvoices(ctx, req) bobInvoiceSubscription, err = net.Bob.SubscribeInvoices(ctx, req)
if err != nil { if err != nil {
t.Fatalf("unable to subscribe to bob's invoice updates: %v", err) t.Fatalf("unable to subscribe to bob's invoice updates: %v", err)
@ -5307,7 +5290,7 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
// We'll now have Bob settle out the remainder of these invoices so we // We'll now have Bob settle out the remainder of these invoices so we
// can test that all settled invoices are properly notified. // can test that all settled invoices are properly notified.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests( err = completePaymentRequests(
ctxt, net.Alice, payReqs, true, ctxt, net.Alice, payReqs, true,
) )
@ -5321,7 +5304,7 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
req = &lnrpc.InvoiceSubscription{ req = &lnrpc.InvoiceSubscription{
SettleIndex: settleIndex, SettleIndex: settleIndex,
} }
ctx, cancelInvoiceSubscription = context.WithCancel(context.Background()) ctx, cancelInvoiceSubscription = context.WithCancel(ctxb)
bobInvoiceSubscription, err = net.Bob.SubscribeInvoices(ctx, req) bobInvoiceSubscription, err = net.Bob.SubscribeInvoices(ctx, req)
if err != nil { if err != nil {
t.Fatalf("unable to subscribe to bob's invoice updates: %v", err) t.Fatalf("unable to subscribe to bob's invoice updates: %v", err)
@ -5364,15 +5347,16 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("not all invoices settled") t.Fatalf("not all invoices settled")
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
// testBasicChannelCreation test multiple channel opening and closing. // testBasicChannelCreation test multiple channel opening and closing.
func testBasicChannelCreation(net *lntest.NetworkHarness, t *harnessTest) { func testBasicChannelCreation(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background()
const ( const (
numChannels = 2 numChannels = 2
timeout = time.Duration(time.Second * 5)
amount = maxBtcFundingAmount amount = maxBtcFundingAmount
) )
@ -5380,9 +5364,9 @@ func testBasicChannelCreation(net *lntest.NetworkHarness, t *harnessTest) {
// channel has been properly open on-chain. // channel has been properly open on-chain.
chanPoints := make([]*lnrpc.ChannelPoint, numChannels) chanPoints := make([]*lnrpc.ChannelPoint, numChannels)
for i := 0; i < numChannels; i++ { for i := 0; i < numChannels; i++ {
ctx, _ := context.WithTimeout(context.Background(), timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoints[i] = openChannelAndAssert( chanPoints[i] = openChannelAndAssert(
ctx, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: amount, Amt: amount,
}, },
@ -5392,8 +5376,8 @@ func testBasicChannelCreation(net *lntest.NetworkHarness, t *harnessTest) {
// Close the channel between Alice and Bob, asserting that the // Close the channel between Alice and Bob, asserting that the
// channel has been properly closed on-chain. // channel has been properly closed on-chain.
for _, chanPoint := range chanPoints { for _, chanPoint := range chanPoints {
ctx, _ := context.WithTimeout(context.Background(), timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctx, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
} }
@ -5401,12 +5385,11 @@ func testBasicChannelCreation(net *lntest.NetworkHarness, t *harnessTest) {
// max pending channel number was exceeded and that '--maxpendingchannels' flag // max pending channel number was exceeded and that '--maxpendingchannels' flag
// exists and works properly. // exists and works properly.
func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) { func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background()
maxPendingChannels := defaultMaxPendingChannels + 1 maxPendingChannels := defaultMaxPendingChannels + 1
amount := maxBtcFundingAmount amount := maxBtcFundingAmount
timeout := time.Duration(time.Second * 10)
ctx, _ := context.WithTimeout(context.Background(), timeout)
// Create a new node (Carol) with greater number of max pending // Create a new node (Carol) with greater number of max pending
// channels. // channels.
args := []string{ args := []string{
@ -5418,14 +5401,14 @@ func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
} }
defer shutdownAndAssert(net, t, carol) defer shutdownAndAssert(net, t, carol)
ctx, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctx, net.Alice, carol); err != nil { if err := net.ConnectNodes(ctxt, net.Alice, carol); err != nil {
t.Fatalf("unable to connect carol to alice: %v", err) t.Fatalf("unable to connect carol to alice: %v", err)
} }
ctx, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolBalance := btcutil.Amount(maxPendingChannels) * amount carolBalance := btcutil.Amount(maxPendingChannels) * amount
if err := net.SendCoins(ctx, carolBalance, carol); err != nil { if err := net.SendCoins(ctxt, carolBalance, carol); err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
@ -5434,9 +5417,9 @@ func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
// the channel if the number of pending channels exceed max value. // the channel if the number of pending channels exceed max value.
openStreams := make([]lnrpc.Lightning_OpenChannelClient, maxPendingChannels) openStreams := make([]lnrpc.Lightning_OpenChannelClient, maxPendingChannels)
for i := 0; i < maxPendingChannels; i++ { for i := 0; i < maxPendingChannels; i++ {
ctx, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
stream, err := net.OpenChannel( stream, err := net.OpenChannel(
ctx, net.Alice, carol, ctxt, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: amount, Amt: amount,
}, },
@ -5449,9 +5432,9 @@ func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
// Carol exhausted available amount of pending channels, next open // Carol exhausted available amount of pending channels, next open
// channel request should cause ErrorGeneric to be sent back to Alice. // channel request should cause ErrorGeneric to be sent back to Alice.
ctx, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
_, err = net.OpenChannel( _, err = net.OpenChannel(
ctx, net.Alice, carol, ctxt, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: amount, Amt: amount,
}, },
@ -5475,7 +5458,7 @@ func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
chanPoints := make([]*lnrpc.ChannelPoint, maxPendingChannels) chanPoints := make([]*lnrpc.ChannelPoint, maxPendingChannels)
for i, stream := range openStreams { for i, stream := range openStreams {
ctxt, _ := context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
fundingChanPoint, err := net.WaitForChannelOpen(ctxt, stream) fundingChanPoint, err := net.WaitForChannelOpen(ctxt, stream)
if err != nil { if err != nil {
t.Fatalf("error while waiting for channel open: %v", err) t.Fatalf("error while waiting for channel open: %v", err)
@ -5493,7 +5476,7 @@ func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
// Ensure that the funding transaction enters a block, and is // Ensure that the funding transaction enters a block, and is
// properly advertised by Alice. // properly advertised by Alice.
assertTxInBlock(t, block, fundingTxID) assertTxInBlock(t, block, fundingTxID)
ctxt, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, fundingChanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, fundingChanPoint)
if err != nil { if err != nil {
t.Fatalf("channel not seen on network before "+ t.Fatalf("channel not seen on network before "+
@ -5506,7 +5489,8 @@ func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
Hash: *fundingTxID, Hash: *fundingTxID,
Index: fundingChanPoint.OutputIndex, Index: fundingChanPoint.OutputIndex,
} }
if err := net.AssertChannelExists(ctx, net.Alice, &chanPoint); err != nil { ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.AssertChannelExists(ctxt, net.Alice, &chanPoint); err != nil {
t.Fatalf("unable to assert channel existence: %v", err) t.Fatalf("unable to assert channel existence: %v", err)
} }
@ -5516,7 +5500,7 @@ func testMaxPendingChannels(net *lntest.NetworkHarness, t *harnessTest) {
// Next, close the channel between Alice and Carol, asserting that the // Next, close the channel between Alice and Carol, asserting that the
// channel has been properly closed on-chain. // channel has been properly closed on-chain.
for _, chanPoint := range chanPoints { for _, chanPoint := range chanPoints {
ctxt, _ := context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
} }
@ -5591,7 +5575,6 @@ func waitForNTxsInMempool(miner *rpcclient.Client, n int,
func testFailingChannel(net *lntest.NetworkHarness, t *harnessTest) { func testFailingChannel(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 10)
paymentAmt = 10000 paymentAmt = 10000
) )
@ -5610,7 +5593,7 @@ func testFailingChannel(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil {
t.Fatalf("unable to connect alice to carol: %v", err) t.Fatalf("unable to connect alice to carol: %v", err)
} }
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, carol, ctxt, t, net, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -5633,7 +5616,7 @@ func testFailingChannel(net *lntest.NetworkHarness, t *harnessTest) {
carolPayReqs := []string{resp.PaymentRequest} carolPayReqs := []string{resp.PaymentRequest}
// Wait for Alice to receive the channel edge from the funding manager. // Wait for Alice to receive the channel edge from the funding manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't see the alice->carol channel before "+ t.Fatalf("alice didn't see the alice->carol channel before "+
@ -5728,7 +5711,7 @@ func testFailingChannel(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Carol will use the correct preimage to resolve the HTLC on-chain. // Carol will use the correct preimage to resolve the HTLC on-chain.
_, err = waitForTxInMempool(net.Miner.Node, 5*time.Second) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Bob's breach tx in mempool: %v", err) t.Fatalf("unable to find Bob's breach tx in mempool: %v", err)
} }
@ -5741,7 +5724,7 @@ func testFailingChannel(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Wait for the sweeping tx to be broadcast. // Wait for the sweeping tx to be broadcast.
_, err = waitForTxInMempool(net.Miner.Node, 5*time.Second) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Bob's breach tx in mempool: %v", err) t.Fatalf("unable to find Bob's breach tx in mempool: %v", err)
} }
@ -5779,14 +5762,13 @@ func testFailingChannel(net *lntest.NetworkHarness, t *harnessTest) {
// from the database and the set of persistent connections within the server. // from the database and the set of persistent connections within the server.
func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) { func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
const ( const (
timeout = time.Second * 10
chanAmt = 1000000 chanAmt = 1000000
) )
// Open a channel between Alice and Bob which will later be // Open a channel between Alice and Bob which will later be
// cooperatively closed. // cooperatively closed.
ctxb := context.Background() ctxb := context.Background()
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
coopChanPoint := openChannelAndAssert( coopChanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -5800,14 +5782,14 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("unable to create carol's node: %v", err) t.Fatalf("unable to create carol's node: %v", err)
} }
defer shutdownAndAssert(net, t, carol) defer shutdownAndAssert(net, t, carol)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, net.Alice, carol); err != nil { if err := net.ConnectNodes(ctxt, net.Alice, carol); err != nil {
t.Fatalf("unable to connect alice and carol: %v", err) t.Fatalf("unable to connect alice and carol: %v", err)
} }
// Open a channel between Alice and Carol which will later be force // Open a channel between Alice and Carol which will later be force
// closed. // closed.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
forceCloseChanPoint := openChannelAndAssert( forceCloseChanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, carol, ctxt, t, net, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -5826,7 +5808,7 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxt, net.Alice, dave); err != nil { if err := net.ConnectNodes(ctxt, net.Alice, dave); err != nil {
t.Fatalf("unable to connect alice to dave: %v", err) t.Fatalf("unable to connect alice to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
persistentChanPoint := openChannelAndAssert( persistentChanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, dave, ctxt, t, net, net.Alice, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -5948,14 +5930,14 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
// Now, we'll close the channel between Alice and Bob and ensure there // Now, we'll close the channel between Alice and Bob and ensure there
// is no reconnection logic between the both once the channel is fully // is no reconnection logic between the both once the channel is fully
// closed. // closed.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, coopChanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, coopChanPoint, false)
testReconnection(net.Bob) testReconnection(net.Bob)
// We'll do the same with Alice and Carol, but this time we'll force // We'll do the same with Alice and Carol, but this time we'll force
// close the channel instead. // close the channel instead.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, forceCloseChanPoint, true) closeChannelAndAssert(ctxt, t, net, net.Alice, forceCloseChanPoint, true)
// Cleanup by mining the force close and sweep transaction. // Cleanup by mining the force close and sweep transaction.
@ -5973,7 +5955,7 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
var predErr error var predErr error
pendingChansRequest := &lnrpc.PendingChannelsRequest{} pendingChansRequest := &lnrpc.PendingChannelsRequest{}
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err := net.Alice.PendingChannels( pendingChanResp, err := net.Alice.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -5988,7 +5970,7 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
return false return false
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
pendingChanResp, err = carol.PendingChannels( pendingChanResp, err = carol.PendingChannels(
ctxt, pendingChansRequest, ctxt, pendingChansRequest,
) )
@ -6032,7 +6014,7 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Now that the test is done, we can also close the persistent link. // Now that the test is done, we can also close the persistent link.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, persistentChanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, persistentChanPoint, false)
} }
@ -6042,7 +6024,6 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) { func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 10)
chanAmt = maxBtcFundingAmount chanAmt = maxBtcFundingAmount
paymentAmt = 10000 paymentAmt = 10000
numInvoices = 6 numInvoices = 6
@ -6076,7 +6057,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// In order to test Carol's response to an uncooperative channel // In order to test Carol's response to an uncooperative channel
// closure by Bob, we'll first open up a channel between them with a // closure by Bob, we'll first open up a channel between them with a
// 0.5 BTC value. // 0.5 BTC value.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, carol, net.Bob, ctxt, t, net, carol, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -6086,7 +6067,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// With the channel open, we'll create a few invoices for Bob that // With the channel open, we'll create a few invoices for Bob that
// Carol will pay to in order to advance the state of the channel. // Carol will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobPayReqs, _, _, err := createPayReqs( bobPayReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, ctxt, net.Bob, paymentAmt, numInvoices,
) )
@ -6095,7 +6076,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Wait for Carol to receive the channel edge from the funding manager. // Wait for Carol to receive the channel edge from the funding manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint) err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("carol didn't see the carol->bob channel before "+ t.Fatalf("carol didn't see the carol->bob channel before "+
@ -6104,7 +6085,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// Send payments from Carol to Bob using 3 of Bob's payment hashes // Send payments from Carol to Bob using 3 of Bob's payment hashes
// generated above. // generated above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, carol, bobPayReqs[:numInvoices/2], err = completePaymentRequests(ctxt, carol, bobPayReqs[:numInvoices/2],
true) true)
if err != nil { if err != nil {
@ -6116,7 +6097,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
var bobChan *lnrpc.Channel var bobChan *lnrpc.Channel
var predErr error var predErr error
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bChan, err := getChanInfo(ctxt, net.Bob) bChan, err := getChanInfo(ctxt, net.Bob)
if err != nil { if err != nil {
t.Fatalf("unable to get bob's channel info: %v", err) t.Fatalf("unable to get bob's channel info: %v", err)
@ -6158,14 +6139,14 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// Finally, send payments from Carol to Bob, consuming Bob's remaining // Finally, send payments from Carol to Bob, consuming Bob's remaining
// payment hashes. // payment hashes.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, carol, bobPayReqs[numInvoices/2:], err = completePaymentRequests(ctxt, carol, bobPayReqs[numInvoices/2:],
true) true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobChan, err = getChanInfo(ctxt, net.Bob) bobChan, err = getChanInfo(ctxt, net.Bob)
if err != nil { if err != nil {
t.Fatalf("unable to get bob chan info: %v", err) t.Fatalf("unable to get bob chan info: %v", err)
@ -6183,7 +6164,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// Now query for Bob's channel state, it should show that he's at a // Now query for Bob's channel state, it should show that he's at a
// state number in the past, not the *latest* state. // state number in the past, not the *latest* state.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobChan, err = getChanInfo(ctxt, net.Bob) bobChan, err = getChanInfo(ctxt, net.Bob)
if err != nil { if err != nil {
t.Fatalf("unable to get bob chan info: %v", err) t.Fatalf("unable to get bob chan info: %v", err)
@ -6213,7 +6194,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Bob's breach transaction to show up in the mempool to ensure // Wait for Bob's breach transaction to show up in the mempool to ensure
// that Carol's node has started waiting for confirmations. // that Carol's node has started waiting for confirmations.
_, err = waitForTxInMempool(net.Miner.Node, 5*time.Second) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Bob's breach tx in mempool: %v", err) t.Fatalf("unable to find Bob's breach tx in mempool: %v", err)
} }
@ -6241,7 +6222,7 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// Query the mempool for Carol's justice transaction, this should be // Query the mempool for Carol's justice transaction, this should be
// broadcast as Bob's contract breaching transaction gets confirmed // broadcast as Bob's contract breaching transaction gets confirmed
// above. // above.
justiceTXID, err := waitForTxInMempool(net.Miner.Node, 5*time.Second) justiceTXID, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's justice tx in mempool: %v", err) t.Fatalf("unable to find Carol's justice tx in mempool: %v", err)
} }
@ -6295,7 +6276,6 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 10)
chanAmt = maxBtcFundingAmount chanAmt = maxBtcFundingAmount
paymentAmt = 10000 paymentAmt = 10000
numInvoices = 6 numInvoices = 6
@ -6337,7 +6317,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
// In order to test Dave's response to an uncooperative channel // In order to test Dave's response to an uncooperative channel
// closure by Carol, we'll first open up a channel between them with a // closure by Carol, we'll first open up a channel between them with a
// 0.5 BTC value. // 0.5 BTC value.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, dave, carol, ctxt, t, net, dave, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -6347,7 +6327,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
// With the channel open, we'll create a few invoices for Carol that // With the channel open, we'll create a few invoices for Carol that
// Dave will pay to in order to advance the state of the channel. // Dave will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolPayReqs, _, _, err := createPayReqs( carolPayReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numInvoices, ctxt, carol, paymentAmt, numInvoices,
) )
@ -6356,7 +6336,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
} }
// Wait for Dave to receive the channel edge from the funding manager. // Wait for Dave to receive the channel edge from the funding manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxt, chanPoint) err = dave.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("dave didn't see the dave->carol channel before "+ t.Fatalf("dave didn't see the dave->carol channel before "+
@ -6365,7 +6345,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
// Next query for Carol's channel state, as we sent 0 payments, Carol // Next query for Carol's channel state, as we sent 0 payments, Carol
// should now see her balance as being 0 satoshis. // should now see her balance as being 0 satoshis.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolChan, err := getChanInfo(ctxt, carol) carolChan, err := getChanInfo(ctxt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to get carol's channel info: %v", err) t.Fatalf("unable to get carol's channel info: %v", err)
@ -6403,7 +6383,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolChan, err = getChanInfo(ctxt, carol) carolChan, err = getChanInfo(ctxt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to get carol chan info: %v", err) t.Fatalf("unable to get carol chan info: %v", err)
@ -6421,7 +6401,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
// Now query for Carol's channel state, it should show that he's at a // Now query for Carol's channel state, it should show that he's at a
// state number in the past, not the *latest* state. // state number in the past, not the *latest* state.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolChan, err = getChanInfo(ctxt, carol) carolChan, err = getChanInfo(ctxt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to get carol chan info: %v", err) t.Fatalf("unable to get carol chan info: %v", err)
@ -6452,7 +6432,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
// Query the mempool for the breaching closing transaction, this should // Query the mempool for the breaching closing transaction, this should
// be broadcast by Carol when she force closes the channel above. // be broadcast by Carol when she force closes the channel above.
txid, err := waitForTxInMempool(net.Miner.Node, 20*time.Second) txid, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's force close tx in mempool: %v", t.Fatalf("unable to find Carol's force close tx in mempool: %v",
err) err)
@ -6483,7 +6463,7 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
// Query the mempool for Dave's justice transaction, this should be // Query the mempool for Dave's justice transaction, this should be
// broadcast as Carol's contract breaching transaction gets confirmed // broadcast as Carol's contract breaching transaction gets confirmed
// above. // above.
justiceTXID, err := waitForTxInMempool(net.Miner.Node, 15*time.Second) justiceTXID, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Dave's justice tx in mempool: %v", t.Fatalf("unable to find Dave's justice tx in mempool: %v",
err) err)
@ -6538,7 +6518,6 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 10)
chanAmt = maxBtcFundingAmount chanAmt = maxBtcFundingAmount
pushAmt = 200000 pushAmt = 200000
paymentAmt = 10000 paymentAmt = 10000
@ -6584,7 +6563,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// In order to test Dave's response to an uncooperative channel closure // In order to test Dave's response to an uncooperative channel closure
// by Carol, we'll first open up a channel between them with a // by Carol, we'll first open up a channel between them with a
// maxBtcFundingAmount (2^24) satoshis value. // maxBtcFundingAmount (2^24) satoshis value.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, dave, carol, ctxt, t, net, dave, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -6595,7 +6574,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// With the channel open, we'll create a few invoices for Carol that // With the channel open, we'll create a few invoices for Carol that
// Dave will pay to in order to advance the state of the channel. // Dave will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolPayReqs, _, _, err := createPayReqs( carolPayReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numInvoices, ctxt, carol, paymentAmt, numInvoices,
) )
@ -6606,7 +6585,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// We'll introduce a closure to validate that Carol's current balance // We'll introduce a closure to validate that Carol's current balance
// matches the given expected amount. // matches the given expected amount.
checkCarolBalance := func(expectedAmt int64) { checkCarolBalance := func(expectedAmt int64) {
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolChan, err := getChanInfo(ctxt, carol) carolChan, err := getChanInfo(ctxt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to get carol's channel info: %v", err) t.Fatalf("unable to get carol's channel info: %v", err)
@ -6622,7 +6601,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// number of updates is at least as large as the provided minimum // number of updates is at least as large as the provided minimum
// number. // number.
checkCarolNumUpdatesAtLeast := func(minimum uint64) { checkCarolNumUpdatesAtLeast := func(minimum uint64) {
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolChan, err := getChanInfo(ctxt, carol) carolChan, err := getChanInfo(ctxt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to get carol's channel info: %v", err) t.Fatalf("unable to get carol's channel info: %v", err)
@ -6635,7 +6614,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
} }
// Wait for Dave to receive the channel edge from the funding manager. // Wait for Dave to receive the channel edge from the funding manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxt, chanPoint) err = dave.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("dave didn't see the dave->carol channel before "+ t.Fatalf("dave didn't see the dave->carol channel before "+
@ -6657,7 +6636,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// At this point, we'll also send over a set of HTLC's from Carol to // At this point, we'll also send over a set of HTLC's from Carol to
// Dave. This ensures that the final revoked transaction has HTLC's in // Dave. This ensures that the final revoked transaction has HTLC's in
// both directions. // both directions.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
davePayReqs, _, _, err := createPayReqs( davePayReqs, _, _, err := createPayReqs(
ctxt, dave, paymentAmt, numInvoices, ctxt, dave, paymentAmt, numInvoices,
) )
@ -6677,7 +6656,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// Next query for Carol's channel state, as we sent 3 payments of 10k // Next query for Carol's channel state, as we sent 3 payments of 10k
// satoshis each, however Carol should now see her balance as being // satoshis each, however Carol should now see her balance as being
// equal to the push amount in satoshis since she has not settled. // equal to the push amount in satoshis since she has not settled.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolChan, err := getChanInfo(ctxt, carol) carolChan, err := getChanInfo(ctxt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to get carol's channel info: %v", err) t.Fatalf("unable to get carol's channel info: %v", err)
@ -6747,7 +6726,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// Now query for Carol's channel state, it should show that she's at a // Now query for Carol's channel state, it should show that she's at a
// state number in the past, *not* the latest state. // state number in the past, *not* the latest state.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolChan, err = getChanInfo(ctxt, carol) carolChan, err = getChanInfo(ctxt, carol)
if err != nil { if err != nil {
t.Fatalf("unable to get carol chan info: %v", err) t.Fatalf("unable to get carol chan info: %v", err)
@ -6769,7 +6748,7 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// Query the mempool for the breaching closing transaction, this should // Query the mempool for the breaching closing transaction, this should
// be broadcast by Carol when she force closes the channel above. // be broadcast by Carol when she force closes the channel above.
txid, err := waitForTxInMempool(net.Miner.Node, 20*time.Second) txid, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's force close tx in mempool: %v", t.Fatalf("unable to find Carol's force close tx in mempool: %v",
err) err)
@ -6980,7 +6959,6 @@ func assertNumPendingChannels(t *harnessTest, node *lntest.HarnessNode,
func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) { func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 10)
chanAmt = maxBtcFundingAmount chanAmt = maxBtcFundingAmount
paymentAmt = 10000 paymentAmt = 10000
numInvoices = 6 numInvoices = 6
@ -7026,7 +7004,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// We'll first open up a channel between them with a 0.5 BTC // We'll first open up a channel between them with a 0.5 BTC
// value. // value.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, carol, node, ctxt, t, net, carol, node,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -7039,7 +7017,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// the channel. // the channel.
// TODO(halseth): have dangling HTLCs on the commitment, able to // TODO(halseth): have dangling HTLCs on the commitment, able to
// retrive funds? // retrive funds?
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, node, paymentAmt, numInvoices, ctxt, node, paymentAmt, numInvoices,
) )
@ -7049,7 +7027,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Carol to receive the channel edge from the funding // Wait for Carol to receive the channel edge from the funding
// manager. // manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint) err = carol.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("carol didn't see the carol->%s channel "+ t.Fatalf("carol didn't see the carol->%s channel "+
@ -7058,7 +7036,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// Send payments from Carol using 3 of the payment hashes // Send payments from Carol using 3 of the payment hashes
// generated above. // generated above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, carol, err = completePaymentRequests(ctxt, carol,
payReqs[:numInvoices/2], true) payReqs[:numInvoices/2], true)
if err != nil { if err != nil {
@ -7071,7 +7049,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
var nodeChan *lnrpc.Channel var nodeChan *lnrpc.Channel
var predErr error var predErr error
err = lntest.WaitPredicate(func() bool { err = lntest.WaitPredicate(func() bool {
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bChan, err := getChanInfo(ctxt, node) bChan, err := getChanInfo(ctxt, node)
if err != nil { if err != nil {
t.Fatalf("unable to get channel info: %v", err) t.Fatalf("unable to get channel info: %v", err)
@ -7113,14 +7091,14 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// Finally, send more payments from , using the remaining // Finally, send more payments from , using the remaining
// payment hashes. // payment hashes.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, carol, err = completePaymentRequests(ctxt, carol,
payReqs[numInvoices/2:], true) payReqs[numInvoices/2:], true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
nodeChan, err = getChanInfo(ctxt, node) nodeChan, err = getChanInfo(ctxt, node)
if err != nil { if err != nil {
t.Fatalf("unable to get dave chan info: %v", err) t.Fatalf("unable to get dave chan info: %v", err)
@ -7139,7 +7117,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// Now query for the channel state, it should show that it's at // Now query for the channel state, it should show that it's at
// a state number in the past, not the *latest* state. // a state number in the past, not the *latest* state.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
nodeChan, err = getChanInfo(ctxt, node) nodeChan, err = getChanInfo(ctxt, node)
if err != nil { if err != nil {
t.Fatalf("unable to get dave chan info: %v", err) t.Fatalf("unable to get dave chan info: %v", err)
@ -7184,7 +7162,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// Upon reconnection, the nodes should detect that Dave is out of sync. // Upon reconnection, the nodes should detect that Dave is out of sync.
// Carol should force close the channel using her latest commitment. // Carol should force close the channel using her latest commitment.
forceClose, err := waitForTxInMempool(net.Miner.Node, 15*time.Second) forceClose, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's force close tx in mempool: %v", t.Fatalf("unable to find Carol's force close tx in mempool: %v",
err) err)
@ -7210,7 +7188,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
assertTxInBlock(t, block, forceClose) assertTxInBlock(t, block, forceClose)
// Dave should sweep his funds immediately, as they are not timelocked. // Dave should sweep his funds immediately, as they are not timelocked.
daveSweep, err := waitForTxInMempool(net.Miner.Node, 15*time.Second) daveSweep, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Dave's sweep tx in mempool: %v", err) t.Fatalf("unable to find Dave's sweep tx in mempool: %v", err)
} }
@ -7245,7 +7223,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// After the Carol's output matures, she should also reclaim her funds. // After the Carol's output matures, she should also reclaim her funds.
mineBlocks(t, net, defaultCSV-1) mineBlocks(t, net, defaultCSV-1)
carolSweep, err := waitForTxInMempool(net.Miner.Node, 15*time.Second) carolSweep, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's sweep tx in mempool: %v", err) t.Fatalf("unable to find Carol's sweep tx in mempool: %v", err)
} }
@ -7289,11 +7267,11 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
carolStartingBalance = carolBalResp.ConfirmedBalance carolStartingBalance = carolBalResp.ConfirmedBalance
// Now let Carol force close the channel while Dave is offline. // Now let Carol force close the channel while Dave is offline.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPoint2, true) closeChannelAndAssert(ctxt, t, net, carol, chanPoint2, true)
// Wait for the channel to be marked pending force close. // Wait for the channel to be marked pending force close.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = waitForChannelPendingForceClose(ctxt, carol, chanPoint2) err = waitForChannelPendingForceClose(ctxt, carol, chanPoint2)
if err != nil { if err != nil {
t.Fatalf("channel not pending force close: %v", err) t.Fatalf("channel not pending force close: %v", err)
@ -7302,7 +7280,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// Mine enough blocks for Carol to sweep her funds. // Mine enough blocks for Carol to sweep her funds.
mineBlocks(t, net, defaultCSV) mineBlocks(t, net, defaultCSV)
carolSweep, err = waitForTxInMempool(net.Miner.Node, 15*time.Second) carolSweep, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's sweep tx in mempool: %v", err) t.Fatalf("unable to find Carol's sweep tx in mempool: %v", err)
} }
@ -7334,7 +7312,7 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Dave should sweep his funds. // Dave should sweep his funds.
_, err = waitForTxInMempool(net.Miner.Node, 15*time.Second) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Dave's sweep tx in mempool: %v", err) t.Fatalf("unable to find Dave's sweep tx in mempool: %v", err)
} }
@ -7393,21 +7371,20 @@ func testHtlcErrorPropagation(net *lntest.NetworkHarness, t *harnessTest) {
// In this test we wish to exercise the daemon's correct parsing, // In this test we wish to exercise the daemon's correct parsing,
// handling, and propagation of errors that occur while processing a // handling, and propagation of errors that occur while processing a
// multi-hop payment. // multi-hop payment.
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
const chanAmt = maxBtcFundingAmount const chanAmt = maxBtcFundingAmount
// First establish a channel with a capacity of 0.5 BTC between Alice // First establish a channel with a capacity of 0.5 BTC between Alice
// and Bob. // and Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: chanAmt, Amt: chanAmt,
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPointAlice); err != nil { if err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPointAlice); err != nil {
t.Fatalf("channel not seen by alice before timeout: %v", err) t.Fatalf("channel not seen by alice before timeout: %v", err)
} }
@ -7447,7 +7424,7 @@ func testHtlcErrorPropagation(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil {
t.Fatalf("unable to connect bob to carol: %v", err) t.Fatalf("unable to connect bob to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
const bobChanAmt = maxBtcFundingAmount const bobChanAmt = maxBtcFundingAmount
chanPointBob := openChannelAndAssert( chanPointBob := openChannelAndAssert(
ctxt, t, net, net.Bob, carol, ctxt, t, net, net.Bob, carol,
@ -7498,7 +7475,7 @@ out:
// Before we send the payment, ensure that the announcement of the new // Before we send the payment, ensure that the announcement of the new
// channel has been processed by Alice. // channel has been processed by Alice.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPointBob); err != nil { if err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPointBob); err != nil {
t.Fatalf("channel not seen by alice before timeout: %v", err) t.Fatalf("channel not seen by alice before timeout: %v", err)
} }
@ -7507,7 +7484,7 @@ out:
// an unknown payment hash. // an unknown payment hash.
// TODO(roasbeef): return failure response rather than failing entire // TODO(roasbeef): return failure response rather than failing entire
// stream on payment error. // stream on payment error.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
sendReq := &lnrpc.SendRequest{ sendReq := &lnrpc.SendRequest{
PaymentHashString: hex.EncodeToString(makeFakePayHash(t)), PaymentHashString: hex.EncodeToString(makeFakePayHash(t)),
DestString: hex.EncodeToString(carol.PubKey[:]), DestString: hex.EncodeToString(carol.PubKey[:]),
@ -7542,7 +7519,7 @@ out:
DestString: hex.EncodeToString(carol.PubKey[:]), DestString: hex.EncodeToString(carol.PubKey[:]),
Amt: 1000, // 10k satoshis are expected. Amt: 1000, // 10k satoshis are expected.
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
resp, err = net.Alice.SendPaymentSync(ctxt, sendReq) resp, err = net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
t.Fatalf("unable to send payment: %v", err) t.Fatalf("unable to send payment: %v", err)
@ -7624,7 +7601,7 @@ out:
sendReq = &lnrpc.SendRequest{ sendReq = &lnrpc.SendRequest{
PaymentRequest: carolInvoice3.PaymentRequest, PaymentRequest: carolInvoice3.PaymentRequest,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
resp, err = net.Alice.SendPaymentSync(ctxt, sendReq) resp, err = net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
t.Fatalf("unable to send payment: %v", err) t.Fatalf("unable to send payment: %v", err)
@ -7658,7 +7635,7 @@ out:
sendReq = &lnrpc.SendRequest{ sendReq = &lnrpc.SendRequest{
PaymentRequest: carolInvoice.PaymentRequest, PaymentRequest: carolInvoice.PaymentRequest,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
resp, err = net.Alice.SendPaymentSync(ctxt, sendReq) resp, err = net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
t.Fatalf("unable to send payment: %v", err) t.Fatalf("unable to send payment: %v", err)
@ -7676,7 +7653,7 @@ out:
// Finally, immediately close the channel. This function will also // Finally, immediately close the channel. This function will also
// block until the channel is closed and will additionally assert the // block until the channel is closed and will additionally assert the
// relevant channel closing post conditions. // relevant channel closing post conditions.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
// Force close Bob's final channel. // Force close Bob's final channel.
@ -7703,7 +7680,7 @@ func subscribeGraphNotifications(t *harnessTest, ctxb context.Context,
// We'll first start by establishing a notification client which will // We'll first start by establishing a notification client which will
// send us notifications upon detected changes in the channel graph. // send us notifications upon detected changes in the channel graph.
req := &lnrpc.GraphTopologySubscription{} req := &lnrpc.GraphTopologySubscription{}
ctx, cancelFunc := context.WithCancel(context.Background()) ctx, cancelFunc := context.WithCancel(ctxb)
topologyClient, err := node.SubscribeChannelGraph(ctx, req) topologyClient, err := node.SubscribeChannelGraph(ctx, req)
if err != nil { if err != nil {
t.Fatalf("unable to create topology client: %v", err) t.Fatalf("unable to create topology client: %v", err)
@ -7757,7 +7734,6 @@ func subscribeGraphNotifications(t *harnessTest, ctxb context.Context,
func testGraphTopologyNotifications(net *lntest.NetworkHarness, t *harnessTest) { func testGraphTopologyNotifications(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = maxBtcFundingAmount const chanAmt = maxBtcFundingAmount
timeout := time.Duration(time.Second * 5)
ctxb := context.Background() ctxb := context.Background()
// Let Alice subscribe to graph notifications. // Let Alice subscribe to graph notifications.
@ -7767,7 +7743,7 @@ func testGraphTopologyNotifications(net *lntest.NetworkHarness, t *harnessTest)
defer close(graphSub.quit) defer close(graphSub.quit)
// Open a new channel between Alice and Bob. // Open a new channel between Alice and Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -7837,7 +7813,7 @@ func testGraphTopologyNotifications(net *lntest.NetworkHarness, t *harnessTest)
// Now we'll test that updates are properly sent after channels are closed // Now we'll test that updates are properly sent after channels are closed
// within the network. // within the network.
ctxt, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
// Now that the channel has been closed, we should receive a // Now that the channel has been closed, we should receive a
@ -7892,7 +7868,7 @@ out:
// that a node that does not have any channels open is ignored, so first // that a node that does not have any channels open is ignored, so first
// we disconnect Alice and Bob, open a channel between Bob and Carol, // we disconnect Alice and Bob, open a channel between Bob and Carol,
// and finally connect Alice to Bob again. // and finally connect Alice to Bob again.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.DisconnectNodes(ctxt, net.Alice, net.Bob); err != nil { if err := net.DisconnectNodes(ctxt, net.Alice, net.Bob); err != nil {
t.Fatalf("unable to disconnect alice and bob: %v", err) t.Fatalf("unable to disconnect alice and bob: %v", err)
} }
@ -7905,7 +7881,7 @@ out:
if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Bob, carol); err != nil {
t.Fatalf("unable to connect bob to carol: %v", err) t.Fatalf("unable to connect bob to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint = openChannelAndAssert( chanPoint = openChannelAndAssert(
ctxt, t, net, net.Bob, carol, ctxt, t, net, net.Bob, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -7974,7 +7950,7 @@ out:
} }
// Close the channel between Bob and Carol. // Close the channel between Bob and Carol.
ctxt, _ = context.WithTimeout(context.Background(), timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint, false)
} }
@ -8010,8 +7986,7 @@ func testNodeAnnouncement(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("unable to connect bob to carol: %v", err) t.Fatalf("unable to connect bob to carol: %v", err)
} }
timeout := time.Duration(time.Second * 5) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
ctxt, _ := context.WithTimeout(ctxb, timeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Bob, dave, ctxt, t, net, net.Bob, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -8067,19 +8042,18 @@ func testNodeAnnouncement(net *lntest.NetworkHarness, t *harnessTest) {
) )
// Close the channel between Bob and Dave. // Close the channel between Bob and Dave.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint, false)
} }
func testNodeSignVerify(net *lntest.NetworkHarness, t *harnessTest) { func testNodeSignVerify(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
chanAmt := maxBtcFundingAmount chanAmt := maxBtcFundingAmount
pushAmt := btcutil.Amount(100000) pushAmt := btcutil.Amount(100000)
// Create a channel between alice and bob. // Create a channel between alice and bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
aliceBobCh := openChannelAndAssert( aliceBobCh := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -8143,7 +8117,7 @@ func testNodeSignVerify(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Close the channel between alice and bob. // Close the channel between alice and bob.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, aliceBobCh, false) closeChannelAndAssert(ctxt, t, net, net.Alice, aliceBobCh, false)
} }
@ -8154,14 +8128,13 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 15)
paymentAmt = 100 paymentAmt = 100
) )
// First establish a channel with a capacity equals to the overall // First establish a channel with a capacity equals to the overall
// amount of payments, between Alice and Bob, at the end of the test // amount of payments, between Alice and Bob, at the end of the test
// Alice should send all money from her side to Bob. // Alice should send all money from her side to Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
channelCapacity := btcutil.Amount(paymentAmt * 2000) channelCapacity := btcutil.Amount(paymentAmt * 2000)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
@ -8170,7 +8143,7 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
info, err := getChanInfo(ctxt, net.Alice) info, err := getChanInfo(ctxt, net.Alice)
if err != nil { if err != nil {
t.Fatalf("unable to get alice channel info: %v", err) t.Fatalf("unable to get alice channel info: %v", err)
@ -8190,7 +8163,7 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
// With the channel open, we'll create invoices for Bob that Alice // With the channel open, we'll create invoices for Bob that Alice
// will pay to in order to advance the state of the channel. // will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobPayReqs, _, _, err := createPayReqs( bobPayReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, ctxt, net.Bob, paymentAmt, numInvoices,
) )
@ -8199,7 +8172,7 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Wait for Alice to receive the channel edge from the funding manager. // Wait for Alice to receive the channel edge from the funding manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't see the alice->bob channel before "+ t.Fatalf("alice didn't see the alice->bob channel before "+
@ -8256,7 +8229,7 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
// Next query for Bob's and Alice's channel states, in order to confirm // Next query for Bob's and Alice's channel states, in order to confirm
// that all payment have been successful transmitted. // that all payment have been successful transmitted.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
aliceChan, err := getChanInfo(ctxt, net.Alice) aliceChan, err := getChanInfo(ctxt, net.Alice)
if len(aliceChan.PendingHtlcs) != 0 { if len(aliceChan.PendingHtlcs) != 0 {
t.Fatalf("alice's pending htlcs is incorrect, got %v, "+ t.Fatalf("alice's pending htlcs is incorrect, got %v, "+
@ -8277,7 +8250,7 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
// Wait for Bob to receive revocation from Alice. // Wait for Bob to receive revocation from Alice.
time.Sleep(2 * time.Second) time.Sleep(2 * time.Second)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobChan, err := getChanInfo(ctxt, net.Bob) bobChan, err := getChanInfo(ctxt, net.Bob)
if err != nil { if err != nil {
t.Fatalf("unable to get bob's channel info: %v", err) t.Fatalf("unable to get bob's channel info: %v", err)
@ -8301,7 +8274,7 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
// Finally, immediately close the channel. This function will also // Finally, immediately close the channel. This function will also
// block until the channel is closed and will additionally assert the // block until the channel is closed and will additionally assert the
// relevant channel closing post conditions. // relevant channel closing post conditions.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
@ -8311,14 +8284,13 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
ctxb := context.Background() ctxb := context.Background()
const ( const (
timeout = time.Duration(time.Second * 5)
paymentAmt = 1000 paymentAmt = 1000
) )
// First establish a channel with a capacity equals to the overall // First establish a channel with a capacity equals to the overall
// amount of payments, between Alice and Bob, at the end of the test // amount of payments, between Alice and Bob, at the end of the test
// Alice should send all money from her side to Bob. // Alice should send all money from her side to Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -8327,7 +8299,7 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
info, err := getChanInfo(ctxt, net.Alice) info, err := getChanInfo(ctxt, net.Alice)
if err != nil { if err != nil {
t.Fatalf("unable to get alice channel info: %v", err) t.Fatalf("unable to get alice channel info: %v", err)
@ -8343,7 +8315,7 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
// With the channel open, we'll create invoices for Bob that Alice // With the channel open, we'll create invoices for Bob that Alice
// will pay to in order to advance the state of the channel. // will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobPayReqs, _, _, err := createPayReqs( bobPayReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, ctxt, net.Bob, paymentAmt, numInvoices,
) )
@ -8353,7 +8325,7 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
// With the channel open, we'll create invoices for Alice that Bob // With the channel open, we'll create invoices for Alice that Bob
// will pay to in order to advance the state of the channel. // will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
alicePayReqs, _, _, err := createPayReqs( alicePayReqs, _, _, err := createPayReqs(
ctxt, net.Alice, paymentAmt, numInvoices, ctxt, net.Alice, paymentAmt, numInvoices,
) )
@ -8362,7 +8334,7 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
} }
// Wait for Alice to receive the channel edge from the funding manager. // Wait for Alice to receive the channel edge from the funding manager.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint); err != nil { if err = net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint); err != nil {
t.Fatalf("alice didn't see the alice->bob channel before "+ t.Fatalf("alice didn't see the alice->bob channel before "+
"timeout: %v", err) "timeout: %v", err)
@ -8458,7 +8430,7 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
// states, i.e. balance info. // states, i.e. balance info.
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
aliceInfo, err := getChanInfo(ctxt, net.Alice) aliceInfo, err := getChanInfo(ctxt, net.Alice)
if err != nil { if err != nil {
t.Fatalf("unable to get bob's channel info: %v", err) t.Fatalf("unable to get bob's channel info: %v", err)
@ -8478,7 +8450,7 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
// Next query for Bob's and Alice's channel states, in order to confirm // Next query for Bob's and Alice's channel states, in order to confirm
// that all payment have been successful transmitted. // that all payment have been successful transmitted.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobInfo, err := getChanInfo(ctxt, net.Bob) bobInfo, err := getChanInfo(ctxt, net.Bob)
if err != nil { if err != nil {
t.Fatalf("unable to get bob's channel info: %v", err) t.Fatalf("unable to get bob's channel info: %v", err)
@ -8500,7 +8472,7 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
// Finally, immediately close the channel. This function will also // Finally, immediately close the channel. This function will also
// block until the channel is closed and will additionally assert the // block until the channel is closed and will additionally assert the
// relevant channel closing post conditions. // relevant channel closing post conditions.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPoint, false)
} }
@ -8637,8 +8609,7 @@ func createThreeHopHodlNetwork(t *harnessTest,
// which will act as the first leg for out multi-hop HTLC. // which will act as the first leg for out multi-hop HTLC.
const chanAmt = 1000000 const chanAmt = 1000000
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
ctxt, _ := context.WithTimeout(ctxb, timeout)
aliceChanPoint := openChannelAndAssert( aliceChanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -8646,13 +8617,13 @@ func createThreeHopHodlNetwork(t *harnessTest,
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err := net.Alice.WaitForNetworkChannelOpen(ctxt, aliceChanPoint) err := net.Alice.WaitForNetworkChannelOpen(ctxt, aliceChanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't report channel: %v", err) t.Fatalf("alice didn't report channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxt, aliceChanPoint) err = net.Bob.WaitForNetworkChannelOpen(ctxt, aliceChanPoint)
if err != nil { if err != nil {
t.Fatalf("bob didn't report channel: %v", err) t.Fatalf("bob didn't report channel: %v", err)
@ -8671,24 +8642,24 @@ func createThreeHopHodlNetwork(t *harnessTest,
// We'll then create a channel from Bob to Carol. After this channel is // We'll then create a channel from Bob to Carol. After this channel is
// open, our topology looks like: A -> B -> C. // open, our topology looks like: A -> B -> C.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
bobChanPoint := openChannelAndAssert( bobChanPoint := openChannelAndAssert(
ctxt, t, net, net.Bob, carol, ctxt, t, net, net.Bob, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
Amt: chanAmt, Amt: chanAmt,
}, },
) )
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Bob.WaitForNetworkChannelOpen(ctxt, bobChanPoint) err = net.Bob.WaitForNetworkChannelOpen(ctxt, bobChanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't report channel: %v", err) t.Fatalf("alice didn't report channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, bobChanPoint) err = carol.WaitForNetworkChannelOpen(ctxt, bobChanPoint)
if err != nil { if err != nil {
t.Fatalf("bob didn't report channel: %v", err) t.Fatalf("bob didn't report channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.Alice.WaitForNetworkChannelOpen(ctxt, bobChanPoint) err = net.Alice.WaitForNetworkChannelOpen(ctxt, bobChanPoint)
if err != nil { if err != nil {
t.Fatalf("bob didn't report channel: %v", err) t.Fatalf("bob didn't report channel: %v", err)
@ -8703,7 +8674,6 @@ func createThreeHopHodlNetwork(t *harnessTest,
// timeout has been reached, then we should sweep it on-chain, and cancel the // timeout has been reached, then we should sweep it on-chain, and cancel the
// HTLC backwards. // HTLC backwards.
func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) { func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
// First, we'll create a three hop network: Alice -> Bob -> Carol, with // First, we'll create a three hop network: Alice -> Bob -> Carol, with
@ -8787,7 +8757,7 @@ func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("unable to create sha hash: %v", err) t.Fatalf("unable to create sha hash: %v", err)
} }
assertSpendingTxInMempool( assertSpendingTxInMempool(
t, net.Miner.Node, time.Second*10, wire.OutPoint{ t, net.Miner.Node, minerMempoolTimeout, wire.OutPoint{
Hash: *bobFundingTxid, Hash: *bobFundingTxid,
Index: bobChanPoint.OutputIndex, Index: bobChanPoint.OutputIndex,
}, },
@ -8818,7 +8788,7 @@ func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("unable to generate blocks: %v", err) t.Fatalf("unable to generate blocks: %v", err)
} }
_, err = waitForTxInMempool(net.Miner.Node, 10*time.Second) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's funding output sweep tx: %v", err) t.Fatalf("unable to find bob's funding output sweep tx: %v", err)
} }
@ -8831,7 +8801,7 @@ func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) {
// The second layer HTLC timeout transaction should now have been // The second layer HTLC timeout transaction should now have been
// broadcast on-chain. // broadcast on-chain.
secondLayerHash, err := waitForTxInMempool(net.Miner.Node, time.Second*10) secondLayerHash, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's second layer transaction") t.Fatalf("unable to find bob's second layer transaction")
} }
@ -8892,7 +8862,7 @@ func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) {
if _, err := net.Miner.Node.Generate(4); err != nil { if _, err := net.Miner.Node.Generate(4); err != nil {
t.Fatalf("unable to generate blocks: %v", err) t.Fatalf("unable to generate blocks: %v", err)
} }
_, err = waitForTxInMempool(net.Miner.Node, time.Second*10) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's sweeping transaction: %v", err) t.Fatalf("unable to find bob's sweeping transaction: %v", err)
} }
@ -8926,7 +8896,7 @@ func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf(predErr.Error()) t.Fatalf(predErr.Error())
} }
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false)
} }
@ -8936,7 +8906,6 @@ func testMultiHopHtlcLocalTimeout(net *lntest.NetworkHarness, t *harnessTest) {
// node that sent the outgoing HTLC should extract the preimage from the sweep // node that sent the outgoing HTLC should extract the preimage from the sweep
// transaction, and finish settling the HTLC backwards into the route. // transaction, and finish settling the HTLC backwards into the route.
func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest) { func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
// First, we'll create a three hop network: Alice -> Bob -> Carol, with // First, we'll create a three hop network: Alice -> Bob -> Carol, with
@ -8996,7 +8965,7 @@ func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest)
// At this point, Carol should broadcast her active commitment // At this point, Carol should broadcast her active commitment
// transaction in order to go to the chain and sweep her HTLC. // transaction in order to go to the chain and sweep her HTLC.
txids, err := waitForNTxsInMempool(net.Miner.Node, 1, time.Second*20) txids, err := waitForNTxsInMempool(net.Miner.Node, 1, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("expected transaction not found in mempool: %v", err) t.Fatalf("expected transaction not found in mempool: %v", err)
} }
@ -9039,7 +9008,7 @@ func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest)
// second level transaction in the mempool, he will extract the // second level transaction in the mempool, he will extract the
// preimage and settle the HTLC back off-chain. // preimage and settle the HTLC back off-chain.
secondLevelHashes, err := waitForNTxsInMempool(net.Miner.Node, 2, secondLevelHashes, err := waitForNTxsInMempool(net.Miner.Node, 2,
time.Second*15) minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("transactions not found in mempool: %v", err) t.Fatalf("transactions not found in mempool: %v", err)
} }
@ -9120,7 +9089,7 @@ func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest)
} }
// We should have a new transaction in the mempool. // We should have a new transaction in the mempool.
_, err = waitForTxInMempool(net.Miner.Node, time.Second*10) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's sweeping transaction: %v", err) t.Fatalf("unable to find bob's sweeping transaction: %v", err)
} }
@ -9151,7 +9120,7 @@ func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest)
// We'll close out the channel between Alice and Bob, then shutdown // We'll close out the channel between Alice and Bob, then shutdown
// carol to conclude the test. // carol to conclude the test.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false)
} }
@ -9163,7 +9132,6 @@ func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest)
func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness, func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
t *harnessTest) { t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
// First, we'll create a three hop network: Alice -> Bob -> Carol, with // First, we'll create a three hop network: Alice -> Bob -> Carol, with
@ -9218,7 +9186,7 @@ func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
// Now that all parties have the HTLC locked in, we'll immediately // Now that all parties have the HTLC locked in, we'll immediately
// force close the Bob -> Carol channel. This should trigger contract // force close the Bob -> Carol channel. This should trigger contract
// resolution mode for both of them. // resolution mode for both of them.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, bobChanPoint, true) closeChannelAndAssert(ctxt, t, net, net.Bob, bobChanPoint, true)
// At this point, Bob should have a pending force close channel as he // At this point, Bob should have a pending force close channel as he
@ -9258,7 +9226,7 @@ func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
t.Fatalf("unable to generate blocks: %v", err) t.Fatalf("unable to generate blocks: %v", err)
} }
_, err = waitForTxInMempool(net.Miner.Node, 10*time.Second) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's funding output sweep tx: %v", err) t.Fatalf("unable to find bob's funding output sweep tx: %v", err)
} }
@ -9307,7 +9275,7 @@ func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
// We should also now find a transaction in the mempool, as Bob should // We should also now find a transaction in the mempool, as Bob should
// have broadcast his second layer timeout transaction. // have broadcast his second layer timeout transaction.
timeoutTx, err := waitForTxInMempool(net.Miner.Node, 10*time.Second) timeoutTx, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's htlc timeout tx: %v", err) t.Fatalf("unable to find bob's htlc timeout tx: %v", err)
} }
@ -9374,7 +9342,7 @@ func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
t.Fatalf("unable to mine blocks: %v", err) t.Fatalf("unable to mine blocks: %v", err)
} }
sweepTx, err := waitForTxInMempool(net.Miner.Node, 10*time.Second) sweepTx, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's htlc sweep tx: %v", err) t.Fatalf("unable to find bob's htlc sweep tx: %v", err)
} }
@ -9407,7 +9375,7 @@ func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
t.Fatalf(predErr.Error()) t.Fatalf(predErr.Error())
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false)
} }
@ -9419,7 +9387,6 @@ func testMultiHopLocalForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness, func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
t *harnessTest) { t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
// First, we'll create a three hop network: Alice -> Bob -> Carol, with // First, we'll create a three hop network: Alice -> Bob -> Carol, with
@ -9474,7 +9441,7 @@ func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
// At this point, we'll now instruct Carol to force close the // At this point, we'll now instruct Carol to force close the
// transaction. This will let us exercise that Bob is able to sweep the // transaction. This will let us exercise that Bob is able to sweep the
// expired HTLC on Carol's version of the commitment transaction. // expired HTLC on Carol's version of the commitment transaction.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, bobChanPoint, true) closeChannelAndAssert(ctxt, t, net, carol, bobChanPoint, true)
// At this point, Bob should have a pending force close channel as // At this point, Bob should have a pending force close channel as
@ -9502,7 +9469,7 @@ func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
} }
// Bob can sweep his output immediately. // Bob can sweep his output immediately.
_, err = waitForTxInMempool(net.Miner.Node, 20*time.Second) _, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's funding output sweep tx: %v", t.Fatalf("unable to find bob's funding output sweep tx: %v",
err) err)
@ -9554,7 +9521,7 @@ func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
// Bob's sweeping transaction should now be found in the mempool at // Bob's sweeping transaction should now be found in the mempool at
// this point. // this point.
sweepTx, err := waitForTxInMempool(net.Miner.Node, time.Second*10) sweepTx, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
// If Bob's transaction isn't yet in the mempool, then due to // If Bob's transaction isn't yet in the mempool, then due to
// internal message passing and the low period between blocks // internal message passing and the low period between blocks
@ -9567,7 +9534,7 @@ func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
if _, err := net.Miner.Node.Generate(1); err != nil { if _, err := net.Miner.Node.Generate(1); err != nil {
t.Fatalf("unable to generate block: %v", err) t.Fatalf("unable to generate block: %v", err)
} }
sweepTx, err = waitForTxInMempool(net.Miner.Node, time.Second*10) sweepTx, err = waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's sweeping transaction: "+ t.Fatalf("unable to find bob's sweeping transaction: "+
"%v", err) "%v", err)
@ -9621,7 +9588,7 @@ func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
// We'll close out the test by closing the channel from Alice to Bob, // We'll close out the test by closing the channel from Alice to Bob,
// and then shutting down the new node we created as its no longer // and then shutting down the new node we created as its no longer
// needed. // needed.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false) closeChannelAndAssert(ctxt, t, net, net.Alice, aliceChanPoint, false)
} }
@ -9630,7 +9597,6 @@ func testMultiHopRemoteForceCloseOnChainHtlcTimeout(net *lntest.NetworkHarness,
// preimage via the witness beacon, we properly settle the HTLC on-chain in // preimage via the witness beacon, we properly settle the HTLC on-chain in
// order to ensure we don't lose any funds. // order to ensure we don't lose any funds.
func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest) { func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
// First, we'll create a three hop network: Alice -> Bob -> Carol, with // First, we'll create a three hop network: Alice -> Bob -> Carol, with
@ -9682,7 +9648,7 @@ func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest)
// At this point, Bob decides that he wants to exit the channel // At this point, Bob decides that he wants to exit the channel
// immediately, so he force closes his commitment transaction. // immediately, so he force closes his commitment transaction.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
bobForceClose := closeChannelAndAssert(ctxt, t, net, net.Bob, bobForceClose := closeChannelAndAssert(ctxt, t, net, net.Bob,
aliceChanPoint, true) aliceChanPoint, true)
@ -9694,7 +9660,7 @@ func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest)
} }
// Carol's commitment transaction should now be in the mempool. // Carol's commitment transaction should now be in the mempool.
txids, err := waitForNTxsInMempool(net.Miner.Node, 1, time.Second*15) txids, err := waitForNTxsInMempool(net.Miner.Node, 1, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("transactions not found in mempool: %v", err) t.Fatalf("transactions not found in mempool: %v", err)
} }
@ -9736,7 +9702,7 @@ func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest)
// immediately, as the output is not timelocked since Carol was the one // immediately, as the output is not timelocked since Carol was the one
// force closing. // force closing.
commitSpends, err := waitForNTxsInMempool(net.Miner.Node, 2, commitSpends, err := waitForNTxsInMempool(net.Miner.Node, 2,
time.Second*20) minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("transactions not found in mempool: %v", err) t.Fatalf("transactions not found in mempool: %v", err)
} }
@ -9771,7 +9737,7 @@ func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest)
// will extract the preimage and broadcast a second level tx to claim // will extract the preimage and broadcast a second level tx to claim
// the HTLC in his (already closed) channel with Alice. // the HTLC in his (already closed) channel with Alice.
bobSecondLvlTx, err := waitForTxInMempool(net.Miner.Node, bobSecondLvlTx, err := waitForTxInMempool(net.Miner.Node,
time.Second*20) minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("transactions not found in mempool: %v", err) t.Fatalf("transactions not found in mempool: %v", err)
} }
@ -9850,7 +9816,7 @@ func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest)
} }
bobSecondLevelCSV -= carolSecondLevelCSV bobSecondLevelCSV -= carolSecondLevelCSV
carolSweep, err := waitForTxInMempool(net.Miner.Node, time.Second*10) carolSweep, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's sweeping transaction: %v", err) t.Fatalf("unable to find Carol's sweeping transaction: %v", err)
} }
@ -9860,7 +9826,7 @@ func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest)
block = mineBlocks(t, net, bobSecondLevelCSV)[0] block = mineBlocks(t, net, bobSecondLevelCSV)[0]
assertTxInBlock(t, block, carolSweep) assertTxInBlock(t, block, carolSweep)
bobSweep, err := waitForTxInMempool(net.Miner.Node, time.Second*10) bobSweep, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find bob's sweeping transaction") t.Fatalf("unable to find bob's sweeping transaction")
} }
@ -9954,7 +9920,6 @@ func testMultiHopHtlcLocalChainClaim(net *lntest.NetworkHarness, t *harnessTest)
// we found out the preimage via the witness beacon, we properly settle the // we found out the preimage via the witness beacon, we properly settle the
// HTLC on-chain in order to ensure that we don't lose any funds. // HTLC on-chain in order to ensure that we don't lose any funds.
func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest) { func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 15)
ctxb := context.Background() ctxb := context.Background()
// First, we'll create a three hop network: Alice -> Bob -> Carol, with // First, we'll create a three hop network: Alice -> Bob -> Carol, with
@ -10007,7 +9972,7 @@ func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest
// Next, Alice decides that she wants to exit the channel, so she'll // Next, Alice decides that she wants to exit the channel, so she'll
// immediately force close the channel by broadcast her commitment // immediately force close the channel by broadcast her commitment
// transaction. // transaction.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelCloseTimeout)
aliceForceClose := closeChannelAndAssert(ctxt, t, net, net.Alice, aliceForceClose := closeChannelAndAssert(ctxt, t, net, net.Alice,
aliceChanPoint, true) aliceChanPoint, true)
@ -10040,7 +10005,7 @@ func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest
} }
// Carol's commitment transaction should now be in the mempool. // Carol's commitment transaction should now be in the mempool.
txids, err := waitForNTxsInMempool(net.Miner.Node, 1, time.Second*15) txids, err := waitForNTxsInMempool(net.Miner.Node, 1, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("transactions not found in mempool: %v", err) t.Fatalf("transactions not found in mempool: %v", err)
} }
@ -10082,7 +10047,7 @@ func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest
// immediately, as the output is not timelocked since Carol was the one // immediately, as the output is not timelocked since Carol was the one
// force closing. // force closing.
commitSpends, err := waitForNTxsInMempool(net.Miner.Node, 2, commitSpends, err := waitForNTxsInMempool(net.Miner.Node, 2,
time.Second*20) minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("transactions not found in mempool: %v", err) t.Fatalf("transactions not found in mempool: %v", err)
} }
@ -10117,7 +10082,7 @@ func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest
// will extract the preimage and broadcast a sweep tx to directly claim // will extract the preimage and broadcast a sweep tx to directly claim
// the HTLC in his (already closed) channel with Alice. // the HTLC in his (already closed) channel with Alice.
bobHtlcSweep, err := waitForTxInMempool(net.Miner.Node, bobHtlcSweep, err := waitForTxInMempool(net.Miner.Node,
time.Second*20) minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("transactions not found in mempool: %v", err) t.Fatalf("transactions not found in mempool: %v", err)
} }
@ -10172,7 +10137,7 @@ func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest
t.Fatalf("unable to generate block: %v", err) t.Fatalf("unable to generate block: %v", err)
} }
carolSweep, err := waitForTxInMempool(net.Miner.Node, time.Second*10) carolSweep, err := waitForTxInMempool(net.Miner.Node, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("unable to find Carol's sweeping transaction: %v", err) t.Fatalf("unable to find Carol's sweeping transaction: %v", err)
} }
@ -10219,12 +10184,11 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
const pushAmt = btcutil.Amount(900000) const pushAmt = btcutil.Amount(900000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10267,7 +10231,7 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to dave: %v", err) t.Fatalf("unable to send coins to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointDave := openChannelAndAssert( chanPointDave := openChannelAndAssert(
ctxt, t, net, dave, net.Alice, ctxt, t, net, dave, net.Alice,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10305,7 +10269,7 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10346,7 +10310,7 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -10360,7 +10324,7 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, ctxt, carol, paymentAmt, numPayments,
) )
@ -10370,12 +10334,12 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// We'll wait for all parties to recognize the new channels within the // We'll wait for all parties to recognize the new channels within the
// network. // network.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave) err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave)
if err != nil { if err != nil {
t.Fatalf("dave didn't advertise his channel: %v", err) t.Fatalf("dave didn't advertise his channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol) err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("carol didn't advertise her channel in time: %v", t.Fatalf("carol didn't advertise her channel in time: %v",
@ -10386,7 +10350,7 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Bob, payReqs, false) err = completePaymentRequests(ctxt, net.Bob, payReqs, false)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -10419,13 +10383,13 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
} }
// Ensure all of the intermediate links are reconnected. // Ensure all of the intermediate links are reconnected.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.EnsureConnected(ctxt, net.Alice, dave) err = net.EnsureConnected(ctxt, net.Alice, dave)
if err != nil { if err != nil {
t.Fatalf("unable to reconnect alice and dave: %v", err) t.Fatalf("unable to reconnect alice and dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.EnsureConnected(ctxt, net.Bob, net.Alice) err = net.EnsureConnected(ctxt, net.Bob, net.Alice)
if err != nil { if err != nil {
t.Fatalf("unable to reconnect bob and alice: %v", err) t.Fatalf("unable to reconnect bob and alice: %v", err)
@ -10451,7 +10415,7 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("Node restart failed: %v", err) t.Fatalf("Node restart failed: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.EnsureConnected(ctxt, dave, carol) err = net.EnsureConnected(ctxt, dave, carol)
if err != nil { if err != nil {
t.Fatalf("unable to reconnect dave and carol: %v", err) t.Fatalf("unable to reconnect dave and carol: %v", err)
@ -10511,7 +10475,7 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Bob, payReqs, true) err = completePaymentRequests(ctxt, net.Bob, payReqs, true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -10531,11 +10495,11 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob, assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob,
aliceFundPoint, amountPaid+(baseFee*(numPayments+1))*2, int64(0)) aliceFundPoint, amountPaid+(baseFee*(numPayments+1))*2, int64(0))
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false) closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
} }
@ -10555,12 +10519,11 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
const pushAmt = btcutil.Amount(900000) const pushAmt = btcutil.Amount(900000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10603,7 +10566,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to dave: %v", err) t.Fatalf("unable to send coins to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointDave := openChannelAndAssert( chanPointDave := openChannelAndAssert(
ctxt, t, net, dave, net.Alice, ctxt, t, net, dave, net.Alice,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10641,7 +10604,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10682,7 +10645,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -10696,7 +10659,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, ctxt, carol, paymentAmt, numPayments,
) )
@ -10706,12 +10669,12 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
// We'll wait for all parties to recognize the new channels within the // We'll wait for all parties to recognize the new channels within the
// network. // network.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave) err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave)
if err != nil { if err != nil {
t.Fatalf("dave didn't advertise his channel: %v", err) t.Fatalf("dave didn't advertise his channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol) err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("carol didn't advertise her channel in time: %v", t.Fatalf("carol didn't advertise her channel in time: %v",
@ -10722,7 +10685,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Bob, payReqs, false) err = completePaymentRequests(ctxt, net.Bob, payReqs, false)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -10742,13 +10705,13 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
} }
// First, disconnect Dave and Alice so that their link is broken. // First, disconnect Dave and Alice so that their link is broken.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.DisconnectNodes(ctxt, dave, net.Alice); err != nil { if err := net.DisconnectNodes(ctxt, dave, net.Alice); err != nil {
t.Fatalf("unable to disconnect alice from dave: %v", err) t.Fatalf("unable to disconnect alice from dave: %v", err)
} }
// Then, reconnect them to ensure Dave doesn't just fail back the htlc. // Then, reconnect them to ensure Dave doesn't just fail back the htlc.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, dave, net.Alice); err != nil { if err := net.ConnectNodes(ctxt, dave, net.Alice); err != nil {
t.Fatalf("unable to reconnect alice to dave: %v", err) t.Fatalf("unable to reconnect alice to dave: %v", err)
} }
@ -10769,7 +10732,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
// Now, disconnect Dave from Alice again before settling back the // Now, disconnect Dave from Alice again before settling back the
// payment. // payment.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.DisconnectNodes(ctxt, dave, net.Alice); err != nil { if err := net.DisconnectNodes(ctxt, dave, net.Alice); err != nil {
t.Fatalf("unable to disconnect alice from dave: %v", err) t.Fatalf("unable to disconnect alice from dave: %v", err)
} }
@ -10796,7 +10759,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
// Now that the settles have reached Dave, reconnect him with Alice, // Now that the settles have reached Dave, reconnect him with Alice,
// allowing the settles to return to the sender. // allowing the settles to return to the sender.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.EnsureConnected(ctxt, dave, net.Alice); err != nil { if err := net.EnsureConnected(ctxt, dave, net.Alice); err != nil {
t.Fatalf("unable to reconnect alice to dave: %v", err) t.Fatalf("unable to reconnect alice to dave: %v", err)
} }
@ -10853,7 +10816,7 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Bob, payReqs, true) err = completePaymentRequests(ctxt, net.Bob, payReqs, true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -10873,11 +10836,11 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob, assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob,
aliceFundPoint, amountPaid+(baseFee*(numPayments+1))*2, int64(0)) aliceFundPoint, amountPaid+(baseFee*(numPayments+1))*2, int64(0))
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false) closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
} }
@ -10898,12 +10861,11 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
const pushAmt = btcutil.Amount(900000) const pushAmt = btcutil.Amount(900000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10946,7 +10908,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
if err != nil { if err != nil {
t.Fatalf("unable to send coins to dave: %v", err) t.Fatalf("unable to send coins to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointDave := openChannelAndAssert( chanPointDave := openChannelAndAssert(
ctxt, t, net, dave, net.Alice, ctxt, t, net, dave, net.Alice,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -10985,7 +10947,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11026,7 +10988,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -11040,7 +11002,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, ctxt, carol, paymentAmt, numPayments,
) )
@ -11050,12 +11012,12 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// We'll wait for all parties to recognize the new channels within the // We'll wait for all parties to recognize the new channels within the
// network. // network.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave) err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave)
if err != nil { if err != nil {
t.Fatalf("dave didn't advertise his channel: %v", err) t.Fatalf("dave didn't advertise his channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol) err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("carol didn't advertise her channel in time: %v", t.Fatalf("carol didn't advertise her channel in time: %v",
@ -11064,7 +11026,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Bob, payReqs, false) err = completePaymentRequests(ctxt, net.Bob, payReqs, false)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -11085,7 +11047,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// Disconnect the two intermediaries, Alice and Dave, by shutting down // Disconnect the two intermediaries, Alice and Dave, by shutting down
// Alice. // Alice.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.StopNode(net.Alice); err != nil { if err := net.StopNode(net.Alice); err != nil {
t.Fatalf("unable to shutdown alice: %v", err) t.Fatalf("unable to shutdown alice: %v", err)
} }
@ -11099,7 +11061,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// Make Carol and Dave are reconnected before waiting for the htlcs to // Make Carol and Dave are reconnected before waiting for the htlcs to
// clear. // clear.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.EnsureConnected(ctxt, dave, carol) err = net.EnsureConnected(ctxt, dave, carol)
if err != nil { if err != nil {
t.Fatalf("unable to reconnect dave and carol: %v", err) t.Fatalf("unable to reconnect dave and carol: %v", err)
@ -11135,7 +11097,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// Force Dave and Alice to reconnect before waiting for the htlcs to // Force Dave and Alice to reconnect before waiting for the htlcs to
// clear. // clear.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.EnsureConnected(ctxt, dave, net.Alice) err = net.EnsureConnected(ctxt, dave, net.Alice)
if err != nil { if err != nil {
t.Fatalf("unable to reconnect dave and carol: %v", err) t.Fatalf("unable to reconnect dave and carol: %v", err)
@ -11194,7 +11156,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// Before completing the final payment request, ensure that the // Before completing the final payment request, ensure that the
// connection between Dave and Carol has been healed. // connection between Dave and Carol has been healed.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.EnsureConnected(ctxt, dave, carol) err = net.EnsureConnected(ctxt, dave, carol)
if err != nil { if err != nil {
t.Fatalf("unable to reconnect dave and carol: %v", err) t.Fatalf("unable to reconnect dave and carol: %v", err)
@ -11202,7 +11164,7 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Bob, payReqs, true) err = completePaymentRequests(ctxt, net.Bob, payReqs, true)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -11222,11 +11184,11 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob, assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob,
aliceFundPoint, amountPaid+(baseFee*(numPayments+1))*2, int64(0)) aliceFundPoint, amountPaid+(baseFee*(numPayments+1))*2, int64(0))
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false) closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
} }
@ -11249,12 +11211,11 @@ func testSwitchOfflineDeliveryOutgoingOffline(
const pushAmt = btcutil.Amount(900000) const pushAmt = btcutil.Amount(900000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel with 100k satoshis between Alice and Bob with Alice // Open a channel with 100k satoshis between Alice and Bob with Alice
// being the sole funder of the channel. // being the sole funder of the channel.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11297,7 +11258,7 @@ func testSwitchOfflineDeliveryOutgoingOffline(
if err != nil { if err != nil {
t.Fatalf("unable to send coins to dave: %v", err) t.Fatalf("unable to send coins to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointDave := openChannelAndAssert( chanPointDave := openChannelAndAssert(
ctxt, t, net, dave, net.Alice, ctxt, t, net, dave, net.Alice,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11333,7 +11294,7 @@ func testSwitchOfflineDeliveryOutgoingOffline(
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11374,7 +11335,7 @@ func testSwitchOfflineDeliveryOutgoingOffline(
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -11388,7 +11349,7 @@ func testSwitchOfflineDeliveryOutgoingOffline(
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, ctxt, carol, paymentAmt, numPayments,
) )
@ -11398,12 +11359,12 @@ func testSwitchOfflineDeliveryOutgoingOffline(
// We'll wait for all parties to recognize the new channels within the // We'll wait for all parties to recognize the new channels within the
// network. // network.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave) err = dave.WaitForNetworkChannelOpen(ctxt, chanPointDave)
if err != nil { if err != nil {
t.Fatalf("dave didn't advertise his channel: %v", err) t.Fatalf("dave didn't advertise his channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol) err = carol.WaitForNetworkChannelOpen(ctxt, chanPointCarol)
if err != nil { if err != nil {
t.Fatalf("carol didn't advertise her channel in time: %v", t.Fatalf("carol didn't advertise her channel in time: %v",
@ -11412,7 +11373,7 @@ func testSwitchOfflineDeliveryOutgoingOffline(
// Using Carol as the source, pay to the 5 invoices from Bob created // Using Carol as the source, pay to the 5 invoices from Bob created
// above. // above.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = completePaymentRequests(ctxt, net.Bob, payReqs, false) err = completePaymentRequests(ctxt, net.Bob, payReqs, false)
if err != nil { if err != nil {
t.Fatalf("unable to send payments: %v", err) t.Fatalf("unable to send payments: %v", err)
@ -11433,7 +11394,7 @@ func testSwitchOfflineDeliveryOutgoingOffline(
// Disconnect the two intermediaries, Alice and Dave, so that when carol // Disconnect the two intermediaries, Alice and Dave, so that when carol
// restarts, the response will be held by Dave. // restarts, the response will be held by Dave.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.StopNode(net.Alice); err != nil { if err := net.StopNode(net.Alice); err != nil {
t.Fatalf("unable to shutdown alice: %v", err) t.Fatalf("unable to shutdown alice: %v", err)
} }
@ -11489,7 +11450,7 @@ func testSwitchOfflineDeliveryOutgoingOffline(
// Ensure that Dave is reconnected to Alice before waiting for the htlcs // Ensure that Dave is reconnected to Alice before waiting for the htlcs
// to clear. // to clear.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.EnsureConnected(ctxt, dave, net.Alice) err = net.EnsureConnected(ctxt, dave, net.Alice)
if err != nil { if err != nil {
t.Fatalf("unable to reconnect alice and dave: %v", err) t.Fatalf("unable to reconnect alice and dave: %v", err)
@ -11528,9 +11489,9 @@ func testSwitchOfflineDeliveryOutgoingOffline(
assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob, assertAmountPaid(t, ctxb, "Bob(local) => Alice(remote)", net.Bob,
aliceFundPoint, amountPaid+(baseFee*numPayments)*2, int64(0)) aliceFundPoint, amountPaid+(baseFee*numPayments)*2, int64(0))
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false) closeChannelAndAssert(ctxt, t, net, dave, chanPointDave, false)
} }
@ -11546,11 +11507,10 @@ func computeFee(baseFee, feeRate, amt lnwire.MilliSatoshi) lnwire.MilliSatoshi {
func testQueryRoutes(net *lntest.NetworkHarness, t *harnessTest) { func testQueryRoutes(net *lntest.NetworkHarness, t *harnessTest) {
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 5)
var networkChans []*lnrpc.ChannelPoint var networkChans []*lnrpc.ChannelPoint
// Open a channel between Alice and Bob. // Open a channel between Alice and Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAlice := openChannelAndAssert( chanPointAlice := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11573,7 +11533,7 @@ func testQueryRoutes(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to bob: %v", err) t.Fatalf("unable to send coins to bob: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointBob := openChannelAndAssert( chanPointBob := openChannelAndAssert(
ctxt, t, net, net.Bob, carol, ctxt, t, net, net.Bob, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11596,7 +11556,7 @@ func testQueryRoutes(net *lntest.NetworkHarness, t *harnessTest) {
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarol := openChannelAndAssert( chanPointCarol := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11623,7 +11583,7 @@ func testQueryRoutes(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d): timeout waiting for "+ t.Fatalf("%s(%d): timeout waiting for "+
@ -11640,7 +11600,7 @@ func testQueryRoutes(net *lntest.NetworkHarness, t *harnessTest) {
Amt: paymentAmt, Amt: paymentAmt,
NumRoutes: 1, NumRoutes: 1,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
routesRes, err := net.Alice.QueryRoutes(ctxt, routesReq) routesRes, err := net.Alice.QueryRoutes(ctxt, routesReq)
if err != nil { if err != nil {
t.Fatalf("unable to get route: %v", err) t.Fatalf("unable to get route: %v", err)
@ -11724,11 +11684,11 @@ func testQueryRoutes(net *lntest.NetworkHarness, t *harnessTest) {
// We clean up the test case by closing channels that were created for // We clean up the test case by closing channels that were created for
// the duration of the tests. // the duration of the tests.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAlice, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBob, false) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBob, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
} }
@ -11748,12 +11708,11 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
// amount and as a fixed amount of satoshis. // amount and as a fixed amount of satoshis.
ctxb := context.Background() ctxb := context.Background()
timeout := time.Duration(time.Second * 15)
const chanAmt = btcutil.Amount(100000) const chanAmt = btcutil.Amount(100000)
// Open a channel between Alice and Bob. // Open a channel between Alice and Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAliceBob := openChannelAndAssert( chanPointAliceBob := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11769,16 +11728,16 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
} }
defer shutdownAndAssert(net, t, carol) defer shutdownAndAssert(net, t, carol)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, carol, net.Alice); err != nil { if err := net.ConnectNodes(ctxt, carol, net.Alice); err != nil {
t.Fatalf("unable to connect carol to alice: %v", err) t.Fatalf("unable to connect carol to alice: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err = net.SendCoins(ctxt, btcutil.SatoshiPerBitcoin, carol) err = net.SendCoins(ctxt, btcutil.SatoshiPerBitcoin, carol)
if err != nil { if err != nil {
t.Fatalf("unable to send coins to carol: %v", err) t.Fatalf("unable to send coins to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAliceCarol := openChannelAndAssert( chanPointAliceCarol := openChannelAndAssert(
ctxt, t, net, net.Alice, carol, ctxt, t, net, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11794,11 +11753,11 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
} }
defer shutdownAndAssert(net, t, dave) defer shutdownAndAssert(net, t, dave)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, dave, net.Bob); err != nil { if err := net.ConnectNodes(ctxt, dave, net.Bob); err != nil {
t.Fatalf("unable to connect dave to bob: %v", err) t.Fatalf("unable to connect dave to bob: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointBobDave := openChannelAndAssert( chanPointBobDave := openChannelAndAssert(
ctxt, t, net, net.Bob, dave, ctxt, t, net, net.Bob, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11807,11 +11766,11 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
) )
// Open a channel between Carol and Dave. // Open a channel between Carol and Dave.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if err := net.ConnectNodes(ctxt, carol, dave); err != nil { if err := net.ConnectNodes(ctxt, carol, dave); err != nil {
t.Fatalf("unable to connect carol to dave: %v", err) t.Fatalf("unable to connect carol to dave: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointCarolDave := openChannelAndAssert( chanPointCarolDave := openChannelAndAssert(
ctxt, t, net, carol, dave, ctxt, t, net, carol, dave,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -11842,7 +11801,7 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
Index: chanPoint.OutputIndex, Index: chanPoint.OutputIndex,
} }
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, defaultTimeout)
err = node.WaitForNetworkChannelOpen(ctxt, chanPoint) err = node.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("%s(%d) timed out waiting for "+ t.Fatalf("%s(%d) timed out waiting for "+
@ -11876,13 +11835,13 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
ChanPoint: chanPointCarolDave, ChanPoint: chanPointCarolDave,
}, },
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
if _, err := carol.UpdateChannelPolicy(ctxt, updateFeeReq); err != nil { if _, err := carol.UpdateChannelPolicy(ctxt, updateFeeReq); err != nil {
t.Fatalf("unable to update chan policy: %v", err) t.Fatalf("unable to update chan policy: %v", err)
} }
// Wait for Alice to receive the channel update from Carol. // Wait for Alice to receive the channel update from Carol.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
aliceSub := subscribeGraphNotifications(t, ctxt, net.Alice) aliceSub := subscribeGraphNotifications(t, ctxt, net.Alice)
defer close(aliceSub.quit) defer close(aliceSub.quit)
@ -11896,7 +11855,7 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
// We'll also need the channel IDs for Bob's channels in order to // We'll also need the channel IDs for Bob's channels in order to
// confirm the route of the payments. // confirm the route of the payments.
listReq := &lnrpc.ListChannelsRequest{} listReq := &lnrpc.ListChannelsRequest{}
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
listResp, err := net.Bob.ListChannels(ctxt, listReq) listResp, err := net.Bob.ListChannels(ctxt, listReq)
if err != nil { if err != nil {
t.Fatalf("unable to retrieve bob's channels: %v", err) t.Fatalf("unable to retrieve bob's channels: %v", err)
@ -11951,7 +11910,7 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
FeeLimit: feeLimit, FeeLimit: feeLimit,
NumRoutes: 2, NumRoutes: 2,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
routesResp, err := net.Alice.QueryRoutes(ctxt, queryRoutesReq) routesResp, err := net.Alice.QueryRoutes(ctxt, queryRoutesReq)
if err != nil { if err != nil {
t.Fatalf("unable to get routes: %v", err) t.Fatalf("unable to get routes: %v", err)
@ -11965,7 +11924,7 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
checkRoute(routesResp.Routes[0]) checkRoute(routesResp.Routes[0])
invoice := &lnrpc.Invoice{Value: paymentAmt} invoice := &lnrpc.Invoice{Value: paymentAmt}
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
invoiceResp, err := dave.AddInvoice(ctxt, invoice) invoiceResp, err := dave.AddInvoice(ctxt, invoice)
if err != nil { if err != nil {
t.Fatalf("unable to create invoice: %v", err) t.Fatalf("unable to create invoice: %v", err)
@ -11975,7 +11934,7 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
PaymentRequest: invoiceResp.PaymentRequest, PaymentRequest: invoiceResp.PaymentRequest,
FeeLimit: feeLimit, FeeLimit: feeLimit,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
paymentResp, err := net.Alice.SendPaymentSync(ctxt, sendReq) paymentResp, err := net.Alice.SendPaymentSync(ctxt, sendReq)
if err != nil { if err != nil {
t.Fatalf("unable to send payment: %v", err) t.Fatalf("unable to send payment: %v", err)
@ -12006,13 +11965,13 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
// Once we're done, close the channels and shut down the nodes created // Once we're done, close the channels and shut down the nodes created
// throughout this test. // throughout this test.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAliceBob, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAliceBob, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAliceCarol, false) closeChannelAndAssert(ctxt, t, net, net.Alice, chanPointAliceCarol, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBobDave, false) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPointBobDave, false)
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarolDave, false) closeChannelAndAssert(ctxt, t, net, carol, chanPointCarolDave, false)
} }
@ -12022,14 +11981,13 @@ func testRouteFeeCutoff(net *lntest.NetworkHarness, t *harnessTest) {
func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) { func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) {
const ( const (
chanAmt = 100000 chanAmt = 100000
timeout = 10 * time.Second
) )
// Open a channel between Alice and Bob and Alice and Carol. These will // Open a channel between Alice and Bob and Alice and Carol. These will
// be closed later on in order to trigger channel update messages // be closed later on in order to trigger channel update messages
// marking the channels as disabled. // marking the channels as disabled.
ctxb := context.Background() ctxb := context.Background()
ctxt, _ := context.WithTimeout(ctxb, timeout) ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAliceBob := openChannelAndAssert( chanPointAliceBob := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, ctxt, t, net, net.Alice, net.Bob,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -12046,7 +12004,7 @@ func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) {
if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil { if err := net.ConnectNodes(ctxb, net.Alice, carol); err != nil {
t.Fatalf("unable to connect alice to carol: %v", err) t.Fatalf("unable to connect alice to carol: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointAliceCarol := openChannelAndAssert( chanPointAliceCarol := openChannelAndAssert(
ctxt, t, net, net.Alice, carol, ctxt, t, net, net.Alice, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -12077,7 +12035,7 @@ func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) {
t.Fatalf("unable to connect eve to bob: %v", err) t.Fatalf("unable to connect eve to bob: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelOpenTimeout)
chanPointEveCarol := openChannelAndAssert( chanPointEveCarol := openChannelAndAssert(
ctxt, t, net, eve, carol, ctxt, t, net, eve, carol,
lntest.OpenChannelParams{ lntest.OpenChannelParams{
@ -12139,13 +12097,13 @@ func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) {
// Close Alice's channels with Bob and Carol cooperatively and // Close Alice's channels with Bob and Carol cooperatively and
// unilaterally respectively. // unilaterally respectively.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
_, _, err = net.CloseChannel(ctxt, net.Alice, chanPointAliceBob, false) _, _, err = net.CloseChannel(ctxt, net.Alice, chanPointAliceBob, false)
if err != nil { if err != nil {
t.Fatalf("unable to close channel: %v", err) t.Fatalf("unable to close channel: %v", err)
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
_, _, err = net.CloseChannel(ctxt, net.Alice, chanPointAliceCarol, true) _, _, err = net.CloseChannel(ctxt, net.Alice, chanPointAliceCarol, true)
if err != nil { if err != nil {
t.Fatalf("unable to close channel: %v", err) t.Fatalf("unable to close channel: %v", err)
@ -12163,14 +12121,14 @@ func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) {
) )
// Finally, close the channels by mining the closing transactions. // Finally, close the channels by mining the closing transactions.
_, err = waitForNTxsInMempool(net.Miner.Node, 2, timeout) _, err = waitForNTxsInMempool(net.Miner.Node, 2, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("expected transactions not found in mempool: %v", err) t.Fatalf("expected transactions not found in mempool: %v", err)
} }
mineBlocks(t, net, 1) mineBlocks(t, net, 1)
// Also do this check for Eve's channel with Carol. // Also do this check for Eve's channel with Carol.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
_, _, err = net.CloseChannel(ctxt, eve, chanPointEveCarol, false) _, _, err = net.CloseChannel(ctxt, eve, chanPointEveCarol, false)
if err != nil { if err != nil {
t.Fatalf("unable to close channel: %v", err) t.Fatalf("unable to close channel: %v", err)
@ -12183,7 +12141,7 @@ func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) {
}, },
) )
_, err = waitForNTxsInMempool(net.Miner.Node, 1, timeout) _, err = waitForNTxsInMempool(net.Miner.Node, 1, minerMempoolTimeout)
if err != nil { if err != nil {
t.Fatalf("expected transactions not found in mempool: %v", err) t.Fatalf("expected transactions not found in mempool: %v", err)
} }
@ -12195,22 +12153,20 @@ func testSendUpdateDisableChannel(net *lntest.NetworkHarness, t *harnessTest) {
// verifies that the abandoned channel is reported as closed with close // verifies that the abandoned channel is reported as closed with close
// type 'abandoned'. // type 'abandoned'.
func testAbandonChannel(net *lntest.NetworkHarness, t *harnessTest) { func testAbandonChannel(net *lntest.NetworkHarness, t *harnessTest) {
timeout := time.Duration(time.Second * 5)
ctxb := context.Background() ctxb := context.Background()
// First establish a channel between Alice and Bob. // First establish a channel between Alice and Bob.
ctxt, _ := context.WithTimeout(ctxb, timeout)
channelParam := lntest.OpenChannelParams{ channelParam := lntest.OpenChannelParams{
Amt: maxBtcFundingAmount, Amt: maxBtcFundingAmount,
PushAmt: btcutil.Amount(100000), PushAmt: btcutil.Amount(100000),
} }
ctxt, _ := context.WithTimeout(ctxb, channelOpenTimeout)
chanPoint := openChannelAndAssert( chanPoint := openChannelAndAssert(
ctxt, t, net, net.Alice, net.Bob, channelParam) ctxt, t, net, net.Alice, net.Bob, channelParam)
// Wait for channel to be confirmed open. // Wait for channel to be confirmed open.
ctxt, _ = context.WithTimeout(ctxb, time.Second*15) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint) err := net.Alice.WaitForNetworkChannelOpen(ctxt, chanPoint)
if err != nil { if err != nil {
t.Fatalf("alice didn't report channel: %v", err) t.Fatalf("alice didn't report channel: %v", err)
@ -12225,9 +12181,8 @@ func testAbandonChannel(net *lntest.NetworkHarness, t *harnessTest) {
ChannelPoint: chanPoint, ChannelPoint: chanPoint,
} }
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
_, err = net.Alice.AbandonChannel(ctxt, abandonChannelRequest) _, err = net.Alice.AbandonChannel(ctxt, abandonChannelRequest)
if err != nil { if err != nil {
t.Fatalf("unable to abandon channel: %v", err) t.Fatalf("unable to abandon channel: %v", err)
} }
@ -12283,7 +12238,7 @@ func testAbandonChannel(net *lntest.NetworkHarness, t *harnessTest) {
// Now that we're done with the test, the channel can be closed. This is // Now that we're done with the test, the channel can be closed. This is
// necessary to avoid unexpected outcomes of other tests that use Bob's // necessary to avoid unexpected outcomes of other tests that use Bob's
// lnd instance. // lnd instance.
ctxt, _ = context.WithTimeout(ctxb, timeout) ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout)
closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint, true) closeChannelAndAssert(ctxt, t, net, net.Bob, chanPoint, true)
// Cleanup by mining the force close and sweep transaction. // Cleanup by mining the force close and sweep transaction.