@luffalab/luffa-tron-sdk
Version:
luffa tron ts sdk
113 lines (108 loc) • 4.19 kB
text/typescript
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 };