@hiero-ledger/sdk 2.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1272) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +167 -0
  3. package/dist/umd.js +98781 -0
  4. package/dist/umd.min.js +122 -0
  5. package/lib/BadEntityIdError.cjs +27 -0
  6. package/lib/BadEntityIdError.d.ts +15 -0
  7. package/lib/BadEntityIdError.js +2 -0
  8. package/lib/BadEntityIdError.js.map +1 -0
  9. package/lib/Cache.cjs +376 -0
  10. package/lib/Cache.d.ts +228 -0
  11. package/lib/Cache.js +2 -0
  12. package/lib/Cache.js.map +1 -0
  13. package/lib/Duration.cjs +53 -0
  14. package/lib/Duration.d.ts +37 -0
  15. package/lib/Duration.js +2 -0
  16. package/lib/Duration.js.map +1 -0
  17. package/lib/EntityIdHelper.cjs +547 -0
  18. package/lib/EntityIdHelper.d.ts +203 -0
  19. package/lib/EntityIdHelper.js +2 -0
  20. package/lib/EntityIdHelper.js.map +1 -0
  21. package/lib/EthereumFlow.cjs +207 -0
  22. package/lib/EthereumFlow.d.ts +134 -0
  23. package/lib/EthereumFlow.js +2 -0
  24. package/lib/EthereumFlow.js.map +1 -0
  25. package/lib/EthereumTransaction.cjs +260 -0
  26. package/lib/EthereumTransaction.d.ts +161 -0
  27. package/lib/EthereumTransaction.js +2 -0
  28. package/lib/EthereumTransaction.js.map +1 -0
  29. package/lib/EthereumTransactionData.cjs +66 -0
  30. package/lib/EthereumTransactionData.d.ts +33 -0
  31. package/lib/EthereumTransactionData.js +2 -0
  32. package/lib/EthereumTransactionData.js.map +1 -0
  33. package/lib/EthereumTransactionDataEip1559.cjs +134 -0
  34. package/lib/EthereumTransactionDataEip1559.d.ts +64 -0
  35. package/lib/EthereumTransactionDataEip1559.js +2 -0
  36. package/lib/EthereumTransactionDataEip1559.js.map +1 -0
  37. package/lib/EthereumTransactionDataEip2930.cjs +129 -0
  38. package/lib/EthereumTransactionDataEip2930.d.ts +60 -0
  39. package/lib/EthereumTransactionDataEip2930.js +2 -0
  40. package/lib/EthereumTransactionDataEip2930.js.map +1 -0
  41. package/lib/EthereumTransactionDataLegacy.cjs +112 -0
  42. package/lib/EthereumTransactionDataLegacy.d.ts +52 -0
  43. package/lib/EthereumTransactionDataLegacy.js +2 -0
  44. package/lib/EthereumTransactionDataLegacy.js.map +1 -0
  45. package/lib/EvmAddress.cjs +84 -0
  46. package/lib/EvmAddress.d.ts +47 -0
  47. package/lib/EvmAddress.js +2 -0
  48. package/lib/EvmAddress.js.map +1 -0
  49. package/lib/ExchangeRate.cjs +113 -0
  50. package/lib/ExchangeRate.d.ts +75 -0
  51. package/lib/ExchangeRate.js +2 -0
  52. package/lib/ExchangeRate.js.map +1 -0
  53. package/lib/ExchangeRates.cjs +75 -0
  54. package/lib/ExchangeRates.d.ts +39 -0
  55. package/lib/ExchangeRates.js +2 -0
  56. package/lib/ExchangeRates.js.map +1 -0
  57. package/lib/Executable.cjs +760 -0
  58. package/lib/Executable.d.ts +365 -0
  59. package/lib/Executable.js +2 -0
  60. package/lib/Executable.js.map +1 -0
  61. package/lib/FeeComponents.cjs +170 -0
  62. package/lib/FeeComponents.d.ts +66 -0
  63. package/lib/FeeComponents.js +2 -0
  64. package/lib/FeeComponents.js.map +1 -0
  65. package/lib/FeeData.cjs +111 -0
  66. package/lib/FeeData.d.ts +58 -0
  67. package/lib/FeeData.js +2 -0
  68. package/lib/FeeData.js.map +1 -0
  69. package/lib/FeeDataType.cjs +128 -0
  70. package/lib/FeeDataType.d.ts +44 -0
  71. package/lib/FeeDataType.js +2 -0
  72. package/lib/FeeDataType.js.map +1 -0
  73. package/lib/FeeSchedule.cjs +79 -0
  74. package/lib/FeeSchedule.d.ts +40 -0
  75. package/lib/FeeSchedule.js +2 -0
  76. package/lib/FeeSchedule.js.map +1 -0
  77. package/lib/FeeSchedules.cjs +79 -0
  78. package/lib/FeeSchedules.d.ts +40 -0
  79. package/lib/FeeSchedules.js +2 -0
  80. package/lib/FeeSchedules.js.map +1 -0
  81. package/lib/FreezeType.cjs +117 -0
  82. package/lib/FreezeType.d.ts +42 -0
  83. package/lib/FreezeType.js +2 -0
  84. package/lib/FreezeType.js.map +1 -0
  85. package/lib/Hbar.cjs +139 -0
  86. package/lib/Hbar.d.ts +62 -0
  87. package/lib/Hbar.js +2 -0
  88. package/lib/Hbar.js.map +1 -0
  89. package/lib/HbarUnit.cjs +77 -0
  90. package/lib/HbarUnit.d.ts +46 -0
  91. package/lib/HbarUnit.js +2 -0
  92. package/lib/HbarUnit.js.map +1 -0
  93. package/lib/Key.cjs +62 -0
  94. package/lib/Key.d.ts +23 -0
  95. package/lib/Key.js +2 -0
  96. package/lib/Key.js.map +1 -0
  97. package/lib/KeyList.cjs +181 -0
  98. package/lib/KeyList.d.ts +87 -0
  99. package/lib/KeyList.js +2 -0
  100. package/lib/KeyList.js.map +1 -0
  101. package/lib/LedgerId.cjs +137 -0
  102. package/lib/LedgerId.d.ts +64 -0
  103. package/lib/LedgerId.js +2 -0
  104. package/lib/LedgerId.js.map +1 -0
  105. package/lib/LocalProvider.cjs +159 -0
  106. package/lib/LocalProvider.d.ts +120 -0
  107. package/lib/LocalProvider.js +2 -0
  108. package/lib/LocalProvider.js.map +1 -0
  109. package/lib/ManagedNode.cjs +245 -0
  110. package/lib/ManagedNode.d.ts +127 -0
  111. package/lib/ManagedNode.js +2 -0
  112. package/lib/ManagedNode.js.map +1 -0
  113. package/lib/ManagedNodeAddress.cjs +104 -0
  114. package/lib/ManagedNodeAddress.d.ts +51 -0
  115. package/lib/ManagedNodeAddress.js +2 -0
  116. package/lib/ManagedNodeAddress.js.map +1 -0
  117. package/lib/MaxAttemptsOrTimeoutError.cjs +48 -0
  118. package/lib/MaxAttemptsOrTimeoutError.d.ts +26 -0
  119. package/lib/MaxAttemptsOrTimeoutError.js +2 -0
  120. package/lib/MaxAttemptsOrTimeoutError.js.map +1 -0
  121. package/lib/MaxQueryPaymentExceeded.cjs +34 -0
  122. package/lib/MaxQueryPaymentExceeded.d.ts +21 -0
  123. package/lib/MaxQueryPaymentExceeded.js +2 -0
  124. package/lib/MaxQueryPaymentExceeded.js.map +1 -0
  125. package/lib/MirrorNode.cjs +48 -0
  126. package/lib/MirrorNode.d.ts +39 -0
  127. package/lib/MirrorNode.js +2 -0
  128. package/lib/MirrorNode.js.map +1 -0
  129. package/lib/Mnemonic.cjs +232 -0
  130. package/lib/Mnemonic.d.ts +145 -0
  131. package/lib/Mnemonic.js +2 -0
  132. package/lib/Mnemonic.js.map +1 -0
  133. package/lib/Node.cjs +114 -0
  134. package/lib/Node.d.ts +72 -0
  135. package/lib/Node.js +2 -0
  136. package/lib/Node.js.map +1 -0
  137. package/lib/ObjectMap.cjs +137 -0
  138. package/lib/ObjectMap.d.ts +88 -0
  139. package/lib/ObjectMap.js +2 -0
  140. package/lib/ObjectMap.js.map +1 -0
  141. package/lib/PrecheckStatusError.cjs +77 -0
  142. package/lib/PrecheckStatusError.d.ts +68 -0
  143. package/lib/PrecheckStatusError.js +2 -0
  144. package/lib/PrecheckStatusError.js.map +1 -0
  145. package/lib/PrivateKey.cjs +529 -0
  146. package/lib/PrivateKey.d.ts +312 -0
  147. package/lib/PrivateKey.js +2 -0
  148. package/lib/PrivateKey.js.map +1 -0
  149. package/lib/PrngTransaction.cjs +136 -0
  150. package/lib/PrngTransaction.d.ts +74 -0
  151. package/lib/PrngTransaction.js +2 -0
  152. package/lib/PrngTransaction.js.map +1 -0
  153. package/lib/Provider.cjs +41 -0
  154. package/lib/Provider.d.ts +32 -0
  155. package/lib/Provider.js +2 -0
  156. package/lib/Provider.js.map +1 -0
  157. package/lib/PublicKey.cjs +285 -0
  158. package/lib/PublicKey.d.ts +142 -0
  159. package/lib/PublicKey.js +2 -0
  160. package/lib/PublicKey.js.map +1 -0
  161. package/lib/ReceiptStatusError.cjs +45 -0
  162. package/lib/ReceiptStatusError.d.ts +38 -0
  163. package/lib/ReceiptStatusError.js +2 -0
  164. package/lib/ReceiptStatusError.js.map +1 -0
  165. package/lib/RecordStatusError.cjs +34 -0
  166. package/lib/RecordStatusError.d.ts +27 -0
  167. package/lib/RecordStatusError.js +2 -0
  168. package/lib/RecordStatusError.js.map +1 -0
  169. package/lib/RequestType.cjs +922 -0
  170. package/lib/RequestType.d.ts +131 -0
  171. package/lib/RequestType.js +2 -0
  172. package/lib/RequestType.js.map +1 -0
  173. package/lib/Signer.cjs +47 -0
  174. package/lib/Signer.d.ts +38 -0
  175. package/lib/Signer.js +2 -0
  176. package/lib/Signer.js.map +1 -0
  177. package/lib/SignerSignature.cjs +34 -0
  178. package/lib/SignerSignature.d.ts +29 -0
  179. package/lib/SignerSignature.js +2 -0
  180. package/lib/SignerSignature.js.map +1 -0
  181. package/lib/StakingInfo.cjs +160 -0
  182. package/lib/StakingInfo.d.ts +109 -0
  183. package/lib/StakingInfo.js +2 -0
  184. package/lib/StakingInfo.js.map +1 -0
  185. package/lib/Status.cjs +3353 -0
  186. package/lib/Status.d.ts +395 -0
  187. package/lib/Status.js +2 -0
  188. package/lib/Status.js.map +1 -0
  189. package/lib/StatusError.cjs +66 -0
  190. package/lib/StatusError.d.ts +41 -0
  191. package/lib/StatusError.js +2 -0
  192. package/lib/StatusError.js.map +1 -0
  193. package/lib/Timestamp.cjs +144 -0
  194. package/lib/Timestamp.d.ts +69 -0
  195. package/lib/Timestamp.js +2 -0
  196. package/lib/Timestamp.js.map +1 -0
  197. package/lib/TransactionFeeSchedule.cjs +85 -0
  198. package/lib/TransactionFeeSchedule.d.ts +39 -0
  199. package/lib/TransactionFeeSchedule.js +2 -0
  200. package/lib/TransactionFeeSchedule.js.map +1 -0
  201. package/lib/Transfer.cjs +104 -0
  202. package/lib/Transfer.d.ts +77 -0
  203. package/lib/Transfer.js +2 -0
  204. package/lib/Transfer.js.map +1 -0
  205. package/lib/Wallet.cjs +253 -0
  206. package/lib/Wallet.d.ts +147 -0
  207. package/lib/Wallet.js +2 -0
  208. package/lib/Wallet.js.map +1 -0
  209. package/lib/account/AccountAllowanceAdjustTransaction.cjs +366 -0
  210. package/lib/account/AccountAllowanceAdjustTransaction.d.ts +208 -0
  211. package/lib/account/AccountAllowanceAdjustTransaction.js +2 -0
  212. package/lib/account/AccountAllowanceAdjustTransaction.js.map +1 -0
  213. package/lib/account/AccountAllowanceApproveTransaction.cjs +353 -0
  214. package/lib/account/AccountAllowanceApproveTransaction.d.ts +194 -0
  215. package/lib/account/AccountAllowanceApproveTransaction.js +2 -0
  216. package/lib/account/AccountAllowanceApproveTransaction.js.map +1 -0
  217. package/lib/account/AccountAllowanceDeleteTransaction.cjs +166 -0
  218. package/lib/account/AccountAllowanceDeleteTransaction.d.ts +90 -0
  219. package/lib/account/AccountAllowanceDeleteTransaction.js +2 -0
  220. package/lib/account/AccountAllowanceDeleteTransaction.js.map +1 -0
  221. package/lib/account/AccountBalance.cjs +145 -0
  222. package/lib/account/AccountBalance.d.ts +72 -0
  223. package/lib/account/AccountBalance.js +2 -0
  224. package/lib/account/AccountBalance.js.map +1 -0
  225. package/lib/account/AccountBalanceQuery.cjs +210 -0
  226. package/lib/account/AccountBalanceQuery.d.ts +92 -0
  227. package/lib/account/AccountBalanceQuery.js +2 -0
  228. package/lib/account/AccountBalanceQuery.js.map +1 -0
  229. package/lib/account/AccountCreateTransaction.cjs +566 -0
  230. package/lib/account/AccountCreateTransaction.d.ts +309 -0
  231. package/lib/account/AccountCreateTransaction.js +2 -0
  232. package/lib/account/AccountCreateTransaction.js.map +1 -0
  233. package/lib/account/AccountDeleteTransaction.cjs +181 -0
  234. package/lib/account/AccountDeleteTransaction.d.ts +97 -0
  235. package/lib/account/AccountDeleteTransaction.js +2 -0
  236. package/lib/account/AccountDeleteTransaction.js.map +1 -0
  237. package/lib/account/AccountId.cjs +400 -0
  238. package/lib/account/AccountId.d.ts +149 -0
  239. package/lib/account/AccountId.js +2 -0
  240. package/lib/account/AccountId.js.map +1 -0
  241. package/lib/account/AccountInfo.cjs +356 -0
  242. package/lib/account/AccountInfo.d.ts +234 -0
  243. package/lib/account/AccountInfo.js +2 -0
  244. package/lib/account/AccountInfo.js.map +1 -0
  245. package/lib/account/AccountInfoFlow.cjs +88 -0
  246. package/lib/account/AccountInfoFlow.d.ts +53 -0
  247. package/lib/account/AccountInfoFlow.js +2 -0
  248. package/lib/account/AccountInfoFlow.js.map +1 -0
  249. package/lib/account/AccountInfoQuery.cjs +170 -0
  250. package/lib/account/AccountInfoQuery.d.ts +67 -0
  251. package/lib/account/AccountInfoQuery.js +2 -0
  252. package/lib/account/AccountInfoQuery.js.map +1 -0
  253. package/lib/account/AccountRecordsQuery.cjs +163 -0
  254. package/lib/account/AccountRecordsQuery.d.ts +67 -0
  255. package/lib/account/AccountRecordsQuery.js +2 -0
  256. package/lib/account/AccountRecordsQuery.js.map +1 -0
  257. package/lib/account/AccountUpdateTransaction.cjs +503 -0
  258. package/lib/account/AccountUpdateTransaction.d.ts +271 -0
  259. package/lib/account/AccountUpdateTransaction.js +2 -0
  260. package/lib/account/AccountUpdateTransaction.js.map +1 -0
  261. package/lib/account/HbarAllowance.cjs +126 -0
  262. package/lib/account/HbarAllowance.d.ts +85 -0
  263. package/lib/account/HbarAllowance.js +2 -0
  264. package/lib/account/HbarAllowance.js.map +1 -0
  265. package/lib/account/HbarTransferMap.cjs +45 -0
  266. package/lib/account/HbarTransferMap.d.ts +31 -0
  267. package/lib/account/HbarTransferMap.js +2 -0
  268. package/lib/account/HbarTransferMap.js.map +1 -0
  269. package/lib/account/LiveHash.cjs +76 -0
  270. package/lib/account/LiveHash.d.ts +49 -0
  271. package/lib/account/LiveHash.js +2 -0
  272. package/lib/account/LiveHash.js.map +1 -0
  273. package/lib/account/LiveHashAddTransaction.cjs +238 -0
  274. package/lib/account/LiveHashAddTransaction.d.ts +125 -0
  275. package/lib/account/LiveHashAddTransaction.js +2 -0
  276. package/lib/account/LiveHashAddTransaction.js.map +1 -0
  277. package/lib/account/LiveHashDeleteTransaction.cjs +170 -0
  278. package/lib/account/LiveHashDeleteTransaction.d.ts +88 -0
  279. package/lib/account/LiveHashDeleteTransaction.js +2 -0
  280. package/lib/account/LiveHashDeleteTransaction.js.map +1 -0
  281. package/lib/account/LiveHashQuery.cjs +188 -0
  282. package/lib/account/LiveHashQuery.d.ts +91 -0
  283. package/lib/account/LiveHashQuery.js +2 -0
  284. package/lib/account/LiveHashQuery.js.map +1 -0
  285. package/lib/account/NullableTokenDecimalMap.cjs +26 -0
  286. package/lib/account/NullableTokenDecimalMap.d.ts +19 -0
  287. package/lib/account/NullableTokenDecimalMap.js +2 -0
  288. package/lib/account/NullableTokenDecimalMap.js.map +1 -0
  289. package/lib/account/ProxyStaker.cjs +73 -0
  290. package/lib/account/ProxyStaker.d.ts +53 -0
  291. package/lib/account/ProxyStaker.js +2 -0
  292. package/lib/account/ProxyStaker.js.map +1 -0
  293. package/lib/account/TokenAllowance.cjs +130 -0
  294. package/lib/account/TokenAllowance.d.ts +93 -0
  295. package/lib/account/TokenAllowance.js +2 -0
  296. package/lib/account/TokenAllowance.js.map +1 -0
  297. package/lib/account/TokenBalanceMap.cjs +30 -0
  298. package/lib/account/TokenBalanceMap.d.ts +23 -0
  299. package/lib/account/TokenBalanceMap.js +2 -0
  300. package/lib/account/TokenBalanceMap.js.map +1 -0
  301. package/lib/account/TokenDecimalMap.cjs +26 -0
  302. package/lib/account/TokenDecimalMap.d.ts +19 -0
  303. package/lib/account/TokenDecimalMap.js +2 -0
  304. package/lib/account/TokenDecimalMap.js.map +1 -0
  305. package/lib/account/TokenNftAllowance.cjs +168 -0
  306. package/lib/account/TokenNftAllowance.d.ts +110 -0
  307. package/lib/account/TokenNftAllowance.js +2 -0
  308. package/lib/account/TokenNftAllowance.js.map +1 -0
  309. package/lib/account/TokenNftTransferMap.cjs +116 -0
  310. package/lib/account/TokenNftTransferMap.d.ts +55 -0
  311. package/lib/account/TokenNftTransferMap.js +2 -0
  312. package/lib/account/TokenNftTransferMap.js.map +1 -0
  313. package/lib/account/TokenRelationship.cjs +113 -0
  314. package/lib/account/TokenRelationship.d.ts +87 -0
  315. package/lib/account/TokenRelationship.js +2 -0
  316. package/lib/account/TokenRelationship.js.map +1 -0
  317. package/lib/account/TokenRelationshipMap.cjs +57 -0
  318. package/lib/account/TokenRelationshipMap.d.ts +33 -0
  319. package/lib/account/TokenRelationshipMap.js +2 -0
  320. package/lib/account/TokenRelationshipMap.js.map +1 -0
  321. package/lib/account/TokenTransferAccountMap.cjs +28 -0
  322. package/lib/account/TokenTransferAccountMap.d.ts +8 -0
  323. package/lib/account/TokenTransferAccountMap.js +2 -0
  324. package/lib/account/TokenTransferAccountMap.js.map +1 -0
  325. package/lib/account/TokenTransferMap.cjs +86 -0
  326. package/lib/account/TokenTransferMap.d.ts +41 -0
  327. package/lib/account/TokenTransferMap.js +2 -0
  328. package/lib/account/TokenTransferMap.js.map +1 -0
  329. package/lib/account/TransferTransaction.cjs +303 -0
  330. package/lib/account/TransferTransaction.d.ts +173 -0
  331. package/lib/account/TransferTransaction.js +2 -0
  332. package/lib/account/TransferTransaction.js.map +1 -0
  333. package/lib/address_book/AddressBooks.cjs +17 -0
  334. package/lib/address_book/AddressBooks.d.ts +4 -0
  335. package/lib/address_book/AddressBooks.js +2 -0
  336. package/lib/address_book/AddressBooks.js.map +1 -0
  337. package/lib/address_book/Endpoint.cjs +140 -0
  338. package/lib/address_book/Endpoint.d.ts +79 -0
  339. package/lib/address_book/Endpoint.js +2 -0
  340. package/lib/address_book/Endpoint.js.map +1 -0
  341. package/lib/address_book/IPv4Address.cjs +116 -0
  342. package/lib/address_book/IPv4Address.d.ts +59 -0
  343. package/lib/address_book/IPv4Address.js +2 -0
  344. package/lib/address_book/IPv4Address.js.map +1 -0
  345. package/lib/address_book/IPv4AddressPart.cjs +76 -0
  346. package/lib/address_book/IPv4AddressPart.d.ts +41 -0
  347. package/lib/address_book/IPv4AddressPart.js +2 -0
  348. package/lib/address_book/IPv4AddressPart.js.map +1 -0
  349. package/lib/address_book/NodeAddress.cjs +287 -0
  350. package/lib/address_book/NodeAddress.d.ts +170 -0
  351. package/lib/address_book/NodeAddress.js +2 -0
  352. package/lib/address_book/NodeAddress.js.map +1 -0
  353. package/lib/address_book/NodeAddressBook.cjs +108 -0
  354. package/lib/address_book/NodeAddressBook.d.ts +66 -0
  355. package/lib/address_book/NodeAddressBook.js +2 -0
  356. package/lib/address_book/NodeAddressBook.js.map +1 -0
  357. package/lib/array.cjs +51 -0
  358. package/lib/array.d.ts +14 -0
  359. package/lib/array.js +2 -0
  360. package/lib/array.js.map +1 -0
  361. package/lib/base32.cjs +38 -0
  362. package/lib/base32.d.ts +18 -0
  363. package/lib/base32.js +2 -0
  364. package/lib/base32.js.map +1 -0
  365. package/lib/browser.cjs +36 -0
  366. package/lib/browser.d.ts +3 -0
  367. package/lib/browser.js +2 -0
  368. package/lib/browser.js.map +1 -0
  369. package/lib/channel/Channel.cjs +293 -0
  370. package/lib/channel/Channel.d.ts +121 -0
  371. package/lib/channel/Channel.js +2 -0
  372. package/lib/channel/Channel.js.map +1 -0
  373. package/lib/channel/MirrorChannel.cjs +55 -0
  374. package/lib/channel/MirrorChannel.d.ts +32 -0
  375. package/lib/channel/MirrorChannel.js +2 -0
  376. package/lib/channel/MirrorChannel.js.map +1 -0
  377. package/lib/channel/NativeChannel.cjs +97 -0
  378. package/lib/channel/NativeChannel.d.ts +12 -0
  379. package/lib/channel/NativeChannel.js +2 -0
  380. package/lib/channel/NativeChannel.js.map +1 -0
  381. package/lib/channel/NodeChannel.cjs +173 -0
  382. package/lib/channel/NodeChannel.d.ts +41 -0
  383. package/lib/channel/NodeChannel.js +2 -0
  384. package/lib/channel/NodeChannel.js.map +1 -0
  385. package/lib/channel/NodeMirrorChannel.cjs +78 -0
  386. package/lib/channel/NodeMirrorChannel.d.ts +22 -0
  387. package/lib/channel/NodeMirrorChannel.js +2 -0
  388. package/lib/channel/NodeMirrorChannel.js.map +1 -0
  389. package/lib/channel/WebChannel.cjs +90 -0
  390. package/lib/channel/WebChannel.d.ts +12 -0
  391. package/lib/channel/WebChannel.js +2 -0
  392. package/lib/channel/WebChannel.js.map +1 -0
  393. package/lib/client/Client.cjs +818 -0
  394. package/lib/client/Client.d.ts +487 -0
  395. package/lib/client/Client.js +2 -0
  396. package/lib/client/Client.js.map +1 -0
  397. package/lib/client/ManagedNetwork.cjs +427 -0
  398. package/lib/client/ManagedNetwork.d.ts +175 -0
  399. package/lib/client/ManagedNetwork.js +2 -0
  400. package/lib/client/ManagedNetwork.js.map +1 -0
  401. package/lib/client/MirrorNetwork.cjs +89 -0
  402. package/lib/client/MirrorNetwork.d.ts +27 -0
  403. package/lib/client/MirrorNetwork.js +2 -0
  404. package/lib/client/MirrorNetwork.js.map +1 -0
  405. package/lib/client/NativeClient.cjs +210 -0
  406. package/lib/client/NativeClient.d.ts +72 -0
  407. package/lib/client/NativeClient.js +2 -0
  408. package/lib/client/NativeClient.js.map +1 -0
  409. package/lib/client/Network.cjs +257 -0
  410. package/lib/client/Network.d.ts +90 -0
  411. package/lib/client/Network.js +2 -0
  412. package/lib/client/Network.js.map +1 -0
  413. package/lib/client/NodeClient.cjs +316 -0
  414. package/lib/client/NodeClient.d.ts +129 -0
  415. package/lib/client/NodeClient.js +2 -0
  416. package/lib/client/NodeClient.js.map +1 -0
  417. package/lib/client/WebClient.cjs +280 -0
  418. package/lib/client/WebClient.d.ts +90 -0
  419. package/lib/client/WebClient.js +2 -0
  420. package/lib/client/WebClient.js.map +1 -0
  421. package/lib/client/addressbooks/mainnet.cjs +7 -0
  422. package/lib/client/addressbooks/mainnet.d.ts +1 -0
  423. package/lib/client/addressbooks/mainnet.js +2 -0
  424. package/lib/client/addressbooks/mainnet.js.map +1 -0
  425. package/lib/client/addressbooks/previewnet.cjs +7 -0
  426. package/lib/client/addressbooks/previewnet.d.ts +1 -0
  427. package/lib/client/addressbooks/previewnet.js +2 -0
  428. package/lib/client/addressbooks/previewnet.js.map +1 -0
  429. package/lib/client/addressbooks/testnet.cjs +7 -0
  430. package/lib/client/addressbooks/testnet.d.ts +1 -0
  431. package/lib/client/addressbooks/testnet.js +2 -0
  432. package/lib/client/addressbooks/testnet.js.map +1 -0
  433. package/lib/constants/ClientConstants.cjs +201 -0
  434. package/lib/constants/ClientConstants.d.ts +74 -0
  435. package/lib/constants/ClientConstants.js +2 -0
  436. package/lib/constants/ClientConstants.js.map +1 -0
  437. package/lib/contract/ContractByteCodeQuery.cjs +158 -0
  438. package/lib/contract/ContractByteCodeQuery.d.ts +76 -0
  439. package/lib/contract/ContractByteCodeQuery.js +2 -0
  440. package/lib/contract/ContractByteCodeQuery.js.map +1 -0
  441. package/lib/contract/ContractCallQuery.cjs +338 -0
  442. package/lib/contract/ContractCallQuery.d.ts +141 -0
  443. package/lib/contract/ContractCallQuery.js +2 -0
  444. package/lib/contract/ContractCallQuery.js.map +1 -0
  445. package/lib/contract/ContractCreateFlow.cjs +452 -0
  446. package/lib/contract/ContractCreateFlow.d.ts +243 -0
  447. package/lib/contract/ContractCreateFlow.js +2 -0
  448. package/lib/contract/ContractCreateFlow.js.map +1 -0
  449. package/lib/contract/ContractCreateTransaction.cjs +556 -0
  450. package/lib/contract/ContractCreateTransaction.d.ts +315 -0
  451. package/lib/contract/ContractCreateTransaction.js +2 -0
  452. package/lib/contract/ContractCreateTransaction.js.map +1 -0
  453. package/lib/contract/ContractDeleteTransaction.cjs +235 -0
  454. package/lib/contract/ContractDeleteTransaction.d.ts +135 -0
  455. package/lib/contract/ContractDeleteTransaction.js +2 -0
  456. package/lib/contract/ContractDeleteTransaction.js.map +1 -0
  457. package/lib/contract/ContractExecuteTransaction.cjs +269 -0
  458. package/lib/contract/ContractExecuteTransaction.d.ts +164 -0
  459. package/lib/contract/ContractExecuteTransaction.js +2 -0
  460. package/lib/contract/ContractExecuteTransaction.js.map +1 -0
  461. package/lib/contract/ContractFunctionParameters.cjs +1703 -0
  462. package/lib/contract/ContractFunctionParameters.d.ts +725 -0
  463. package/lib/contract/ContractFunctionParameters.js +2 -0
  464. package/lib/contract/ContractFunctionParameters.js.map +1 -0
  465. package/lib/contract/ContractFunctionResult.cjs +846 -0
  466. package/lib/contract/ContractFunctionResult.d.ts +510 -0
  467. package/lib/contract/ContractFunctionResult.js +2 -0
  468. package/lib/contract/ContractFunctionResult.js.map +1 -0
  469. package/lib/contract/ContractFunctionSelector.cjs +1775 -0
  470. package/lib/contract/ContractFunctionSelector.d.ts +688 -0
  471. package/lib/contract/ContractFunctionSelector.js +2 -0
  472. package/lib/contract/ContractFunctionSelector.js.map +1 -0
  473. package/lib/contract/ContractId.cjs +267 -0
  474. package/lib/contract/ContractId.d.ts +123 -0
  475. package/lib/contract/ContractId.js +2 -0
  476. package/lib/contract/ContractId.js.map +1 -0
  477. package/lib/contract/ContractInfo.cjs +227 -0
  478. package/lib/contract/ContractInfo.d.ts +151 -0
  479. package/lib/contract/ContractInfo.js +2 -0
  480. package/lib/contract/ContractInfo.js.map +1 -0
  481. package/lib/contract/ContractInfoQuery.cjs +172 -0
  482. package/lib/contract/ContractInfoQuery.d.ts +70 -0
  483. package/lib/contract/ContractInfoQuery.js +2 -0
  484. package/lib/contract/ContractInfoQuery.js.map +1 -0
  485. package/lib/contract/ContractLogInfo.cjs +87 -0
  486. package/lib/contract/ContractLogInfo.d.ts +66 -0
  487. package/lib/contract/ContractLogInfo.js +2 -0
  488. package/lib/contract/ContractLogInfo.js.map +1 -0
  489. package/lib/contract/ContractNonceInfo.cjs +129 -0
  490. package/lib/contract/ContractNonceInfo.d.ts +90 -0
  491. package/lib/contract/ContractNonceInfo.js +2 -0
  492. package/lib/contract/ContractNonceInfo.js.map +1 -0
  493. package/lib/contract/ContractStateChange.cjs +75 -0
  494. package/lib/contract/ContractStateChange.d.ts +37 -0
  495. package/lib/contract/ContractUpdateTransaction.cjs +525 -0
  496. package/lib/contract/ContractUpdateTransaction.d.ts +280 -0
  497. package/lib/contract/ContractUpdateTransaction.js +2 -0
  498. package/lib/contract/ContractUpdateTransaction.js.map +1 -0
  499. package/lib/contract/DelegateContractId.cjs +100 -0
  500. package/lib/contract/DelegateContractId.d.ts +24 -0
  501. package/lib/contract/DelegateContractId.js +2 -0
  502. package/lib/contract/DelegateContractId.js.map +1 -0
  503. package/lib/contract/StorageChange.cjs +73 -0
  504. package/lib/contract/StorageChange.d.ts +37 -0
  505. package/lib/cryptography/keccak.cjs +335 -0
  506. package/lib/cryptography/keccak.d.ts +14 -0
  507. package/lib/cryptography/keccak.js +2 -0
  508. package/lib/cryptography/keccak.js.map +1 -0
  509. package/lib/cryptography/sha384.browser.cjs +19 -0
  510. package/lib/cryptography/sha384.browser.d.ts +5 -0
  511. package/lib/cryptography/sha384.browser.js +2 -0
  512. package/lib/cryptography/sha384.browser.js.map +1 -0
  513. package/lib/cryptography/sha384.cjs +27 -0
  514. package/lib/cryptography/sha384.d.ts +10 -0
  515. package/lib/cryptography/sha384.js +2 -0
  516. package/lib/cryptography/sha384.js.map +1 -0
  517. package/lib/cryptography/sha384.native.cjs +21 -0
  518. package/lib/cryptography/sha384.native.d.ts +5 -0
  519. package/lib/encoding/base64.native.cjs +25 -0
  520. package/lib/encoding/base64.native.d.ts +10 -0
  521. package/lib/encoding/base64.native.js +2 -0
  522. package/lib/encoding/base64.native.js.map +1 -0
  523. package/lib/encoding/hex.browser.cjs +95 -0
  524. package/lib/encoding/hex.browser.d.ts +26 -0
  525. package/lib/encoding/hex.browser.js +2 -0
  526. package/lib/encoding/hex.browser.js.map +1 -0
  527. package/lib/encoding/hex.cjs +82 -0
  528. package/lib/encoding/hex.d.ts +26 -0
  529. package/lib/encoding/hex.js +2 -0
  530. package/lib/encoding/hex.js.map +1 -0
  531. package/lib/encoding/hex.native.cjs +127 -0
  532. package/lib/encoding/hex.native.d.ts +36 -0
  533. package/lib/encoding/utf8.browser.cjs +26 -0
  534. package/lib/encoding/utf8.browser.d.ts +10 -0
  535. package/lib/encoding/utf8.browser.js +2 -0
  536. package/lib/encoding/utf8.browser.js.map +1 -0
  537. package/lib/encoding/utf8.cjs +24 -0
  538. package/lib/encoding/utf8.d.ts +10 -0
  539. package/lib/encoding/utf8.js +2 -0
  540. package/lib/encoding/utf8.js.map +1 -0
  541. package/lib/encoding/utf8.native.cjs +29 -0
  542. package/lib/encoding/utf8.native.d.ts +10 -0
  543. package/lib/exports.cjs +1264 -0
  544. package/lib/exports.d.ts +200 -0
  545. package/lib/exports.js +2 -0
  546. package/lib/exports.js.map +1 -0
  547. package/lib/file/FileAppendTransaction.cjs +482 -0
  548. package/lib/file/FileAppendTransaction.d.ts +196 -0
  549. package/lib/file/FileAppendTransaction.js +2 -0
  550. package/lib/file/FileAppendTransaction.js.map +1 -0
  551. package/lib/file/FileContentsQuery.cjs +159 -0
  552. package/lib/file/FileContentsQuery.d.ts +77 -0
  553. package/lib/file/FileContentsQuery.js +2 -0
  554. package/lib/file/FileContentsQuery.js.map +1 -0
  555. package/lib/file/FileCreateTransaction.cjs +259 -0
  556. package/lib/file/FileCreateTransaction.d.ts +153 -0
  557. package/lib/file/FileCreateTransaction.js +2 -0
  558. package/lib/file/FileCreateTransaction.js.map +1 -0
  559. package/lib/file/FileDeleteTransaction.cjs +149 -0
  560. package/lib/file/FileDeleteTransaction.d.ts +84 -0
  561. package/lib/file/FileDeleteTransaction.js +2 -0
  562. package/lib/file/FileDeleteTransaction.js.map +1 -0
  563. package/lib/file/FileId.cjs +240 -0
  564. package/lib/file/FileId.d.ts +126 -0
  565. package/lib/file/FileId.js +2 -0
  566. package/lib/file/FileId.js.map +1 -0
  567. package/lib/file/FileInfo.cjs +128 -0
  568. package/lib/file/FileInfo.d.ts +76 -0
  569. package/lib/file/FileInfo.js +2 -0
  570. package/lib/file/FileInfo.js.map +1 -0
  571. package/lib/file/FileInfoQuery.cjs +171 -0
  572. package/lib/file/FileInfoQuery.d.ts +68 -0
  573. package/lib/file/FileInfoQuery.js +2 -0
  574. package/lib/file/FileInfoQuery.js.map +1 -0
  575. package/lib/file/FileUpdateTransaction.cjs +319 -0
  576. package/lib/file/FileUpdateTransaction.d.ts +188 -0
  577. package/lib/file/FileUpdateTransaction.js +2 -0
  578. package/lib/file/FileUpdateTransaction.js.map +1 -0
  579. package/lib/grpc/GrpcServiceError.cjs +65 -0
  580. package/lib/grpc/GrpcServiceError.d.ts +32 -0
  581. package/lib/grpc/GrpcServiceError.js +2 -0
  582. package/lib/grpc/GrpcServiceError.js.map +1 -0
  583. package/lib/grpc/GrpcStatus.cjs +145 -0
  584. package/lib/grpc/GrpcStatus.d.ts +46 -0
  585. package/lib/grpc/GrpcStatus.js +2 -0
  586. package/lib/grpc/GrpcStatus.js.map +1 -0
  587. package/lib/http/HttpError.cjs +32 -0
  588. package/lib/http/HttpError.d.ts +14 -0
  589. package/lib/http/HttpError.js +2 -0
  590. package/lib/http/HttpError.js.map +1 -0
  591. package/lib/http/HttpStatus.cjs +44 -0
  592. package/lib/http/HttpStatus.d.ts +24 -0
  593. package/lib/http/HttpStatus.js +2 -0
  594. package/lib/http/HttpStatus.js.map +1 -0
  595. package/lib/index.cjs +44 -0
  596. package/lib/index.d.ts +4 -0
  597. package/lib/index.js +2 -0
  598. package/lib/index.js.map +1 -0
  599. package/lib/logger/LogLevel.cjs +77 -0
  600. package/lib/logger/LogLevel.d.ts +29 -0
  601. package/lib/logger/LogLevel.js +2 -0
  602. package/lib/logger/LogLevel.js.map +1 -0
  603. package/lib/logger/Logger.cjs +221 -0
  604. package/lib/logger/Logger.d.ts +132 -0
  605. package/lib/logger/Logger.js +2 -0
  606. package/lib/logger/Logger.js.map +1 -0
  607. package/lib/long.cjs +26 -0
  608. package/lib/long.d.ts +16 -0
  609. package/lib/long.js +2 -0
  610. package/lib/long.js.map +1 -0
  611. package/lib/native.cjs +36 -0
  612. package/lib/native.d.ts +3 -0
  613. package/lib/native.js +2 -0
  614. package/lib/native.js.map +1 -0
  615. package/lib/network/AddressBookQuery.cjs +218 -0
  616. package/lib/network/AddressBookQuery.d.ts +104 -0
  617. package/lib/network/AddressBookQuery.js +2 -0
  618. package/lib/network/AddressBookQuery.js.map +1 -0
  619. package/lib/network/AddressBookQueryWeb.cjs +326 -0
  620. package/lib/network/AddressBookQueryWeb.d.ts +165 -0
  621. package/lib/network/AddressBookQueryWeb.js +2 -0
  622. package/lib/network/AddressBookQueryWeb.js.map +1 -0
  623. package/lib/network/NetworkVersionInfo.cjs +81 -0
  624. package/lib/network/NetworkVersionInfo.d.ts +46 -0
  625. package/lib/network/NetworkVersionInfo.js +2 -0
  626. package/lib/network/NetworkVersionInfo.js.map +1 -0
  627. package/lib/network/NetworkVersionInfoQuery.cjs +112 -0
  628. package/lib/network/NetworkVersionInfoQuery.d.ts +50 -0
  629. package/lib/network/NetworkVersionInfoQuery.js +2 -0
  630. package/lib/network/NetworkVersionInfoQuery.js.map +1 -0
  631. package/lib/network/SemanticVersion.cjs +78 -0
  632. package/lib/network/SemanticVersion.d.ts +45 -0
  633. package/lib/network/SemanticVersion.js +2 -0
  634. package/lib/network/SemanticVersion.js.map +1 -0
  635. package/lib/node/NodeCreateTransaction.cjs +413 -0
  636. package/lib/node/NodeCreateTransaction.d.ts +239 -0
  637. package/lib/node/NodeCreateTransaction.js +2 -0
  638. package/lib/node/NodeCreateTransaction.js.map +1 -0
  639. package/lib/node/NodeDeleteTransaction.cjs +143 -0
  640. package/lib/node/NodeDeleteTransaction.d.ts +80 -0
  641. package/lib/node/NodeDeleteTransaction.js +2 -0
  642. package/lib/node/NodeDeleteTransaction.js.map +1 -0
  643. package/lib/node/NodeUpdateTransaction.cjs +481 -0
  644. package/lib/node/NodeUpdateTransaction.d.ts +274 -0
  645. package/lib/node/NodeUpdateTransaction.js +2 -0
  646. package/lib/node/NodeUpdateTransaction.js.map +1 -0
  647. package/lib/node/ServiceEndpoint.cjs +140 -0
  648. package/lib/node/ServiceEndpoint.d.ts +91 -0
  649. package/lib/node/ServiceEndpoint.js +2 -0
  650. package/lib/node/ServiceEndpoint.js.map +1 -0
  651. package/lib/query/CostQuery.cjs +171 -0
  652. package/lib/query/CostQuery.d.ts +43 -0
  653. package/lib/query/CostQuery.js +2 -0
  654. package/lib/query/CostQuery.js.map +1 -0
  655. package/lib/query/MirrorNodeContractCallQuery.cjs +53 -0
  656. package/lib/query/MirrorNodeContractCallQuery.d.ts +21 -0
  657. package/lib/query/MirrorNodeContractCallQuery.js +2 -0
  658. package/lib/query/MirrorNodeContractCallQuery.js.map +1 -0
  659. package/lib/query/MirrorNodeContractEstimateQuery.cjs +53 -0
  660. package/lib/query/MirrorNodeContractEstimateQuery.d.ts +21 -0
  661. package/lib/query/MirrorNodeContractEstimateQuery.js +2 -0
  662. package/lib/query/MirrorNodeContractEstimateQuery.js.map +1 -0
  663. package/lib/query/MirrorNodeContractQuery.cjs +260 -0
  664. package/lib/query/MirrorNodeContractQuery.d.ts +158 -0
  665. package/lib/query/MirrorNodeContractQuery.js +2 -0
  666. package/lib/query/MirrorNodeContractQuery.js.map +1 -0
  667. package/lib/query/Query.cjs +450 -0
  668. package/lib/query/Query.d.ts +173 -0
  669. package/lib/query/Query.js +2 -0
  670. package/lib/query/Query.js.map +1 -0
  671. package/lib/query/QueryBase.cjs +114 -0
  672. package/lib/query/QueryBase.d.ts +43 -0
  673. package/lib/query/QueryBase.js +2 -0
  674. package/lib/query/QueryBase.js.map +1 -0
  675. package/lib/schedule/ScheduleCreateTransaction.cjs +308 -0
  676. package/lib/schedule/ScheduleCreateTransaction.d.ts +153 -0
  677. package/lib/schedule/ScheduleCreateTransaction.js +2 -0
  678. package/lib/schedule/ScheduleCreateTransaction.js.map +1 -0
  679. package/lib/schedule/ScheduleDeleteTransaction.cjs +146 -0
  680. package/lib/schedule/ScheduleDeleteTransaction.d.ts +81 -0
  681. package/lib/schedule/ScheduleDeleteTransaction.js +2 -0
  682. package/lib/schedule/ScheduleDeleteTransaction.js.map +1 -0
  683. package/lib/schedule/ScheduleId.cjs +164 -0
  684. package/lib/schedule/ScheduleId.d.ts +96 -0
  685. package/lib/schedule/ScheduleId.js +2 -0
  686. package/lib/schedule/ScheduleId.js.map +1 -0
  687. package/lib/schedule/ScheduleInfo.cjs +176 -0
  688. package/lib/schedule/ScheduleInfo.d.ts +93 -0
  689. package/lib/schedule/ScheduleInfo.js +2 -0
  690. package/lib/schedule/ScheduleInfo.js.map +1 -0
  691. package/lib/schedule/ScheduleInfoQuery.cjs +170 -0
  692. package/lib/schedule/ScheduleInfoQuery.d.ts +66 -0
  693. package/lib/schedule/ScheduleInfoQuery.js +2 -0
  694. package/lib/schedule/ScheduleInfoQuery.js.map +1 -0
  695. package/lib/schedule/ScheduleSignTransaction.cjs +164 -0
  696. package/lib/schedule/ScheduleSignTransaction.d.ts +110 -0
  697. package/lib/schedule/ScheduleSignTransaction.js +2 -0
  698. package/lib/schedule/ScheduleSignTransaction.js.map +1 -0
  699. package/lib/system/FreezeTransaction.cjs +348 -0
  700. package/lib/system/FreezeTransaction.d.ts +188 -0
  701. package/lib/system/FreezeTransaction.js +2 -0
  702. package/lib/system/FreezeTransaction.js.map +1 -0
  703. package/lib/system/SystemDeleteTransaction.cjs +200 -0
  704. package/lib/system/SystemDeleteTransaction.d.ts +110 -0
  705. package/lib/system/SystemDeleteTransaction.js +2 -0
  706. package/lib/system/SystemDeleteTransaction.js.map +1 -0
  707. package/lib/system/SystemUndeleteTransaction.cjs +172 -0
  708. package/lib/system/SystemUndeleteTransaction.d.ts +97 -0
  709. package/lib/system/SystemUndeleteTransaction.js +2 -0
  710. package/lib/system/SystemUndeleteTransaction.js.map +1 -0
  711. package/lib/token/AbstractTokenTransferTransaction.cjs +406 -0
  712. package/lib/token/AbstractTokenTransferTransaction.d.ts +138 -0
  713. package/lib/token/AbstractTokenTransferTransaction.js +2 -0
  714. package/lib/token/AbstractTokenTransferTransaction.js.map +1 -0
  715. package/lib/token/AirdropPendingTransaction.cjs +65 -0
  716. package/lib/token/AirdropPendingTransaction.d.ts +35 -0
  717. package/lib/token/AirdropPendingTransaction.js +2 -0
  718. package/lib/token/AirdropPendingTransaction.js.map +1 -0
  719. package/lib/token/AssessedCustomFee.cjs +177 -0
  720. package/lib/token/AssessedCustomFee.d.ts +113 -0
  721. package/lib/token/AssessedCustomFee.js +2 -0
  722. package/lib/token/AssessedCustomFee.js.map +1 -0
  723. package/lib/token/CustomFee.cjs +88 -0
  724. package/lib/token/CustomFee.d.ts +57 -0
  725. package/lib/token/CustomFee.js +2 -0
  726. package/lib/token/CustomFee.js.map +1 -0
  727. package/lib/token/CustomFixedFee.cjs +155 -0
  728. package/lib/token/CustomFixedFee.d.ts +85 -0
  729. package/lib/token/CustomFixedFee.js +2 -0
  730. package/lib/token/CustomFixedFee.js.map +1 -0
  731. package/lib/token/CustomFractionalFee.cjs +200 -0
  732. package/lib/token/CustomFractionalFee.d.ts +103 -0
  733. package/lib/token/CustomFractionalFee.js +2 -0
  734. package/lib/token/CustomFractionalFee.js.map +1 -0
  735. package/lib/token/CustomRoyaltyFee.cjs +150 -0
  736. package/lib/token/CustomRoyaltyFee.d.ts +75 -0
  737. package/lib/token/CustomRoyaltyFee.js +2 -0
  738. package/lib/token/CustomRoyaltyFee.js.map +1 -0
  739. package/lib/token/FeeAssessmentMethod.cjs +58 -0
  740. package/lib/token/FeeAssessmentMethod.d.ts +29 -0
  741. package/lib/token/FeeAssessmentMethod.js +2 -0
  742. package/lib/token/FeeAssessmentMethod.js.map +1 -0
  743. package/lib/token/NftId.cjs +89 -0
  744. package/lib/token/NftId.d.ts +46 -0
  745. package/lib/token/NftId.js +2 -0
  746. package/lib/token/NftId.js.map +1 -0
  747. package/lib/token/PendingAirdropId.cjs +152 -0
  748. package/lib/token/PendingAirdropId.d.ts +81 -0
  749. package/lib/token/PendingAirdropId.js +2 -0
  750. package/lib/token/PendingAirdropId.js.map +1 -0
  751. package/lib/token/PendingAirdropRecord.cjs +55 -0
  752. package/lib/token/PendingAirdropRecord.d.ts +29 -0
  753. package/lib/token/PendingAirdropRecord.js +2 -0
  754. package/lib/token/PendingAirdropRecord.js.map +1 -0
  755. package/lib/token/TokenAirdropTransaction.cjs +179 -0
  756. package/lib/token/TokenAirdropTransaction.d.ts +119 -0
  757. package/lib/token/TokenAirdropTransaction.js +2 -0
  758. package/lib/token/TokenAirdropTransaction.js.map +1 -0
  759. package/lib/token/TokenAssociateTransaction.cjs +176 -0
  760. package/lib/token/TokenAssociateTransaction.d.ts +90 -0
  761. package/lib/token/TokenAssociateTransaction.js +2 -0
  762. package/lib/token/TokenAssociateTransaction.js.map +1 -0
  763. package/lib/token/TokenAssociation.cjs +117 -0
  764. package/lib/token/TokenAssociation.d.ts +76 -0
  765. package/lib/token/TokenAssociation.js +2 -0
  766. package/lib/token/TokenAssociation.js.map +1 -0
  767. package/lib/token/TokenBurnTransaction.cjs +199 -0
  768. package/lib/token/TokenBurnTransaction.d.ts +108 -0
  769. package/lib/token/TokenBurnTransaction.js +2 -0
  770. package/lib/token/TokenBurnTransaction.js.map +1 -0
  771. package/lib/token/TokenCancelAirdropTransaction.cjs +109 -0
  772. package/lib/token/TokenCancelAirdropTransaction.d.ts +50 -0
  773. package/lib/token/TokenCancelAirdropTransaction.js +2 -0
  774. package/lib/token/TokenCancelAirdropTransaction.js.map +1 -0
  775. package/lib/token/TokenClaimAirdropTransaction.cjs +109 -0
  776. package/lib/token/TokenClaimAirdropTransaction.d.ts +50 -0
  777. package/lib/token/TokenClaimAirdropTransaction.js +2 -0
  778. package/lib/token/TokenClaimAirdropTransaction.js.map +1 -0
  779. package/lib/token/TokenCreateTransaction.cjs +817 -0
  780. package/lib/token/TokenCreateTransaction.d.ts +446 -0
  781. package/lib/token/TokenCreateTransaction.js +2 -0
  782. package/lib/token/TokenCreateTransaction.js.map +1 -0
  783. package/lib/token/TokenDeleteTransaction.cjs +140 -0
  784. package/lib/token/TokenDeleteTransaction.d.ts +75 -0
  785. package/lib/token/TokenDeleteTransaction.js +2 -0
  786. package/lib/token/TokenDeleteTransaction.js.map +1 -0
  787. package/lib/token/TokenDissociateTransaction.cjs +176 -0
  788. package/lib/token/TokenDissociateTransaction.d.ts +90 -0
  789. package/lib/token/TokenDissociateTransaction.js +2 -0
  790. package/lib/token/TokenDissociateTransaction.js.map +1 -0
  791. package/lib/token/TokenFeeScheduleUpdateTransaction.cjs +172 -0
  792. package/lib/token/TokenFeeScheduleUpdateTransaction.d.ts +93 -0
  793. package/lib/token/TokenFeeScheduleUpdateTransaction.js +2 -0
  794. package/lib/token/TokenFeeScheduleUpdateTransaction.js.map +1 -0
  795. package/lib/token/TokenFreezeTransaction.cjs +172 -0
  796. package/lib/token/TokenFreezeTransaction.d.ts +90 -0
  797. package/lib/token/TokenFreezeTransaction.js +2 -0
  798. package/lib/token/TokenFreezeTransaction.js.map +1 -0
  799. package/lib/token/TokenGrantKycTransaction.cjs +172 -0
  800. package/lib/token/TokenGrantKycTransaction.d.ts +90 -0
  801. package/lib/token/TokenGrantKycTransaction.js +2 -0
  802. package/lib/token/TokenGrantKycTransaction.js.map +1 -0
  803. package/lib/token/TokenId.cjs +185 -0
  804. package/lib/token/TokenId.d.ts +103 -0
  805. package/lib/token/TokenId.js +2 -0
  806. package/lib/token/TokenId.js.map +1 -0
  807. package/lib/token/TokenInfo.cjs +349 -0
  808. package/lib/token/TokenInfo.d.ts +224 -0
  809. package/lib/token/TokenInfo.js +2 -0
  810. package/lib/token/TokenInfo.js.map +1 -0
  811. package/lib/token/TokenInfoQuery.cjs +170 -0
  812. package/lib/token/TokenInfoQuery.d.ts +67 -0
  813. package/lib/token/TokenInfoQuery.js +2 -0
  814. package/lib/token/TokenInfoQuery.js.map +1 -0
  815. package/lib/token/TokenKeyValidation.cjs +73 -0
  816. package/lib/token/TokenKeyValidation.d.ts +39 -0
  817. package/lib/token/TokenKeyValidation.js +2 -0
  818. package/lib/token/TokenKeyValidation.js.map +1 -0
  819. package/lib/token/TokenMintTransaction.cjs +219 -0
  820. package/lib/token/TokenMintTransaction.d.ts +113 -0
  821. package/lib/token/TokenMintTransaction.js +2 -0
  822. package/lib/token/TokenMintTransaction.js.map +1 -0
  823. package/lib/token/TokenNftInfo.cjs +127 -0
  824. package/lib/token/TokenNftInfo.d.ts +96 -0
  825. package/lib/token/TokenNftInfo.js +2 -0
  826. package/lib/token/TokenNftInfo.js.map +1 -0
  827. package/lib/token/TokenNftInfoQuery.cjs +312 -0
  828. package/lib/token/TokenNftInfoQuery.d.ts +149 -0
  829. package/lib/token/TokenNftInfoQuery.js +2 -0
  830. package/lib/token/TokenNftInfoQuery.js.map +1 -0
  831. package/lib/token/TokenNftTransfer.cjs +95 -0
  832. package/lib/token/TokenNftTransfer.d.ts +70 -0
  833. package/lib/token/TokenNftTransfer.js +2 -0
  834. package/lib/token/TokenNftTransfer.js.map +1 -0
  835. package/lib/token/TokenNftsUpdateTransaction.cjs +185 -0
  836. package/lib/token/TokenNftsUpdateTransaction.d.ts +97 -0
  837. package/lib/token/TokenPauseTransaction.cjs +140 -0
  838. package/lib/token/TokenPauseTransaction.d.ts +75 -0
  839. package/lib/token/TokenPauseTransaction.js +2 -0
  840. package/lib/token/TokenPauseTransaction.js.map +1 -0
  841. package/lib/token/TokenReference.cjs +41 -0
  842. package/lib/token/TokenReference.d.ts +29 -0
  843. package/lib/token/TokenReference.js +2 -0
  844. package/lib/token/TokenReference.js.map +1 -0
  845. package/lib/token/TokenRejectFlow.cjs +248 -0
  846. package/lib/token/TokenRejectFlow.d.ts +141 -0
  847. package/lib/token/TokenRejectFlow.js +2 -0
  848. package/lib/token/TokenRejectFlow.js.map +1 -0
  849. package/lib/token/TokenRejectTransaction.cjs +240 -0
  850. package/lib/token/TokenRejectTransaction.d.ts +120 -0
  851. package/lib/token/TokenRejectTransaction.js +2 -0
  852. package/lib/token/TokenRejectTransaction.js.map +1 -0
  853. package/lib/token/TokenRevokeKycTransaction.cjs +172 -0
  854. package/lib/token/TokenRevokeKycTransaction.d.ts +90 -0
  855. package/lib/token/TokenRevokeKycTransaction.js +2 -0
  856. package/lib/token/TokenRevokeKycTransaction.js.map +1 -0
  857. package/lib/token/TokenSupplyType.cjs +77 -0
  858. package/lib/token/TokenSupplyType.d.ts +38 -0
  859. package/lib/token/TokenSupplyType.js +2 -0
  860. package/lib/token/TokenSupplyType.js.map +1 -0
  861. package/lib/token/TokenTransfer.cjs +122 -0
  862. package/lib/token/TokenTransfer.d.ts +92 -0
  863. package/lib/token/TokenTransfer.js +2 -0
  864. package/lib/token/TokenTransfer.js.map +1 -0
  865. package/lib/token/TokenType.cjs +77 -0
  866. package/lib/token/TokenType.d.ts +38 -0
  867. package/lib/token/TokenType.js +2 -0
  868. package/lib/token/TokenType.js.map +1 -0
  869. package/lib/token/TokenUnfreezeTransaction.cjs +172 -0
  870. package/lib/token/TokenUnfreezeTransaction.d.ts +90 -0
  871. package/lib/token/TokenUnfreezeTransaction.js +2 -0
  872. package/lib/token/TokenUnfreezeTransaction.js.map +1 -0
  873. package/lib/token/TokenUnpauseTransaction.cjs +140 -0
  874. package/lib/token/TokenUnpauseTransaction.d.ts +75 -0
  875. package/lib/token/TokenUnpauseTransaction.js +2 -0
  876. package/lib/token/TokenUnpauseTransaction.js.map +1 -0
  877. package/lib/token/TokenUpdateNftsTransaction.cjs +189 -0
  878. package/lib/token/TokenUpdateNftsTransaction.d.ts +103 -0
  879. package/lib/token/TokenUpdateNftsTransaction.js +2 -0
  880. package/lib/token/TokenUpdateNftsTransaction.js.map +1 -0
  881. package/lib/token/TokenUpdateTransaction.cjs +672 -0
  882. package/lib/token/TokenUpdateTransaction.d.ts +366 -0
  883. package/lib/token/TokenUpdateTransaction.js +2 -0
  884. package/lib/token/TokenUpdateTransaction.js.map +1 -0
  885. package/lib/token/TokenWipeTransaction.cjs +231 -0
  886. package/lib/token/TokenWipeTransaction.d.ts +123 -0
  887. package/lib/token/TokenWipeTransaction.js +2 -0
  888. package/lib/token/TokenWipeTransaction.js.map +1 -0
  889. package/lib/topic/SubscriptionHandle.cjs +40 -0
  890. package/lib/topic/SubscriptionHandle.d.ts +22 -0
  891. package/lib/topic/SubscriptionHandle.js +2 -0
  892. package/lib/topic/SubscriptionHandle.js.map +1 -0
  893. package/lib/topic/TopicCreateTransaction.cjs +473 -0
  894. package/lib/topic/TopicCreateTransaction.d.ts +250 -0
  895. package/lib/topic/TopicCreateTransaction.js +2 -0
  896. package/lib/topic/TopicCreateTransaction.js.map +1 -0
  897. package/lib/topic/TopicDeleteTransaction.cjs +146 -0
  898. package/lib/topic/TopicDeleteTransaction.d.ts +80 -0
  899. package/lib/topic/TopicDeleteTransaction.js +2 -0
  900. package/lib/topic/TopicDeleteTransaction.js.map +1 -0
  901. package/lib/topic/TopicId.cjs +185 -0
  902. package/lib/topic/TopicId.d.ts +102 -0
  903. package/lib/topic/TopicId.js +2 -0
  904. package/lib/topic/TopicId.js.map +1 -0
  905. package/lib/topic/TopicInfo.cjs +187 -0
  906. package/lib/topic/TopicInfo.d.ts +119 -0
  907. package/lib/topic/TopicInfo.js +2 -0
  908. package/lib/topic/TopicInfo.js.map +1 -0
  909. package/lib/topic/TopicInfoQuery.cjs +174 -0
  910. package/lib/topic/TopicInfoQuery.d.ts +81 -0
  911. package/lib/topic/TopicInfoQuery.js +2 -0
  912. package/lib/topic/TopicInfoQuery.js.map +1 -0
  913. package/lib/topic/TopicMessage.cjs +116 -0
  914. package/lib/topic/TopicMessage.d.ts +65 -0
  915. package/lib/topic/TopicMessage.js +2 -0
  916. package/lib/topic/TopicMessage.js.map +1 -0
  917. package/lib/topic/TopicMessageChunk.cjs +71 -0
  918. package/lib/topic/TopicMessageChunk.d.ts +56 -0
  919. package/lib/topic/TopicMessageChunk.js +2 -0
  920. package/lib/topic/TopicMessageChunk.js.map +1 -0
  921. package/lib/topic/TopicMessageQuery.cjs +450 -0
  922. package/lib/topic/TopicMessageQuery.d.ts +220 -0
  923. package/lib/topic/TopicMessageQuery.js +2 -0
  924. package/lib/topic/TopicMessageQuery.js.map +1 -0
  925. package/lib/topic/TopicMessageSubmitTransaction.cjs +412 -0
  926. package/lib/topic/TopicMessageSubmitTransaction.d.ts +201 -0
  927. package/lib/topic/TopicMessageSubmitTransaction.js +2 -0
  928. package/lib/topic/TopicMessageSubmitTransaction.js.map +1 -0
  929. package/lib/topic/TopicUpdateTransaction.cjs +532 -0
  930. package/lib/topic/TopicUpdateTransaction.d.ts +284 -0
  931. package/lib/topic/TopicUpdateTransaction.js +2 -0
  932. package/lib/topic/TopicUpdateTransaction.js.map +1 -0
  933. package/lib/transaction/BatchTransaction.cjs +262 -0
  934. package/lib/transaction/BatchTransaction.d.ts +134 -0
  935. package/lib/transaction/BatchTransaction.js +2 -0
  936. package/lib/transaction/BatchTransaction.js.map +1 -0
  937. package/lib/transaction/CustomFeeLimit.cjs +116 -0
  938. package/lib/transaction/CustomFeeLimit.d.ts +64 -0
  939. package/lib/transaction/CustomFeeLimit.js +2 -0
  940. package/lib/transaction/CustomFeeLimit.js.map +1 -0
  941. package/lib/transaction/List.cjs +177 -0
  942. package/lib/transaction/List.d.ts +100 -0
  943. package/lib/transaction/List.js +2 -0
  944. package/lib/transaction/List.js.map +1 -0
  945. package/lib/transaction/NodeAccountIdSignatureMap.cjs +62 -0
  946. package/lib/transaction/NodeAccountIdSignatureMap.d.ts +23 -0
  947. package/lib/transaction/NodeAccountIdSignatureMap.js +2 -0
  948. package/lib/transaction/NodeAccountIdSignatureMap.js.map +1 -0
  949. package/lib/transaction/NodeAccountIdSignatureMapLegacy.cjs +39 -0
  950. package/lib/transaction/NodeAccountIdSignatureMapLegacy.d.ts +14 -0
  951. package/lib/transaction/NodeAccountIdSignatureMapLegacy.js +2 -0
  952. package/lib/transaction/NodeAccountIdSignatureMapLegacy.js.map +1 -0
  953. package/lib/transaction/SignableNodeTransactionBodyBytes.cjs +47 -0
  954. package/lib/transaction/SignableNodeTransactionBodyBytes.d.ts +38 -0
  955. package/lib/transaction/SignableNodeTransactionBodyBytes.js +2 -0
  956. package/lib/transaction/SignableNodeTransactionBodyBytes.js.map +1 -0
  957. package/lib/transaction/SignatureMap.cjs +95 -0
  958. package/lib/transaction/SignatureMap.d.ts +42 -0
  959. package/lib/transaction/SignatureMap.js +2 -0
  960. package/lib/transaction/SignatureMap.js.map +1 -0
  961. package/lib/transaction/SignatureMapLegacy.cjs +37 -0
  962. package/lib/transaction/SignatureMapLegacy.d.ts +15 -0
  963. package/lib/transaction/SignatureMapLegacy.js +2 -0
  964. package/lib/transaction/SignatureMapLegacy.js.map +1 -0
  965. package/lib/transaction/SignaturePairMap.cjs +50 -0
  966. package/lib/transaction/SignaturePairMap.d.ts +21 -0
  967. package/lib/transaction/SignaturePairMap.js +2 -0
  968. package/lib/transaction/SignaturePairMap.js.map +1 -0
  969. package/lib/transaction/TokenTransfer.cjs +2 -0
  970. package/lib/transaction/TokenTransfer.d.ts +0 -0
  971. package/lib/transaction/Transaction.cjs +1959 -0
  972. package/lib/transaction/Transaction.d.ts +698 -0
  973. package/lib/transaction/Transaction.js +2 -0
  974. package/lib/transaction/Transaction.js.map +1 -0
  975. package/lib/transaction/TransactionHashMap.cjs +44 -0
  976. package/lib/transaction/TransactionHashMap.d.ts +22 -0
  977. package/lib/transaction/TransactionHashMap.js +2 -0
  978. package/lib/transaction/TransactionHashMap.js.map +1 -0
  979. package/lib/transaction/TransactionId.cjs +224 -0
  980. package/lib/transaction/TransactionId.d.ts +122 -0
  981. package/lib/transaction/TransactionId.js +2 -0
  982. package/lib/transaction/TransactionId.js.map +1 -0
  983. package/lib/transaction/TransactionReceipt.cjs +303 -0
  984. package/lib/transaction/TransactionReceipt.d.ts +202 -0
  985. package/lib/transaction/TransactionReceipt.js +2 -0
  986. package/lib/transaction/TransactionReceipt.js.map +1 -0
  987. package/lib/transaction/TransactionReceiptQuery.cjs +347 -0
  988. package/lib/transaction/TransactionReceiptQuery.d.ts +96 -0
  989. package/lib/transaction/TransactionReceiptQuery.js +2 -0
  990. package/lib/transaction/TransactionReceiptQuery.js.map +1 -0
  991. package/lib/transaction/TransactionRecord.cjs +470 -0
  992. package/lib/transaction/TransactionRecord.d.ts +317 -0
  993. package/lib/transaction/TransactionRecord.js +2 -0
  994. package/lib/transaction/TransactionRecord.js.map +1 -0
  995. package/lib/transaction/TransactionRecordQuery.cjs +366 -0
  996. package/lib/transaction/TransactionRecordQuery.d.ts +99 -0
  997. package/lib/transaction/TransactionRecordQuery.js +2 -0
  998. package/lib/transaction/TransactionRecordQuery.js.map +1 -0
  999. package/lib/transaction/TransactionResponse.cjs +242 -0
  1000. package/lib/transaction/TransactionResponse.d.ts +119 -0
  1001. package/lib/transaction/TransactionResponse.js +2 -0
  1002. package/lib/transaction/TransactionResponse.js.map +1 -0
  1003. package/lib/util/ASN1-Decoder.cjs +276 -0
  1004. package/lib/util/ASN1-Decoder.d.ts +104 -0
  1005. package/lib/util/ASN1-Decoder.js +2 -0
  1006. package/lib/util/ASN1-Decoder.js.map +1 -0
  1007. package/lib/util.cjs +464 -0
  1008. package/lib/util.d.ts +210 -0
  1009. package/lib/util.js +2 -0
  1010. package/lib/util.js.map +1 -0
  1011. package/lib/version.cjs +8 -0
  1012. package/lib/version.d.ts +2 -0
  1013. package/lib/version.js +2 -0
  1014. package/lib/version.js.map +1 -0
  1015. package/package.json +139 -0
  1016. package/src/BadEntityIdError.js +24 -0
  1017. package/src/Cache.js +418 -0
  1018. package/src/Duration.js +48 -0
  1019. package/src/EntityIdHelper.js +620 -0
  1020. package/src/EthereumFlow.js +244 -0
  1021. package/src/EthereumTransaction.js +298 -0
  1022. package/src/EthereumTransactionData.js +60 -0
  1023. package/src/EthereumTransactionDataEip1559.js +146 -0
  1024. package/src/EthereumTransactionDataEip2930.js +140 -0
  1025. package/src/EthereumTransactionDataLegacy.js +121 -0
  1026. package/src/EvmAddress.js +78 -0
  1027. package/src/ExchangeRate.js +117 -0
  1028. package/src/ExchangeRates.js +71 -0
  1029. package/src/Executable.js +884 -0
  1030. package/src/FeeComponents.js +199 -0
  1031. package/src/FeeData.js +127 -0
  1032. package/src/FeeDataType.js +125 -0
  1033. package/src/FeeSchedule.js +88 -0
  1034. package/src/FeeSchedules.js +82 -0
  1035. package/src/FreezeType.js +113 -0
  1036. package/src/Hbar.js +147 -0
  1037. package/src/HbarUnit.js +90 -0
  1038. package/src/Key.js +60 -0
  1039. package/src/KeyList.js +179 -0
  1040. package/src/LedgerId.js +134 -0
  1041. package/src/LocalProvider.js +165 -0
  1042. package/src/ManagedNode.js +269 -0
  1043. package/src/ManagedNodeAddress.js +101 -0
  1044. package/src/MaxAttemptsOrTimeoutError.js +42 -0
  1045. package/src/MaxQueryPaymentExceeded.js +28 -0
  1046. package/src/MirrorNode.js +41 -0
  1047. package/src/Mnemonic.js +250 -0
  1048. package/src/Node.js +106 -0
  1049. package/src/ObjectMap.js +137 -0
  1050. package/src/PrecheckStatusError.js +73 -0
  1051. package/src/PrivateKey.js +547 -0
  1052. package/src/PrngTransaction.js +152 -0
  1053. package/src/Provider.js +40 -0
  1054. package/src/PublicKey.js +294 -0
  1055. package/src/ReceiptStatusError.js +41 -0
  1056. package/src/RecordStatusError.js +30 -0
  1057. package/src/RequestType.js +920 -0
  1058. package/src/Signer.js +46 -0
  1059. package/src/SignerSignature.js +27 -0
  1060. package/src/StakingInfo.js +187 -0
  1061. package/src/Status.js +3353 -0
  1062. package/src/StatusError.js +64 -0
  1063. package/src/Timestamp.js +160 -0
  1064. package/src/TransactionFeeSchedule.js +100 -0
  1065. package/src/Transfer.js +113 -0
  1066. package/src/Wallet.js +300 -0
  1067. package/src/account/AccountAllowanceAdjustTransaction.js +540 -0
  1068. package/src/account/AccountAllowanceApproveTransaction.js +569 -0
  1069. package/src/account/AccountAllowanceDeleteTransaction.js +199 -0
  1070. package/src/account/AccountBalance.js +160 -0
  1071. package/src/account/AccountBalanceQuery.js +238 -0
  1072. package/src/account/AccountCreateTransaction.js +674 -0
  1073. package/src/account/AccountDeleteTransaction.js +221 -0
  1074. package/src/account/AccountId.js +486 -0
  1075. package/src/account/AccountInfo.js +433 -0
  1076. package/src/account/AccountInfoFlow.js +106 -0
  1077. package/src/account/AccountInfoQuery.js +187 -0
  1078. package/src/account/AccountRecordsQuery.js +186 -0
  1079. package/src/account/AccountUpdateTransaction.js +634 -0
  1080. package/src/account/HbarAllowance.js +147 -0
  1081. package/src/account/HbarTransferMap.js +48 -0
  1082. package/src/account/LiveHash.js +79 -0
  1083. package/src/account/LiveHashAddTransaction.js +289 -0
  1084. package/src/account/LiveHashDeleteTransaction.js +196 -0
  1085. package/src/account/LiveHashQuery.js +209 -0
  1086. package/src/account/NullableTokenDecimalMap.js +19 -0
  1087. package/src/account/ProxyStaker.js +74 -0
  1088. package/src/account/TokenAllowance.js +152 -0
  1089. package/src/account/TokenBalanceMap.js +23 -0
  1090. package/src/account/TokenDecimalMap.js +19 -0
  1091. package/src/account/TokenNftAllowance.js +217 -0
  1092. package/src/account/TokenNftTransferMap.js +134 -0
  1093. package/src/account/TokenRelationship.js +125 -0
  1094. package/src/account/TokenRelationshipMap.js +59 -0
  1095. package/src/account/TokenTransferAccountMap.js +24 -0
  1096. package/src/account/TokenTransferMap.js +99 -0
  1097. package/src/account/TransferTransaction.js +372 -0
  1098. package/src/address_book/AddressBooks.js +27 -0
  1099. package/src/address_book/Endpoint.js +141 -0
  1100. package/src/address_book/IPv4Address.js +125 -0
  1101. package/src/address_book/IPv4AddressPart.js +71 -0
  1102. package/src/address_book/NodeAddress.js +319 -0
  1103. package/src/address_book/NodeAddressBook.js +114 -0
  1104. package/src/array.js +60 -0
  1105. package/src/base32.js +29 -0
  1106. package/src/browser.js +10 -0
  1107. package/src/channel/Channel.js +340 -0
  1108. package/src/channel/MirrorChannel.js +49 -0
  1109. package/src/channel/NativeChannel.js +120 -0
  1110. package/src/channel/NodeChannel.js +196 -0
  1111. package/src/channel/NodeMirrorChannel.js +91 -0
  1112. package/src/channel/WebChannel.js +100 -0
  1113. package/src/client/Client.js +871 -0
  1114. package/src/client/ManagedNetwork.js +473 -0
  1115. package/src/client/MirrorNetwork.js +87 -0
  1116. package/src/client/NativeClient.js +218 -0
  1117. package/src/client/Network.js +304 -0
  1118. package/src/client/NodeClient.js +321 -0
  1119. package/src/client/WebClient.js +302 -0
  1120. package/src/client/addressbooks/mainnet.js +2 -0
  1121. package/src/client/addressbooks/previewnet.js +2 -0
  1122. package/src/client/addressbooks/testnet.js +2 -0
  1123. package/src/constants/ClientConstants.js +204 -0
  1124. package/src/contract/ContractByteCodeQuery.js +178 -0
  1125. package/src/contract/ContractCallQuery.js +382 -0
  1126. package/src/contract/ContractCreateFlow.js +551 -0
  1127. package/src/contract/ContractCreateTransaction.js +677 -0
  1128. package/src/contract/ContractDeleteTransaction.js +291 -0
  1129. package/src/contract/ContractExecuteTransaction.js +313 -0
  1130. package/src/contract/ContractFunctionParameters.js +1759 -0
  1131. package/src/contract/ContractFunctionResult.js +1060 -0
  1132. package/src/contract/ContractFunctionSelector.js +1360 -0
  1133. package/src/contract/ContractId.js +316 -0
  1134. package/src/contract/ContractInfo.js +264 -0
  1135. package/src/contract/ContractInfoQuery.js +190 -0
  1136. package/src/contract/ContractLogInfo.js +83 -0
  1137. package/src/contract/ContractNonceInfo.js +129 -0
  1138. package/src/contract/ContractStateChange.js +77 -0
  1139. package/src/contract/ContractUpdateTransaction.js +665 -0
  1140. package/src/contract/DelegateContractId.js +94 -0
  1141. package/src/contract/StorageChange.js +71 -0
  1142. package/src/cryptography/keccak.js +419 -0
  1143. package/src/cryptography/sha384.browser.js +13 -0
  1144. package/src/cryptography/sha384.js +20 -0
  1145. package/src/cryptography/sha384.native.js +19 -0
  1146. package/src/encoding/base64.native.js +19 -0
  1147. package/src/encoding/hex.browser.js +95 -0
  1148. package/src/encoding/hex.js +76 -0
  1149. package/src/encoding/hex.native.js +386 -0
  1150. package/src/encoding/utf8.browser.js +19 -0
  1151. package/src/encoding/utf8.js +17 -0
  1152. package/src/encoding/utf8.native.js +20 -0
  1153. package/src/exports.js +213 -0
  1154. package/src/file/FileAppendTransaction.js +586 -0
  1155. package/src/file/FileContentsQuery.js +174 -0
  1156. package/src/file/FileCreateTransaction.js +301 -0
  1157. package/src/file/FileDeleteTransaction.js +167 -0
  1158. package/src/file/FileId.js +247 -0
  1159. package/src/file/FileInfo.js +136 -0
  1160. package/src/file/FileInfoQuery.js +186 -0
  1161. package/src/file/FileUpdateTransaction.js +375 -0
  1162. package/src/grpc/GrpcServiceError.js +64 -0
  1163. package/src/grpc/GrpcStatus.js +142 -0
  1164. package/src/http/HttpError.js +26 -0
  1165. package/src/http/HttpStatus.js +38 -0
  1166. package/src/index.js +11 -0
  1167. package/src/logger/LogLevel.js +72 -0
  1168. package/src/logger/Logger.js +225 -0
  1169. package/src/long.js +20 -0
  1170. package/src/native.js +10 -0
  1171. package/src/network/AddressBookQuery.js +272 -0
  1172. package/src/network/AddressBookQueryWeb.js +388 -0
  1173. package/src/network/NetworkVersionInfo.js +81 -0
  1174. package/src/network/NetworkVersionInfoQuery.js +117 -0
  1175. package/src/network/SemanticVersion.js +74 -0
  1176. package/src/node/NodeCreateTransaction.js +513 -0
  1177. package/src/node/NodeDeleteTransaction.js +161 -0
  1178. package/src/node/NodeUpdateTransaction.js +592 -0
  1179. package/src/node/ServiceEndpoint.js +145 -0
  1180. package/src/query/CostQuery.js +187 -0
  1181. package/src/query/MirrorNodeContractCallQuery.js +49 -0
  1182. package/src/query/MirrorNodeContractEstimateQuery.js +48 -0
  1183. package/src/query/MirrorNodeContractQuery.js +266 -0
  1184. package/src/query/Query.js +527 -0
  1185. package/src/query/QueryBase.js +116 -0
  1186. package/src/schedule/ScheduleCreateTransaction.js +371 -0
  1187. package/src/schedule/ScheduleDeleteTransaction.js +174 -0
  1188. package/src/schedule/ScheduleId.js +173 -0
  1189. package/src/schedule/ScheduleInfo.js +243 -0
  1190. package/src/schedule/ScheduleInfoQuery.js +189 -0
  1191. package/src/schedule/ScheduleSignTransaction.js +189 -0
  1192. package/src/system/FreezeTransaction.js +390 -0
  1193. package/src/system/SystemDeleteTransaction.js +239 -0
  1194. package/src/system/SystemUndeleteTransaction.js +207 -0
  1195. package/src/token/AbstractTokenTransferTransaction.js +589 -0
  1196. package/src/token/AirdropPendingTransaction.js +58 -0
  1197. package/src/token/AssessedCustomFee.js +198 -0
  1198. package/src/token/CustomFee.js +87 -0
  1199. package/src/token/CustomFixedFee.js +178 -0
  1200. package/src/token/CustomFractionalFee.js +226 -0
  1201. package/src/token/CustomRoyaltyFee.js +173 -0
  1202. package/src/token/FeeAssessmentMethod.js +53 -0
  1203. package/src/token/NftId.js +95 -0
  1204. package/src/token/PendingAirdropId.js +157 -0
  1205. package/src/token/PendingAirdropRecord.js +50 -0
  1206. package/src/token/TokenAirdropTransaction.js +220 -0
  1207. package/src/token/TokenAssociateTransaction.js +214 -0
  1208. package/src/token/TokenAssociation.js +127 -0
  1209. package/src/token/TokenBurnTransaction.js +229 -0
  1210. package/src/token/TokenCancelAirdropTransaction.js +120 -0
  1211. package/src/token/TokenClaimAirdropTransaction.js +121 -0
  1212. package/src/token/TokenCreateTransaction.js +978 -0
  1213. package/src/token/TokenDeleteTransaction.js +161 -0
  1214. package/src/token/TokenDissociateTransaction.js +214 -0
  1215. package/src/token/TokenFeeScheduleUpdateTransaction.js +198 -0
  1216. package/src/token/TokenFreezeTransaction.js +203 -0
  1217. package/src/token/TokenGrantKycTransaction.js +203 -0
  1218. package/src/token/TokenId.js +203 -0
  1219. package/src/token/TokenInfo.js +454 -0
  1220. package/src/token/TokenInfoQuery.js +185 -0
  1221. package/src/token/TokenKeyValidation.js +70 -0
  1222. package/src/token/TokenMintTransaction.js +258 -0
  1223. package/src/token/TokenNftInfo.js +135 -0
  1224. package/src/token/TokenNftInfoQuery.js +369 -0
  1225. package/src/token/TokenNftTransfer.js +115 -0
  1226. package/src/token/TokenNftsUpdateTransaction.js +220 -0
  1227. package/src/token/TokenPauseTransaction.js +161 -0
  1228. package/src/token/TokenReference.js +40 -0
  1229. package/src/token/TokenRejectFlow.js +261 -0
  1230. package/src/token/TokenRejectTransaction.js +262 -0
  1231. package/src/token/TokenRevokeKycTransaction.js +203 -0
  1232. package/src/token/TokenSupplyType.js +74 -0
  1233. package/src/token/TokenTransfer.js +142 -0
  1234. package/src/token/TokenType.js +74 -0
  1235. package/src/token/TokenUnfreezeTransaction.js +203 -0
  1236. package/src/token/TokenUnpauseTransaction.js +161 -0
  1237. package/src/token/TokenUpdateNftsTransaction.js +225 -0
  1238. package/src/token/TokenUpdateTransaction.js +827 -0
  1239. package/src/token/TokenWipeTransaction.js +271 -0
  1240. package/src/topic/SubscriptionHandle.js +34 -0
  1241. package/src/topic/TopicCreateTransaction.js +557 -0
  1242. package/src/topic/TopicDeleteTransaction.js +167 -0
  1243. package/src/topic/TopicId.js +204 -0
  1244. package/src/topic/TopicInfo.js +254 -0
  1245. package/src/topic/TopicInfoQuery.js +190 -0
  1246. package/src/topic/TopicMessage.js +170 -0
  1247. package/src/topic/TopicMessageChunk.js +76 -0
  1248. package/src/topic/TopicMessageQuery.js +523 -0
  1249. package/src/topic/TopicMessageSubmitTransaction.js +488 -0
  1250. package/src/topic/TopicUpdateTransaction.js +659 -0
  1251. package/src/transaction/BatchTransaction.js +293 -0
  1252. package/src/transaction/CustomFeeLimit.js +121 -0
  1253. package/src/transaction/List.js +175 -0
  1254. package/src/transaction/NodeAccountIdSignatureMap.js +62 -0
  1255. package/src/transaction/NodeAccountIdSignatureMapLegacy.js +41 -0
  1256. package/src/transaction/SignableNodeTransactionBodyBytes.js +40 -0
  1257. package/src/transaction/SignatureMap.js +104 -0
  1258. package/src/transaction/SignatureMapLegacy.js +37 -0
  1259. package/src/transaction/SignaturePairMap.js +53 -0
  1260. package/src/transaction/TokenTransfer.js +1 -0
  1261. package/src/transaction/Transaction.js +2295 -0
  1262. package/src/transaction/TransactionHashMap.js +41 -0
  1263. package/src/transaction/TransactionId.js +262 -0
  1264. package/src/transaction/TransactionReceipt.js +414 -0
  1265. package/src/transaction/TransactionReceiptQuery.js +418 -0
  1266. package/src/transaction/TransactionRecord.js +638 -0
  1267. package/src/transaction/TransactionRecordQuery.js +440 -0
  1268. package/src/transaction/TransactionResponse.js +283 -0
  1269. package/src/types.d.ts +5 -0
  1270. package/src/util/ASN1-Decoder.js +256 -0
  1271. package/src/util.js +479 -0
  1272. package/src/version.js +3 -0
@@ -0,0 +1,1959 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.TRANSACTION_REGISTRY = exports.SCHEDULE_CREATE_TRANSACTION = exports.DEFAULT_RECORD_THRESHOLD = exports.DEFAULT_AUTO_RENEW_PERIOD = exports.CHUNK_SIZE = void 0;
7
+ var _Hbar = _interopRequireDefault(require("../Hbar.cjs"));
8
+ var _TransactionResponse = _interopRequireDefault(require("./TransactionResponse.cjs"));
9
+ var _TransactionId = _interopRequireDefault(require("./TransactionId.cjs"));
10
+ var _TransactionHashMap = _interopRequireDefault(require("./TransactionHashMap.cjs"));
11
+ var _SignatureMap = _interopRequireDefault(require("./SignatureMap.cjs"));
12
+ var _SignatureMapLegacy = _interopRequireDefault(require("./SignatureMapLegacy.cjs"));
13
+ var _Executable = _interopRequireWildcard(require("../Executable.cjs"));
14
+ var _Status = _interopRequireDefault(require("../Status.cjs"));
15
+ var _long = _interopRequireDefault(require("long"));
16
+ var sha384 = _interopRequireWildcard(require("../cryptography/sha384.cjs"));
17
+ var hex = _interopRequireWildcard(require("../encoding/hex.cjs"));
18
+ var HieroProto = _interopRequireWildcard(require("@hashgraph/proto"));
19
+ var _PrecheckStatusError = _interopRequireDefault(require("../PrecheckStatusError.cjs"));
20
+ var _AccountId = _interopRequireDefault(require("../account/AccountId.cjs"));
21
+ var _PublicKey = _interopRequireDefault(require("../PublicKey.cjs"));
22
+ var _List = _interopRequireDefault(require("./List.cjs"));
23
+ var _Timestamp = _interopRequireDefault(require("../Timestamp.cjs"));
24
+ var util = _interopRequireWildcard(require("../util.cjs"));
25
+ var _CustomFeeLimit = _interopRequireDefault(require("./CustomFeeLimit.cjs"));
26
+ var _Key = _interopRequireDefault(require("../Key.cjs"));
27
+ var _SignableNodeTransactionBodyBytes = _interopRequireDefault(require("./SignableNodeTransactionBodyBytes.cjs"));
28
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
29
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
30
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
31
+ // SPDX-License-Identifier: Apache-2.0
32
+
33
+ /**
34
+ * @typedef {import("bignumber.js").default} BigNumber
35
+ */
36
+
37
+ /**
38
+ * @typedef {import("../schedule/ScheduleCreateTransaction.js").default} ScheduleCreateTransaction
39
+ * @typedef {import("../PrivateKey.js").default} PrivateKey
40
+ * @typedef {import("../channel/Channel.js").default} Channel
41
+ * @typedef {import("../client/Client.js").default<*, *>} Client
42
+ * @typedef {import("../Signer.js").Signer} Signer
43
+ */
44
+
45
+ // 90 days (in seconds)
46
+ const DEFAULT_AUTO_RENEW_PERIOD = exports.DEFAULT_AUTO_RENEW_PERIOD = _long.default.fromValue(7776000);
47
+
48
+ // maximum value of i64 (so there is never a record generated)
49
+ const DEFAULT_RECORD_THRESHOLD = exports.DEFAULT_RECORD_THRESHOLD = _Hbar.default.fromTinybars(_long.default.fromString("9223372036854775807"));
50
+
51
+ /**
52
+ * Node account ID used for batch transactions
53
+ * @type {AccountId}
54
+ */
55
+ // @ts-ignore
56
+ const NODE_ACCOUNT_BATCH_ID = new _AccountId.default(0, 0, 0);
57
+
58
+ // 120 seconds
59
+ const DEFAULT_TRANSACTION_VALID_DURATION = 120;
60
+
61
+ // The default message chunk size in bytes when splitting a given message.
62
+ // This value can be overriden using `setChunkSize` when preparing to submit a messsage via `TopicMessageSubmitTransaction`.
63
+ const CHUNK_SIZE = exports.CHUNK_SIZE = 1024;
64
+
65
+ /**
66
+ * @type {Map<NonNullable<HieroProto.proto.TransactionBody["data"]>, (transactions: HieroProto.proto.ITransaction[], signedTransactions: HieroProto.proto.ISignedTransaction[], transactionIds: TransactionId[], nodeIds: AccountId[], bodies: HieroProto.proto.TransactionBody[]) => Transaction>}
67
+ */
68
+ const TRANSACTION_REGISTRY = exports.TRANSACTION_REGISTRY = new Map();
69
+
70
+ /**
71
+ * Base class for all transactions that may be submitted to Hedera.
72
+ *
73
+ * @abstract
74
+ * @augments {Executable<HieroProto.proto.ITransaction, HieroProto.proto.ITransactionResponse, TransactionResponse>}
75
+ */
76
+ class Transaction extends _Executable.default {
77
+ // A SDK transaction is composed of multiple, raw protobuf transactions.
78
+ // These should be functionally identical, with the exception of pointing to
79
+ // different nodes.
80
+
81
+ // When retrying a transaction after a network error or retry-able
82
+ // status response, we try a different transaction and thus a different node.
83
+
84
+ constructor() {
85
+ super();
86
+
87
+ /**
88
+ * List of proto transactions that have been built from this SDK
89
+ * transaction.
90
+ *
91
+ * This is a 2-D array built into one, meaning to
92
+ * get to the next row you'd index into this array `row * rowLength + column`
93
+ * where `rowLength` is `nodeAccountIds.length`
94
+ *
95
+ * @internal
96
+ * @type {List<HieroProto.proto.ITransaction | null>}
97
+ */
98
+ this._transactions = new _List.default();
99
+
100
+ /**
101
+ * List of proto transactions that have been built from this SDK
102
+ * transaction.
103
+ *
104
+ * This is a 2-D array built into one, meaning to
105
+ * get to the next row you'd index into this array `row * rowLength + column`
106
+ * where `rowLength` is `nodeAccountIds.length`
107
+ *
108
+ * @internal
109
+ * @type {List<HieroProto.proto.ISignedTransaction>}
110
+ */
111
+ this._signedTransactions = new _List.default();
112
+
113
+ /**
114
+ * Set of public keys (as string) who have signed this transaction so
115
+ * we do not allow them to sign it again.
116
+ *
117
+ * @internal
118
+ * @type {Set<string>}
119
+ */
120
+ this._signerPublicKeys = new Set();
121
+
122
+ /**
123
+ * The transaction valid duration
124
+ *
125
+ * @private
126
+ * @type {number}
127
+ */
128
+ this._transactionValidDuration = DEFAULT_TRANSACTION_VALID_DURATION;
129
+
130
+ /**
131
+ * The default max transaction fee for this particular transaction type.
132
+ * Most transactions use the default of 2 Hbars, but some requests such
133
+ * as `TokenCreateTransaction` need to use a different default value.
134
+ *
135
+ * @protected
136
+ * @type {Hbar}
137
+ */
138
+ this._defaultMaxTransactionFee = new _Hbar.default(2);
139
+
140
+ /**
141
+ * The maximum custom fee that the user is willing to pay for the message. If left empty, the user is willing to pay any custom fee.
142
+ * If used with a transaction type that does not support custom fee limits, the transaction will fail.
143
+ * @type {CustomFeeLimit[]}
144
+ */
145
+ this._customFeeLimits = [];
146
+
147
+ /**
148
+ * The max transaction fee on the request. This field is what users are able
149
+ * to set, not the `defaultMaxTransactionFee`. The purpose of this field is
150
+ * to allow us to determine if the user set the field explicitly, or if we're
151
+ * using the default max transation fee for the request.
152
+ *
153
+ * @private
154
+ * @type {Hbar | null}
155
+ */
156
+ this._maxTransactionFee = null;
157
+
158
+ /**
159
+ * The transaction's memo
160
+ *
161
+ * @private
162
+ * @type {string}
163
+ */
164
+ this._transactionMemo = "";
165
+
166
+ /**
167
+ * The list of transaction IDs. This list will almost always be of length 1.
168
+ * The only time this list will be a different length is for chunked transactions.
169
+ * The only two chunked transactions supported right now are `FileAppendTransaction`
170
+ * and `TopicMessageSubmitTransaction`
171
+ *
172
+ * @protected
173
+ * @type {List<TransactionId>}
174
+ */
175
+ this._transactionIds = new _List.default();
176
+
177
+ /**
178
+ * A list of public keys that will be added to the requests signatures
179
+ *
180
+ * @private
181
+ * @type {PublicKey[]}
182
+ */
183
+ this._publicKeys = [];
184
+
185
+ /**
186
+ * The list of signing function 1-1 with `_publicKeys` which sign the request.
187
+ * The reason this list allows `null` is because if we go from bytes into
188
+ * a transaction, then we know the public key, but we don't have the signing function.
189
+ *
190
+ * @private
191
+ * @type {(((message: Uint8Array) => Promise<Uint8Array>) | null)[]}
192
+ */
193
+ this._transactionSigners = [];
194
+
195
+ /**
196
+ * Determine if we should regenerate transaction IDs when we receive `TRANSACITON_EXPIRED`
197
+ *
198
+ * @private
199
+ * @type {?boolean}
200
+ */
201
+ this._regenerateTransactionId = null;
202
+
203
+ /**
204
+ * The key used to sign the batch transaction
205
+ *
206
+ * @private
207
+ * @type {Key | null}
208
+ */
209
+ this._batchKey = null;
210
+
211
+ /**
212
+ * Whether the transaction is throttled
213
+ *
214
+ * @private
215
+ * @type {boolean}
216
+ */
217
+ this._isThrottled = false;
218
+ }
219
+
220
+ /**
221
+ * Deserialize a transaction from bytes. The bytes can either be a `proto.Transaction` or
222
+ * `proto.TransactionList`.
223
+ *
224
+ * @param {Uint8Array} bytes
225
+ * @returns {Transaction}
226
+ */
227
+ static fromBytes(bytes) {
228
+ /** @type {HieroProto.proto.ISignedTransaction[]} */
229
+ const signedTransactions = [];
230
+
231
+ /** @type {TransactionId[]} */
232
+ const transactionIds = [];
233
+
234
+ /** @type {AccountId[]} */
235
+ const nodeIds = [];
236
+
237
+ /** @type {string[]} */
238
+ const transactionIdStrings = [];
239
+
240
+ /** @type {string[]} */
241
+ const nodeIdStrings = [];
242
+
243
+ /** @type {HieroProto.proto.TransactionBody[]} */
244
+ const bodies = [];
245
+ const list = HieroProto.proto.TransactionList.decode(bytes).transactionList;
246
+
247
+ // If the list is of length 0, then teh bytes provided were not a
248
+ // `proto.TransactionList`
249
+ //
250
+ // FIXME: We should also check to make sure the bytes length is greater than
251
+ // 0 otherwise this check is wrong?
252
+ if (list.length === 0) {
253
+ const transaction = HieroProto.proto.Transaction.decode(bytes);
254
+
255
+ // We support `Transaction.signedTransactionBytes` and
256
+ // `Transaction.bodyBytes` + `Transaction.sigMap`. If the bytes represent the
257
+ // latter, convert them into `signedTransactionBytes`
258
+ if (transaction.signedTransactionBytes.length !== 0) {
259
+ list.push(transaction);
260
+ } else {
261
+ list.push({
262
+ signedTransactionBytes: HieroProto.proto.SignedTransaction.encode({
263
+ sigMap: transaction.sigMap,
264
+ bodyBytes: transaction.bodyBytes
265
+ }).finish()
266
+ });
267
+ }
268
+ }
269
+
270
+ // This loop is responsible for fill out the `signedTransactions`, `transactionIds`,
271
+ // `nodeIds`, and `bodies` variables.
272
+ for (const transaction of list) {
273
+ // The `bodyBytes` or `signedTransactionBytes` should not be null
274
+ if (transaction.bodyBytes == null && transaction.signedTransactionBytes == null) {
275
+ throw new Error("bodyBytes and signedTransactionBytes are null");
276
+ }
277
+ if (transaction.bodyBytes && transaction.bodyBytes.length != 0) {
278
+ // Decode a transaction
279
+ const body = HieroProto.proto.TransactionBody.decode(transaction.bodyBytes);
280
+
281
+ // Make sure the transaction ID within the body is set
282
+ if (body.transactionID != null) {
283
+ const transactionId = _TransactionId.default._fromProtobuf(/** @type {HieroProto.proto.ITransactionID} */
284
+ body.transactionID);
285
+
286
+ // If we haven't already seen this transaction ID in the list, add it
287
+ if (!transactionIdStrings.includes(transactionId.toString())) {
288
+ transactionIds.push(transactionId);
289
+ transactionIdStrings.push(transactionId.toString());
290
+ }
291
+ }
292
+
293
+ // Make sure the node account ID within the body is set
294
+ if (body.nodeAccountID != null) {
295
+ const nodeAccountId = _AccountId.default._fromProtobuf(/** @type {HieroProto.proto.IAccountID} */
296
+ body.nodeAccountID);
297
+
298
+ // If we haven't already seen this node account ID in the list, add it
299
+ if (!nodeIdStrings.includes(nodeAccountId.toString())) {
300
+ nodeIds.push(nodeAccountId);
301
+ nodeIdStrings.push(nodeAccountId.toString());
302
+ }
303
+ }
304
+
305
+ // Make sure the body is set
306
+ if (body.data == null) {
307
+ throw new Error("(BUG) body.data was not set in the protobuf");
308
+ }
309
+ bodies.push(body);
310
+ }
311
+ if (transaction.signedTransactionBytes && transaction.signedTransactionBytes.length != 0) {
312
+ // Decode a signed transaction
313
+ const signedTransaction = HieroProto.proto.SignedTransaction.decode(transaction.signedTransactionBytes);
314
+ signedTransactions.push(signedTransaction);
315
+
316
+ // Decode a transaction body
317
+ const body = HieroProto.proto.TransactionBody.decode(signedTransaction.bodyBytes);
318
+
319
+ // Make sure the transaction ID within the body is set
320
+ if (body.transactionID != null) {
321
+ const transactionId = _TransactionId.default._fromProtobuf(/** @type {HieroProto.proto.ITransactionID} */
322
+ body.transactionID);
323
+
324
+ // If we haven't already seen this transaction ID in the list, add it
325
+ if (!transactionIdStrings.includes(transactionId.toString())) {
326
+ transactionIds.push(transactionId);
327
+ transactionIdStrings.push(transactionId.toString());
328
+ }
329
+ }
330
+
331
+ // Make sure the node account ID within the body is set
332
+ if (body.nodeAccountID != null) {
333
+ const nodeAccountId = _AccountId.default._fromProtobuf(/** @type {HieroProto.proto.IAccountID} */
334
+ body.nodeAccountID);
335
+
336
+ // If we haven't already seen this node account ID in the list, add it
337
+ if (!nodeIdStrings.includes(nodeAccountId.toString())) {
338
+ nodeIds.push(nodeAccountId);
339
+ nodeIdStrings.push(nodeAccountId.toString());
340
+ }
341
+ }
342
+
343
+ // Make sure the body is set
344
+ if (body.data == null) {
345
+ throw new Error("(BUG) body.data was not set in the protobuf");
346
+ }
347
+ bodies.push(body);
348
+ }
349
+ }
350
+
351
+ // FIXME: We should have a length check before we access `0` since that would error
352
+ const body = bodies[0];
353
+
354
+ // We should have at least more than one body
355
+ if (body == null || body.data == null) {
356
+ throw new Error("No transaction found in bytes or failed to decode TransactionBody");
357
+ }
358
+
359
+ // Use the registry to call the right transaction's `fromProtobuf` method based
360
+ // on the `body.data` string
361
+ const fromProtobuf = TRANSACTION_REGISTRY.get(body.data); //NOSONAR
362
+
363
+ // If we forgot to update the registry we should error
364
+ if (fromProtobuf == null) {
365
+ throw new Error(`(BUG) Transaction.fromBytes() not implemented for type ${body.data}`);
366
+ }
367
+
368
+ // That the specific transaction type from protobuf implementation and pass in all the
369
+ // information we've gathered.
370
+ return fromProtobuf(list, signedTransactions, transactionIds, nodeIds, bodies);
371
+ }
372
+
373
+ /**
374
+ * Convert this transaction a `ScheduleCreateTransaction`
375
+ *
376
+ * @returns {ScheduleCreateTransaction}
377
+ */
378
+ schedule() {
379
+ this._requireNotFrozen();
380
+ if (SCHEDULE_CREATE_TRANSACTION.length != 1) {
381
+ throw new Error("ScheduleCreateTransaction has not been loaded yet");
382
+ }
383
+ return SCHEDULE_CREATE_TRANSACTION[0]()._setScheduledTransaction(this);
384
+ }
385
+
386
+ /**
387
+ * @description Batchify method is used to mark a transaction as part of a batch transaction or make it so-called inner transaction.
388
+ * The Transaction will be frozen and signed by the operator of the client.
389
+ *
390
+ * @param {import("../client/Client.js").default<Channel, *>} client
391
+ * @param {Key} batchKey
392
+ * @returns {Promise<this>}
393
+ */
394
+ async batchify(client, batchKey) {
395
+ this._requireNotFrozen();
396
+ this.setBatchKey(batchKey);
397
+ return await this.signWithOperator(client);
398
+ }
399
+
400
+ /**
401
+ * This method is called by each `*Transaction._fromProtobuf()` method. It does
402
+ * all the finalization before the user gets hold of a complete `Transaction`
403
+ *
404
+ * @template {Transaction} TransactionT
405
+ * @param {TransactionT} transaction
406
+ * @param {HieroProto.proto.ITransaction[]} transactions
407
+ * @param {HieroProto.proto.ISignedTransaction[]} signedTransactions
408
+ * @param {TransactionId[]} transactionIds
409
+ * @param {AccountId[]} nodeIds
410
+ * @param {HieroProto.proto.ITransactionBody[]} bodies
411
+ * @returns {TransactionT}
412
+ */
413
+ static _fromProtobufTransactions(transaction, transactions, signedTransactions, transactionIds, nodeIds, bodies) {
414
+ const body = bodies[0];
415
+
416
+ // "row" of the 2-D `bodies` array has all the same contents except for `nodeAccountID`
417
+ for (let i = 0; i < transactionIds.length; i++) {
418
+ for (let j = 0; j < nodeIds.length - 1; j++) {
419
+ if (!util.compare(bodies[i * nodeIds.length + j], bodies[i * nodeIds.length + j + 1],
420
+ // eslint-disable-next-line ie11/no-collection-args
421
+ new Set(["nodeAccountID"]))) {
422
+ throw new Error("failed to validate transaction bodies");
423
+ }
424
+ }
425
+ }
426
+
427
+ // Remove node account IDs of 0
428
+ // _IIRC_ this was initial due to some funny behavior with `ScheduleCreateTransaction`
429
+ // We may be able to remove this.
430
+ const zero = new _AccountId.default(0);
431
+ for (let i = 0; i < nodeIds.length; i++) {
432
+ if (nodeIds[i].equals(zero)) {
433
+ nodeIds.splice(i--, 1);
434
+ }
435
+ }
436
+
437
+ // Set the transactions accordingly, but don't lock the list because transactions can
438
+ // be regenerated if more signatures are added
439
+ transaction._transactions.setList(transactions);
440
+
441
+ // Set the signed transactions accordingly. Although, they
442
+ // can be manipulated if for instance more signatures are added
443
+ transaction._signedTransactions.setList(signedTransactions);
444
+
445
+ // Set the transaction IDs accordingly
446
+ transaction._transactionIds.setList(transactionIds);
447
+
448
+ // Set the node account IDs accordingly
449
+ transaction._nodeAccountIds.setList(nodeIds);
450
+
451
+ // Make sure to update the rest of the fields
452
+ transaction._transactionValidDuration = body.transactionValidDuration != null && body.transactionValidDuration.seconds != null ? _long.default.fromValue(body.transactionValidDuration.seconds).toInt() : DEFAULT_TRANSACTION_VALID_DURATION;
453
+ transaction._maxTransactionFee = body.transactionFee != null && body.transactionFee > new _long.default(0, 0, true) ? _Hbar.default.fromTinybars(body.transactionFee) : null;
454
+ transaction._customFeeLimits = body.maxCustomFees != null ? body.maxCustomFees?.map(fee => _CustomFeeLimit.default._fromProtobuf(fee)) : [];
455
+ transaction._batchKey = body.batchKey != null ? _Key.default._fromProtobufKey(body?.batchKey) : null;
456
+ transaction._transactionMemo = body.memo != null ? body.memo : "";
457
+
458
+ // Loop over a single row of `signedTransactions` and add all the public
459
+ // keys to the `signerPublicKeys` set, and `publicKeys` list with
460
+ // `null` in the `transactionSigners` at the same index.
461
+ for (let i = 0; i < nodeIds.length; i++) {
462
+ const tx = signedTransactions[i] || transactions[i];
463
+ if (tx.sigMap != null && tx.sigMap.sigPair != null) {
464
+ for (const sigPair of tx.sigMap.sigPair) {
465
+ transaction._signerPublicKeys.add(hex.encode(/** @type {Uint8Array} */sigPair.pubKeyPrefix));
466
+ transaction._publicKeys.push(_PublicKey.default.fromBytes(/** @type {Uint8Array} */sigPair.pubKeyPrefix));
467
+ transaction._transactionSigners.push(null);
468
+ }
469
+ }
470
+ }
471
+ return transaction;
472
+ }
473
+
474
+ /**
475
+ * Set the node account IDs
476
+ *
477
+ * @override
478
+ * @param {AccountId[]} nodeIds
479
+ * @returns {this}
480
+ */
481
+ setNodeAccountIds(nodeIds) {
482
+ // The reason we overwrite this method is simply because we need to call `requireNotFrozen()`
483
+ // Now that I think of it, we could just add an abstract method `setterPrerequiest()` which
484
+ // by default does nothing, and `Executable` can call. Then we'd only need to overwrite that
485
+ // method once.
486
+ this._requireNotFrozen();
487
+ super.setNodeAccountIds(nodeIds);
488
+ return this;
489
+ }
490
+
491
+ /**
492
+ * Get the transaction valid duration
493
+ *
494
+ * @returns {number}
495
+ */
496
+ get transactionValidDuration() {
497
+ return this._transactionValidDuration;
498
+ }
499
+
500
+ /**
501
+ * Protobuf encoding has specific rules about how data is serialized
502
+ * Different fields take different amounts of space depending on their values
503
+ * The actual wire format size can only be determined after encoding
504
+ *
505
+ * @returns {Promise<number>}
506
+ */
507
+ get size() {
508
+ this._requireFrozen();
509
+ return this._makeRequestAsync().then(request => HieroProto.proto.Transaction.encode(request).finish().length);
510
+ }
511
+
512
+ /**
513
+ * Get the transaction body size
514
+ * Protobuf encoding has specific rules about how data is serialized
515
+ * Different fields take different amounts of space depending on their values
516
+ * The actual wire format size can only be determined after encoding
517
+ *
518
+ * @returns {number}
519
+ */
520
+ get bodySize() {
521
+ const body = this._makeTransactionBody(_AccountId.default.fromString("0.0.0"));
522
+ return HieroProto.proto.TransactionBody.encode(body).finish().length;
523
+ }
524
+
525
+ /**
526
+ * Sets the duration (in seconds) that this transaction is valid for.
527
+ *
528
+ * This is defaulted to 120 seconds (from the time its executed).
529
+ *
530
+ * @param {number} validDuration
531
+ * @returns {this}
532
+ */
533
+ setTransactionValidDuration(validDuration) {
534
+ this._requireNotFrozen();
535
+ this._transactionValidDuration = validDuration;
536
+ return this;
537
+ }
538
+
539
+ /**
540
+ * Get the max transaction fee
541
+ *
542
+ * @returns {?Hbar}
543
+ */
544
+ get maxTransactionFee() {
545
+ return this._maxTransactionFee;
546
+ }
547
+
548
+ /**
549
+ * Set the maximum transaction fee the operator (paying account)
550
+ * is willing to pay.
551
+ *
552
+ * @param {number | string | Long | BigNumber | Hbar} maxTransactionFee
553
+ * @returns {this}
554
+ */
555
+ setMaxTransactionFee(maxTransactionFee) {
556
+ this._requireNotFrozen();
557
+ this._maxTransactionFee = maxTransactionFee instanceof _Hbar.default ? maxTransactionFee : new _Hbar.default(maxTransactionFee);
558
+ return this;
559
+ }
560
+
561
+ /**
562
+ * Is transaction ID regeneration enabled
563
+ *
564
+ * @returns {?boolean}
565
+ */
566
+ get regenerateTransactionId() {
567
+ return this._regenerateTransactionId;
568
+ }
569
+
570
+ /**
571
+ * Set the maximum transaction fee the operator (paying account)
572
+ * is willing to pay.
573
+ *
574
+ * @param {boolean} regenerateTransactionId
575
+ * @returns {this}
576
+ */
577
+ setRegenerateTransactionId(regenerateTransactionId) {
578
+ this._requireNotFrozen();
579
+ this._regenerateTransactionId = regenerateTransactionId;
580
+ return this;
581
+ }
582
+
583
+ /**
584
+ * Get the transaction memo
585
+ *
586
+ * @returns {string}
587
+ */
588
+ get transactionMemo() {
589
+ return this._transactionMemo;
590
+ }
591
+
592
+ /**
593
+ * Set a note or description to be recorded in the transaction
594
+ * record (maximum length of 100 bytes).
595
+ *
596
+ * @param {string} transactionMemo
597
+ * @returns {this}
598
+ */
599
+ setTransactionMemo(transactionMemo) {
600
+ this._requireNotFrozen();
601
+ this._transactionMemo = transactionMemo;
602
+ return this;
603
+ }
604
+
605
+ /**
606
+ * Get the curent transaction ID
607
+ *
608
+ * @returns {?TransactionId}
609
+ */
610
+ get transactionId() {
611
+ if (this._transactionIds.isEmpty) {
612
+ return null;
613
+ }
614
+
615
+ // If a user calls `.transactionId` that means we need to use that transaction ID
616
+ // and **not** regenerate it. To do this, we simply lock the transaction ID list.
617
+ //
618
+ // This may be a little conffusing since a user can enable transaction ID regenration
619
+ // explicity, but if they call `.transactionId` then we will not regenerate transaction
620
+ // IDs.
621
+ this._transactionIds.setLocked();
622
+ return this._transactionIds.current;
623
+ }
624
+
625
+ /**
626
+ * Set the ID for this transaction.
627
+ *
628
+ * The transaction ID includes the operator's account ( the account paying the transaction
629
+ * fee). If two transactions have the same transaction ID, they won't both have an effect. One
630
+ * will complete normally and the other will fail with a duplicate transaction status.
631
+ *
632
+ * Normally, you should not use this method. Just before a transaction is executed, a
633
+ * transaction ID will be generated from the operator on the client.
634
+ *
635
+ * @param {TransactionId} transactionId
636
+ * @returns {this}
637
+ */
638
+ setTransactionId(transactionId) {
639
+ this._requireNotFrozen();
640
+ this._transactionIds.setList([transactionId]).setLocked();
641
+ return this;
642
+ }
643
+
644
+ /**
645
+ * How many chunk sizes are expected
646
+ * @abstract
647
+ * @internal
648
+ * @returns {number}
649
+ */
650
+ getRequiredChunks() {
651
+ return 1;
652
+ }
653
+
654
+ /**
655
+ * Get the body sizes for all chunks in a Chunked transaction.
656
+ * For transactions with multiple chunks (like large topic message submissions),
657
+ * this returns an array containing the size of each chunk's transaction body.
658
+ * The size is calculated by encoding the transaction body to protobuf format.
659
+ *
660
+ * @returns {number[]} An array of body sizes, where each element represents
661
+ * the size in bytes of a chunk's transaction body
662
+ *
663
+ */
664
+ get bodySizeAllChunks() {
665
+ const bodySizes = [];
666
+
667
+ // Store sizes for each chunk
668
+ for (let i = 0; i < this.getRequiredChunks(); i++) {
669
+ // Set index directly
670
+ this._transactionIds.index = i;
671
+ // Use super.bodySize to access the base class implementation
672
+ bodySizes.push(this.bodySize);
673
+ }
674
+ // Restore to initial index
675
+ this._transactionIds.index = 0;
676
+ return bodySizes;
677
+ }
678
+
679
+ /**
680
+ * Sign the transaction with the private key
681
+ * **NOTE**: This is a thin wrapper around `.signWith()`
682
+ *
683
+ * @param {PrivateKey} privateKey
684
+ * @returns {Promise<this>}
685
+ */
686
+ sign(privateKey) {
687
+ return this.signWith(privateKey.publicKey, message => Promise.resolve(privateKey.sign(message)));
688
+ }
689
+
690
+ /**
691
+ * Sign the transaction with the public key and signer function
692
+ *
693
+ * If sign on demand is enabled no signing will be done immediately, instead
694
+ * the private key signing function and public key are saved to be used when
695
+ * a user calls an exit condition method (not sure what a better name for this is)
696
+ * such as `toBytes[Async]()`, `getTransactionHash[PerNode]()` or `execute()`.
697
+ *
698
+ * @param {PublicKey} publicKey
699
+ * @param {(message: Uint8Array) => Promise<Uint8Array>} transactionSigner
700
+ * @returns {Promise<this>}
701
+ */
702
+ async signWith(publicKey, transactionSigner) {
703
+ // If signing on demand is disabled, we need to make sure
704
+ // the request is frozen
705
+ if (!this._signOnDemand) {
706
+ this._requireFrozen();
707
+ }
708
+ const publicKeyData = publicKey.toBytesRaw();
709
+
710
+ // note: this omits the DER prefix on purpose because Hedera doesn't
711
+ // support that in the protobuf. this means that we would fail
712
+ // to re-inflate [this._signerPublicKeys] during [fromBytes] if we used DER
713
+ // prefixes here
714
+ const publicKeyHex = hex.encode(publicKeyData);
715
+ if (this._signerPublicKeys.has(publicKeyHex)) {
716
+ // this public key has already signed this transaction
717
+ return this;
718
+ }
719
+
720
+ // If we add a new signer, then we need to re-create all transactions
721
+ this._transactions.clear();
722
+
723
+ // Save the current public key so we don't attempt to sign twice
724
+ this._signerPublicKeys.add(publicKeyHex);
725
+ this._publicKeys.push(publicKey);
726
+ this._transactionSigners.push(transactionSigner);
727
+ if (this._signOnDemand) {
728
+ return this;
729
+ }
730
+
731
+ // If we get here, signing on demand is disabled, this means the transaction
732
+ // is frozen and we need to sign all the transactions immediately. If we're
733
+ // signing all the transactions immediately, we need to lock the node account IDs
734
+ // and transaction IDs.
735
+ // Now that I think of it, this code should likely exist in `freezeWith()`?
736
+ this._transactionIds.setLocked();
737
+ this._nodeAccountIds.setLocked();
738
+
739
+ // Sign each signed transatcion
740
+ for (const signedTransaction of this._signedTransactions.list) {
741
+ const bodyBytes = /** @type {Uint8Array} */
742
+ signedTransaction.bodyBytes;
743
+ const signature = await transactionSigner(bodyBytes);
744
+ if (signedTransaction.sigMap == null) {
745
+ signedTransaction.sigMap = {};
746
+ }
747
+ if (signedTransaction.sigMap.sigPair == null) {
748
+ signedTransaction.sigMap.sigPair = [];
749
+ }
750
+ signedTransaction.sigMap.sigPair.push(publicKey._toProtobufSignature(signature));
751
+ }
752
+ return this;
753
+ }
754
+
755
+ /**
756
+ * Sign the transaction with the client operator. This is a thin wrapper
757
+ * around `.signWith()`
758
+ *
759
+ * **NOTE**: If client does not have an operator set, this method will throw
760
+ *
761
+ * @param {import("../client/Client.js").default<Channel, *>} client
762
+ * @returns {Promise<this>}
763
+ */
764
+ signWithOperator(client) {
765
+ const operator = client._operator;
766
+ if (operator == null) {
767
+ throw new Error("`client` must have an operator to sign with the operator");
768
+ }
769
+ if (!this._isFrozen()) {
770
+ this.freezeWith(client);
771
+ }
772
+ return this.signWith(operator.publicKey, operator.transactionSigner);
773
+ }
774
+
775
+ /**
776
+ * Resets the transaction to its initial state
777
+ * @param {Client} client
778
+ */
779
+ _resetTransaction(client) {
780
+ if (!client.operatorAccountId) {
781
+ throw new Error("Client must have an operator account ID");
782
+ }
783
+ this.logger?.info("Resetting transaction id and resigning");
784
+ const newTxId = _TransactionId.default.generate(client.operatorAccountId);
785
+ this._transactionIds.clear();
786
+ this._signedTransactions.clear();
787
+ this._transactionIds.setList([newTxId]);
788
+ this._isThrottled = true;
789
+ }
790
+ /**
791
+ * @deprecated - Using uint8array and uint8array[] as signaturemap is deprecated,
792
+ * use SignatureMap insted.
793
+ * @overload
794
+ * @param { PublicKey } publicKey
795
+ * @param { Uint8Array | Uint8Array[] } signatureMap
796
+ * @returns {this}
797
+ */
798
+
799
+ /**
800
+ * @overload
801
+ * @param {PublicKey} publicKey
802
+ * @param { SignatureMap } signatureMap
803
+ * @returns {this}
804
+ */
805
+
806
+ /**
807
+ * Add a signature explicitly
808
+ *
809
+ * @param {PublicKey} publicKey
810
+ * @param {SignatureMap | Uint8Array |Uint8Array[]} signatureMap
811
+ * @returns {this}
812
+ */
813
+ addSignature(publicKey, signatureMap) {
814
+ if (!(signatureMap instanceof _SignatureMap.default)) {
815
+ return this._addSignatureLegacy(publicKey, signatureMap);
816
+ }
817
+
818
+ // If the transaction isn't frozen, freeze it.
819
+ if (!this.isFrozen()) {
820
+ this.freeze();
821
+ }
822
+ const publicKeyData = publicKey.toBytesRaw();
823
+ const publicKeyHex = hex.encode(publicKeyData);
824
+ if (this._signerPublicKeys.has(publicKeyHex)) {
825
+ // this public key has already signed this transaction
826
+ return this;
827
+ }
828
+
829
+ // If we add a new signer, then we need to re-create all transactions
830
+ this._transactions.clear();
831
+
832
+ // Locking the transaction IDs and node account IDs is necessary for consistency
833
+ // between before and after execution
834
+ this._transactionIds.setLocked();
835
+ this._nodeAccountIds.setLocked();
836
+ this._signedTransactions.setLocked();
837
+
838
+ // Add the signature to the signed transaction list
839
+ for (let index = 0; index < this._signedTransactions.length; index++) {
840
+ const signedTransaction = this._signedTransactions.get(index);
841
+ if (signedTransaction.sigMap == null) {
842
+ signedTransaction.sigMap = {};
843
+ }
844
+ if (signedTransaction.sigMap.sigPair == null) {
845
+ signedTransaction.sigMap.sigPair = [];
846
+ }
847
+ if (signedTransaction.bodyBytes) {
848
+ const {
849
+ transactionID,
850
+ nodeAccountID
851
+ } = HieroProto.proto.TransactionBody.decode(signedTransaction.bodyBytes);
852
+ if (!transactionID || !nodeAccountID) {
853
+ throw new Error("Transaction ID or Node Account ID not found in the signed transaction");
854
+ }
855
+ const transactionId = _TransactionId.default._fromProtobuf(transactionID);
856
+ const nodeAccountId = _AccountId.default._fromProtobuf(nodeAccountID);
857
+ const nodeSignatures = signatureMap.get(nodeAccountId);
858
+ const transactionSignatures = nodeSignatures?.get(transactionId);
859
+ const signature = transactionSignatures?.get(publicKey);
860
+ if (!signature) {
861
+ throw new Error("Signature not found for the transaction and public key");
862
+ }
863
+ const sigPair = publicKey._toProtobufSignature(signature);
864
+ signedTransaction.sigMap?.sigPair?.push(sigPair);
865
+ }
866
+ }
867
+ this._signerPublicKeys.add(publicKeyHex);
868
+ this._publicKeys.push(publicKey);
869
+ this._transactionSigners.push(null);
870
+ return this;
871
+ }
872
+
873
+ /**
874
+ * Add a signature explicitly
875
+ * This method supports both single and multiple signatures. A single signature will be applied to all transactions,
876
+ *
877
+ * While an array of signatures must correspond to each transaction individually.
878
+ *
879
+ * @param {PublicKey} publicKey
880
+ * @param {Uint8Array | Uint8Array[]} signature
881
+ * @returns {this}
882
+ */
883
+ _addSignatureLegacy(publicKey, signature) {
884
+ const isSingleSignature = signature instanceof Uint8Array;
885
+ const isArraySignature = Array.isArray(signature);
886
+ if (this.getRequiredChunks() > 1) {
887
+ throw new Error("Add signature is not supported for chunked transactions");
888
+ }
889
+
890
+ // Check if it is a single signature with NOT exactly one transaction
891
+
892
+ if (isSingleSignature && this._signedTransactions.length !== 1) {
893
+ throw new Error("Signature array must match the number of transactions");
894
+ }
895
+
896
+ // Check if it's an array but the array length doesn't match the number of transactions
897
+
898
+ if (isArraySignature && signature.length !== this._signedTransactions.length) {
899
+ throw new Error("Signature array must match the number of transactions");
900
+ }
901
+
902
+ // If the transaction isn't frozen, freeze it.
903
+ if (!this.isFrozen()) {
904
+ this.freeze();
905
+ }
906
+ const publicKeyData = publicKey.toBytesRaw();
907
+ const publicKeyHex = hex.encode(publicKeyData);
908
+ if (this._signerPublicKeys.has(publicKeyHex)) {
909
+ // this public key has already signed this transaction
910
+ return this;
911
+ }
912
+
913
+ // If we add a new signer, then we need to re-create all transactions
914
+ this._transactions.clear();
915
+
916
+ // Locking the transaction IDs and node account IDs is necessary for consistency
917
+ // between before and after execution
918
+ this._transactionIds.setLocked();
919
+ this._nodeAccountIds.setLocked();
920
+ this._signedTransactions.setLocked();
921
+ const signatureArray = isSingleSignature ? [signature] : signature;
922
+
923
+ // Add the signature to the signed transaction list
924
+ for (let index = 0; index < this._signedTransactions.length; index++) {
925
+ const signedTransaction = this._signedTransactions.get(index);
926
+ if (signedTransaction.sigMap == null) {
927
+ signedTransaction.sigMap = {};
928
+ }
929
+ if (signedTransaction.sigMap.sigPair == null) {
930
+ signedTransaction.sigMap.sigPair = [];
931
+ }
932
+ signedTransaction.sigMap.sigPair.push(publicKey._toProtobufSignature(signatureArray[index]));
933
+ }
934
+ this._signerPublicKeys.add(publicKeyHex);
935
+ this._publicKeys.push(publicKey);
936
+ this._transactionSigners.push(null);
937
+ return this;
938
+ }
939
+
940
+ /**
941
+ * Get the current signatures on the request
942
+ * **NOTE**: Does NOT support sign on demand
943
+ * @returns {SignatureMapLegacy}
944
+ */
945
+ getSignaturesLegacy() {
946
+ // If a user is attempting to get signatures for a transaction, then the
947
+ // transaction must be frozen.
948
+ this._requireFrozen();
949
+ // Sign on demand must be disabled because this is the non-async version and
950
+ // signing requires awaiting callbacks.
951
+ this._requireNotSignOnDemand();
952
+ // Build all the transactions
953
+ this._buildAllTransactions();
954
+ // Lock transaction IDs, and node account IDs
955
+ this._transactionIds.setLocked();
956
+ this._nodeAccountIds.setLocked();
957
+ // Construct a signature map from this transaction
958
+ // eslint-disable-next-line deprecation/deprecation
959
+ return _SignatureMapLegacy.default._fromTransaction(this);
960
+ }
961
+
962
+ /**
963
+ * This method removes all signatures from the transaction based on the public key provided.
964
+ *
965
+ * @param {PublicKey} publicKey - The public key associated with the signature to remove.
966
+ * @returns {Uint8Array[]} The removed signatures.
967
+ */
968
+ removeSignature(publicKey) {
969
+ if (!this.isFrozen()) {
970
+ this.freeze();
971
+ }
972
+ const publicKeyData = publicKey.toBytesRaw();
973
+ const publicKeyHex = hex.encode(publicKeyData);
974
+ if (!this._signerPublicKeys.has(publicKeyHex)) {
975
+ throw new Error("The public key has not signed this transaction");
976
+ }
977
+
978
+ /** @type {Uint8Array[]} */
979
+ const removedSignatures = [];
980
+
981
+ // Iterate over the signed transactions and remove matching signatures
982
+ for (const transaction of this._signedTransactions.list) {
983
+ const removedSignaturesFromTransaction = this._removeSignaturesFromTransaction(transaction, publicKeyHex);
984
+ removedSignatures.push(...removedSignaturesFromTransaction);
985
+ }
986
+
987
+ // Remove the public key from internal tracking if no signatures remain
988
+ this._signerPublicKeys.delete(publicKeyHex);
989
+ this._publicKeys = this._publicKeys.filter(key => !key.equals(publicKey));
990
+
991
+ // Update transaction signers array
992
+ this._transactionSigners.pop();
993
+ return removedSignatures;
994
+ }
995
+
996
+ /**
997
+ * This method clears all signatures from the transaction and returns them in a specific format.
998
+ *
999
+ * It will call collectSignatures to get the removed signatures, then clear all signatures
1000
+ * from the internal tracking.
1001
+ *
1002
+ * @returns { Map<PublicKey, Uint8Array[] | Uint8Array> } The removed signatures in the specified format.
1003
+ */
1004
+ removeAllSignatures() {
1005
+ if (!this.isFrozen()) {
1006
+ this.freeze();
1007
+ }
1008
+ const removedSignatures = this._collectSignaturesByPublicKey();
1009
+
1010
+ // Iterate over the signed transactions and clear all signatures
1011
+ for (const transaction of this._signedTransactions.list) {
1012
+ if (transaction.sigMap && transaction.sigMap.sigPair) {
1013
+ // Clear all signature pairs from the transaction's signature map
1014
+ transaction.sigMap.sigPair = [];
1015
+ }
1016
+ }
1017
+
1018
+ // Clear the internal tracking of signer public keys and other relevant arrays
1019
+ this._signerPublicKeys.clear();
1020
+ this._publicKeys = [];
1021
+ this._transactionSigners = [];
1022
+ return removedSignatures;
1023
+ }
1024
+
1025
+ /**
1026
+ * @deprecated - Use the legacy=flag instead to use the modern approach
1027
+ * @overload
1028
+ * @param {true} legacy
1029
+ * @returns {SignatureMapLegacy}
1030
+ */
1031
+
1032
+ /**
1033
+ * @overload
1034
+ * @param {false} [legacy]
1035
+ * @returns {SignatureMap}
1036
+ */
1037
+
1038
+ /**
1039
+ * Get the current signatures on the request
1040
+ *
1041
+ * **NOTE**: Does NOT support sign on demand
1042
+ * @param {boolean} [legacy]
1043
+ * @returns {SignatureMap | SignatureMapLegacy}
1044
+ */
1045
+ getSignatures(legacy) {
1046
+ if (legacy) {
1047
+ return this.getSignaturesLegacy();
1048
+ }
1049
+ // If a user is attempting to get signatures for a transaction, then the
1050
+ // transaction must be frozen.
1051
+ this._requireFrozen();
1052
+
1053
+ // Sign on demand must be disabled because this is the non-async version and
1054
+ // signing requires awaiting callbacks.
1055
+ this._requireNotSignOnDemand();
1056
+
1057
+ // Build all the transactions
1058
+ this._buildAllTransactions();
1059
+
1060
+ // Lock transaction IDs, and node account IDs
1061
+ this._transactionIds.setLocked();
1062
+ this._nodeAccountIds.setLocked();
1063
+
1064
+ // Construct a signature map from this transaction
1065
+ return _SignatureMap.default._fromTransaction(this);
1066
+ }
1067
+
1068
+ /**
1069
+ * Get the current signatures on the request
1070
+ *
1071
+ * **NOTE**: Supports sign on demand
1072
+ *
1073
+ * @returns {Promise<SignatureMap>}
1074
+ */
1075
+ async getSignaturesAsync() {
1076
+ // If sign on demand is enabled, we don't need to care about being frozen
1077
+ // since we can just regenerate and resign later if some field of the transaction
1078
+ // changes.
1079
+
1080
+ // Locking the transaction IDs and node account IDs is necessary for consistency
1081
+ // between before and after execution
1082
+ this._transactionIds.setLocked();
1083
+ this._nodeAccountIds.setLocked();
1084
+
1085
+ // Build all transactions, and sign them
1086
+ await this._buildAllTransactionsAsync();
1087
+
1088
+ // Lock transaction IDs, and node account IDs
1089
+ this._transactions.setLocked();
1090
+ this._signedTransactions.setLocked();
1091
+
1092
+ // Construct a signature map from this transaction
1093
+ return _SignatureMap.default._fromTransaction(this);
1094
+ }
1095
+
1096
+ /**
1097
+ * Not sure why this is called `setTransactionId()` when it doesn't set anything...
1098
+ * FIXME: Remove this?
1099
+ */
1100
+ _setTransactionId() {
1101
+ if (this._operatorAccountId == null && this._transactionIds.isEmpty) {
1102
+ throw new Error("`transactionId` must be set or `client` must be provided with `freezeWith`");
1103
+ }
1104
+ }
1105
+
1106
+ /**
1107
+ * Set the node account IDs using the client
1108
+ *
1109
+ * @param {?import("../client/Client.js").default<Channel, *>} client
1110
+ */
1111
+ _setNodeAccountIds(client) {
1112
+ if (!this._nodeAccountIds.isEmpty) {
1113
+ return;
1114
+ }
1115
+ if (client == null) {
1116
+ throw new Error("`nodeAccountId` must be set or `client` must be provided with `freezeWith`");
1117
+ }
1118
+ this._nodeAccountIds.setList(client._network.getNodeAccountIdsForExecute());
1119
+ }
1120
+
1121
+ /**
1122
+ * @description Set the key that will sign the batch of which this Transaction is a part of.
1123
+ * @param {Key} batchKey
1124
+ * @returns {this}
1125
+ */
1126
+ setBatchKey(batchKey) {
1127
+ this._requireNotFrozen();
1128
+ this._batchKey = batchKey;
1129
+ return this;
1130
+ }
1131
+
1132
+ /**
1133
+ * @description Get the key that will sign the batch of which this Transaction is a part of.
1134
+ * @returns {Key | null | undefined}
1135
+ */
1136
+ get batchKey() {
1137
+ return this._batchKey;
1138
+ }
1139
+
1140
+ /**
1141
+ * Returns a List of SignableNodeTransactionBodyBytes for each node the transaction is intended for.
1142
+ * These are the canonical bytes that must be signed externally (e.g., via HSM).
1143
+ *
1144
+ * @returns {SignableNodeTransactionBodyBytes[]}
1145
+ */
1146
+ get signableNodeBodyBytesList() {
1147
+ this._requireFrozen();
1148
+ return this._signedTransactions.list.map(signedTransaction => {
1149
+ if (!signedTransaction.bodyBytes) {
1150
+ throw new Error("Missing bodyBytes in signed transaction.");
1151
+ }
1152
+ const body = HieroProto.proto.TransactionBody.decode(signedTransaction.bodyBytes);
1153
+ if (!body.nodeAccountID) {
1154
+ throw new Error("Missing nodeAccountID in transaction body.");
1155
+ }
1156
+ const nodeAccountId = _AccountId.default._fromProtobuf(body.nodeAccountID);
1157
+ if (!body.transactionID) {
1158
+ throw new Error("Missing transactionID in transaction body.");
1159
+ }
1160
+ const transactionId = _TransactionId.default._fromProtobuf(body.transactionID);
1161
+ return new _SignableNodeTransactionBodyBytes.default(nodeAccountId, transactionId, signedTransaction.bodyBytes);
1162
+ });
1163
+ }
1164
+
1165
+ /**
1166
+ * Build all the signed transactions from the node account IDs
1167
+ *
1168
+ * @private
1169
+ */
1170
+ _buildSignedTransactions() {
1171
+ if (this._signedTransactions.locked) {
1172
+ return;
1173
+ }
1174
+ this._signedTransactions.setList(this._nodeAccountIds.list.map(nodeId => this._makeSignedTransaction(nodeId)));
1175
+ }
1176
+
1177
+ /**
1178
+ * Build all the signed transactions from the node account IDs
1179
+ *
1180
+ * @internal
1181
+ */
1182
+ _buildIncompleteTransactions() {
1183
+ if (this._nodeAccountIds.length == 0) {
1184
+ this._transactions.setList([this._makeSignedTransaction(null)]);
1185
+ } else {
1186
+ // In case the node account ids are set
1187
+ this._transactions.setList(this._nodeAccountIds.list.map(nodeId => this._makeSignedTransaction(nodeId)));
1188
+ }
1189
+ }
1190
+
1191
+ /**
1192
+ * Freeze this transaction from future modification to prepare for
1193
+ * signing or serialization.
1194
+ *
1195
+ * @returns {this}
1196
+ */
1197
+ freeze() {
1198
+ return this.freezeWith(null);
1199
+ }
1200
+
1201
+ /**
1202
+ * @param {?AccountId} accountId
1203
+ */
1204
+ _freezeWithAccountId(accountId) {
1205
+ if (this._operatorAccountId == null) {
1206
+ this._operatorAccountId = accountId;
1207
+ }
1208
+ }
1209
+
1210
+ /**
1211
+ * Freeze this transaction from further modification to prepare for
1212
+ * signing or serialization.
1213
+ *
1214
+ * Will use the `Client`, if available, to generate a default Transaction ID and select 1/3
1215
+ * nodes to prepare this transaction for.
1216
+ *
1217
+ * @param {?import("../client/Client.js").default<Channel, *>} client
1218
+ * @returns {this}
1219
+ */
1220
+ freezeWith(client) {
1221
+ // Set sign on demand based on client
1222
+ this._signOnDemand = client != null ? client.signOnDemand : false;
1223
+
1224
+ // Save the operator
1225
+ this._operator = client != null ? client._operator : null;
1226
+ this._freezeWithAccountId(client != null ? client.operatorAccountId : null);
1227
+
1228
+ // Set max transaction fee to either `this._maxTransactionFee`,
1229
+ // `client._defaultMaxTransactionFee`, or `this._defaultMaxTransactionFee`
1230
+ // in that priority order depending on if `this._maxTransactionFee` has
1231
+ // been set or if `client._defaultMaxTransactionFee` has been set.
1232
+ this._maxTransactionFee = this._maxTransactionFee == null ? client != null && client.defaultMaxTransactionFee != null ? client.defaultMaxTransactionFee : this._defaultMaxTransactionFee : this._maxTransactionFee;
1233
+
1234
+ // Determine if transaction ID generation should be enabled.
1235
+ this._regenerateTransactionId = client != null && this._regenerateTransactionId == null ? client.defaultRegenerateTransactionId : this._regenerateTransactionId;
1236
+
1237
+ // Set the node account IDs via client
1238
+ if (this.batchKey) {
1239
+ this._nodeAccountIds.setList([NODE_ACCOUNT_BATCH_ID]);
1240
+ } else {
1241
+ this._setNodeAccountIds(client);
1242
+ }
1243
+
1244
+ // Make sure a transaction ID or operator is set.
1245
+ this._setTransactionId();
1246
+
1247
+ // If a client was not provided, we need to make sure the transaction ID already set
1248
+ // validates aginst the client.
1249
+ if (client != null) {
1250
+ for (const transactionId of this._transactionIds.list) {
1251
+ if (transactionId.accountId != null) {
1252
+ transactionId.accountId.validateChecksum(client);
1253
+ }
1254
+ }
1255
+ }
1256
+
1257
+ // Build a list of transaction IDs so that if a user calls `.transactionId` they'll
1258
+ // get a value, but if they dont' we'll just regenerate transaction IDs during execution
1259
+ this._buildNewTransactionIdList();
1260
+
1261
+ // If sign on demand is disabled we need to build out all the signed transactions
1262
+ if (!this._signOnDemand) {
1263
+ this._buildSignedTransactions();
1264
+ }
1265
+ return this;
1266
+ }
1267
+
1268
+ /**
1269
+ * Sign the transaction using a signer
1270
+ *
1271
+ * This is part of the signature provider feature
1272
+ *
1273
+ * @param {Signer} signer
1274
+ * @returns {Promise<this>}
1275
+ */
1276
+ async signWithSigner(signer) {
1277
+ await signer.signTransaction(this);
1278
+ return this;
1279
+ }
1280
+
1281
+ /**
1282
+ * Freeze the transaction using a signer
1283
+ *
1284
+ * This is part of the signature provider feature.
1285
+ *
1286
+ * @param {Signer} signer
1287
+ * @returns {Promise<this>}
1288
+ */
1289
+ async freezeWithSigner(signer) {
1290
+ await signer.populateTransaction(this);
1291
+ this.freeze();
1292
+ return this;
1293
+ }
1294
+
1295
+ /**
1296
+ * Serialize the request into bytes. This will encode all the transactions
1297
+ * into a `proto.TransactionList` and return the encoded protobuf.
1298
+ *
1299
+ * **NOTE**: Does not support sign on demand
1300
+ *
1301
+ * @returns {Uint8Array}
1302
+ */
1303
+ toBytes() {
1304
+ // Sign on demand must be disabled because this is the non-async version and
1305
+ // signing requires awaiting callbacks.
1306
+ this._requireNotSignOnDemand();
1307
+ if (this._isFrozen()) {
1308
+ // Locking the transaction IDs and node account IDs is necessary for consistency
1309
+ // between before and after execution
1310
+ this._transactionIds.setLocked();
1311
+ this._nodeAccountIds.setLocked();
1312
+
1313
+ // Build all the transactions without signing
1314
+ this._buildAllTransactions();
1315
+ } else {
1316
+ this._buildIncompleteTransactions();
1317
+ }
1318
+
1319
+ // Construct and encode the transaction list
1320
+ return HieroProto.proto.TransactionList.encode({
1321
+ transactionList: (/** @type {HieroProto.proto.ITransaction[]} */
1322
+ this._transactions.list)
1323
+ }).finish();
1324
+ }
1325
+
1326
+ /**
1327
+ * Serialize the transaction into bytes
1328
+ *
1329
+ * **NOTE**: Supports sign on demand
1330
+ *
1331
+ * @returns {Promise<Uint8Array>}
1332
+ */
1333
+ async toBytesAsync() {
1334
+ // If sign on demand is enabled, we don't need to care about being frozen
1335
+ // since we can just regenerate and resign later if some field of the transaction
1336
+ // changes.
1337
+
1338
+ // Locking the transaction IDs and node account IDs is necessary for consistency
1339
+ // between before and after execution
1340
+ this._transactionIds.setLocked();
1341
+ this._nodeAccountIds.setLocked();
1342
+
1343
+ // Build all transactions, and sign them
1344
+ await this._buildAllTransactionsAsync();
1345
+
1346
+ // Lock transaction IDs, and node account IDs
1347
+ this._transactions.setLocked();
1348
+ this._signedTransactions.setLocked();
1349
+
1350
+ // Construct and encode the transaction list
1351
+ return HieroProto.proto.TransactionList.encode({
1352
+ transactionList: (/** @type {HieroProto.proto.ITransaction[]} */
1353
+ this._transactions.list)
1354
+ }).finish();
1355
+ }
1356
+
1357
+ /**
1358
+ * Get the transaction hash
1359
+ *
1360
+ * @returns {Promise<Uint8Array>}
1361
+ */
1362
+ async getTransactionHash() {
1363
+ this._requireFrozen();
1364
+
1365
+ // Locking the transaction IDs and node account IDs is necessary for consistency
1366
+ // between before and after execution
1367
+ this._transactionIds.setLocked();
1368
+ this._nodeAccountIds.setLocked();
1369
+ await this._buildAllTransactionsAsync();
1370
+ this._transactions.setLocked();
1371
+ this._signedTransactions.setLocked();
1372
+ return sha384.digest(/** @type {Uint8Array} */
1373
+ /** @type {HieroProto.proto.ITransaction} */this._transactions.get(0).signedTransactionBytes);
1374
+ }
1375
+
1376
+ /**
1377
+ * Get all the transaction hashes
1378
+ *
1379
+ * @returns {Promise<TransactionHashMap>}
1380
+ */
1381
+ async getTransactionHashPerNode() {
1382
+ this._requireFrozen();
1383
+
1384
+ // Locking the transaction IDs and node account IDs is necessary for consistency
1385
+ // between before and after execution
1386
+ this._transactionIds.setLocked();
1387
+ this._nodeAccountIds.setLocked();
1388
+ await this._buildAllTransactionsAsync();
1389
+ return await _TransactionHashMap.default._fromTransaction(this);
1390
+ }
1391
+
1392
+ /**
1393
+ * Is transaction frozen
1394
+ *
1395
+ * @returns {boolean}
1396
+ */
1397
+ isFrozen() {
1398
+ return this._signedTransactions.length > 0;
1399
+ }
1400
+
1401
+ /**
1402
+ * Get the current transaction ID, and make sure it's not null
1403
+ *
1404
+ * @protected
1405
+ * @returns {TransactionId}
1406
+ */
1407
+ _getTransactionId() {
1408
+ const transactionId = this.transactionId;
1409
+ if (transactionId == null) {
1410
+ throw new Error("transaction must have been frozen before getting the transaction ID, try calling `freeze`");
1411
+ }
1412
+ return transactionId;
1413
+ }
1414
+
1415
+ /**
1416
+ * @param {Client} client
1417
+ */
1418
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/no-empty-function
1419
+ _validateChecksums(client) {
1420
+ // Do nothing
1421
+ }
1422
+
1423
+ /**
1424
+ * Before we proceed execution, we need to do a couple checks
1425
+ *
1426
+ * @override
1427
+ * @protected
1428
+ * @param {import("../client/Client.js").default<Channel, *>} client
1429
+ * @returns {Promise<void>}
1430
+ */
1431
+ async _beforeExecute(client) {
1432
+ // Assign the account IDs to which the transaction should be sent.
1433
+ this.transactionNodeIds = Object.values(client.network).map(accountNodeId => accountNodeId.toString());
1434
+ if (this._logger) {
1435
+ this._logger.info(`Network used: ${client._network.networkName}` // eslint-disable-line @typescript-eslint/restrict-template-expressions
1436
+ );
1437
+ }
1438
+
1439
+ // Make sure we're frozen
1440
+ if (!this._isFrozen()) {
1441
+ this.freezeWith(client);
1442
+ }
1443
+
1444
+ // Valid checksums if the option is enabled
1445
+ if (client.isAutoValidateChecksumsEnabled()) {
1446
+ this._validateChecksums(client);
1447
+ }
1448
+
1449
+ // Set the operator if the client has one and the current operator is nullish
1450
+ if (this._operator == null || this._operator == undefined) {
1451
+ this._operator = client != null ? client._operator : null;
1452
+ }
1453
+ if (this._operatorAccountId == null || this._operatorAccountId == undefined) {
1454
+ this._operatorAccountId = client != null && client._operator != null ? client._operator.accountId : null;
1455
+ }
1456
+
1457
+ // If the client has an operator, sign this request with the operator
1458
+ if (this._operator != null) {
1459
+ await this.signWith(this._operator.publicKey, this._operator.transactionSigner);
1460
+ }
1461
+ }
1462
+
1463
+ /**
1464
+ * Construct a protobuf transaction
1465
+ *
1466
+ * @override
1467
+ * @internal
1468
+ * @returns {Promise<HieroProto.proto.ITransaction>}
1469
+ */
1470
+ async _makeRequestAsync() {
1471
+ // The index for the transaction
1472
+ const index = this._transactionIds.index * this._nodeAccountIds.length + this._nodeAccountIds.index;
1473
+
1474
+ // If sign on demand is disabled we need to simply build that transaction
1475
+ // and return the result, without signing
1476
+ if (!this._signOnDemand && !this._isThrottled) {
1477
+ this._buildTransaction(index);
1478
+ return /** @type {HieroProto.proto.ITransaction} */this._transactions.get(index);
1479
+ }
1480
+
1481
+ // Build and sign a transaction
1482
+ return await this._buildTransactionAsync();
1483
+ }
1484
+
1485
+ /**
1486
+ * Sign a `proto.SignedTransaction` with all the keys
1487
+ *
1488
+ * @private
1489
+ * @returns {Promise<HieroProto.proto.ISignedTransaction>}
1490
+ */
1491
+ async _signTransaction() {
1492
+ const signedTransaction = this._makeSignedTransaction(this._nodeAccountIds.next);
1493
+ const bodyBytes = /** @type {Uint8Array} */
1494
+ signedTransaction.bodyBytes;
1495
+ for (let j = 0; j < this._publicKeys.length; j++) {
1496
+ const publicKey = this._publicKeys[j];
1497
+ const transactionSigner = this._transactionSigners[j];
1498
+ if (transactionSigner == null) {
1499
+ continue;
1500
+ }
1501
+ const signature = await transactionSigner(bodyBytes);
1502
+ if (signedTransaction.sigMap == null) {
1503
+ signedTransaction.sigMap = {};
1504
+ }
1505
+ if (signedTransaction.sigMap.sigPair == null) {
1506
+ signedTransaction.sigMap.sigPair = [];
1507
+ }
1508
+ signedTransaction.sigMap.sigPair.push(publicKey._toProtobufSignature(signature));
1509
+ }
1510
+ return signedTransaction;
1511
+ }
1512
+
1513
+ /**
1514
+ * Construct a new transaction ID at the current index
1515
+ *
1516
+ * @private
1517
+ */
1518
+ _buildNewTransactionIdList() {
1519
+ if (this._transactionIds.locked || this._operatorAccountId == null) {
1520
+ return;
1521
+ }
1522
+ const transactionId = _TransactionId.default.withValidStart(this._operatorAccountId, _Timestamp.default.generate());
1523
+ this._transactionIds.set(this._transactionIds.index, transactionId);
1524
+ }
1525
+
1526
+ /**
1527
+ * Build each signed transaction in a loop
1528
+ *
1529
+ * @internal
1530
+ */
1531
+ _buildAllTransactions() {
1532
+ for (let i = 0; i < this._signedTransactions.length; i++) {
1533
+ this._buildTransaction(i);
1534
+ }
1535
+ }
1536
+
1537
+ /**
1538
+ * Build and and sign each transaction in a loop
1539
+ *
1540
+ * This method is primary used in the exist condition methods
1541
+ * which are not `execute()`, e.g. `toBytesAsync()` and `getSignaturesAsync()`
1542
+ *
1543
+ * @private
1544
+ */
1545
+ async _buildAllTransactionsAsync() {
1546
+ if (!this._signOnDemand) {
1547
+ this._buildAllTransactions();
1548
+ return;
1549
+ }
1550
+ this._buildSignedTransactions();
1551
+ if (this._transactions.locked) {
1552
+ return;
1553
+ }
1554
+ for (let i = 0; i < this._signedTransactions.length; i++) {
1555
+ this._transactions.push(await this._buildTransactionAsync());
1556
+ }
1557
+ }
1558
+
1559
+ /**
1560
+ * Build a transaction at a particular index
1561
+ *
1562
+ * @internal
1563
+ * @param {number} index
1564
+ */
1565
+ _buildTransaction(index) {
1566
+ if (this._transactions.length < index) {
1567
+ for (let i = this._transactions.length; i < index; i++) {
1568
+ this._transactions.push(null);
1569
+ }
1570
+ }
1571
+
1572
+ // In case when an incomplete transaction is created, serialized and
1573
+ // deserialized,and then the transaction being frozen, the copy of the
1574
+ // incomplete transaction must be updated in order to be prepared for execution
1575
+ if (this._transactions.list[index] != null) {
1576
+ this._transactions.set(index, {
1577
+ signedTransactionBytes: HieroProto.proto.SignedTransaction.encode(this._signedTransactions.get(index)).finish()
1578
+ });
1579
+ }
1580
+ this._transactions.setIfAbsent(index, () => {
1581
+ return {
1582
+ signedTransactionBytes: HieroProto.proto.SignedTransaction.encode(this._signedTransactions.get(index)).finish()
1583
+ };
1584
+ });
1585
+ }
1586
+
1587
+ /**
1588
+ * Build a trransaction using the current index, where the current
1589
+ * index is determined by `this._nodeAccountIds.index` and
1590
+ * `this._transactionIds.index`
1591
+ *
1592
+ * @private
1593
+ * @returns {Promise<HieroProto.proto.ITransaction>}
1594
+ */
1595
+ async _buildTransactionAsync() {
1596
+ return {
1597
+ signedTransactionBytes: HieroProto.proto.SignedTransaction.encode(await this._signTransaction()).finish()
1598
+ };
1599
+ }
1600
+
1601
+ /**
1602
+ * Determine what execution state we're in.
1603
+ *
1604
+ * @override
1605
+ * @internal
1606
+ * @param {HieroProto.proto.ITransaction} request
1607
+ * @param {HieroProto.proto.ITransactionResponse} response
1608
+ * @returns {[Status, ExecutionState]}
1609
+ */
1610
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1611
+ _shouldRetry(request, response) {
1612
+ const {
1613
+ nodeTransactionPrecheckCode
1614
+ } = response;
1615
+
1616
+ // Get the node precheck code, and convert it into an SDK `Status`
1617
+ const status = _Status.default._fromCode(nodeTransactionPrecheckCode != null ? nodeTransactionPrecheckCode : HieroProto.proto.ResponseCodeEnum.OK);
1618
+ if (this._logger) {
1619
+ this._logger.debug(`[${this._getLogId()}] received status ${status.toString()}`);
1620
+ this._logger.info(`SDK Transaction Status Response: ${status.toString()}`);
1621
+ }
1622
+
1623
+ // Based on the status what execution state are we in
1624
+ switch (status) {
1625
+ case _Status.default.Busy:
1626
+ case _Status.default.Unknown:
1627
+ case _Status.default.PlatformTransactionNotCreated:
1628
+ case _Status.default.PlatformNotActive:
1629
+ return [status, _Executable.ExecutionState.Retry];
1630
+ case _Status.default.Ok:
1631
+ return [status, _Executable.ExecutionState.Finished];
1632
+ case _Status.default.TransactionExpired:
1633
+ if (this._transactionIds.locked || this._regenerateTransactionId != null && !this._regenerateTransactionId) {
1634
+ return [status, _Executable.ExecutionState.Error];
1635
+ } else {
1636
+ this._buildNewTransactionIdList();
1637
+ return [status, _Executable.ExecutionState.Retry];
1638
+ }
1639
+ default:
1640
+ return [status, _Executable.ExecutionState.Error];
1641
+ }
1642
+ }
1643
+
1644
+ /**
1645
+ * Map the request and response into a precheck status error
1646
+ *
1647
+ * @override
1648
+ * @internal
1649
+ * @param {HieroProto.proto.ITransaction} request
1650
+ * @param {HieroProto.proto.ITransactionResponse} response
1651
+ * @param {AccountId} nodeId
1652
+ * @returns {Error}
1653
+ */
1654
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1655
+ _mapStatusError(request, response, nodeId) {
1656
+ const {
1657
+ nodeTransactionPrecheckCode
1658
+ } = response;
1659
+ const status = _Status.default._fromCode(nodeTransactionPrecheckCode != null ? nodeTransactionPrecheckCode : HieroProto.proto.ResponseCodeEnum.OK);
1660
+ if (this._logger) {
1661
+ this._logger.info(
1662
+ // @ts-ignore
1663
+ `Transaction Error Info: ${status.toString()}, ${this.transactionId.toString()}` // eslint-disable-line @typescript-eslint/restrict-template-expressions
1664
+ );
1665
+ }
1666
+ return new _PrecheckStatusError.default({
1667
+ nodeId,
1668
+ status,
1669
+ transactionId: this._getTransactionId(),
1670
+ contractFunctionResult: null
1671
+ });
1672
+ }
1673
+
1674
+ /**
1675
+ * Map the request, response, and node account ID into a `TransactionResponse`
1676
+ *
1677
+ * @override
1678
+ * @protected
1679
+ * @param {HieroProto.proto.ITransactionResponse} response
1680
+ * @param {AccountId} nodeId
1681
+ * @param {HieroProto.proto.ITransaction} request
1682
+ * @returns {Promise<TransactionResponse>}
1683
+ */
1684
+ async _mapResponse(response, nodeId, request) {
1685
+ const transactionHash = await sha384.digest(/** @type {Uint8Array} */request.signedTransactionBytes);
1686
+ const transactionId = this._getTransactionId();
1687
+ this._transactionIds.advance();
1688
+ if (this._logger) {
1689
+ this._logger.info(`Transaction Info: ${JSON.stringify(new _TransactionResponse.default({
1690
+ nodeId,
1691
+ transactionHash,
1692
+ transactionId,
1693
+ logger: this._logger
1694
+ }).toJSON())}`);
1695
+ }
1696
+ return new _TransactionResponse.default({
1697
+ nodeId,
1698
+ transactionHash,
1699
+ transactionId,
1700
+ transaction: this,
1701
+ logger: this._logger
1702
+ });
1703
+ }
1704
+
1705
+ /**
1706
+ * Make a signed transaction given a node account ID
1707
+ *
1708
+ * @internal
1709
+ * @param {?AccountId} nodeId
1710
+ * @returns {HieroProto.proto.ISignedTransaction}
1711
+ */
1712
+ _makeSignedTransaction(nodeId) {
1713
+ const body = this._makeTransactionBody(nodeId);
1714
+ if (this._logger) {
1715
+ this._logger.info(`Transaction Body: ${JSON.stringify(body)}`);
1716
+ }
1717
+ const bodyBytes = HieroProto.proto.TransactionBody.encode(body).finish();
1718
+ return {
1719
+ sigMap: {
1720
+ sigPair: []
1721
+ },
1722
+ bodyBytes
1723
+ };
1724
+ }
1725
+
1726
+ /**
1727
+ * @override
1728
+ * @returns {boolean}
1729
+ */
1730
+ isBatchedAndNotBatchTransaction() {
1731
+ return this.batchKey != null && this._getTransactionDataCase() != "atomicBatch";
1732
+ }
1733
+
1734
+ /**
1735
+ * Make a protobuf transaction body
1736
+ *
1737
+ * @private
1738
+ * @param {?AccountId} nodeId
1739
+ * @returns {HieroProto.proto.ITransactionBody}
1740
+ */
1741
+ _makeTransactionBody(nodeId) {
1742
+ return {
1743
+ [this._getTransactionDataCase()]: this._makeTransactionData(),
1744
+ transactionFee: this._maxTransactionFee != null ? this._maxTransactionFee.toTinybars() : null,
1745
+ memo: this._transactionMemo,
1746
+ transactionID: this._transactionIds.current != null ? this._transactionIds.current._toProtobuf() : null,
1747
+ nodeAccountID: nodeId != null ? nodeId._toProtobuf() : null,
1748
+ transactionValidDuration: {
1749
+ seconds: _long.default.fromNumber(this._transactionValidDuration)
1750
+ },
1751
+ maxCustomFees: this._customFeeLimits != null ? this._customFeeLimits.map(maxCustomFee => maxCustomFee._toProtobuf()) : null,
1752
+ batchKey: this.batchKey?._toProtobufKey()
1753
+ };
1754
+ }
1755
+
1756
+ /**
1757
+ * This method returns a key for the `data` field in a transaction body.
1758
+ * Each transaction overwrite this to make sure when we build the transaction body
1759
+ * we set the right data field.
1760
+ *
1761
+ * @abstract
1762
+ * @protected
1763
+ * @returns {NonNullable<HieroProto.proto.TransactionBody["data"]>}
1764
+ */
1765
+ _getTransactionDataCase() {
1766
+ throw new Error("not implemented");
1767
+ }
1768
+
1769
+ /**
1770
+ * Make a scheduled transaction body
1771
+ * FIXME: Should really call this `makeScheduledTransactionBody` to be consistent
1772
+ *
1773
+ * @internal
1774
+ * @returns {HieroProto.proto.ISchedulableTransactionBody}
1775
+ */
1776
+ _getScheduledTransactionBody() {
1777
+ return {
1778
+ memo: this.transactionMemo,
1779
+ transactionFee: this._maxTransactionFee == null ? this._defaultMaxTransactionFee.toTinybars() : this._maxTransactionFee.toTinybars(),
1780
+ [this._getTransactionDataCase()]: this._makeTransactionData()
1781
+ };
1782
+ }
1783
+
1784
+ /**
1785
+ * Make the transaction body data.
1786
+ *
1787
+ * @abstract
1788
+ * @protected
1789
+ * @returns {object}
1790
+ */
1791
+ _makeTransactionData() {
1792
+ throw new Error("not implemented");
1793
+ }
1794
+
1795
+ /**
1796
+ * FIXME: Why do we have `isFrozen` and `_isFrozen()`?
1797
+ *
1798
+ * @protected
1799
+ * @returns {boolean}
1800
+ */
1801
+ _isFrozen() {
1802
+ return this._signOnDemand || this._signedTransactions.length > 0;
1803
+ }
1804
+
1805
+ /**
1806
+ * Require the transaction to NOT be frozen
1807
+ *
1808
+ * @internal
1809
+ */
1810
+ _requireNotFrozen() {
1811
+ if (this._isFrozen()) {
1812
+ throw new Error("transaction is immutable; it has at least one signature or has been explicitly frozen");
1813
+ }
1814
+ }
1815
+
1816
+ /**
1817
+ * Require the transaction to have sign on demand disabled
1818
+ *
1819
+ * @internal
1820
+ */
1821
+ _requireNotSignOnDemand() {
1822
+ if (this._signOnDemand) {
1823
+ throw new Error("Please use `toBytesAsync()` if `signOnDemand` is enabled");
1824
+ }
1825
+ }
1826
+
1827
+ /**
1828
+ * Require the transaction to be frozen
1829
+ *
1830
+ * @internal
1831
+ */
1832
+ _requireFrozen() {
1833
+ if (!this._isFrozen()) {
1834
+ throw new Error("transaction must have been frozen before calculating the hash will be stable, try calling `freeze`");
1835
+ }
1836
+ }
1837
+
1838
+ /**
1839
+ * Require the transaction to have a single node account ID set
1840
+ *
1841
+ * @internal
1842
+ * @protected
1843
+ */
1844
+ _requireOneNodeAccountId() {
1845
+ if (this._nodeAccountIds.length != 1) {
1846
+ throw "transaction did not have exactly one node ID set";
1847
+ }
1848
+ }
1849
+
1850
+ /**
1851
+ * @param {HieroProto.proto.Transaction} request
1852
+ * @returns {Uint8Array}
1853
+ */
1854
+ _requestToBytes(request) {
1855
+ return HieroProto.proto.Transaction.encode(request).finish();
1856
+ }
1857
+
1858
+ /**
1859
+ * @param {HieroProto.proto.TransactionResponse} response
1860
+ * @returns {Uint8Array}
1861
+ */
1862
+ _responseToBytes(response) {
1863
+ return HieroProto.proto.TransactionResponse.encode(response).finish();
1864
+ }
1865
+
1866
+ /**
1867
+ * Removes all signatures from a transaction and collects the removed signatures.
1868
+ *
1869
+ * @param {HieroProto.proto.ISignedTransaction} transaction - The transaction object to process.
1870
+ * @param {string} publicKeyHex - The hexadecimal representation of the public key.
1871
+ * @returns {Uint8Array[]} An array of removed signatures.
1872
+ */
1873
+ _removeSignaturesFromTransaction(transaction, publicKeyHex) {
1874
+ /** @type {Uint8Array[]} */
1875
+ const removedSignatures = [];
1876
+ if (!transaction.sigMap || !transaction.sigMap.sigPair) {
1877
+ return [];
1878
+ }
1879
+ transaction.sigMap.sigPair = transaction.sigMap.sigPair.filter(sigPair => {
1880
+ const shouldRemove = this._shouldRemoveSignature(sigPair, publicKeyHex);
1881
+ const signature = sigPair.ed25519 ?? sigPair.ECDSASecp256k1;
1882
+ if (shouldRemove && signature) {
1883
+ removedSignatures.push(signature);
1884
+ }
1885
+ return !shouldRemove;
1886
+ });
1887
+ return removedSignatures;
1888
+ }
1889
+
1890
+ /**
1891
+ * Determines whether a signature should be removed based on the provided public key.
1892
+ *
1893
+ * @param {HieroProto.proto.ISignaturePair} sigPair - The signature pair object that contains
1894
+ * the public key prefix and signature to be evaluated.
1895
+ * @param {string} publicKeyHex - The hexadecimal representation of the public key to compare against.
1896
+ * @returns {boolean} `true` if the public key prefix in the signature pair matches the provided public key,
1897
+ * indicating that the signature should be removed; otherwise, `false`.
1898
+ */
1899
+ _shouldRemoveSignature = (sigPair, publicKeyHex) => {
1900
+ const sigPairPublicKeyHex = hex.encode(sigPair?.pubKeyPrefix || new Uint8Array());
1901
+ const matchesPublicKey = sigPairPublicKeyHex === publicKeyHex;
1902
+ return matchesPublicKey;
1903
+ };
1904
+
1905
+ /**
1906
+ * Collects all signatures from signed transactions and returns them in a format keyed by PublicKey.
1907
+ *
1908
+ * @returns { Map<PublicKey, Uint8Array[]> } The collected signatures keyed by PublicKey.
1909
+ */
1910
+ _collectSignaturesByPublicKey() {
1911
+ /** @type { Map<PublicKey, Uint8Array[]>} */
1912
+ const collectedSignatures = new Map();
1913
+ /** @type { Record<string, PublicKey> } */
1914
+ const publicKeyMap = {}; // Map to hold string representation of the PublicKey object
1915
+
1916
+ // Iterate over the signed transactions and collect signatures
1917
+ for (const transaction of this._signedTransactions.list) {
1918
+ if (!(transaction.sigMap && transaction.sigMap.sigPair)) {
1919
+ return new Map();
1920
+ }
1921
+
1922
+ // Collect the signatures
1923
+ for (const sigPair of transaction.sigMap.sigPair) {
1924
+ const signature = sigPair.ed25519 ?? sigPair.ECDSASecp256k1;
1925
+ if (!signature || !sigPair.pubKeyPrefix) {
1926
+ return new Map();
1927
+ }
1928
+ const publicKeyStr = hex.encode(sigPair.pubKeyPrefix);
1929
+ let publicKeyObj = publicKeyMap[publicKeyStr];
1930
+
1931
+ // If the PublicKey instance for this string representation doesn't exist, create and store it
1932
+ if (!publicKeyObj) {
1933
+ publicKeyObj = _PublicKey.default.fromString(publicKeyStr);
1934
+ publicKeyMap[publicKeyStr] = publicKeyObj;
1935
+ }
1936
+
1937
+ // Initialize the structure for this publicKey if it doesn't exist
1938
+ if (!collectedSignatures.has(publicKeyObj)) {
1939
+ collectedSignatures.set(publicKeyObj, []);
1940
+ }
1941
+ const existingSignatures = collectedSignatures.get(publicKeyObj);
1942
+
1943
+ // Add the signature to the corresponding public key
1944
+ if (existingSignatures) {
1945
+ existingSignatures.push(signature);
1946
+ }
1947
+ }
1948
+ }
1949
+ return collectedSignatures;
1950
+ }
1951
+ }
1952
+
1953
+ /**
1954
+ * This is essentially a registry/cache for a callback that creates a `ScheduleCreateTransaction`
1955
+ *
1956
+ * @type {(() => ScheduleCreateTransaction)[]}
1957
+ */
1958
+ exports.default = Transaction;
1959
+ const SCHEDULE_CREATE_TRANSACTION = exports.SCHEDULE_CREATE_TRANSACTION = [];