@hashgraphonline/standards-sdk 0.0.108-canary.0 → 0.0.108-canary.1

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 (269) hide show
  1. package/dist/es/standards-sdk.es100.js +24 -60
  2. package/dist/es/standards-sdk.es100.js.map +1 -1
  3. package/dist/es/standards-sdk.es101.js +21 -6
  4. package/dist/es/standards-sdk.es101.js.map +1 -1
  5. package/dist/es/standards-sdk.es102.js +41 -12
  6. package/dist/es/standards-sdk.es102.js.map +1 -1
  7. package/dist/es/standards-sdk.es103.js +18 -7
  8. package/dist/es/standards-sdk.es103.js.map +1 -1
  9. package/dist/es/standards-sdk.es104.js +60 -44
  10. package/dist/es/standards-sdk.es104.js.map +1 -1
  11. package/dist/es/standards-sdk.es105.js +1289 -2
  12. package/dist/es/standards-sdk.es105.js.map +1 -1
  13. package/dist/es/standards-sdk.es106.js +28 -132
  14. package/dist/es/standards-sdk.es106.js.map +1 -1
  15. package/dist/es/standards-sdk.es107.js +6 -172
  16. package/dist/es/standards-sdk.es107.js.map +1 -1
  17. package/dist/es/standards-sdk.es108.js +159 -13
  18. package/dist/es/standards-sdk.es108.js.map +1 -1
  19. package/dist/es/standards-sdk.es109.js +793 -13
  20. package/dist/es/standards-sdk.es109.js.map +1 -1
  21. package/dist/es/standards-sdk.es110.js +172 -30
  22. package/dist/es/standards-sdk.es110.js.map +1 -1
  23. package/dist/es/standards-sdk.es111.js +142 -14
  24. package/dist/es/standards-sdk.es111.js.map +1 -1
  25. package/dist/es/standards-sdk.es112.js +3 -4
  26. package/dist/es/standards-sdk.es112.js.map +1 -1
  27. package/dist/es/standards-sdk.es113.js +2 -4
  28. package/dist/es/standards-sdk.es113.js.map +1 -1
  29. package/dist/es/standards-sdk.es114.js +2 -16
  30. package/dist/es/standards-sdk.es114.js.map +1 -1
  31. package/dist/es/standards-sdk.es115.js +33 -4
  32. package/dist/es/standards-sdk.es115.js.map +1 -1
  33. package/dist/es/standards-sdk.es116.js +33 -39
  34. package/dist/es/standards-sdk.es116.js.map +1 -1
  35. package/dist/es/standards-sdk.es117.js +9 -40
  36. package/dist/es/standards-sdk.es117.js.map +1 -1
  37. package/dist/es/standards-sdk.es118.js +33 -36
  38. package/dist/es/standards-sdk.es118.js.map +1 -1
  39. package/dist/es/standards-sdk.es119.js +17 -74
  40. package/dist/es/standards-sdk.es119.js.map +1 -1
  41. package/dist/es/standards-sdk.es120.js +27 -3
  42. package/dist/es/standards-sdk.es120.js.map +1 -1
  43. package/dist/es/standards-sdk.es121.js +26 -2
  44. package/dist/es/standards-sdk.es121.js.map +1 -1
  45. package/dist/es/standards-sdk.es122.js +38 -2
  46. package/dist/es/standards-sdk.es122.js.map +1 -1
  47. package/dist/es/standards-sdk.es123.js +96 -29
  48. package/dist/es/standards-sdk.es123.js.map +1 -1
  49. package/dist/es/standards-sdk.es124.js +2 -33
  50. package/dist/es/standards-sdk.es124.js.map +1 -1
  51. package/dist/es/standards-sdk.es125.js +16 -9
  52. package/dist/es/standards-sdk.es125.js.map +1 -1
  53. package/dist/es/standards-sdk.es126.js +405 -30
  54. package/dist/es/standards-sdk.es126.js.map +1 -1
  55. package/dist/es/standards-sdk.es127.js +2285 -0
  56. package/dist/es/standards-sdk.es127.js.map +1 -0
  57. package/dist/es/standards-sdk.es128.js +7139 -0
  58. package/dist/es/standards-sdk.es128.js.map +1 -0
  59. package/dist/es/standards-sdk.es129.js +13 -0
  60. package/dist/es/standards-sdk.es129.js.map +1 -0
  61. package/dist/es/standards-sdk.es13.js +3 -3
  62. package/dist/es/standards-sdk.es130.js +14 -0
  63. package/dist/es/standards-sdk.es130.js.map +1 -0
  64. package/dist/es/standards-sdk.es131.js +21 -0
  65. package/dist/es/standards-sdk.es131.js.map +1 -0
  66. package/dist/es/standards-sdk.es132.js +9 -0
  67. package/dist/es/standards-sdk.es132.js.map +1 -0
  68. package/dist/es/standards-sdk.es133.js +12 -0
  69. package/dist/es/standards-sdk.es133.js.map +1 -0
  70. package/dist/es/standards-sdk.es15.js +1 -1
  71. package/dist/es/standards-sdk.es18.js +2 -2
  72. package/dist/es/standards-sdk.es19.js +185 -714
  73. package/dist/es/standards-sdk.es19.js.map +1 -1
  74. package/dist/es/standards-sdk.es20.js +2 -2
  75. package/dist/es/standards-sdk.es21.js +3 -3
  76. package/dist/es/standards-sdk.es24.js +10 -10
  77. package/dist/es/standards-sdk.es25.js +5 -1769
  78. package/dist/es/standards-sdk.es25.js.map +1 -1
  79. package/dist/es/standards-sdk.es26.js +36 -3
  80. package/dist/es/standards-sdk.es26.js.map +1 -1
  81. package/dist/es/standards-sdk.es27.js +48 -4168
  82. package/dist/es/standards-sdk.es27.js.map +1 -1
  83. package/dist/es/standards-sdk.es28.js +122 -5543
  84. package/dist/es/standards-sdk.es28.js.map +1 -1
  85. package/dist/es/standards-sdk.es29.js +500 -8
  86. package/dist/es/standards-sdk.es29.js.map +1 -1
  87. package/dist/es/standards-sdk.es30.js +109 -2
  88. package/dist/es/standards-sdk.es30.js.map +1 -1
  89. package/dist/es/standards-sdk.es31.js +66 -5
  90. package/dist/es/standards-sdk.es31.js.map +1 -1
  91. package/dist/es/standards-sdk.es32.js +64 -36
  92. package/dist/es/standards-sdk.es32.js.map +1 -1
  93. package/dist/es/standards-sdk.es33.js +26 -47
  94. package/dist/es/standards-sdk.es33.js.map +1 -1
  95. package/dist/es/standards-sdk.es34.js +9 -8
  96. package/dist/es/standards-sdk.es34.js.map +1 -1
  97. package/dist/es/standards-sdk.es35.js +10 -2
  98. package/dist/es/standards-sdk.es35.js.map +1 -1
  99. package/dist/es/standards-sdk.es36.js +7185 -18
  100. package/dist/es/standards-sdk.es36.js.map +1 -1
  101. package/dist/es/standards-sdk.es37.js +3 -174
  102. package/dist/es/standards-sdk.es37.js.map +1 -1
  103. package/dist/es/standards-sdk.es38.js +8 -90
  104. package/dist/es/standards-sdk.es38.js.map +1 -1
  105. package/dist/es/standards-sdk.es39.js +2 -195
  106. package/dist/es/standards-sdk.es39.js.map +1 -1
  107. package/dist/es/standards-sdk.es40.js +4127 -397
  108. package/dist/es/standards-sdk.es40.js.map +1 -1
  109. package/dist/es/standards-sdk.es41.js +415 -21
  110. package/dist/es/standards-sdk.es41.js.map +1 -1
  111. package/dist/es/standards-sdk.es42.js +2 -139
  112. package/dist/es/standards-sdk.es42.js.map +1 -1
  113. package/dist/es/standards-sdk.es43.js +117 -15
  114. package/dist/es/standards-sdk.es43.js.map +1 -1
  115. package/dist/es/standards-sdk.es44.js +356 -21
  116. package/dist/es/standards-sdk.es44.js.map +1 -1
  117. package/dist/es/standards-sdk.es45.js +5 -28
  118. package/dist/es/standards-sdk.es45.js.map +1 -1
  119. package/dist/es/standards-sdk.es46.js +173 -15
  120. package/dist/es/standards-sdk.es46.js.map +1 -1
  121. package/dist/es/standards-sdk.es47.js +74 -37
  122. package/dist/es/standards-sdk.es47.js.map +1 -1
  123. package/dist/es/standards-sdk.es48.js +112 -16
  124. package/dist/es/standards-sdk.es48.js.map +1 -1
  125. package/dist/es/standards-sdk.es49.js +47 -56
  126. package/dist/es/standards-sdk.es49.js.map +1 -1
  127. package/dist/es/standards-sdk.es5.js +1 -1
  128. package/dist/es/standards-sdk.es50.js +9 -1288
  129. package/dist/es/standards-sdk.es50.js.map +1 -1
  130. package/dist/es/standards-sdk.es51.js +83 -134
  131. package/dist/es/standards-sdk.es51.js.map +1 -1
  132. package/dist/es/standards-sdk.es52.js +3 -83
  133. package/dist/es/standards-sdk.es52.js.map +1 -1
  134. package/dist/es/standards-sdk.es53.js +2 -32
  135. package/dist/es/standards-sdk.es53.js.map +1 -1
  136. package/dist/es/standards-sdk.es54.js +112 -5
  137. package/dist/es/standards-sdk.es54.js.map +1 -1
  138. package/dist/es/standards-sdk.es55.js +69 -154
  139. package/dist/es/standards-sdk.es55.js.map +1 -1
  140. package/dist/es/standards-sdk.es56.js +5 -792
  141. package/dist/es/standards-sdk.es56.js.map +1 -1
  142. package/dist/es/standards-sdk.es57.js +4 -142
  143. package/dist/es/standards-sdk.es57.js.map +1 -1
  144. package/dist/es/standards-sdk.es58.js +208 -88
  145. package/dist/es/standards-sdk.es58.js.map +1 -1
  146. package/dist/es/standards-sdk.es59.js +58 -2
  147. package/dist/es/standards-sdk.es59.js.map +1 -1
  148. package/dist/es/standards-sdk.es60.js +69 -16
  149. package/dist/es/standards-sdk.es60.js.map +1 -1
  150. package/dist/es/standards-sdk.es61.js +3 -408
  151. package/dist/es/standards-sdk.es61.js.map +1 -1
  152. package/dist/es/standards-sdk.es62.js +40 -25
  153. package/dist/es/standards-sdk.es62.js.map +1 -1
  154. package/dist/es/standards-sdk.es63.js +3 -26
  155. package/dist/es/standards-sdk.es63.js.map +1 -1
  156. package/dist/es/standards-sdk.es64.js +163 -37
  157. package/dist/es/standards-sdk.es64.js.map +1 -1
  158. package/dist/es/standards-sdk.es65.js +27 -16
  159. package/dist/es/standards-sdk.es65.js.map +1 -1
  160. package/dist/es/standards-sdk.es66.js +63 -2282
  161. package/dist/es/standards-sdk.es66.js.map +1 -1
  162. package/dist/es/standards-sdk.es67.js +47 -161
  163. package/dist/es/standards-sdk.es67.js.map +1 -1
  164. package/dist/es/standards-sdk.es68.js +10 -3
  165. package/dist/es/standards-sdk.es68.js.map +1 -1
  166. package/dist/es/standards-sdk.es69.js +64 -3
  167. package/dist/es/standards-sdk.es69.js.map +1 -1
  168. package/dist/es/standards-sdk.es7.js +4 -4
  169. package/dist/es/standards-sdk.es70.js +6 -7136
  170. package/dist/es/standards-sdk.es70.js.map +1 -1
  171. package/dist/es/standards-sdk.es71.js +14 -9
  172. package/dist/es/standards-sdk.es71.js.map +1 -1
  173. package/dist/es/standards-sdk.es72.js +7 -11
  174. package/dist/es/standards-sdk.es72.js.map +1 -1
  175. package/dist/es/standards-sdk.es73.js +44 -17
  176. package/dist/es/standards-sdk.es73.js.map +1 -1
  177. package/dist/es/standards-sdk.es74.js +2 -6
  178. package/dist/es/standards-sdk.es74.js.map +1 -1
  179. package/dist/es/standards-sdk.es75.js +136 -9
  180. package/dist/es/standards-sdk.es75.js.map +1 -1
  181. package/dist/es/standards-sdk.es76.js +156 -403
  182. package/dist/es/standards-sdk.es76.js.map +1 -1
  183. package/dist/es/standards-sdk.es77.js +2 -2
  184. package/dist/es/standards-sdk.es77.js.map +1 -1
  185. package/dist/es/standards-sdk.es78.js +13 -120
  186. package/dist/es/standards-sdk.es78.js.map +1 -1
  187. package/dist/es/standards-sdk.es79.js +12 -363
  188. package/dist/es/standards-sdk.es79.js.map +1 -1
  189. package/dist/es/standards-sdk.es8.js +3 -3
  190. package/dist/es/standards-sdk.es80.js +30 -4
  191. package/dist/es/standards-sdk.es80.js.map +1 -1
  192. package/dist/es/standards-sdk.es81.js +14 -178
  193. package/dist/es/standards-sdk.es81.js.map +1 -1
  194. package/dist/es/standards-sdk.es82.js +3 -80
  195. package/dist/es/standards-sdk.es82.js.map +1 -1
  196. package/dist/es/standards-sdk.es83.js +3 -113
  197. package/dist/es/standards-sdk.es83.js.map +1 -1
  198. package/dist/es/standards-sdk.es84.js +14 -50
  199. package/dist/es/standards-sdk.es84.js.map +1 -1
  200. package/dist/es/standards-sdk.es85.js +4 -9
  201. package/dist/es/standards-sdk.es85.js.map +1 -1
  202. package/dist/es/standards-sdk.es86.js +38 -96
  203. package/dist/es/standards-sdk.es86.js.map +1 -1
  204. package/dist/es/standards-sdk.es87.js +40 -4
  205. package/dist/es/standards-sdk.es87.js.map +1 -1
  206. package/dist/es/standards-sdk.es88.js +37 -2
  207. package/dist/es/standards-sdk.es88.js.map +1 -1
  208. package/dist/es/standards-sdk.es89.js +70 -105
  209. package/dist/es/standards-sdk.es89.js.map +1 -1
  210. package/dist/es/standards-sdk.es9.js +1 -1
  211. package/dist/es/standards-sdk.es90.js +80 -70
  212. package/dist/es/standards-sdk.es90.js.map +1 -1
  213. package/dist/es/standards-sdk.es91.js +22 -5
  214. package/dist/es/standards-sdk.es91.js.map +1 -1
  215. package/dist/es/standards-sdk.es92.js +147 -4
  216. package/dist/es/standards-sdk.es92.js.map +1 -1
  217. package/dist/es/standards-sdk.es93.js +78 -208
  218. package/dist/es/standards-sdk.es93.js.map +1 -1
  219. package/dist/es/standards-sdk.es94.js +189 -52
  220. package/dist/es/standards-sdk.es94.js.map +1 -1
  221. package/dist/es/standards-sdk.es95.js +437 -68
  222. package/dist/es/standards-sdk.es95.js.map +1 -1
  223. package/dist/es/standards-sdk.es96.js +20 -27
  224. package/dist/es/standards-sdk.es96.js.map +1 -1
  225. package/dist/es/standards-sdk.es97.js +131 -55
  226. package/dist/es/standards-sdk.es97.js.map +1 -1
  227. package/dist/es/standards-sdk.es98.js +14 -46
  228. package/dist/es/standards-sdk.es98.js.map +1 -1
  229. package/dist/es/standards-sdk.es99.js +28 -9
  230. package/dist/es/standards-sdk.es99.js.map +1 -1
  231. package/dist/es/utils/parsers/crypto-parser.d.ts +10 -0
  232. package/dist/es/utils/parsers/crypto-parser.d.ts.map +1 -0
  233. package/dist/es/utils/parsers/file-parser.d.ts +9 -0
  234. package/dist/es/utils/parsers/file-parser.d.ts.map +1 -0
  235. package/dist/es/utils/parsers/hcs-parser.d.ts +9 -0
  236. package/dist/es/utils/parsers/hcs-parser.d.ts.map +1 -0
  237. package/dist/es/utils/parsers/hts-parser.d.ts +20 -0
  238. package/dist/es/utils/parsers/hts-parser.d.ts.map +1 -0
  239. package/dist/es/utils/parsers/parser-utils.d.ts +3 -0
  240. package/dist/es/utils/parsers/parser-utils.d.ts.map +1 -0
  241. package/dist/es/utils/parsers/scs-parser.d.ts +6 -0
  242. package/dist/es/utils/parsers/scs-parser.d.ts.map +1 -0
  243. package/dist/es/utils/parsers/util-parser.d.ts +6 -0
  244. package/dist/es/utils/parsers/util-parser.d.ts.map +1 -0
  245. package/dist/es/utils/transaction-parser-types.d.ts +226 -0
  246. package/dist/es/utils/transaction-parser-types.d.ts.map +1 -0
  247. package/dist/es/utils/transaction-parser.d.ts +1 -251
  248. package/dist/es/utils/transaction-parser.d.ts.map +1 -1
  249. package/dist/umd/standards-sdk.umd.js +1 -1
  250. package/dist/umd/standards-sdk.umd.js.map +1 -1
  251. package/dist/umd/utils/parsers/crypto-parser.d.ts +10 -0
  252. package/dist/umd/utils/parsers/crypto-parser.d.ts.map +1 -0
  253. package/dist/umd/utils/parsers/file-parser.d.ts +9 -0
  254. package/dist/umd/utils/parsers/file-parser.d.ts.map +1 -0
  255. package/dist/umd/utils/parsers/hcs-parser.d.ts +9 -0
  256. package/dist/umd/utils/parsers/hcs-parser.d.ts.map +1 -0
  257. package/dist/umd/utils/parsers/hts-parser.d.ts +20 -0
  258. package/dist/umd/utils/parsers/hts-parser.d.ts.map +1 -0
  259. package/dist/umd/utils/parsers/parser-utils.d.ts +3 -0
  260. package/dist/umd/utils/parsers/parser-utils.d.ts.map +1 -0
  261. package/dist/umd/utils/parsers/scs-parser.d.ts +6 -0
  262. package/dist/umd/utils/parsers/scs-parser.d.ts.map +1 -0
  263. package/dist/umd/utils/parsers/util-parser.d.ts +6 -0
  264. package/dist/umd/utils/parsers/util-parser.d.ts.map +1 -0
  265. package/dist/umd/utils/transaction-parser-types.d.ts +226 -0
  266. package/dist/umd/utils/transaction-parser-types.d.ts.map +1 -0
  267. package/dist/umd/utils/transaction-parser.d.ts +1 -251
  268. package/dist/umd/utils/transaction-parser.d.ts.map +1 -1
  269. package/package.json +1 -1
@@ -1,7 +1,13 @@
1
1
  import { proto } from "@hashgraph/proto";
2
- import { Buffer as Buffer$1 } from "./standards-sdk.es25.js";
3
- import { Hbar, Long, HbarUnit, AccountId, TokenId, ContractId } from "@hashgraph/sdk";
4
- import { decodeBase64 } from "./standards-sdk.es34.js";
2
+ import { Buffer as Buffer$1 } from "./standards-sdk.es28.js";
3
+ import { Hbar, Long, HbarUnit } from "@hashgraph/sdk";
4
+ import { HTSParser } from "./standards-sdk.es29.js";
5
+ import { HCSParser } from "./standards-sdk.es30.js";
6
+ import { FileParser } from "./standards-sdk.es31.js";
7
+ import { CryptoParser } from "./standards-sdk.es32.js";
8
+ import { SCSParser } from "./standards-sdk.es33.js";
9
+ import { UtilParser } from "./standards-sdk.es34.js";
10
+ import { decodeBase64 } from "./standards-sdk.es35.js";
5
11
  class TransactionParser {
6
12
  /**
7
13
  * Parse a base64 encoded transaction body and return structured data
@@ -30,56 +36,115 @@ class TransactionParser {
30
36
  result.transactionFee = hbarAmount.toString(HbarUnit.Hbar);
31
37
  }
32
38
  if (txBody.cryptoTransfer) {
33
- this.parseCryptoTransfers(txBody.cryptoTransfer, result);
39
+ CryptoParser.parseCryptoTransfers(txBody.cryptoTransfer, result);
40
+ }
41
+ if (txBody.cryptoDelete) {
42
+ result.cryptoDelete = CryptoParser.parseCryptoDelete(
43
+ txBody.cryptoDelete
44
+ );
34
45
  }
35
46
  if (txBody.contractCall) {
36
- this.parseContractCall(txBody.contractCall, result);
47
+ result.contractCall = SCSParser.parseContractCall(txBody.contractCall);
48
+ }
49
+ if (txBody.tokenCreation) {
50
+ result.tokenCreation = HTSParser.parseTokenCreate(txBody.tokenCreation);
37
51
  }
38
52
  if (txBody.tokenMint) {
39
- this.parseTokenMint(txBody.tokenMint, result);
53
+ result.tokenMint = HTSParser.parseTokenMint(txBody.tokenMint);
40
54
  }
41
55
  if (txBody.tokenBurn) {
42
- this.parseTokenBurn(txBody.tokenBurn, result);
56
+ result.tokenBurn = HTSParser.parseTokenBurn(txBody.tokenBurn);
43
57
  }
44
- if (txBody.tokenCreation) {
45
- this.parseTokenCreation(txBody.tokenCreation, result);
58
+ if (txBody.tokenUpdate) {
59
+ result.tokenUpdate = HTSParser.parseTokenUpdate(txBody.tokenUpdate);
46
60
  }
47
- if (txBody.consensusCreateTopic) {
48
- this.parseConsensusCreateTopic(txBody.consensusCreateTopic, result);
61
+ if (txBody.tokenFeeScheduleUpdate) {
62
+ result.tokenFeeScheduleUpdate = HTSParser.parseTokenFeeScheduleUpdate(
63
+ txBody.tokenFeeScheduleUpdate
64
+ );
49
65
  }
50
- if (txBody.consensusSubmitMessage) {
51
- this.parseConsensusSubmitMessage(txBody.consensusSubmitMessage, result);
66
+ if (txBody.tokenFreeze) {
67
+ result.tokenFreeze = HTSParser.parseTokenFreeze(txBody.tokenFreeze);
52
68
  }
53
- if (txBody.fileCreate) {
54
- this.parseFileCreate(txBody.fileCreate, result);
69
+ if (txBody.tokenUnfreeze) {
70
+ result.tokenUnfreeze = HTSParser.parseTokenUnfreeze(
71
+ txBody.tokenUnfreeze
72
+ );
55
73
  }
56
- if (txBody.fileAppend) {
57
- this.parseFileAppend(txBody.fileAppend, result);
74
+ if (txBody.tokenGrantKyc) {
75
+ result.tokenGrantKyc = HTSParser.parseTokenGrantKyc(
76
+ txBody.tokenGrantKyc
77
+ );
58
78
  }
59
- if (txBody.fileUpdate) {
60
- this.parseFileUpdate(txBody.fileUpdate, result);
79
+ if (txBody.tokenRevokeKyc) {
80
+ result.tokenRevokeKyc = HTSParser.parseTokenRevokeKyc(
81
+ txBody.tokenRevokeKyc
82
+ );
61
83
  }
62
- if (txBody.fileDelete) {
63
- this.parseFileDelete(txBody.fileDelete, result);
84
+ if (txBody.tokenPause) {
85
+ result.tokenPause = HTSParser.parseTokenPause(txBody.tokenPause);
86
+ }
87
+ if (txBody.tokenUnpause) {
88
+ result.tokenUnpause = HTSParser.parseTokenUnpause(txBody.tokenUnpause);
89
+ }
90
+ if (txBody.tokenWipe) {
91
+ result.tokenWipeAccount = HTSParser.parseTokenWipeAccount(
92
+ txBody.tokenWipe
93
+ );
94
+ }
95
+ if (txBody.tokenDeletion) {
96
+ result.tokenDelete = HTSParser.parseTokenDelete(txBody.tokenDeletion);
97
+ }
98
+ if (txBody.tokenAssociate) {
99
+ result.tokenAssociate = HTSParser.parseTokenAssociate(
100
+ txBody.tokenAssociate
101
+ );
102
+ }
103
+ if (txBody.tokenDissociate) {
104
+ result.tokenDissociate = HTSParser.parseTokenDissociate(
105
+ txBody.tokenDissociate
106
+ );
107
+ }
108
+ if (txBody.consensusCreateTopic) {
109
+ result.consensusCreateTopic = HCSParser.parseConsensusCreateTopic(
110
+ txBody.consensusCreateTopic
111
+ );
112
+ }
113
+ if (txBody.consensusSubmitMessage) {
114
+ result.consensusSubmitMessage = HCSParser.parseConsensusSubmitMessage(
115
+ txBody.consensusSubmitMessage
116
+ );
64
117
  }
65
118
  if (txBody.consensusUpdateTopic) {
66
- this.parseConsensusUpdateTopic(txBody.consensusUpdateTopic, result);
119
+ result.consensusUpdateTopic = HCSParser.parseConsensusUpdateTopic(
120
+ txBody.consensusUpdateTopic
121
+ );
67
122
  }
68
123
  if (txBody.consensusDeleteTopic) {
69
- this.parseConsensusDeleteTopic(txBody.consensusDeleteTopic, result);
124
+ result.consensusDeleteTopic = HCSParser.parseConsensusDeleteTopic(
125
+ txBody.consensusDeleteTopic
126
+ );
70
127
  }
71
- if (txBody.tokenUpdate) {
72
- this.parseTokenUpdate(txBody.tokenUpdate, result);
128
+ if (txBody.fileCreate) {
129
+ result.fileCreate = FileParser.parseFileCreate(txBody.fileCreate);
73
130
  }
74
- if (txBody.tokenFeeScheduleUpdate) {
75
- this.parseTokenFeeScheduleUpdate(txBody.tokenFeeScheduleUpdate, result);
131
+ if (txBody.fileAppend) {
132
+ result.fileAppend = FileParser.parseFileAppend(txBody.fileAppend);
133
+ }
134
+ if (txBody.fileUpdate) {
135
+ result.fileUpdate = FileParser.parseFileUpdate(txBody.fileUpdate);
136
+ }
137
+ if (txBody.fileDelete) {
138
+ result.fileDelete = FileParser.parseFileDelete(txBody.fileDelete);
76
139
  }
77
140
  if (txBody.utilPrng) {
78
- this.parseUtilPrng(txBody.utilPrng, result);
141
+ result.utilPrng = UtilParser.parseUtilPrng(txBody.utilPrng);
79
142
  }
80
143
  return result;
81
144
  } catch (error) {
82
- throw new Error(`Failed to parse transaction body: ${error}`);
145
+ throw new Error(
146
+ `Failed to parse transaction body: ${error instanceof Error ? error.message : String(error)}`
147
+ );
83
148
  }
84
149
  }
85
150
  /**
@@ -230,674 +295,12 @@ class TransactionParser {
230
295
  }
231
296
  return result;
232
297
  }
233
- /**
234
- * Parse crypto transfers from the transaction
235
- * @param cryptoTransfer - The crypto transfer transaction body
236
- * @param result - The parsed transaction
237
- */
238
- static parseCryptoTransfers(cryptoTransfer, result) {
239
- if (cryptoTransfer.transfers) {
240
- if (cryptoTransfer.transfers.accountAmounts) {
241
- result.transfers = cryptoTransfer.transfers.accountAmounts.map(
242
- (amount) => {
243
- const shard = amount.accountID?.shardNum ? Long.fromValue(amount.accountID.shardNum).toNumber() : 0;
244
- const realm = amount.accountID?.realmNum ? Long.fromValue(amount.accountID.realmNum).toNumber() : 0;
245
- const accountNum = amount.accountID?.accountNum ? Long.fromValue(amount.accountID.accountNum).toNumber() : 0;
246
- const accountId = AccountId.fromString(
247
- `${shard}.${realm}.${accountNum}`
248
- );
249
- const hbarValue = amount.amount ? Long.fromValue(amount.amount) : Long.ZERO;
250
- const hbarAmount = Hbar.fromTinybars(hbarValue);
251
- return {
252
- accountId: accountId.toString(),
253
- amount: hbarAmount.toString(HbarUnit.Hbar),
254
- isDecimal: true
255
- };
256
- }
257
- );
258
- }
259
- }
260
- if (cryptoTransfer.tokenTransfers) {
261
- for (const tokenTransfer of cryptoTransfer.tokenTransfers) {
262
- const shard = tokenTransfer.token?.shardNum ? Long.fromValue(tokenTransfer.token.shardNum).toNumber() : 0;
263
- const realm = tokenTransfer.token?.realmNum ? Long.fromValue(tokenTransfer.token.realmNum).toNumber() : 0;
264
- const tokenNum = tokenTransfer.token?.tokenNum ? Long.fromValue(tokenTransfer.token.tokenNum).toNumber() : 0;
265
- const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);
266
- if (tokenTransfer.transfers) {
267
- for (const transfer of tokenTransfer.transfers) {
268
- const accShard = transfer.accountID?.shardNum ? Long.fromValue(transfer.accountID.shardNum).toNumber() : 0;
269
- const accRealm = transfer.accountID?.realmNum ? Long.fromValue(transfer.accountID.realmNum).toNumber() : 0;
270
- const accNum = transfer.accountID?.accountNum ? Long.fromValue(transfer.accountID.accountNum).toNumber() : 0;
271
- const accountId = AccountId.fromString(
272
- `${accShard}.${accRealm}.${accNum}`
273
- );
274
- const tokenAmount = transfer.amount ? Long.fromValue(transfer.amount).toNumber() : 0;
275
- result.tokenTransfers.push({
276
- tokenId: tokenId.toString(),
277
- accountId: accountId.toString(),
278
- amount: tokenAmount
279
- });
280
- }
281
- }
282
- }
283
- }
284
- }
285
- /**
286
- * Parse contract call transaction data
287
- * @param contractCall - The contract call transaction body
288
- * @param result - The parsed transaction
289
- */
290
- static parseContractCall(contractCall, result) {
291
- if (contractCall) {
292
- const shard = contractCall.contractID?.shardNum ? Long.fromValue(contractCall.contractID.shardNum).toNumber() : 0;
293
- const realm = contractCall.contractID?.realmNum ? Long.fromValue(contractCall.contractID.realmNum).toNumber() : 0;
294
- const contractNum = contractCall.contractID?.contractNum ? Long.fromValue(contractCall.contractID.contractNum).toNumber() : 0;
295
- const contractId = ContractId.fromString(
296
- `${shard}.${realm}.${contractNum}`
297
- );
298
- const gasLimit = contractCall.gas ? Long.fromValue(contractCall.gas).toNumber() : 0;
299
- let amount = 0;
300
- if (contractCall.amount) {
301
- const hbar = Hbar.fromTinybars(Long.fromValue(contractCall.amount));
302
- amount = parseFloat(hbar.toString(HbarUnit.Hbar));
303
- }
304
- const functionParameters = contractCall.functionParameters ? Buffer$1.from(contractCall.functionParameters).toString("hex") : void 0;
305
- let functionName;
306
- if (functionParameters && functionParameters.length >= 8) {
307
- functionName = functionParameters.substring(0, 8);
308
- }
309
- result.contractCall = {
310
- contractId: contractId.toString(),
311
- gas: gasLimit,
312
- amount,
313
- functionParameters,
314
- functionName
315
- };
316
- }
317
- }
318
- /**
319
- * Parse token mint transaction data
320
- * @param tokenMint - The token mint transaction body
321
- * @param result - The parsed transaction
322
- */
323
- static parseTokenMint(tokenMint, result) {
324
- if (tokenMint) {
325
- const shard = tokenMint.token?.shardNum ? Long.fromValue(tokenMint.token.shardNum).toNumber() : 0;
326
- const realm = tokenMint.token?.realmNum ? Long.fromValue(tokenMint.token.realmNum).toNumber() : 0;
327
- const tokenNum = tokenMint.token?.tokenNum ? Long.fromValue(tokenMint.token.tokenNum).toNumber() : 0;
328
- const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);
329
- const amount = tokenMint.amount ? Long.fromValue(tokenMint.amount).toNumber() : 0;
330
- const metadata = [];
331
- if (tokenMint.metadata) {
332
- for (const meta of tokenMint.metadata) {
333
- if (meta) {
334
- metadata.push(Buffer$1.from(meta).toString("base64"));
335
- }
336
- }
337
- }
338
- result.tokenMint = {
339
- tokenId: tokenId.toString(),
340
- amount,
341
- metadata: metadata.length > 0 ? metadata : void 0
342
- };
343
- }
344
- }
345
- /**
346
- * Parse token burn transaction data
347
- * @param tokenBurn - The token burn transaction body
348
- * @param result - The parsed transaction
349
- */
350
- static parseTokenBurn(tokenBurn, result) {
351
- if (tokenBurn) {
352
- const shard = tokenBurn.token?.shardNum ? Long.fromValue(tokenBurn.token.shardNum).toNumber() : 0;
353
- const realm = tokenBurn.token?.realmNum ? Long.fromValue(tokenBurn.token.realmNum).toNumber() : 0;
354
- const tokenNum = tokenBurn.token?.tokenNum ? Long.fromValue(tokenBurn.token.tokenNum).toNumber() : 0;
355
- const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);
356
- const amount = tokenBurn.amount ? Long.fromValue(tokenBurn.amount).toNumber() : 0;
357
- const serialNumbers = [];
358
- if (tokenBurn.serialNumbers) {
359
- for (const serial of tokenBurn.serialNumbers) {
360
- if (serial) {
361
- serialNumbers.push(Long.fromValue(serial).toNumber());
362
- }
363
- }
364
- }
365
- result.tokenBurn = {
366
- tokenId: tokenId.toString(),
367
- amount,
368
- serialNumbers: serialNumbers.length > 0 ? serialNumbers : void 0
369
- };
370
- }
371
- }
372
- /**
373
- * Parse token creation transaction data
374
- * @param tokenCreation - The token creation transaction body
375
- * @param result - The parsed transaction
376
- */
377
- static parseTokenCreation(tokenCreationBody, result) {
378
- if (tokenCreationBody) {
379
- const creationData = {};
380
- if (tokenCreationBody.name) {
381
- creationData.tokenName = tokenCreationBody.name;
382
- }
383
- if (tokenCreationBody.symbol) {
384
- creationData.tokenSymbol = tokenCreationBody.symbol;
385
- }
386
- if (tokenCreationBody.treasury) {
387
- const t = tokenCreationBody.treasury;
388
- creationData.treasuryAccountId = new AccountId(
389
- t.shardNum ? Long.fromValue(t.shardNum).toNumber() : 0,
390
- t.realmNum ? Long.fromValue(t.realmNum).toNumber() : 0,
391
- t.accountNum ? Long.fromValue(t.accountNum).toNumber() : 0
392
- ).toString();
393
- }
394
- if (tokenCreationBody.initialSupply) {
395
- creationData.initialSupply = Long.fromValue(
396
- tokenCreationBody.initialSupply
397
- ).toString();
398
- }
399
- if (tokenCreationBody.decimals !== void 0 && tokenCreationBody.decimals !== null) {
400
- creationData.decimals = Long.fromValue(
401
- tokenCreationBody.decimals
402
- ).toNumber();
403
- }
404
- if (tokenCreationBody.maxSupply) {
405
- creationData.maxSupply = Long.fromValue(
406
- tokenCreationBody.maxSupply
407
- ).toString();
408
- }
409
- if (tokenCreationBody.memo) {
410
- creationData.memo = tokenCreationBody.memo;
411
- }
412
- if (tokenCreationBody.tokenType !== null && tokenCreationBody.tokenType !== void 0) {
413
- creationData.tokenType = proto.TokenType[tokenCreationBody.tokenType];
414
- }
415
- if (tokenCreationBody.supplyType !== null && tokenCreationBody.supplyType !== void 0) {
416
- creationData.supplyType = proto.TokenSupplyType[tokenCreationBody.supplyType];
417
- }
418
- creationData.adminKey = this.parseKey(tokenCreationBody.adminKey);
419
- creationData.kycKey = this.parseKey(tokenCreationBody.kycKey);
420
- creationData.freezeKey = this.parseKey(tokenCreationBody.freezeKey);
421
- creationData.wipeKey = this.parseKey(tokenCreationBody.wipeKey);
422
- creationData.supplyKey = this.parseKey(tokenCreationBody.supplyKey);
423
- creationData.feeScheduleKey = this.parseKey(
424
- tokenCreationBody.feeScheduleKey
425
- );
426
- creationData.pauseKey = this.parseKey(tokenCreationBody.pauseKey);
427
- if (tokenCreationBody.autoRenewAccount) {
428
- const ara = tokenCreationBody.autoRenewAccount;
429
- creationData.autoRenewAccount = new AccountId(
430
- ara.shardNum ? Long.fromValue(ara.shardNum).toNumber() : 0,
431
- ara.realmNum ? Long.fromValue(ara.realmNum).toNumber() : 0,
432
- ara.accountNum ? Long.fromValue(ara.accountNum).toNumber() : 0
433
- ).toString();
434
- }
435
- if (tokenCreationBody.autoRenewPeriod && tokenCreationBody.autoRenewPeriod.seconds) {
436
- creationData.autoRenewPeriod = Long.fromValue(
437
- tokenCreationBody.autoRenewPeriod.seconds
438
- ).toString();
439
- }
440
- if (tokenCreationBody.customFees && tokenCreationBody.customFees.length > 0) {
441
- creationData.customFees = tokenCreationBody.customFees.map((fee) => {
442
- const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
443
- fee.feeCollectorAccountId.shardNum ?? 0,
444
- fee.feeCollectorAccountId.realmNum ?? 0,
445
- fee.feeCollectorAccountId.accountNum ?? 0
446
- ).toString() : "Not Set";
447
- const commonFeeData = {
448
- feeCollectorAccountId,
449
- allCollectorsAreExempt: fee.allCollectorsAreExempt || false
450
- };
451
- if (fee.fixedFee) {
452
- return {
453
- ...commonFeeData,
454
- feeType: "FIXED_FEE",
455
- fixedFee: {
456
- amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
457
- denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
458
- fee.fixedFee.denominatingTokenId.shardNum ?? 0,
459
- fee.fixedFee.denominatingTokenId.realmNum ?? 0,
460
- fee.fixedFee.denominatingTokenId.tokenNum ?? 0
461
- ).toString() : void 0
462
- }
463
- };
464
- } else if (fee.fractionalFee) {
465
- return {
466
- ...commonFeeData,
467
- feeType: "FRACTIONAL_FEE",
468
- fractionalFee: {
469
- numerator: Long.fromValue(
470
- fee.fractionalFee.fractionalAmount?.numerator || 0
471
- ).toString(),
472
- denominator: Long.fromValue(
473
- fee.fractionalFee.fractionalAmount?.denominator || 1
474
- ).toString(),
475
- minimumAmount: Long.fromValue(
476
- fee.fractionalFee.minimumAmount || 0
477
- ).toString(),
478
- maximumAmount: Long.fromValue(
479
- fee.fractionalFee.maximumAmount || 0
480
- ).toString(),
481
- netOfTransfers: fee.fractionalFee.netOfTransfers || false
482
- }
483
- };
484
- } else if (fee.royaltyFee) {
485
- let fallbackFeeData = void 0;
486
- if (fee.royaltyFee.fallbackFee) {
487
- fallbackFeeData = {
488
- amount: Long.fromValue(
489
- fee.royaltyFee.fallbackFee.amount || 0
490
- ).toString(),
491
- denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
492
- fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
493
- fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
494
- fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
495
- ).toString() : void 0
496
- };
497
- }
498
- return {
499
- ...commonFeeData,
500
- feeType: "ROYALTY_FEE",
501
- royaltyFee: {
502
- numerator: Long.fromValue(
503
- fee.royaltyFee.exchangeValueFraction?.numerator || 0
504
- ).toString(),
505
- denominator: Long.fromValue(
506
- fee.royaltyFee.exchangeValueFraction?.denominator || 1
507
- ).toString(),
508
- fallbackFee: fallbackFeeData
509
- }
510
- };
511
- }
512
- return {
513
- ...commonFeeData,
514
- feeType: "FIXED_FEE",
515
- fixedFee: { amount: "0" }
516
- };
517
- });
518
- }
519
- result.tokenCreation = creationData;
520
- }
521
- }
522
- /**
523
- * Parse consensus create topic transaction data
524
- * @param createTopicBody - The consensus create topic transaction body
525
- * @param result - The parsed transaction
526
- */
527
- static parseConsensusCreateTopic(createTopicBody, result) {
528
- if (createTopicBody) {
529
- const topicData = {};
530
- if (createTopicBody.memo) {
531
- topicData.memo = createTopicBody.memo;
532
- }
533
- topicData.adminKey = this.parseKey(createTopicBody.adminKey);
534
- topicData.submitKey = this.parseKey(createTopicBody.submitKey);
535
- if (createTopicBody.autoRenewPeriod) {
536
- topicData.autoRenewPeriod = Long.fromValue(
537
- createTopicBody.autoRenewPeriod.seconds
538
- ).toString();
539
- }
540
- if (createTopicBody.autoRenewAccount) {
541
- topicData.autoRenewAccountId = new AccountId(
542
- createTopicBody.autoRenewAccount.shardNum ?? 0,
543
- createTopicBody.autoRenewAccount.realmNum ?? 0,
544
- createTopicBody.autoRenewAccount.accountNum ?? 0
545
- ).toString();
546
- }
547
- result.consensusCreateTopic = topicData;
548
- }
549
- }
550
- /**
551
- * Parse consensus submit message transaction data
552
- * @param submitMessageBody - The consensus submit message transaction body
553
- * @param result - The parsed transaction
554
- */
555
- static parseConsensusSubmitMessage(submitMessageBody, result) {
556
- if (submitMessageBody) {
557
- const messageData = {};
558
- if (submitMessageBody.topicID) {
559
- const tid = submitMessageBody.topicID;
560
- messageData.topicId = `${tid.shardNum ? Long.fromValue(tid.shardNum).toNumber() : 0}.${tid.realmNum ? Long.fromValue(tid.realmNum).toNumber() : 0}.${tid.topicNum ? Long.fromValue(tid.topicNum).toNumber() : 0}`;
561
- }
562
- if (submitMessageBody.message && submitMessageBody.message.length > 0) {
563
- const messageBuffer = Buffer$1.from(submitMessageBody.message);
564
- const utf8String = messageBuffer.toString("utf8");
565
- if (/[- -]/.test(utf8String) || utf8String.includes("�")) {
566
- messageData.message = messageBuffer.toString("base64");
567
- messageData.messageEncoding = "base64";
568
- } else {
569
- messageData.message = utf8String;
570
- messageData.messageEncoding = "utf8";
571
- }
572
- }
573
- if (submitMessageBody.chunkInfo) {
574
- if (submitMessageBody.chunkInfo.initialTransactionID) {
575
- const txId = submitMessageBody.chunkInfo.initialTransactionID.accountID;
576
- const taValidStart = submitMessageBody.chunkInfo.initialTransactionID.transactionValidStart;
577
- if (txId && taValidStart) {
578
- messageData.chunkInfoInitialTransactionID = `${txId.shardNum ? Long.fromValue(txId.shardNum).toNumber() : 0}.${txId.realmNum ? Long.fromValue(txId.realmNum).toNumber() : 0}.${txId.accountNum ? Long.fromValue(txId.accountNum).toNumber() : 0}@${taValidStart.seconds ? Long.fromValue(taValidStart.seconds).toNumber() : 0}.${taValidStart.nanos ? Long.fromValue(taValidStart.nanos).toNumber() : 0}`;
579
- }
580
- }
581
- if (submitMessageBody.chunkInfo.number !== void 0 && submitMessageBody.chunkInfo.number !== null) {
582
- messageData.chunkInfoNumber = submitMessageBody.chunkInfo.number;
583
- }
584
- if (submitMessageBody.chunkInfo.total !== void 0 && submitMessageBody.chunkInfo.total !== null) {
585
- messageData.chunkInfoTotal = submitMessageBody.chunkInfo.total;
586
- }
587
- }
588
- result.consensusSubmitMessage = messageData;
589
- }
590
- }
591
- static parseFileCreate(fileCreateBody, result) {
592
- if (fileCreateBody) {
593
- const data = {};
594
- if (fileCreateBody.expirationTime) {
595
- data.expirationTime = `${Long.fromValue(
596
- fileCreateBody.expirationTime.seconds
597
- ).toString()}.${fileCreateBody.expirationTime.nanos}`;
598
- }
599
- if (fileCreateBody.keys) {
600
- data.keys = this.parseKey({ keyList: fileCreateBody.keys });
601
- }
602
- if (fileCreateBody.contents) {
603
- data.contents = Buffer$1.from(fileCreateBody.contents).toString("base64");
604
- }
605
- if (fileCreateBody.memo) {
606
- data.memo = fileCreateBody.memo;
607
- }
608
- result.fileCreate = data;
609
- }
610
- }
611
- static parseFileAppend(fileAppendBody, result) {
612
- if (fileAppendBody) {
613
- const data = {};
614
- if (fileAppendBody.fileID) {
615
- data.fileId = `${fileAppendBody.fileID.shardNum}.${fileAppendBody.fileID.realmNum}.${fileAppendBody.fileID.fileNum}`;
616
- }
617
- if (fileAppendBody.contents) {
618
- data.contents = Buffer$1.from(fileAppendBody.contents).toString("base64");
619
- }
620
- result.fileAppend = data;
621
- }
622
- }
623
- static parseFileUpdate(fileUpdateBody, result) {
624
- if (fileUpdateBody) {
625
- const data = {};
626
- if (fileUpdateBody.fileID) {
627
- data.fileId = `${fileUpdateBody.fileID.shardNum}.${fileUpdateBody.fileID.realmNum}.${fileUpdateBody.fileID.fileNum}`;
628
- }
629
- if (fileUpdateBody.expirationTime) {
630
- data.expirationTime = `${Long.fromValue(
631
- fileUpdateBody.expirationTime.seconds
632
- ).toString()}.${fileUpdateBody.expirationTime.nanos}`;
633
- }
634
- if (fileUpdateBody.keys) {
635
- data.keys = this.parseKey({ keyList: fileUpdateBody.keys });
636
- }
637
- if (fileUpdateBody.contents) {
638
- data.contents = Buffer$1.from(fileUpdateBody.contents).toString("base64");
639
- }
640
- if (fileUpdateBody.memo && fileUpdateBody.memo.value !== void 0) {
641
- data.memo = fileUpdateBody.memo.value;
642
- }
643
- result.fileUpdate = data;
644
- }
645
- }
646
- static parseFileDelete(fileDeleteBody, result) {
647
- if (fileDeleteBody) {
648
- const data = {};
649
- if (fileDeleteBody.fileID) {
650
- data.fileId = `${fileDeleteBody.fileID.shardNum}.${fileDeleteBody.fileID.realmNum}.${fileDeleteBody.fileID.fileNum}`;
651
- }
652
- result.fileDelete = data;
653
- }
654
- }
655
- static parseConsensusUpdateTopic(body, result) {
656
- if (body) {
657
- const data = {};
658
- if (body.topicID) {
659
- data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`;
660
- }
661
- if (body.memo?.value !== void 0) {
662
- data.memo = body.memo.value;
663
- }
664
- if (body.adminKey === null) {
665
- data.clearAdminKey = true;
666
- data.adminKey = void 0;
667
- } else if (body.adminKey) {
668
- data.adminKey = this.parseKey(body.adminKey);
669
- } else {
670
- data.adminKey = void 0;
671
- }
672
- if (body.submitKey === null) {
673
- data.clearSubmitKey = true;
674
- data.submitKey = void 0;
675
- } else if (body.submitKey) {
676
- data.submitKey = this.parseKey(body.submitKey);
677
- } else {
678
- data.submitKey = void 0;
679
- }
680
- if (body.autoRenewPeriod) {
681
- data.autoRenewPeriod = Long.fromValue(
682
- body.autoRenewPeriod.seconds
683
- ).toString();
684
- }
685
- if (body.autoRenewAccount) {
686
- data.autoRenewAccountId = new AccountId(
687
- body.autoRenewAccount.shardNum ?? 0,
688
- body.autoRenewAccount.realmNum ?? 0,
689
- body.autoRenewAccount.accountNum ?? 0
690
- ).toString();
691
- }
692
- result.consensusUpdateTopic = data;
693
- }
694
- }
695
- static parseConsensusDeleteTopic(body, result) {
696
- if (body) {
697
- const data = {};
698
- if (body.topicID) {
699
- data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`;
700
- }
701
- result.consensusDeleteTopic = data;
702
- }
703
- }
704
- static parseTokenUpdate(body, result) {
705
- if (body) {
706
- const data = {};
707
- if (body.token) {
708
- data.tokenId = new TokenId(
709
- body.token.shardNum ?? 0,
710
- body.token.realmNum ?? 0,
711
- body.token.tokenNum ?? 0
712
- ).toString();
713
- }
714
- if (body.name) {
715
- data.name = body.name;
716
- }
717
- if (body.symbol) {
718
- data.symbol = body.symbol;
719
- }
720
- if (body.treasury) {
721
- data.treasuryAccountId = new AccountId(
722
- body.treasury.shardNum ?? 0,
723
- body.treasury.realmNum ?? 0,
724
- body.treasury.accountNum ?? 0
725
- ).toString();
726
- }
727
- data.adminKey = this.parseKey(body.adminKey);
728
- data.kycKey = this.parseKey(body.kycKey);
729
- data.freezeKey = this.parseKey(body.freezeKey);
730
- data.wipeKey = this.parseKey(body.wipeKey);
731
- data.supplyKey = this.parseKey(body.supplyKey);
732
- data.feeScheduleKey = this.parseKey(body.feeScheduleKey);
733
- data.pauseKey = this.parseKey(body.pauseKey);
734
- if (body.autoRenewAccount) {
735
- data.autoRenewAccountId = new AccountId(
736
- body.autoRenewAccount.shardNum ?? 0,
737
- body.autoRenewAccount.realmNum ?? 0,
738
- body.autoRenewAccount.accountNum ?? 0
739
- ).toString();
740
- }
741
- if (body.autoRenewPeriod) {
742
- data.autoRenewPeriod = Long.fromValue(
743
- body.autoRenewPeriod.seconds
744
- ).toString();
745
- }
746
- if (body.memo?.value !== void 0) {
747
- data.memo = body.memo.value;
748
- }
749
- if (body.expiry) {
750
- data.expiry = `${Long.fromValue(body.expiry.seconds).toString()}.${body.expiry.nanos}`;
751
- }
752
- result.tokenUpdate = data;
753
- }
754
- }
755
- static parseTokenFeeScheduleUpdate(body, result) {
756
- if (body) {
757
- const data = {};
758
- if (body.tokenId)
759
- data.tokenId = new TokenId(
760
- body.tokenId.shardNum ?? 0,
761
- body.tokenId.realmNum ?? 0,
762
- body.tokenId.tokenNum ?? 0
763
- ).toString();
764
- if (body.customFees && body.customFees.length > 0) {
765
- data.customFees = body.customFees.map((fee) => {
766
- const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
767
- fee.feeCollectorAccountId.shardNum ?? 0,
768
- fee.feeCollectorAccountId.realmNum ?? 0,
769
- fee.feeCollectorAccountId.accountNum ?? 0
770
- ).toString() : "Not Set";
771
- const commonFeeData = {
772
- feeCollectorAccountId,
773
- allCollectorsAreExempt: fee.allCollectorsAreExempt || false
774
- };
775
- if (fee.fixedFee) {
776
- return {
777
- ...commonFeeData,
778
- feeType: "FIXED_FEE",
779
- fixedFee: {
780
- amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
781
- denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
782
- fee.fixedFee.denominatingTokenId.shardNum ?? 0,
783
- fee.fixedFee.denominatingTokenId.realmNum ?? 0,
784
- fee.fixedFee.denominatingTokenId.tokenNum ?? 0
785
- ).toString() : void 0
786
- }
787
- };
788
- } else if (fee.fractionalFee) {
789
- return {
790
- ...commonFeeData,
791
- feeType: "FRACTIONAL_FEE",
792
- fractionalFee: {
793
- numerator: Long.fromValue(
794
- fee.fractionalFee.fractionalAmount?.numerator || 0
795
- ).toString(),
796
- denominator: Long.fromValue(
797
- fee.fractionalFee.fractionalAmount?.denominator || 1
798
- ).toString(),
799
- minimumAmount: Long.fromValue(
800
- fee.fractionalFee.minimumAmount || 0
801
- ).toString(),
802
- maximumAmount: Long.fromValue(
803
- fee.fractionalFee.maximumAmount || 0
804
- ).toString(),
805
- netOfTransfers: fee.fractionalFee.netOfTransfers || false
806
- }
807
- };
808
- } else if (fee.royaltyFee) {
809
- let fallbackFeeData = void 0;
810
- if (fee.royaltyFee.fallbackFee) {
811
- fallbackFeeData = {
812
- amount: Long.fromValue(
813
- fee.royaltyFee.fallbackFee.amount || 0
814
- ).toString(),
815
- denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
816
- fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
817
- fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
818
- fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
819
- ).toString() : void 0
820
- };
821
- }
822
- return {
823
- ...commonFeeData,
824
- feeType: "ROYALTY_FEE",
825
- royaltyFee: {
826
- numerator: Long.fromValue(
827
- fee.royaltyFee.exchangeValueFraction?.numerator || 0
828
- ).toString(),
829
- denominator: Long.fromValue(
830
- fee.royaltyFee.exchangeValueFraction?.denominator || 1
831
- ).toString(),
832
- fallbackFee: fallbackFeeData
833
- }
834
- };
835
- }
836
- return {
837
- ...commonFeeData,
838
- feeType: "FIXED_FEE",
839
- fixedFee: { amount: "0" }
840
- };
841
- });
842
- }
843
- result.tokenFeeScheduleUpdate = data;
844
- }
845
- }
846
- static parseUtilPrng(body, result) {
847
- if (body) {
848
- const data = {};
849
- if (body.range && body.range !== 0) {
850
- data.range = body.range;
851
- }
852
- result.utilPrng = data;
853
- }
854
- }
855
- static parseKey(key) {
856
- if (!key) {
857
- return void 0;
858
- }
859
- if (key.contractID) {
860
- return `ContractID: ${new ContractId(
861
- key.contractID.shardNum ?? 0,
862
- key.contractID.realmNum ?? 0,
863
- key.contractID.contractNum ?? 0
864
- ).toString()}`;
865
- }
866
- if (key.ed25519) {
867
- return `ED25519: ${Buffer$1.from(key.ed25519).toString("hex")}`;
868
- }
869
- if (key.ECDSASecp256k1) {
870
- return `ECDSA_secp256k1: ${Buffer$1.from(key.ECDSASecp256k1).toString(
871
- "hex"
872
- )}`;
873
- }
874
- if (key.keyList && key.keyList.keys && key.keyList.keys.length > 0) {
875
- const keys = key.keyList.keys.map((k) => this.parseKey(k)).filter(Boolean);
876
- return `KeyList (${keys.length} keys): [${keys.join(", ")}]`;
877
- }
878
- if (key.thresholdKey && key.thresholdKey.keys && key.thresholdKey.keys.keys && key.thresholdKey.keys.keys.length > 0) {
879
- const keys = key.thresholdKey.keys.keys.map((k) => this.parseKey(k)).filter(Boolean);
880
- return `ThresholdKey (${key.thresholdKey.threshold} of ${keys.length}): [${keys.join(", ")}]`;
881
- }
882
- if (key.delegatableContractId) {
883
- return `DelegatableContractID: ${new ContractId(
884
- key.delegatableContractId.shardNum ?? 0,
885
- key.delegatableContractId.realmNum ?? 0,
886
- key.delegatableContractId.contractNum ?? 0
887
- ).toString()}`;
888
- }
889
- if (Object.keys(key).length === 0) {
890
- return "Empty Key Structure";
891
- }
892
- return "Unknown or Unset Key Type";
893
- }
894
298
  /**
895
299
  * Get a human-readable summary of the transaction
896
300
  * @param parsedTx - The parsed transaction
897
301
  * @returns The human-readable summary of the transaction
898
302
  */
899
303
  static getTransactionSummary(parsedTx) {
900
- let summary;
901
304
  if (parsedTx.type === "cryptoTransfer") {
902
305
  const senders = [];
903
306
  const receivers = [];
@@ -915,11 +318,11 @@ class TransactionParser {
915
318
  }
916
319
  }
917
320
  if (senders.length > 0 && receivers.length > 0) {
918
- summary = `Transfer of HBAR from ${senders.join(
321
+ return `Transfer of HBAR from ${senders.join(", ")} to ${receivers.join(
919
322
  ", "
920
- )} to ${receivers.join(", ")}`;
323
+ )}`;
921
324
  } else {
922
- summary = parsedTx.humanReadableType;
325
+ return parsedTx.humanReadableType;
923
326
  }
924
327
  } else if (parsedTx.contractCall) {
925
328
  let contractCallSummary = `Contract call to ${parsedTx.contractCall.contractId} with ${parsedTx.contractCall.gas} gas`;
@@ -929,19 +332,20 @@ class TransactionParser {
929
332
  if (parsedTx.contractCall.functionName) {
930
333
  contractCallSummary += ` calling function ${parsedTx.contractCall.functionName}`;
931
334
  }
932
- summary = contractCallSummary;
335
+ return contractCallSummary;
933
336
  } else if (parsedTx.tokenMint) {
934
- summary = `Mint ${parsedTx.tokenMint.amount} tokens for token ${parsedTx.tokenMint.tokenId}`;
337
+ return `Mint ${parsedTx.tokenMint.amount} tokens for token ${parsedTx.tokenMint.tokenId}`;
935
338
  } else if (parsedTx.tokenBurn) {
936
- summary = `Burn ${parsedTx.tokenBurn.amount} tokens for token ${parsedTx.tokenBurn.tokenId}`;
339
+ return `Burn ${parsedTx.tokenBurn.amount} tokens for token ${parsedTx.tokenBurn.tokenId}`;
937
340
  } else if (parsedTx.tokenCreation) {
938
- summary = `Create token ${parsedTx.tokenCreation.tokenName || "(No Name)"} (${parsedTx.tokenCreation.tokenSymbol || "(No Symbol)"})`;
341
+ let summary = `Create token ${parsedTx.tokenCreation.tokenName || "(No Name)"} (${parsedTx.tokenCreation.tokenSymbol || "(No Symbol)"})`;
939
342
  if (parsedTx.tokenCreation.initialSupply) {
940
343
  summary += ` with initial supply ${parsedTx.tokenCreation.initialSupply}`;
941
344
  }
942
- if (parsedTx.tokenCreation.customFees && parsedTx.tokenCreation.customFees.length > 0) {
345
+ if (parsedTx.tokenCreation.customFees?.length) {
943
346
  summary += ` including ${parsedTx.tokenCreation.customFees.length} custom fee(s)`;
944
347
  }
348
+ return summary;
945
349
  } else if (parsedTx.tokenTransfers.length > 0) {
946
350
  const tokenGroups = {};
947
351
  for (const transfer of parsedTx.tokenTransfers) {
@@ -975,20 +379,21 @@ class TransactionParser {
975
379
  }
976
380
  }
977
381
  if (tokenSummaries.length > 0) {
978
- summary = tokenSummaries.join("; ");
382
+ return tokenSummaries.join("; ");
979
383
  } else {
980
- summary = parsedTx.humanReadableType;
384
+ return parsedTx.humanReadableType;
981
385
  }
982
386
  } else if (parsedTx.consensusCreateTopic) {
983
- summary = `Create new topic`;
387
+ let summary = `Create new topic`;
984
388
  if (parsedTx.consensusCreateTopic.memo) {
985
389
  summary += ` with memo "${parsedTx.consensusCreateTopic.memo}"`;
986
390
  }
987
391
  if (parsedTx.consensusCreateTopic.autoRenewAccountId) {
988
392
  summary += `, auto-renew by ${parsedTx.consensusCreateTopic.autoRenewAccountId}`;
989
393
  }
394
+ return summary;
990
395
  } else if (parsedTx.consensusSubmitMessage) {
991
- summary = `Submit message`;
396
+ let summary = `Submit message`;
992
397
  if (parsedTx.consensusSubmitMessage.topicId) {
993
398
  summary += ` to topic ${parsedTx.consensusSubmitMessage.topicId}`;
994
399
  }
@@ -1003,12 +408,16 @@ class TransactionParser {
1003
408
  if (parsedTx.consensusSubmitMessage.chunkInfoNumber && parsedTx.consensusSubmitMessage.chunkInfoTotal) {
1004
409
  summary += ` (chunk ${parsedTx.consensusSubmitMessage.chunkInfoNumber}/${parsedTx.consensusSubmitMessage.chunkInfoTotal})`;
1005
410
  }
411
+ return summary;
1006
412
  } else if (parsedTx.fileCreate) {
1007
- let summary2 = "Create File";
1008
- if (parsedTx.fileCreate.memo)
1009
- summary2 += ` with memo "${parsedTx.fileCreate.memo}"`;
1010
- if (parsedTx.fileCreate.contents) summary2 += ` (includes content)`;
1011
- return summary2;
413
+ let summary = "Create File";
414
+ if (parsedTx.fileCreate.memo) {
415
+ summary += ` with memo "${parsedTx.fileCreate.memo}"`;
416
+ }
417
+ if (parsedTx.fileCreate.contents) {
418
+ summary += ` (includes content)`;
419
+ }
420
+ return summary;
1012
421
  } else if (parsedTx.fileAppend) {
1013
422
  return `Append to File ${parsedTx.fileAppend.fileId || "(Unknown ID)"}`;
1014
423
  } else if (parsedTx.fileUpdate) {
@@ -1024,15 +433,77 @@ class TransactionParser {
1024
433
  } else if (parsedTx.tokenFeeScheduleUpdate) {
1025
434
  return `Update Fee Schedule for Token ${parsedTx.tokenFeeScheduleUpdate.tokenId || "(Unknown ID)"}`;
1026
435
  } else if (parsedTx.utilPrng) {
1027
- let summary2 = "Generate Random Number";
436
+ let summary = "Generate Random Number";
1028
437
  if (parsedTx.utilPrng.range && parsedTx.utilPrng.range > 0) {
1029
- summary2 += ` (range up to ${parsedTx.utilPrng.range - 1})`;
438
+ summary += ` (range up to ${parsedTx.utilPrng.range - 1})`;
439
+ }
440
+ return summary;
441
+ } else if (parsedTx.tokenFreeze) {
442
+ return `Freeze Token ${parsedTx.tokenFreeze.tokenId} for Account ${parsedTx.tokenFreeze.accountId}`;
443
+ } else if (parsedTx.tokenUnfreeze) {
444
+ return `Unfreeze Token ${parsedTx.tokenUnfreeze.tokenId} for Account ${parsedTx.tokenUnfreeze.accountId}`;
445
+ } else if (parsedTx.tokenGrantKyc) {
446
+ return `Grant KYC for Token ${parsedTx.tokenGrantKyc.tokenId} to Account ${parsedTx.tokenGrantKyc.accountId}`;
447
+ } else if (parsedTx.tokenRevokeKyc) {
448
+ return `Revoke KYC for Token ${parsedTx.tokenRevokeKyc.tokenId} from Account ${parsedTx.tokenRevokeKyc.accountId}`;
449
+ } else if (parsedTx.tokenPause) {
450
+ return `Pause Token ${parsedTx.tokenPause.tokenId}`;
451
+ } else if (parsedTx.tokenUnpause) {
452
+ return `Unpause Token ${parsedTx.tokenUnpause.tokenId}`;
453
+ } else if (parsedTx.tokenWipeAccount) {
454
+ let summary = `Wipe Token ${parsedTx.tokenWipeAccount.tokenId} from Account ${parsedTx.tokenWipeAccount.accountId}`;
455
+ if (parsedTx.tokenWipeAccount.serialNumbers?.length) {
456
+ summary += ` (Serials: ${parsedTx.tokenWipeAccount.serialNumbers.join(
457
+ ", "
458
+ )})`;
459
+ }
460
+ if (parsedTx.tokenWipeAccount.amount) {
461
+ summary += ` (Amount: ${parsedTx.tokenWipeAccount.amount})`;
462
+ }
463
+ return summary;
464
+ } else if (parsedTx.tokenDelete) {
465
+ return `Delete Token ${parsedTx.tokenDelete.tokenId}`;
466
+ } else if (parsedTx.tokenAssociate) {
467
+ return `Associate Account ${parsedTx.tokenAssociate.accountId} with Tokens: ${parsedTx.tokenAssociate.tokenIds?.join(", ")}`;
468
+ } else if (parsedTx.tokenDissociate) {
469
+ return `Dissociate Account ${parsedTx.tokenDissociate.accountId} from Tokens: ${parsedTx.tokenDissociate.tokenIds?.join(", ")}`;
470
+ } else if (parsedTx.cryptoDelete) {
471
+ return `Delete Account ${parsedTx.cryptoDelete.deleteAccountId}`;
472
+ }
473
+ if (parsedTx.humanReadableType && parsedTx.humanReadableType !== "Unknown Transaction") {
474
+ return parsedTx.humanReadableType;
475
+ }
476
+ if (parsedTx.tokenTransfers.length > 0) {
477
+ const tokenGroups = {};
478
+ for (const transfer of parsedTx.tokenTransfers) {
479
+ if (!tokenGroups[transfer.tokenId]) {
480
+ tokenGroups[transfer.tokenId] = [];
481
+ }
482
+ tokenGroups[transfer.tokenId].push(transfer);
1030
483
  }
1031
- return summary2;
1032
- } else {
1033
- summary = parsedTx.humanReadableType;
484
+ const tokenSummaries = [];
485
+ for (const [tokenId, transfers] of Object.entries(tokenGroups)) {
486
+ const tokenSenders = transfers.filter((t) => t.amount < 0).map((t) => `${t.accountId} (${Math.abs(t.amount)})`);
487
+ const tokenReceivers = transfers.filter((t) => t.amount > 0).map((t) => `${t.accountId} (${t.amount})`);
488
+ if (tokenSenders.length > 0 && tokenReceivers.length > 0) {
489
+ tokenSummaries.push(
490
+ `Transfer of token ${tokenId} from ${tokenSenders.join(
491
+ ", "
492
+ )} to ${tokenReceivers.join(", ")}`
493
+ );
494
+ } else if (tokenReceivers.length > 0) {
495
+ tokenSummaries.push(
496
+ `Token ${tokenId} received by ${tokenReceivers.join(", ")}`
497
+ );
498
+ } else if (tokenSenders.length > 0) {
499
+ tokenSummaries.push(
500
+ `Token ${tokenId} sent from ${tokenSenders.join(", ")}`
501
+ );
502
+ }
503
+ }
504
+ if (tokenSummaries.length > 0) return tokenSummaries.join("; ");
1034
505
  }
1035
- return summary;
506
+ return "Unknown Transaction";
1036
507
  }
1037
508
  }
1038
509
  export {