UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

54 lines (48 loc) 1.47 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 TronSDKEvent { CONNECT = 'connect', GETACCOUNT = 'getAccount', DISCONNECT = 'disconnect', ACCOUNT_CHANGE = 'accountChange', NETWORK_CHANGE ='luffa_switchChain', CHAIN_CHANGED ='chainChanged', }; export type TronSDKEventType = (typeof TronSDKEvent)[keyof typeof TronSDKEvent]; export interface TronSDKEventsMap { [TronSDKEvent.CONNECT]: AccountInfo; [TronSDKEvent.DISCONNECT]: void; [TronSDKEvent.ACCOUNT_CHANGE]: AccountInfo; [TronSDKEvent.GETACCOUNT]: AccountInfo[]; [TronSDKEvent.NETWORK_CHANGE]: NetworkInfo; [TronSDKEvent.CHAIN_CHANGED]: string; } export type TronSDKEventPayload<T extends TronSDKEventType> = T extends keyof TronSDKEventsMap ? TronSDKEventsMap[T] : undefined; export type TronSDKEventListenersType = { [K in TronSDKEventType]?: Array<(payload: TronSDKEventPayload<K>) => void>; };