UNPKG

@myria/leaderboard-ts-sdk

Version:

Myria Leaderboard typescripts SDK which will manage leaderboard for game developers

152 lines (151 loc) 3.57 kB
import { Rewards } from './IReward.types'; export interface InitLeaderboardParams { env: any; apiKey: string; } export interface CreateLeaderboardParams { name: string; description: string; updateScoreStrategy: string; gameName: string; totalPeriods: number; livePeriodInDays: number; availableAt?: string; enableMetadata: boolean; } export interface Whitelist { createdAt: string; updatedAt: string; developerId: string; walletId: string; apiKey: string; name: string; status: string; } export interface LeaderboardData { name: string; description: string; updateScoreStrategy: string; gameName: string; totalPeriods?: number; livePeriodInDays: number; availableAt?: string; enableMetadata?: boolean; developerId?: string; status: string; currentPeriod: number; dataPersistenceInDays: number; expireAt: string; gameMetadata: JsonObject; configMetadata: JsonObject; updatedAt?: string; createdAt?: string; id: number; enablePeriodRefresh?: boolean; isApplyRewardAllPeriods: boolean; metadata?: Record<string, any>; airdropContractAddress: string; daysToNextPeriod: string; whitelist?: Whitelist; rewards?: Rewards; } export interface GetLeaderboardDetailsInfo { leaderboardIdOrName: string; } type JsonValue = string | number | boolean | null | JsonObject | JsonArray; interface JsonObject { [key: string]: JsonValue; } interface JsonArray extends Array<JsonValue> { } export interface SetGameMetadataParams { leaderboardId: number; gameMetadata: JsonObject; } export interface SetConfigMetadataParams { leaderboardId: number; configMetadata: JsonObject; } export interface SetGlobalMetadataParams { leaderboardId: number; configMetadata: JsonObject; gameMetadata: JsonObject; } export interface IQueryLeaderboardsParams { page?: number; limit?: number; } export declare enum EOrderBy { ASC = "ASC", DESC = "DESC" } export interface QueryFilter { userId?: string; period?: number; } export interface IQueryScoreParams { leaderboardId: number; period?: number; limit?: number; page?: number; sortingField?: string; orderBy?: EOrderBy; filters?: QueryFilter; } export interface IQueryScoreByPlayerParams { leaderboardId: number; userId: string; period?: number; } export interface IQueryScoresResp { id: number; userId: string; leaderboardId: number; period: number; score: number; createdAt: string; updatedAt: string; rank: number; } export interface IScoreByUserResp { score: number; leaderboardId: number; userId: string; period?: number; leaderboard: LeaderboardData; user: IUserLeaderboard; } export interface IUserLeaderboard { userId: string; username: string; displayName?: string; avatarUrl?: string; } export interface IUpdateUserInfoParams { userId: string; username: string; displayName?: string; avatarUrl?: string; } export interface IItemsPostScore { userId: string; score: number; username?: string; displayName?: string; } export interface IPostScoreParams { leaderboardId: number; items: IItemsPostScore[]; } export interface IPostScoreItemResp { id: number; score: number; userId: string; username: string; displayName: string; } export interface IPostScoreResponse { success: IPostScoreItemResp[]; failed: IPostScoreItemResp[]; } export {};