UNPKG

@myria/leaderboard-ts-sdk

Version:

Myria Leaderboard typescripts SDK which will manage leaderboard for game developers

145 lines (144 loc) 3.57 kB
import { GetLeaderboardDetailsInfo } from './ILeaderboard.types'; export interface RewardDetail { type: string; tokenAddress: string; amount: string; } export interface RankRange { min: number; max: number; } export interface RewardItem { name: string; detail: RewardDetail; rank: RankRange; } export declare enum DistributionType { FIXED = "FIXED", PERCENTAGE = "PERCENTAGE" } export interface RewardItemUpdate extends RewardItem { id?: string; } export interface RewardDistribution { distributionType: DistributionType; period: number; isApplyRewardAllPeriods: boolean; rewardPoolAmount: number; items: RewardItem[] | RewardItemUpdate[]; } export interface RewardData { name: string; detail: RewardDetail; rank: RankRange; period: number; updatedAt: string; createdAt: string; id: number; metadata: Record<string, any>; } export interface Rewards { [key: string]: RewardPeriod; } export interface RewardDataResponse { data: RewardData[]; } export interface RewardDistributionConfigParams { leaderboardId: string; rewardConfig: RewardDistribution; } export interface Accumulate { claimedAmount: number; availableAmount: number; tokenIcon: string; tokenSymbol: string; availableRewardIds: number[]; } export interface RewardDetailsItem { reward: RewardData; createdAt: string; id: number; rewardId: number; userId: string; status: string; period: number; metadata: { amount: string; claimedAt: string; transactionHash: string; }; } export interface PaginatedMeta { totalItems: number; itemCount: number; itemsPerPage: number; totalPages: number; currentPage: number; } export interface GetRewardData { items: RewardDetailsItem[]; meta: PaginatedMeta; accumulate: Accumulate; } export interface GetRewardsParams { userId: string; leaderboardId: number; rewardStatus?: string; page?: number; limit?: number; } export interface CommonHeaderAuthorization { xSignature: string; xStarkKey: string; xTimestamp: string; } export interface PreClaimParams extends CommonHeaderAuthorization { userId: string; leaderboardId: number; rewardIds: number[]; } export interface PreClaimData { rewardClaimClientId: string; rewardClaimContractAddress: string; rewardTokenContractAddress: string; rewards: RewardData[]; message?: string; } export interface PostClaimRewardParams extends CommonHeaderAuthorization { userId: string; leaderboardId: number; rewardIds: number[]; transactionHash?: string; errorMessage?: string; } export interface RewardPeriod { rewardPoolAmount: number; distributionType: DistributionType; items: RewardData[]; } export interface RewardDistributionData { isApplyRewardAllPeriods: boolean; currentPeriod: number; rewardPoolAmountInCurrentPeriod: number; data: Rewards; } export interface SimplifiedRewardDistributionData { distributionType: DistributionType; period: number; isApplyRewardAllPeriods: boolean; rewardPoolAmount: number; items: RewardItem[]; } export interface RewardInCurrentPeriod { isApplyRewardAllPeriods: boolean; currentPeriod: number; data: RewardPeriod; } export interface RewardInPeriod { isApplyRewardAllPeriods: boolean; period: number; data: RewardPeriod; } export interface GetRewardsByPeriod extends GetLeaderboardDetailsInfo { period: number; }