Skip to content

Commit d18312a

Browse files
authored
fix: duplicate message (#1)
1 parent d899616 commit d18312a

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

modules/filscan/biz/browser/biz_output_imtoken.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -198,11 +198,10 @@ func (i IMTokenBiz) ChainMessages(ctx context.Context, req filscan.ChainMessages
198198
if err != nil || transfers == nil {
199199
return
200200
}
201-
var transferList []*filscan.MessageBasic
202-
if transfers != nil {
203-
transferList = transfers.TracesByAccountIDList
204-
}
201+
transferList := transfers.TracesByAccountIDList
202+
205203
cidMethod := make(map[string]string)
204+
uniq := make(map[string]struct{})
206205
var runners []parallel.Runner[filscan.MessageByCidResponse]
207206
for _, transfer := range transferList {
208207
cid := transfer.Cid
@@ -216,7 +215,10 @@ func (i IMTokenBiz) ChainMessages(ctx context.Context, req filscan.ChainMessages
216215
ch := parallel.Run[filscan.MessageByCidResponse](ctx, 50, runners)
217216
err = parallel.Wait[filscan.MessageByCidResponse](ch, func(v filscan.MessageByCidResponse) error {
218217
if v.Message != nil {
219-
resp.MessageList = append(resp.MessageList, v.Message)
218+
if _, ok := uniq[v.Message.Cid]; !ok {
219+
uniq[v.Message.Cid] = struct{}{}
220+
resp.MessageList = append(resp.MessageList, v.Message)
221+
}
220222
}
221223
return nil
222224
})
@@ -239,7 +241,7 @@ func (i IMTokenBiz) ChainMessages(ctx context.Context, req filscan.ChainMessages
239241
}
240242
}
241243
for index := 1; index < len(resp.MessageList); index++ {
242-
//给每个消息打标签,避免通过cid找消息将recieve这种变成了send
244+
//给每个消息打标签,避免通过cid找消息将receive这种变成了send
243245
messageIMToken := resp.MessageList[index]
244246
if messageIMToken.Cid != "" {
245247
messageIMToken.Method = cidMethod[messageIMToken.Cid]

0 commit comments

Comments
 (0)