From 4dff16ad2cb1e1a2009b8e02506d7ee9e67f4526 Mon Sep 17 00:00:00 2001 From: Mark Cherepovskyi Date: Wed, 14 Aug 2024 20:08:28 +0300 Subject: [PATCH] update GetAllOwnersWithPagination --- x/nft/keeper/nft.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/x/nft/keeper/nft.go b/x/nft/keeper/nft.go index 6bdd43094..1730c0a80 100644 --- a/x/nft/keeper/nft.go +++ b/x/nft/keeper/nft.go @@ -137,13 +137,13 @@ func (k Keeper) GetAllNFTsByOwnerWithPagination(ctx sdk.Context, ownerAddress st // GetAllOwnersWithPagination returns all nft holders address with pagination func (k Keeper) GetAllOwnersWithPagination(ctx sdk.Context, pagination *query.PageRequest) ([]string, *query.PageResponse, error) { store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.NFTByOwnerKeyPrefix)) - var owners []string - + uOwner := make(map[string]struct{}) pageRes, err := query.Paginate(store, pagination, func(key []byte, value []byte) error { var owner types.Owner k.cdc.MustUnmarshal(value, &owner) - owners = append(owners, owner.Address) + uOwner[owner.Address] = struct{}{} + return nil }) @@ -151,6 +151,11 @@ func (k Keeper) GetAllOwnersWithPagination(ctx sdk.Context, pagination *query.Pa return nil, nil, status.Error(codes.Internal, err.Error()) } + var owners []string + for owner := range uOwner { + owners = append(owners, owner) + } + return owners, pageRes, nil }