@luffalab/luffa-endless-sdk
Version:
luffa endless ts sdk
53 lines (47 loc) • 1.49 kB
text/typescript
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>;
};