@luffalab/luffa-tron-sdk
Version:
luffa tron ts sdk
139 lines (136 loc) • 4.2 kB
text/typescript
import tronWebModule, { TronWeb } from 'tronWeb';
type TronWebSDK = typeof tronWebModule;
declare enum Network {
MAINNET = "mainnet",
TESTNET = "testnet",
ETH = "eth",
BSC = "bsc"
}
type IInitData = {
colorMode?: 'light' | 'dark';
network: Network | string;
fullnode?: string;
indexer?: string;
walletUrl?: string;
prover?: string;
callbackWalletName?: string;
miniprogram?: Boolean;
windowWidth?: number;
};
type ChainData = {
targetNet: 'endless' | 'eds' | 'eth' | 'eth_sepolia' | 'bsc' | 'bsc_testnet' | 'tron' | 'tron_nile';
};
declare enum UserResponseStatus {
APPROVED = "Approved",
REJECTED = "Rejected"
}
interface UserApproval<TResponseArgs> {
status: UserResponseStatus.APPROVED;
args: TResponseArgs;
}
interface UserRejection {
status: UserResponseStatus.REJECTED;
message?: string;
}
type UserResponse<TResponseArgs> = UserApproval<TResponseArgs> | UserRejection;
interface AccountInfo {
account: string;
address: string;
authKey: string;
ansName?: string;
}
interface NetworkInfo {
name: Network | string;
chainId: number;
url?: string;
}
type EndlessSignMessageInput = {
address?: boolean;
application?: boolean;
chainId?: boolean;
message: string;
nonce?: string;
};
type EndlessSignMessageOutput = {
address?: string;
application?: string;
chainId?: number;
fullMessage: string;
publicKey: string;
message: string;
nonce: string;
prefix: 'Endless';
signature: '';
};
interface EndlessSignAndSubmitTransactionInput {
gasUnitPrice?: number;
maxGasAmount?: number;
payload: '';
options?: '';
}
declare enum EndlessSendTransactionType {
SIGNATURE_ONLY = "signatureOnly",
SIGN_AND_SUBMIT = "signAndSubmit"
}
declare enum EndlessWalletTransactionType {
SIMPLE = "simple",
MULTI_AGENT = "multiAgent"
}
interface TronRequestArguments {
readonly method: string;
readonly params?: unknown[] | object;
}
interface ProviderRpcError extends Error {
code: number;
message: string;
data?: unknown;
}
type TronEvent = 'connect' | 'disconnect' | 'chainChanged' | 'accountsChanged';
type TronConnectCallback = (data: {
chainId: string;
}) => void;
type TronChainChangedCallback = TronConnectCallback;
type TronDisconnectCallback = (error: ProviderRpcError) => void;
type TronAccountsChangedCallback = (data: [string?]) => void;
interface Tron {
request(args: {
method: 'eth_requestAccounts';
}): Promise<[string]>;
request(args: TronRequestArguments): Promise<unknown>;
on(event: 'connect', cb: TronConnectCallback): void;
on(event: 'disconnect', cb: TronDisconnectCallback): void;
on(event: 'chainChanged', cb: TronChainChangedCallback): void;
on(event: 'accountsChanged', cb: TronAccountsChangedCallback): void;
removeListener(event: TronEvent, cb: unknown): void;
tronWeb: TronWeb | false;
isTronLink: boolean;
}
declare global {
const tronWeb: TronWeb;
const TronWeb: TronWebSDK;
const wx: any;
interface Window {
wx: any;
webkit: any;
endlessWallet?: {
sendResponse: (response: any) => void;
};
_endlessWallet?: {
sendMessage: (data: any) => void;
};
WeixinJSBridge: {
invoke(api: string, data: any, callback: (res: any) => void): void;
on(api: string, callback: (res: any) => void): void;
};
tronWallet?: {
sendResponse: (response: any) => void;
};
_tronWallet?: {
sendMessage: (data: any) => void;
};
tron: Tron;
tronWeb: TronWeb;
TronWeb: TronWebSDK;
}
}
export { type AccountInfo, type ChainData, EndlessSendTransactionType, type EndlessSignAndSubmitTransactionInput, type EndlessSignMessageInput, type EndlessSignMessageOutput, EndlessWalletTransactionType, type IInitData, Network, type NetworkInfo, type Tron, type TronAccountsChangedCallback, type TronChainChangedCallback, type TronConnectCallback, type TronDisconnectCallback, type UserApproval, type UserRejection, type UserResponse, UserResponseStatus };