Skip to content

Commit 79fec8a

Browse files
authored
Merge pull request #796 from lightninglabs/initiator-zero-balance-fix
mod+itest: add test case for initiator having zero balance
2 parents d3bdd03 + 3da641a commit 79fec8a

File tree

3 files changed

+29
-11
lines changed

3 files changed

+29
-11
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ require (
2020
github.com/lightninglabs/loop/swapserverrpc v1.0.8
2121
github.com/lightninglabs/pool v0.6.5-beta.0.20240604070222-e121aadb3289
2222
github.com/lightninglabs/pool/auctioneerrpc v1.1.2
23-
github.com/lightninglabs/taproot-assets v0.4.0-rc4
23+
github.com/lightninglabs/taproot-assets v0.4.0-rc4.0.20240716183814-7647ba8f48d5
2424
github.com/lightningnetwork/lnd v0.18.0-beta.rc4.0.20240712025014-90f997c908d0
2525
github.com/lightningnetwork/lnd/cert v1.2.2
2626
github.com/lightningnetwork/lnd/fn v1.1.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,8 +1175,8 @@ github.com/lightninglabs/pool/auctioneerrpc v1.1.2 h1:Dbg+9Z9jXnhimR27EN37foc4aB
11751175
github.com/lightninglabs/pool/auctioneerrpc v1.1.2/go.mod h1:1wKDzN2zEP8srOi0B9iySlEsPdoPhw6oo3Vbm1v4Mhw=
11761176
github.com/lightninglabs/protobuf-go-hex-display v1.30.0-hex-display h1:pRdza2wleRN1L2fJXd6ZoQ9ZegVFTAb2bOQfruJPKcY=
11771177
github.com/lightninglabs/protobuf-go-hex-display v1.30.0-hex-display/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
1178-
github.com/lightninglabs/taproot-assets v0.4.0-rc4 h1:tl8gClGZBmLlkMxfDRVAdIhx+LyhThZCEjYBpuM37pc=
1179-
github.com/lightninglabs/taproot-assets v0.4.0-rc4/go.mod h1:oAiEnRj2sCbPHAURot+tmKbyDhIoxnvkmag0JqlF1bs=
1178+
github.com/lightninglabs/taproot-assets v0.4.0-rc4.0.20240716183814-7647ba8f48d5 h1:+d5HMOuBUWMsUVx6tAzy7+g8m4A76tec5/FOb1w5iVs=
1179+
github.com/lightninglabs/taproot-assets v0.4.0-rc4.0.20240716183814-7647ba8f48d5/go.mod h1:oAiEnRj2sCbPHAURot+tmKbyDhIoxnvkmag0JqlF1bs=
11801180
github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f h1:Pua7+5TcFEJXIIZ1I2YAUapmbcttmLj4TTi786bIi3s=
11811181
github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f/go.mod h1:c0kvRShutpj3l6B9WtTsNTBUtjSmjZXbJd9ZBRQOSKI=
11821182
github.com/lightningnetwork/lnd v0.18.0-beta.rc4.0.20240712025014-90f997c908d0 h1:V+PoltFSxN5oijkErYe+QbnVz5WJjBsAzaMNRrhmz3Q=

itest/litd_custom_channels_test.go

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -369,32 +369,50 @@ func testCustomChannels(_ context.Context, net *NetworkHarness,
369369
logBalance(t.t, nodes, assetID, "initial")
370370

371371
// ------------
372-
// Test case 1: Send a direct keysend payment from Charlie to Dave.
372+
// Test case 1: Send a direct keysend payment from Charlie to Dave,
373+
// sending the whole balance.
373374
// ------------
374-
const keySendAmount = 1000
375+
keySendAmount := charlieFundingAmount
375376
sendAssetKeySendPayment(
376-
t.t, charlie, dave, keySendAmount, assetID, fn.None[int64](),
377+
t.t, charlie, dave, charlieFundingAmount, assetID,
378+
fn.None[int64](),
377379
)
378380
logBalance(t.t, nodes, assetID, "after keysend")
379381

380382
charlieAssetBalance -= keySendAmount
381383
daveAssetBalance += keySendAmount
382384

383-
// We should be able to send the 1000 assets back immediately, because
385+
// We should be able to send 1000 assets back immediately, because
384386
// there is enough on-chain balance on Dave's side to be able to create
385387
// an HTLC. We use an invoice to execute another code path.
388+
const charlieInvoiceAmount = 1_000
386389
invoiceResp := createAssetInvoice(
387-
t.t, dave, charlie, keySendAmount, assetID,
390+
t.t, dave, charlie, charlieInvoiceAmount, assetID,
388391
)
389392
payInvoiceWithAssets(t.t, dave, charlie, invoiceResp, assetID, true)
393+
logBalance(t.t, nodes, assetID, "after invoice back")
390394

391-
charlieAssetBalance += keySendAmount
392-
daveAssetBalance -= keySendAmount
395+
charlieAssetBalance += charlieInvoiceAmount
396+
daveAssetBalance -= charlieInvoiceAmount
393397

394-
// We should also be able to do a non-asset (BTC only) keysend payment.
398+
// We should also be able to do a non-asset (BTC only) keysend payment
399+
// from Charlie to Dave. This'll also replenish the BTC balance of
400+
// Dave, making it possible to send another asset HTLC below, sending
401+
// all assets back to Charlie (so we have enough balance for further
402+
// tests).
395403
sendKeySendPayment(t.t, charlie, dave, 2000, nil)
396404
logBalance(t.t, nodes, assetID, "after BTC only keysend")
397405

406+
// Let's keysend the rest of the balance back to Charlie.
407+
sendAssetKeySendPayment(
408+
t.t, dave, charlie, charlieFundingAmount-charlieInvoiceAmount,
409+
assetID, fn.None[int64](),
410+
)
411+
logBalance(t.t, nodes, assetID, "after keysend back")
412+
413+
charlieAssetBalance += charlieFundingAmount - charlieInvoiceAmount
414+
daveAssetBalance -= charlieFundingAmount - charlieInvoiceAmount
415+
398416
// ------------
399417
// Test case 2: Pay a normal invoice from Dave by Charlie, making it
400418
// a direct channel invoice payment with no RFQ SCID present in the

0 commit comments

Comments
 (0)