UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

139 lines (136 loc) 4.2 kB
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 };