mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-29 07:00:55 +02:00
channeldb: don't cancel other HTLCs w/ diff setID once once is settled
With this change, we allow multiple users to concurrently pay the same AMP invoice with distinct set IDs.
This commit is contained in:
@@ -1669,7 +1669,9 @@ func testUpdateHTLCPreimages(t *testing.T, test updateHTLCPreimageTestCase) {
|
||||
// Update the invoice with an accepted HTLC that also accepts the
|
||||
// invoice.
|
||||
ref := InvoiceRefByAddr(invoice.Terms.PaymentAddr)
|
||||
dbInvoice, err := db.UpdateInvoice(ref, updateAcceptAMPHtlc(0, amt, setID, true))
|
||||
dbInvoice, err := db.UpdateInvoice(
|
||||
ref, updateAcceptAMPHtlc(0, amt, setID, true),
|
||||
)
|
||||
require.Nil(t, err)
|
||||
|
||||
htlcPreimages := make(map[CircuitKey]lntypes.Preimage)
|
||||
@@ -2062,6 +2064,10 @@ func TestUpdateHTLC(t *testing.T) {
|
||||
expErr: nil,
|
||||
},
|
||||
{
|
||||
// With the newer AMP logic, this is now valid, as we
|
||||
// want to be able to accept multiple settle attempts
|
||||
// to a given pay_addr. In this case, the HTLC should
|
||||
// remain in the accepted state.
|
||||
name: "AMP settle valid preimage different htlc set",
|
||||
input: InvoiceHTLC{
|
||||
Amt: 5000,
|
||||
@@ -2085,9 +2091,9 @@ func TestUpdateHTLC(t *testing.T) {
|
||||
MppTotalAmt: 5000,
|
||||
AcceptHeight: 100,
|
||||
AcceptTime: testNow,
|
||||
ResolveTime: testNow,
|
||||
ResolveTime: time.Time{},
|
||||
Expiry: 40,
|
||||
State: HtlcStateCanceled,
|
||||
State: HtlcStateAccepted,
|
||||
CustomRecords: make(record.CustomSet),
|
||||
AMP: &InvoiceHtlcAMPData{
|
||||
Record: *ampRecord,
|
||||
|
Reference in New Issue
Block a user