UNPKG

@luffalab/luffa-evm-sdk

Version:

luffa evm ts sdk

55 lines (49 loc) 1.48 kB
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: any } export interface IResponseMessageData { uuid: string, status: string, data: any, methodName: string, errMsg?: string } export interface IRequestData { initData?: IInitData, method: string; params: any; } export enum EvmSDKEvent { CONNECT = 'connect', GETACCOUNT = 'getAccount', DISCONNECT = 'disconnect', ACCOUNT_CHANGE = 'accountChange', ACCOUNTS_CHANGE = 'accountsChanged', NETWORK_CHANGE ='luffa_switchChain', CHAIN_CHANGED ='chainChanged', }; export type EvmSDKEventType = (typeof EvmSDKEvent)[keyof typeof EvmSDKEvent]; export interface EvmSDKEventsMap { [EvmSDKEvent.CONNECT]: string[]; [EvmSDKEvent.DISCONNECT]: void; [EvmSDKEvent.ACCOUNT_CHANGE]: AccountInfo; [EvmSDKEvent.ACCOUNTS_CHANGE]: string[]; [EvmSDKEvent.GETACCOUNT]: AccountInfo[]; [EvmSDKEvent.NETWORK_CHANGE]: NetworkInfo; [EvmSDKEvent.CHAIN_CHANGED]: string; } export type EvmSDKEventPayload<T extends EvmSDKEventType> = T extends keyof EvmSDKEventsMap ? EvmSDKEventsMap[T] : undefined; export type EvmSDKEventListenersType = { [K in EvmSDKEventType]?: Array<(payload: EvmSDKEventPayload<K>) => void>; };