UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

112 lines (107 loc) 3.97 kB
import { IInitData, AccountInfo, NetworkInfo, ChainData, UserResponse } 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 TronSDKEvent { CONNECT = "connect", GETACCOUNT = "getAccount", DISCONNECT = "disconnect", ACCOUNT_CHANGE = "accountChange", NETWORK_CHANGE = "luffa_switchChain", CHAIN_CHANGED = "chainChanged" } type TronSDKEventType = (typeof TronSDKEvent)[keyof typeof TronSDKEvent]; interface TronSDKEventsMap { [TronSDKEvent.CONNECT]: AccountInfo; [TronSDKEvent.DISCONNECT]: void; [TronSDKEvent.ACCOUNT_CHANGE]: AccountInfo; [TronSDKEvent.GETACCOUNT]: AccountInfo[]; [TronSDKEvent.NETWORK_CHANGE]: NetworkInfo; [TronSDKEvent.CHAIN_CHANGED]: string; } type TronSDKEventPayload<T extends TronSDKEventType> = T extends keyof TronSDKEventsMap ? TronSDKEventsMap[T] : undefined; type TronSDKEventListenersType = { [K in TronSDKEventType]?: Array<(payload: TronSDKEventPayload<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>; on: <K extends TronSDKEventType>(methodName: K, callback: (payload: TronSDKEventPayload<K>) => void) => void; off: <K extends TronSDKEventType>(methodName: K, callback?: (payload: TronSDKEventPayload<K>) => void) => void; signAndSubmitTransaction: (params: any) => Promise<any>; signTransaction: (params: any, methodName?: MethodName) => Promise<any>; signMessage: (data: string, callback?: (data: unknown) => void) => Promise<UserResponse<any>>; onAccountChange: (callback: (data: AccountInfo) => void) => void; onNetworkChange: (callback: (data: NetworkInfo) => void) => void; } export { type IMessageData, type IMetaData, type IRequestData, type IResponseMessageData, LuffaTronSdk as L, type Metadata as M, type TronRequestParams as T, TronSDKEvent, type TronSDKEventListenersType, type TronSDKEventPayload, type TronSDKEventType, type TronSDKEventsMap, MethodName as a };