UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

113 lines (108 loc) 4.19 kB
import { IInitData, AccountInfo, NetworkInfo, ChainData, EndlessSignMessageInput, UserResponse, EndlessSignMessageOutput } from '../types.mjs'; import { TronWebOptions } from 'tronWeb/lib/esm/types'; import '../utils/index.mjs'; import 'tronWeb'; interface IMetaData { gameId: string; userId: string; walletAddress: string; } interface IMessageData { uuid: string; methodName: string; from?: string | null; metadata: IMetaData; initData?: IInitData; data: unknown; } interface IResponseMessageData { uuid: string; status: string; data: any; methodName: string; errMsg?: string; } interface IRequestData { method: MethodName; data?: unknown; initData?: IInitData; } declare enum EndLessSDKEvent { CONNECT = "connect", GETACCOUNT = "getAccount", DISCONNECT = "disconnect", ACCOUNT_CHANGE = "accountChange", NETWORK_CHANGE = "luffa_switchChain", CHAIN_CHANGED = "chainChanged" } type EndLessSDKEventType = (typeof EndLessSDKEvent)[keyof typeof EndLessSDKEvent]; interface EndLessSDKEventsMap { [EndLessSDKEvent.CONNECT]: AccountInfo; [EndLessSDKEvent.DISCONNECT]: void; [EndLessSDKEvent.ACCOUNT_CHANGE]: AccountInfo; [EndLessSDKEvent.GETACCOUNT]: AccountInfo[]; [EndLessSDKEvent.GETACCOUNT]: AccountInfo[]; [EndLessSDKEvent.NETWORK_CHANGE]: NetworkInfo; [EndLessSDKEvent.CHAIN_CHANGED]: string; } type EndLessSDKEventPayload<T extends EndLessSDKEventType> = T extends keyof EndLessSDKEventsMap ? EndLessSDKEventsMap[T] : undefined; type EndLessSDKEventListenersType = { [K in EndLessSDKEventType]?: Array<(payload: EndLessSDKEventPayload<K>) => void>; }; interface Metadata { title: string; url: string; origin: string; icon: string; gameId: string; userId: string; walletAddress: string; } interface TronRequestParams { method: 'eth_requestAccounts' | string; params?: any; } declare enum MethodName { CONNECT = "connect", GETACCOUNT = "getAccount", DISCONNECT = "disconnect", NETWORK_CHANGE = "luffa_switchChain", SIGN_MESSAGE = "signMessage", SEND_TRANSACTION = "sendTransaction", SIGN_AND_SUBMIT_TRANSACTION = "signAndSubmitTransaction", SIGN_TRANSACTION = "signTransaction", SIGN_BUILD_TRANSACTION = "signBuildTransaction", EVM_APPROVE = "evmApprove", ACCOUNT_CHANGE = "accountChange" } declare class LuffaTronSdk { static readonly version: string; private static _instance; private message; private _metadata; private _initData; private accountAddress; private _wallet; static getIninData: () => IInitData; static getAccountAddress: () => string | null; static setAccountAddress: (accountAddress: string | null) => void; constructor(initData: TronWebOptions & { network: string; }); private initConfig; sendTransaction(params: any): Promise<any>; changeNetwork(chainData: ChainData): void; private getMetadata; request: (data: IRequestData, callback?: (data: unknown) => void) => void; getAccount: () => Promise<string[]>; connect: () => Promise<[string]>; disconnect: (callback?: (data: unknown) => void) => Promise<void>; signMessage: (data: EndlessSignMessageInput, callback?: (data: unknown) => void) => Promise<UserResponse<EndlessSignMessageOutput>>; on: <K extends EndLessSDKEventType>(methodName: K, callback: (payload: EndLessSDKEventPayload<K>) => void) => void; off: <K extends EndLessSDKEventType>(methodName: K, callback?: (payload: EndLessSDKEventPayload<K>) => void) => void; signAndSubmitTransaction: (params: any) => Promise<any>; signTransaction: (params: any, methodName?: MethodName) => Promise<any>; onAccountChange: (callback: (data: AccountInfo) => void) => void; onNetworkChange: (callback: (data: NetworkInfo) => void) => void; } export { EndLessSDKEvent, type EndLessSDKEventListenersType, type EndLessSDKEventPayload, type EndLessSDKEventType, type EndLessSDKEventsMap, type IMessageData, type IMetaData, type IRequestData, type IResponseMessageData, LuffaTronSdk as L, type Metadata as M, type TronRequestParams as T, MethodName as a };