File tree 6 files changed +39
-0
lines changed
6 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -314,3 +314,6 @@ func GetWakuFilterFrom(f types.Filter) *wakucommon.Filter {
314
314
func (w * wakuFilterWrapper ) ID () string {
315
315
return w .id
316
316
}
317
+
318
+ func (w * GethWakuWrapper ) ConfirmMessageDelivered (hashes []common.Hash ) {
319
+ }
Original file line number Diff line number Diff line change @@ -327,3 +327,7 @@ func GetWakuV2FilterFrom(f types.Filter) *wakucommon.Filter {
327
327
func (w * wakuV2FilterWrapper ) ID () string {
328
328
return w .id
329
329
}
330
+
331
+ func (w * gethWakuV2Wrapper ) ConfirmMessageDelivered (hashes []common.Hash ) {
332
+ w .waku .ConfirmMessageDelivered (hashes )
333
+ }
Original file line number Diff line number Diff line change @@ -178,4 +178,7 @@ type Waku interface {
178
178
179
179
// ClearEnvelopesCache clears waku envelopes cache
180
180
ClearEnvelopesCache ()
181
+
182
+ // ConfirmMessageDelivered updates a message has been delivered in waku
183
+ ConfirmMessageDelivered (hash []common.Hash )
181
184
}
Original file line number Diff line number Diff line change @@ -43,6 +43,8 @@ func (m *Messenger) markDeliveredMessages(acks [][]byte) {
43
43
m .logger .Debug ("Can't set message status as delivered" , zap .Error (err ))
44
44
}
45
45
46
+ m .transport .ConfirmMessageDelivered (messageID )
47
+
46
48
//send signal to client that message status updated
47
49
if m .config .messengerSignalsHandler != nil {
48
50
message , err := m .persistence .MessageByID (messageID )
Original file line number Diff line number Diff line change @@ -717,3 +717,15 @@ func (t *Transport) RemovePubsubTopicKey(topic string) error {
717
717
}
718
718
return nil
719
719
}
720
+
721
+ func (t * Transport ) ConfirmMessageDelivered (messageID string ) {
722
+ hashes , ok := t .envelopesMonitor .identifierHashes [messageID ]
723
+ if ! ok {
724
+ return
725
+ }
726
+ commHashes := make ([]common.Hash , len (hashes ))
727
+ for i , h := range hashes {
728
+ commHashes [i ] = common .BytesToHash (h [:])
729
+ }
730
+ t .waku .ConfirmMessageDelivered (commHashes )
731
+ }
Original file line number Diff line number Diff line change @@ -1042,6 +1042,21 @@ func (w *Waku) checkIfMessagesStored() {
1042
1042
}
1043
1043
}
1044
1044
1045
+ func (w * Waku ) ConfirmMessageDelivered (hashes []gethcommon.Hash ) {
1046
+ w .sendMsgIDsMu .Lock ()
1047
+ defer w .sendMsgIDsMu .Unlock ()
1048
+ for pubsubTopic , subMsgs := range w .sendMsgIDs {
1049
+ for _ , hash := range hashes {
1050
+ delete (subMsgs , hash )
1051
+ if len (subMsgs ) == 0 {
1052
+ delete (w .sendMsgIDs , pubsubTopic )
1053
+ } else {
1054
+ w .sendMsgIDs [pubsubTopic ] = subMsgs
1055
+ }
1056
+ }
1057
+ }
1058
+ }
1059
+
1045
1060
type publishFn = func (envelope * protocol.Envelope , logger * zap.Logger ) error
1046
1061
1047
1062
func (w * Waku ) publishEnvelope (envelope * protocol.Envelope , publishFn publishFn , logger * zap.Logger ) {
You can’t perform that action at this time.
0 commit comments