@myria/leaderboard-ts-sdk
Version:
Myria Leaderboard typescripts SDK which will manage leaderboard for game developers
152 lines (151 loc) • 3.57 kB
TypeScript
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 {};