UNPKG

@luffalab/luffa-endless-sdk

Version:

luffa endless ts sdk

53 lines (47 loc) 1.49 kB
import { MethodName } from '../index'; import type { AccountInfo, NetworkInfo, IInitData } from '../types'; export interface IMetaData { gameId: string; userId: string; walletAddress: string; } export interface IMessageData { uuid: string, methodName: string, from?: string | null, metadata: IMetaData, initData?: IInitData, data: unknown } export interface IResponseMessageData { uuid: string, status: string, data: any, methodName: string, errMsg?: string } export interface IRequestData { method: MethodName, data?: unknown, initData?: IInitData, } export enum EndLessSDKEvent { CONNECT = 'connect', GETACCOUNT = 'getAccount', DISCONNECT = 'disconnect', ACCOUNT_CHANGE = 'accountChange', NETWORK_CHANGE ='networkChange', }; export type EndLessSDKEventType = (typeof EndLessSDKEvent)[keyof typeof EndLessSDKEvent]; export interface EndLessSDKEventsMap { [EndLessSDKEvent.CONNECT]: AccountInfo; [EndLessSDKEvent.DISCONNECT]: void; [EndLessSDKEvent.ACCOUNT_CHANGE]: AccountInfo; [EndLessSDKEvent.GETACCOUNT]: AccountInfo[]; [EndLessSDKEvent.GETACCOUNT]: AccountInfo[]; [EndLessSDKEvent.NETWORK_CHANGE]: NetworkInfo; } export type EndLessSDKEventPayload<T extends EndLessSDKEventType> = T extends keyof EndLessSDKEventsMap ? EndLessSDKEventsMap[T] : undefined; export type EndLessSDKEventListenersType = { [K in EndLessSDKEventType]?: Array<(payload: EndLessSDKEventPayload<K>) => void>; };