mirror of
https://github.com/alexgo-io/gaze-indexer.git
synced 2026-04-30 20:52:01 +08:00
* feat: implement pagination on get balance, get holders * feat: paginate get transactions * fix: remove debug * feat: implement pagination in get utxos * feat: sort response in get holders * feat: cap batch query * feat: add default limits to all endpoints * chore: rename endpoint funcs * fix: parse rune name spacers * feat(runes): add get token list api * fix(runes): use distinct to get token list * feat: remove unused code * fix: count holders distinct pkscript * feat: implement additional scopes * chore: comments * feat: implement search * refactor: switch to use paginationRequest * refactor: rename get token list to get tokens * fix: count total holders by rune ids * fix: rename file * fix: rename minting to ongoing * fix: get ongoing check rune is mintable * chore: disable gosec g115 * fix: pr --------- Co-authored-by: Gaze <gazenw@users.noreply.github.com>
65 lines
2.4 KiB
Go
65 lines
2.4 KiB
Go
package usecase
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/cockroachdb/errors"
|
|
"github.com/gaze-network/indexer-network/modules/runes/runes"
|
|
)
|
|
|
|
func (u *Usecase) GetRuneIdFromRune(ctx context.Context, rune runes.Rune) (runes.RuneId, error) {
|
|
runeId, err := u.runesDg.GetRuneIdFromRune(ctx, rune)
|
|
if err != nil {
|
|
return runes.RuneId{}, errors.Wrap(err, "failed to get rune entry by rune")
|
|
}
|
|
return runeId, nil
|
|
}
|
|
|
|
func (u *Usecase) GetRuneEntryByRuneId(ctx context.Context, runeId runes.RuneId) (*runes.RuneEntry, error) {
|
|
runeEntry, err := u.runesDg.GetRuneEntryByRuneId(ctx, runeId)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to get rune entry by rune id")
|
|
}
|
|
return runeEntry, nil
|
|
}
|
|
|
|
func (u *Usecase) GetRuneEntryByRuneIdBatch(ctx context.Context, runeIds []runes.RuneId) (map[runes.RuneId]*runes.RuneEntry, error) {
|
|
runeEntry, err := u.runesDg.GetRuneEntryByRuneIdBatch(ctx, runeIds)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to get rune entries by rune ids")
|
|
}
|
|
return runeEntry, nil
|
|
}
|
|
|
|
func (u *Usecase) GetRuneEntryByRuneIdAndHeight(ctx context.Context, runeId runes.RuneId, blockHeight uint64) (*runes.RuneEntry, error) {
|
|
runeEntry, err := u.runesDg.GetRuneEntryByRuneIdAndHeight(ctx, runeId, blockHeight)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to get rune entry by rune id and height")
|
|
}
|
|
return runeEntry, nil
|
|
}
|
|
|
|
func (u *Usecase) GetRuneEntryByRuneIdAndHeightBatch(ctx context.Context, runeIds []runes.RuneId, blockHeight uint64) (map[runes.RuneId]*runes.RuneEntry, error) {
|
|
runeEntry, err := u.runesDg.GetRuneEntryByRuneIdAndHeightBatch(ctx, runeIds, blockHeight)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to get rune entries by rune ids and height")
|
|
}
|
|
return runeEntry, nil
|
|
}
|
|
|
|
func (u *Usecase) GetRuneEntries(ctx context.Context, search string, blockHeight uint64, limit, offset int32) ([]*runes.RuneEntry, error) {
|
|
entries, err := u.runesDg.GetRuneEntries(ctx, search, blockHeight, limit, offset)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to listing rune entries")
|
|
}
|
|
return entries, nil
|
|
}
|
|
|
|
func (u *Usecase) GetOngoingRuneEntries(ctx context.Context, search string, blockHeight uint64, limit, offset int32) ([]*runes.RuneEntry, error) {
|
|
entries, err := u.runesDg.GetOngoingRuneEntries(ctx, search, blockHeight, limit, offset)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to listing rune entries")
|
|
}
|
|
return entries, nil
|
|
}
|