UNPKG

@luffalab/luffa-evm-sdk

Version:

luffa evm ts sdk

53 lines (50 loc) 1.66 kB
import { IInitData, AccountInfo, NetworkInfo } from '../types.mjs'; interface IMetaData { gameId: string; userId: string; walletAddress: string; } interface IMessageData { uuid: string; methodName: string; from?: string | null; metadata: IMetaData; initData?: IInitData; data: any; } interface IResponseMessageData { uuid: string; status: string; data: any; methodName: string; errMsg?: string; } interface IRequestData { initData?: IInitData; method: string; params: any; } declare enum EvmSDKEvent { CONNECT = "connect", GETACCOUNT = "getAccount", DISCONNECT = "disconnect", ACCOUNT_CHANGE = "accountChange", ACCOUNTS_CHANGE = "accountsChanged", NETWORK_CHANGE = "luffa_switchChain", CHAIN_CHANGED = "chainChanged" } type EvmSDKEventType = (typeof EvmSDKEvent)[keyof typeof EvmSDKEvent]; 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; } type EvmSDKEventPayload<T extends EvmSDKEventType> = T extends keyof EvmSDKEventsMap ? EvmSDKEventsMap[T] : undefined; type EvmSDKEventListenersType = { [K in EvmSDKEventType]?: Array<(payload: EvmSDKEventPayload<K>) => void>; }; export { EvmSDKEvent, type EvmSDKEventListenersType, type EvmSDKEventPayload, type EvmSDKEventType, type EvmSDKEventsMap, type IMessageData, type IMetaData, type IRequestData, type IResponseMessageData };