trx.d.ts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. import { TronWeb } from '../tronweb.js';
  2. import { Block, GetTransactionResponse } from '../types/APIResponse.js';
  3. import { Token, Account, Witness, TransactionSignWeight, BroadcastReturn, AddressOptions, Proposal, ChainParameter, BroadcastHexReturn, AccountResourceMessage, Address, Exchange, TransactionInfo } from '../types/Trx.js';
  4. import { SignedTransaction, Transaction } from '../types/Transaction.js';
  5. import { TypedDataDomain, TypedDataField } from '../utils/typedData.js';
  6. import { Resource } from '../types/TransactionBuilder.js';
  7. type SignedStringOrSignedTransaction<T extends string | Transaction | SignedTransaction> = T extends string ? string : SignedTransaction & T;
  8. export declare class Trx {
  9. private tronWeb;
  10. private cache;
  11. private validator;
  12. signMessage: <T extends SignedTransaction | Transaction | string>(transaction: T, privateKey?: string | false, useTronHeader?: boolean, multisig?: boolean) => Promise<SignedStringOrSignedTransaction<T>>;
  13. sendAsset: (to: string, amount: number, tokenID: string | number, options?: AddressOptions) => Promise<BroadcastReturn<SignedTransaction>>;
  14. send: (to: string, amount: number, options?: AddressOptions) => Promise<BroadcastReturn<SignedTransaction>>;
  15. sendTrx: (to: string, amount: number, options?: AddressOptions) => Promise<BroadcastReturn<SignedTransaction>>;
  16. broadcast: <T extends SignedTransaction>(signedTransaction: T) => Promise<BroadcastReturn<T>>;
  17. broadcastHex: (signedHexTransaction: string) => Promise<BroadcastHexReturn | {
  18. transaction: Transaction;
  19. hexTransaction: string;
  20. result: boolean;
  21. txid: string;
  22. code: string;
  23. message: string;
  24. }>;
  25. signTransaction: <T extends SignedTransaction | Transaction | string>(transaction: T, privateKey?: string | false, useTronHeader?: boolean, multisig?: boolean) => Promise<SignedStringOrSignedTransaction<T>>;
  26. constructor(tronWeb: TronWeb);
  27. _parseToken(token: any): Token;
  28. getCurrentBlock(): Promise<Block>;
  29. getConfirmedCurrentBlock(): Promise<Block>;
  30. getBlock(block?: 'earliest' | 'latest' | number | string | false): Promise<Block>;
  31. getBlockByHash(blockHash: string): Promise<Block>;
  32. getBlockByNumber(blockID: number): Promise<Block>;
  33. getBlockTransactionCount(block?: 'earliest' | 'latest' | number | string | false): Promise<number>;
  34. getTransactionFromBlock(block: "earliest" | "latest" | number | string | false | undefined, index: number): Promise<GetTransactionResponse>;
  35. getTransactionsFromBlock(block?: 'earliest' | 'latest' | number | string | false): Promise<GetTransactionResponse[]>;
  36. getTransaction(transactionID: string): Promise<GetTransactionResponse>;
  37. getConfirmedTransaction(transactionID: string): Promise<GetTransactionResponse>;
  38. getUnconfirmedTransactionInfo(transactionID: string): Promise<TransactionInfo>;
  39. getTransactionInfo(transactionID: string): Promise<TransactionInfo>;
  40. getTransactionsToAddress(address?: string | false, limit?: number, offset?: number): Promise<GetTransactionResponse[]>;
  41. getTransactionsFromAddress(address?: string | false, limit?: number, offset?: number): Promise<GetTransactionResponse[]>;
  42. getTransactionsRelated(address?: string | false, direction?: string, limit?: number, offset?: number): Promise<GetTransactionResponse[]>;
  43. getAccount(address?: string | false): Promise<Account>;
  44. getAccountById(id: string): Promise<Account>;
  45. getAccountInfoById(id: string, options: {
  46. confirmed: boolean;
  47. }): Promise<Account>;
  48. getBalance(address?: string | false): Promise<number>;
  49. getUnconfirmedAccount(address?: string | false): Promise<Account>;
  50. getUnconfirmedAccountById(id: string): Promise<Account>;
  51. getUnconfirmedBalance(address?: string | false): Promise<number>;
  52. getBandwidth(address?: string | false): Promise<number>;
  53. getTokensIssuedByAddress(address?: string | false): Promise<Record<string, Token>>;
  54. getTokenFromID(tokenID: string | number): Promise<Token>;
  55. listNodes(): Promise<string[]>;
  56. getBlockRange(start?: number, end?: number): Promise<Block[]>;
  57. listSuperRepresentatives(): Promise<Witness[]>;
  58. listTokens(limit?: number, offset?: number): Promise<Token[]>;
  59. timeUntilNextVoteCycle(): Promise<number>;
  60. getContract(contractAddress: string): Promise<any>;
  61. ecRecover(transaction: SignedTransaction): string | string[];
  62. static ecRecover(transaction: SignedTransaction): Address | Address[];
  63. verifyMessage(message: string, signature: string, address?: string | false, useTronHeader?: boolean): Promise<boolean>;
  64. static verifySignature(message: string, address: string, signature: string, useTronHeader?: boolean): boolean;
  65. verifyMessageV2(message: string | Uint8Array | Array<number>, signature: string): Promise<string>;
  66. static verifyMessageV2(message: string | Uint8Array | Array<number>, signature: string): string;
  67. verifyTypedData(domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, any>, signature: string, address?: string | false): boolean;
  68. static verifyTypedData(domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, any>, signature: string, address: string): boolean;
  69. sign<T extends SignedTransaction | Transaction | string>(transaction: T, privateKey?: string | false, useTronHeader?: boolean, multisig?: boolean): Promise<SignedStringOrSignedTransaction<T>>;
  70. static signString(message: string, privateKey: string, useTronHeader?: boolean): string;
  71. /**
  72. * sign message v2 for verified header length
  73. *
  74. * @param {message to be signed, should be Bytes or string} message
  75. * @param {privateKey for signature} privateKey
  76. * @param {reserved} options
  77. */
  78. signMessageV2(message: string | Uint8Array | Array<number>, privateKey?: string | false): string;
  79. static signMessageV2(message: string | Uint8Array | Array<number>, privateKey: string): string;
  80. _signTypedData(domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, any>, privateKey?: string | false): string;
  81. static _signTypedData(domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, any>, privateKey: string): string;
  82. multiSign(transaction: Transaction, privateKey?: string | false, permissionId?: number): Promise<SignedTransaction<import("../types/Contract.js").ContractParamter>>;
  83. getApprovedList(transaction: Transaction): Promise<{
  84. approved_list: string[];
  85. }>;
  86. getSignWeight(transaction: Transaction, permissionId?: number): Promise<TransactionSignWeight>;
  87. sendRawTransaction<T extends SignedTransaction>(signedTransaction: T): Promise<BroadcastReturn<T>>;
  88. sendHexTransaction(signedHexTransaction: string): Promise<BroadcastHexReturn | {
  89. transaction: Transaction;
  90. hexTransaction: string;
  91. result: boolean;
  92. txid: string;
  93. code: string;
  94. message: string;
  95. }>;
  96. sendTransaction(to: string, amount: number, options?: AddressOptions): Promise<BroadcastReturn<SignedTransaction>>;
  97. sendToken(to: string, amount: number, tokenID: string | number, options?: AddressOptions): Promise<BroadcastReturn<SignedTransaction>>;
  98. /**
  99. * Freezes an amount of TRX.
  100. * Will give bandwidth OR Energy and TRON Power(voting rights)
  101. * to the owner of the frozen tokens.
  102. *
  103. * @param amount - is the number of frozen trx
  104. * @param duration - is the duration in days to be frozen
  105. * @param resource - is the type, must be either "ENERGY" or "BANDWIDTH"
  106. * @param options
  107. */
  108. freezeBalance(amount?: number, duration?: number, resource?: Resource, options?: AddressOptions, receiverAddress?: string): Promise<BroadcastReturn<SignedTransaction>>;
  109. /**
  110. * Unfreeze TRX that has passed the minimum freeze duration.
  111. * Unfreezing will remove bandwidth and TRON Power.
  112. *
  113. * @param resource - is the type, must be either "ENERGY" or "BANDWIDTH"
  114. * @param options
  115. */
  116. unfreezeBalance(resource: Resource | undefined, options: AddressOptions | undefined, receiverAddress: string): Promise<BroadcastReturn<SignedTransaction>>;
  117. /**
  118. * Modify account name
  119. * Note: Username is allowed to edit only once.
  120. *
  121. * @param privateKey - Account private Key
  122. * @param accountName - name of the account
  123. *
  124. * @return modified Transaction Object
  125. */
  126. updateAccount(accountName: string, options?: AddressOptions): Promise<BroadcastReturn<SignedTransaction>>;
  127. /**
  128. * Gets a network modification proposal by ID.
  129. */
  130. getProposal(proposalID: number): Promise<Proposal>;
  131. /**
  132. * Lists all network modification proposals.
  133. */
  134. listProposals(): Promise<Proposal[]>;
  135. /**
  136. * Lists all parameters available for network modification proposals.
  137. */
  138. getChainParameters(): Promise<ChainParameter[]>;
  139. /**
  140. * Get the account resources
  141. */
  142. getAccountResources(address?: string | false): Promise<AccountResourceMessage>;
  143. /**
  144. * Query the amount of resources of a specific resourceType delegated by fromAddress to toAddress
  145. */
  146. getDelegatedResourceV2(fromAddress?: string | false, toAddress?: string | false, options?: {
  147. confirmed: boolean;
  148. }): Promise<{
  149. delegatedResource: {
  150. from: string;
  151. to: string;
  152. frozen_balance_for_bandwidth: number;
  153. frozen_balance_for_energy: number;
  154. expire_time_for_bandwidth: number;
  155. expire_time_for_energy: number;
  156. };
  157. }>;
  158. /**
  159. * Query the resource delegation index by an account
  160. */
  161. getDelegatedResourceAccountIndexV2(address?: string | false, options?: {
  162. confirmed: boolean;
  163. }): Promise<{
  164. account: Address;
  165. fromAccounts: Address[];
  166. toAccounts: Address[];
  167. }>;
  168. /**
  169. * Query the amount of delegatable resources of the specified resource Type for target address, unit is sun.
  170. */
  171. getCanDelegatedMaxSize(address?: string | false, resource?: Resource, options?: {
  172. confirmed: boolean;
  173. }): Promise<{
  174. max_size: number;
  175. }>;
  176. /**
  177. * Remaining times of available unstaking API
  178. */
  179. getAvailableUnfreezeCount(address?: string | false, options?: {
  180. confirmed: boolean;
  181. }): Promise<{
  182. count: number;
  183. }>;
  184. /**
  185. * Query the withdrawable balance at the specified timestamp
  186. */
  187. getCanWithdrawUnfreezeAmount(address?: string | false, timestamp?: number, options?: {
  188. confirmed: boolean;
  189. }): Promise<{
  190. amount: number;
  191. }>;
  192. /**
  193. * Get the exchange ID.
  194. */
  195. getExchangeByID(exchangeID: number): Promise<Exchange>;
  196. /**
  197. * Lists the exchanges
  198. */
  199. listExchanges(): Promise<Exchange[]>;
  200. /**
  201. * Lists all network modification proposals.
  202. */
  203. listExchangesPaginated(limit?: number, offset?: number): Promise<Exchange[]>;
  204. /**
  205. * Get info about thre node
  206. */
  207. getNodeInfo(): Promise<{
  208. beginSyncNum: number;
  209. block: string;
  210. solidityBlock: string;
  211. currentConnectCount: number;
  212. activeConnectCount: number;
  213. passiveConnectCount: number;
  214. totalFlow: number;
  215. peerInfoList: {
  216. lastSyncBlock: string;
  217. remainNum: number;
  218. lastBlockUpdateTime: number;
  219. syncFlag: boolean;
  220. headBlockTimeWeBothHave: number;
  221. needSyncFromPeer: boolean;
  222. needSyncFromUs: boolean;
  223. host: string;
  224. port: number;
  225. nodeId: string;
  226. connectTime: number;
  227. avgLatency: number;
  228. syncToFetchSize: number;
  229. syncToFetchSizePeekNum: number;
  230. syncBlockRequestedSize: number;
  231. unFetchSynNum: number;
  232. blockInPorcSize: number;
  233. headBlockWeBothHave: string;
  234. isActive: boolean;
  235. score: number;
  236. nodeCount: number;
  237. inFlow: number;
  238. disconnectTimes: number;
  239. localDisconnectReason: string;
  240. remoteDisconnectReason: string;
  241. };
  242. configNodeInfo: {
  243. codeVersion: string;
  244. p2pVersion: string;
  245. listenPort: number;
  246. discoverEnable: boolean;
  247. activeNodeSize: number;
  248. passiveNodeSize: number;
  249. sendNodeSize: number;
  250. maxConnectCount: number;
  251. sameIpMaxConnectCount: number;
  252. backupListenPort: number;
  253. backupMemberSize: number;
  254. backupPriority: number;
  255. dbVersion: number;
  256. minParticipationRate: number;
  257. supportConstant: boolean;
  258. minTimeRatio: number;
  259. maxTimeRatio: number;
  260. allowCreationOfContracts: number;
  261. allowAdaptiveEnergy: number;
  262. };
  263. machineInfo: {
  264. threadCount: number;
  265. deadLockThreadCount: number;
  266. cpuCount: number;
  267. totalMemory: number;
  268. freeMemory: number;
  269. cpuRate: number;
  270. javaVersion: string;
  271. osName: string;
  272. jvmTotalMemory: number;
  273. jvmFreeMemory: number;
  274. processCpuRate: number;
  275. memoryDescInfoList: {
  276. name: string;
  277. initSize: number;
  278. useSize: number;
  279. maxSize: number;
  280. useRate: number;
  281. };
  282. deadLockThreadInfoList: {
  283. name: string;
  284. lockName: string;
  285. lockOwner: string;
  286. state: string;
  287. blockTime: number;
  288. waitTime: number;
  289. stackTrace: string;
  290. };
  291. };
  292. cheatWitnessInfoMap: Map<string, string>;
  293. }>;
  294. getTokenListByName(tokenID: string | number): Promise<Token | Token[]>;
  295. getTokenByID(tokenID: number | string): Promise<Token>;
  296. getReward(address: Address, options?: {
  297. confirmed?: boolean;
  298. }): Promise<number>;
  299. getUnconfirmedReward(address: Address, options?: {
  300. confirmed?: boolean;
  301. }): Promise<number>;
  302. getBrokerage(address: Address, options?: {
  303. confirmed?: boolean;
  304. }): Promise<number>;
  305. getUnconfirmedBrokerage(address: Address, options?: {
  306. confirmed?: boolean;
  307. }): Promise<number>;
  308. _getReward(address: string | false | undefined, options: {
  309. confirmed?: boolean;
  310. }): Promise<number>;
  311. private _getBrokerage;
  312. getBandwidthPrices(): Promise<string>;
  313. getEnergyPrices(): Promise<string>;
  314. }
  315. export {};