fix: remove enqueued vaas duplicated (#88)

This commit is contained in:
ftocal 2023-01-24 16:01:00 -03:00 committed by GitHub
parent d93613b833
commit 2f11affc53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View File

@ -1444,6 +1444,7 @@ func (r *Repository) GetEnqueuedVaas(ctx context.Context) ([]*EnqueuedVaaItem, e
{Key: "chainId", Value: 1},
{Key: "emitteraddress", Value: 1},
{Key: "sequence", Value: 1},
{Key: "releasetime", Value: -1},
}},
}

View File

@ -3,6 +3,7 @@ package governor
import (
"context"
"fmt"
"github.com/wormhole-foundation/wormhole-explorer/api/internal/pagination"
"github.com/wormhole-foundation/wormhole-explorer/api/response"
@ -152,7 +153,21 @@ func (s *Service) GetTokenList(ctx context.Context) ([]*TokenList, error) {
// GetEnqueuedVaas get enqueued vaas.
// Guardian api migration.
func (s *Service) GetEnqueuedVaas(ctx context.Context) ([]*EnqueuedVaaItem, error) {
return s.repo.GetEnqueuedVaas(ctx)
entries, err := s.repo.GetEnqueuedVaas(ctx)
if err != nil {
return nil, err
}
result := make([]*EnqueuedVaaItem, 0)
existingEnqueuedVaa := map[string]bool{}
for _, e := range entries {
// remove duplicates
key := fmt.Sprintf("%s/%s/%s", e.EmitterChain, e.EmitterAddress, e.Sequence)
if _, exists := existingEnqueuedVaa[key]; !exists {
result = append(result, e)
existingEnqueuedVaa[key] = true
}
}
return result, nil
}
// IsVaaEnqueued check vaa is enqueued.