mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
Merge pull request #917 from starius/register-conf-initiation-height
sweepbatcher: fix height hint for confirmations
This commit is contained in:
commit
84820f2d4f
2 changed files with 20 additions and 7 deletions
|
|
@ -1707,13 +1707,20 @@ func (b *batch) monitorSpend(ctx context.Context, primarySweep sweep) error {
|
|||
|
||||
// monitorConfirmations monitors the batch transaction for confirmations.
|
||||
func (b *batch) monitorConfirmations(ctx context.Context) error {
|
||||
// Find initiationHeight.
|
||||
primarySweep, ok := b.sweeps[b.primarySweepID]
|
||||
if !ok {
|
||||
return fmt.Errorf("can't find primarySweep")
|
||||
}
|
||||
|
||||
reorgChan := make(chan struct{})
|
||||
|
||||
confCtx, cancel := context.WithCancel(ctx)
|
||||
|
||||
confChan, errChan, err := b.chainNotifier.RegisterConfirmationsNtfn(
|
||||
confCtx, b.batchTxid, b.batchPkScript, batchConfHeight,
|
||||
b.currentHeight, lndclient.WithReOrgChan(reorgChan),
|
||||
primarySweep.initiationHeight,
|
||||
lndclient.WithReOrgChan(reorgChan),
|
||||
)
|
||||
if err != nil {
|
||||
cancel()
|
||||
|
|
|
|||
|
|
@ -781,12 +781,15 @@ func testSweepBatcherSimpleLifecycle(t *testing.T, store testStore,
|
|||
Notifier: &dummyNotifier,
|
||||
}
|
||||
|
||||
const initiationHeight = 550
|
||||
|
||||
swap1 := &loopdb.LoopOutContract{
|
||||
SwapContract: loopdb.SwapContract{
|
||||
CltvExpiry: 111,
|
||||
AmountRequested: 111,
|
||||
ProtocolVersion: loopdb.ProtocolVersionMuSig2,
|
||||
HtlcKeys: htlcKeys,
|
||||
CltvExpiry: 111,
|
||||
AmountRequested: 111,
|
||||
ProtocolVersion: loopdb.ProtocolVersionMuSig2,
|
||||
HtlcKeys: htlcKeys,
|
||||
InitiationHeight: initiationHeight,
|
||||
},
|
||||
|
||||
DestAddr: destAddr,
|
||||
|
|
@ -871,14 +874,17 @@ func testSweepBatcherSimpleLifecycle(t *testing.T, store testStore,
|
|||
SpendingTx: spendingTx,
|
||||
SpenderTxHash: &spendingTxHash,
|
||||
SpenderInputIndex: 0,
|
||||
SpendingHeight: 601,
|
||||
}
|
||||
|
||||
// We notify the spend.
|
||||
lnd.SpendChannel <- spendDetail
|
||||
|
||||
// After receiving the spend, the batch is now monitoring for confs.
|
||||
<-lnd.RegisterConfChannel
|
||||
confReg := <-lnd.RegisterConfChannel
|
||||
|
||||
// Make sure the confirmation has proper height hint. It should pass
|
||||
// the swap initiation height, not the current height.
|
||||
require.Equal(t, int32(initiationHeight), confReg.HeightHint)
|
||||
|
||||
// The batch should eventually read the spend notification and progress
|
||||
// its state to closed.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue