UNPKG

@luffalab/luffa-tron-sdk

Version:

luffa tron ts sdk

150 lines (132 loc) 3.78 kB
import type tronWebModule from 'tronWeb'; import type { TronWeb } from 'tronWeb'; type TronWebSDK = typeof tronWebModule; export enum Network { MAINNET = "mainnet", TESTNET = "testnet", ETH = 'eth', BSC = 'bsc', } export type IInitData = { colorMode?: 'light' | 'dark'; network: Network | string; fullnode?: string; indexer?: string; walletUrl?: string; prover?: string; callbackWalletName?: string; miniprogram?: Boolean; windowWidth?: number; }; export type ChainData = { targetNet: 'endless' | 'eds' | 'eth' | 'eth_sepolia' | 'bsc' | 'bsc_testnet' | 'tron' | 'tron_nile'; } export enum UserResponseStatus { APPROVED = 'Approved', REJECTED = 'Rejected' } export interface UserApproval<TResponseArgs> { status: UserResponseStatus.APPROVED; args: TResponseArgs; } export interface UserRejection { status: UserResponseStatus.REJECTED; message?: string; } export type UserResponse<TResponseArgs> = UserApproval<TResponseArgs> | UserRejection; export interface AccountInfo { account: string; address: string; authKey: string; ansName?: string; } export interface NetworkInfo { name: Network | string; chainId: number; url?: string; } export type EndlessSignMessageInput = { address?: boolean; application?: boolean; chainId?: boolean; message: string; nonce?: string; }; export type EndlessSignMessageOutput = { address?: string; application?: string; chainId?: number; fullMessage: string; publicKey: string; message: string; nonce: string; prefix: 'Endless'; signature: ''; }; export interface EndlessSignAndSubmitTransactionInput { gasUnitPrice?: number; // defaults to estimated gas unit price maxGasAmount?: number; // defaults to estimated max gas amount payload: ''; // the transaction payload options?: ''; } export enum EndlessSendTransactionType { SIGNATURE_ONLY = 'signatureOnly', SIGN_AND_SUBMIT = 'signAndSubmit' } export 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'; export type TronConnectCallback = (data: { chainId: string }) => void; export type TronChainChangedCallback = TronConnectCallback; export type TronDisconnectCallback = (error: ProviderRpcError) => void; export type TronAccountsChangedCallback = (data: [string?]) => void; export 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; } }