chainntnfs: make sure notification is sent to the whole set
This commit fixes a bug where the confirmation details may be missed. When the same tx is subscribed via `RegisterConfirmationsNtfn`, we will put them into the same set and notify the whole set. However, this logic is missing when performing the rescan - once the confirmation detail is found, we only notify the current subscriber. Later we will skip notifying other subscribers in `UpdateConfDetails` due to the `confSet.details != nil` check. We now fix it by immediately notify all the subscribers when the confirmation detail is found during the rescan.
This commit is contained in:
2 files changed
+30
-15
No files matched your search
@@ -258,6 +258,9 @@ type ConfirmationEvent struct {
|
||||
// channels.
|
||||
func NewConfirmationEvent(numConfs uint32, cancel func()) *ConfirmationEvent {
|
||||
return &ConfirmationEvent{
|
||||
// We cannot rely on the subscriber to immediately read from
|
||||
// the channel so we need to create a larger buffer to avoid
|
||||
// blocking the notifier.
|
||||
Confirmed: make(chan *TxConfirmation, 1),
|
||||
Updates: make(chan uint32, numConfs),
|
||||
NegativeConf: make(chan int32, 1),
|
||||
|
||||
Reference in new issue
Block a user