@hashgraphonline/standards-sdk 0.1.183 → 0.1.185

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 (289) hide show
  1. package/dist/browser/hcs-25/identifiers.d.ts +24 -0
  2. package/dist/browser/hcs-25/identifiers.d.ts.map +1 -0
  3. package/dist/browser/hcs-25/index.d.ts +4 -0
  4. package/dist/browser/hcs-25/index.d.ts.map +1 -0
  5. package/dist/browser/hcs-25/scoring.d.ts +32 -0
  6. package/dist/browser/hcs-25/scoring.d.ts.map +1 -0
  7. package/dist/browser/hcs-25/types.d.ts +363 -0
  8. package/dist/browser/hcs-25/types.d.ts.map +1 -0
  9. package/dist/browser/index.d.ts +1 -0
  10. package/dist/browser/index.d.ts.map +1 -1
  11. package/dist/browser/services/registry-broker/index.d.ts +1 -0
  12. package/dist/browser/services/registry-broker/index.d.ts.map +1 -1
  13. package/dist/browser/services/registry-broker/schemas.d.ts +6 -0
  14. package/dist/browser/services/registry-broker/schemas.d.ts.map +1 -1
  15. package/dist/browser/services/registry-broker/types.d.ts +7 -1
  16. package/dist/browser/services/registry-broker/types.d.ts.map +1 -1
  17. package/dist/browser/standards-sdk.browser.js.map +1 -1
  18. package/dist/browser-root/hcs-25/identifiers.d.ts +24 -0
  19. package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -0
  20. package/dist/browser-root/hcs-25/index.d.ts +4 -0
  21. package/dist/browser-root/hcs-25/index.d.ts.map +1 -0
  22. package/dist/browser-root/hcs-25/scoring.d.ts +32 -0
  23. package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -0
  24. package/dist/browser-root/hcs-25/types.d.ts +363 -0
  25. package/dist/browser-root/hcs-25/types.d.ts.map +1 -0
  26. package/dist/browser-root/index.d.ts +1 -0
  27. package/dist/browser-root/index.d.ts.map +1 -1
  28. package/dist/browser-root/services/registry-broker/index.d.ts +1 -0
  29. package/dist/browser-root/services/registry-broker/index.d.ts.map +1 -1
  30. package/dist/browser-root/services/registry-broker/schemas.d.ts +6 -0
  31. package/dist/browser-root/services/registry-broker/schemas.d.ts.map +1 -1
  32. package/dist/browser-root/services/registry-broker/types.d.ts +7 -1
  33. package/dist/browser-root/services/registry-broker/types.d.ts.map +1 -1
  34. package/dist/browser-root/standards-sdk.root-browser.js +8 -1
  35. package/dist/browser-root/standards-sdk.root-browser.js.map +1 -1
  36. package/dist/cjs/hcs-25/identifiers.d.ts +24 -0
  37. package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -0
  38. package/dist/cjs/hcs-25/index.d.ts +4 -0
  39. package/dist/cjs/hcs-25/index.d.ts.map +1 -0
  40. package/dist/cjs/hcs-25/scoring.d.ts +32 -0
  41. package/dist/cjs/hcs-25/scoring.d.ts.map +1 -0
  42. package/dist/cjs/hcs-25/types.d.ts +363 -0
  43. package/dist/cjs/hcs-25/types.d.ts.map +1 -0
  44. package/dist/cjs/index.d.ts +1 -0
  45. package/dist/cjs/index.d.ts.map +1 -1
  46. package/dist/cjs/services/registry-broker/index.d.ts +1 -0
  47. package/dist/cjs/services/registry-broker/index.d.ts.map +1 -1
  48. package/dist/cjs/services/registry-broker/schemas.d.ts +6 -0
  49. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  50. package/dist/cjs/services/registry-broker/types.d.ts +7 -1
  51. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  52. package/dist/cjs/standards-sdk.cjs +2 -2
  53. package/dist/cjs/standards-sdk.cjs.map +1 -1
  54. package/dist/es/hcs-25/identifiers.d.ts +24 -0
  55. package/dist/es/hcs-25/identifiers.d.ts.map +1 -0
  56. package/dist/es/hcs-25/index.d.ts +4 -0
  57. package/dist/es/hcs-25/index.d.ts.map +1 -0
  58. package/dist/es/hcs-25/scoring.d.ts +32 -0
  59. package/dist/es/hcs-25/scoring.d.ts.map +1 -0
  60. package/dist/es/hcs-25/types.d.ts +363 -0
  61. package/dist/es/hcs-25/types.d.ts.map +1 -0
  62. package/dist/es/index.d.ts +1 -0
  63. package/dist/es/index.d.ts.map +1 -1
  64. package/dist/es/services/registry-broker/index.d.ts +1 -0
  65. package/dist/es/services/registry-broker/index.d.ts.map +1 -1
  66. package/dist/es/services/registry-broker/schemas.d.ts +6 -0
  67. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  68. package/dist/es/services/registry-broker/types.d.ts +7 -1
  69. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  70. package/dist/es/standards-sdk.es.js +69 -39
  71. package/dist/es/standards-sdk.es.js.map +1 -1
  72. package/dist/es/standards-sdk.es101.js +2 -2
  73. package/dist/es/standards-sdk.es103.js +2 -2
  74. package/dist/es/standards-sdk.es104.js +1 -1
  75. package/dist/es/standards-sdk.es106.js +1 -1
  76. package/dist/es/standards-sdk.es108.js +2 -2
  77. package/dist/es/standards-sdk.es11.js +1 -1
  78. package/dist/es/standards-sdk.es110.js +1 -1
  79. package/dist/es/standards-sdk.es111.js +2 -2
  80. package/dist/es/standards-sdk.es115.js +3 -3
  81. package/dist/es/standards-sdk.es116.js +4 -4
  82. package/dist/es/standards-sdk.es117.js +19 -251
  83. package/dist/es/standards-sdk.es117.js.map +1 -1
  84. package/dist/es/standards-sdk.es118.js +60 -475
  85. package/dist/es/standards-sdk.es118.js.map +1 -1
  86. package/dist/es/standards-sdk.es119.js +217 -86
  87. package/dist/es/standards-sdk.es119.js.map +1 -1
  88. package/dist/es/standards-sdk.es12.js +1 -1
  89. package/dist/es/standards-sdk.es120.js +242 -150
  90. package/dist/es/standards-sdk.es120.js.map +1 -1
  91. package/dist/es/standards-sdk.es121.js +470 -26
  92. package/dist/es/standards-sdk.es121.js.map +1 -1
  93. package/dist/es/standards-sdk.es122.js +103 -10
  94. package/dist/es/standards-sdk.es122.js.map +1 -1
  95. package/dist/es/standards-sdk.es123.js +145 -167
  96. package/dist/es/standards-sdk.es123.js.map +1 -1
  97. package/dist/es/standards-sdk.es124.js +30 -25
  98. package/dist/es/standards-sdk.es124.js.map +1 -1
  99. package/dist/es/standards-sdk.es125.js +10 -20
  100. package/dist/es/standards-sdk.es125.js.map +1 -1
  101. package/dist/es/standards-sdk.es126.js +159 -137
  102. package/dist/es/standards-sdk.es126.js.map +1 -1
  103. package/dist/es/standards-sdk.es127.js +27 -199
  104. package/dist/es/standards-sdk.es127.js.map +1 -1
  105. package/dist/es/standards-sdk.es128.js +15 -783
  106. package/dist/es/standards-sdk.es128.js.map +1 -1
  107. package/dist/es/standards-sdk.es129.js +157 -10
  108. package/dist/es/standards-sdk.es129.js.map +1 -1
  109. package/dist/es/standards-sdk.es13.js +1 -1
  110. package/dist/es/standards-sdk.es130.js +198 -564
  111. package/dist/es/standards-sdk.es130.js.map +1 -1
  112. package/dist/es/standards-sdk.es131.js +703 -539
  113. package/dist/es/standards-sdk.es131.js.map +1 -1
  114. package/dist/es/standards-sdk.es132.js +12 -12
  115. package/dist/es/standards-sdk.es132.js.map +1 -1
  116. package/dist/es/standards-sdk.es133.js +567 -2
  117. package/dist/es/standards-sdk.es133.js.map +1 -1
  118. package/dist/es/standards-sdk.es134.js +610 -71
  119. package/dist/es/standards-sdk.es134.js.map +1 -1
  120. package/dist/es/standards-sdk.es135.js +12 -39
  121. package/dist/es/standards-sdk.es135.js.map +1 -1
  122. package/dist/es/standards-sdk.es136.js +2 -2
  123. package/dist/es/standards-sdk.es136.js.map +1 -1
  124. package/dist/es/standards-sdk.es137.js +42 -190
  125. package/dist/es/standards-sdk.es137.js.map +1 -1
  126. package/dist/es/standards-sdk.es138.js +39 -1139
  127. package/dist/es/standards-sdk.es138.js.map +1 -1
  128. package/dist/es/standards-sdk.es139.js +2 -306
  129. package/dist/es/standards-sdk.es139.js.map +1 -1
  130. package/dist/es/standards-sdk.es14.js +1 -1
  131. package/dist/es/standards-sdk.es140.js +231 -418
  132. package/dist/es/standards-sdk.es140.js.map +1 -1
  133. package/dist/es/standards-sdk.es141.js +1135 -350
  134. package/dist/es/standards-sdk.es141.js.map +1 -1
  135. package/dist/es/standards-sdk.es142.js +268 -1084
  136. package/dist/es/standards-sdk.es142.js.map +1 -1
  137. package/dist/es/standards-sdk.es143.js +418 -204
  138. package/dist/es/standards-sdk.es143.js.map +1 -1
  139. package/dist/es/standards-sdk.es144.js +350 -1562
  140. package/dist/es/standards-sdk.es144.js.map +1 -1
  141. package/dist/es/standards-sdk.es145.js +1061 -1096
  142. package/dist/es/standards-sdk.es145.js.map +1 -1
  143. package/dist/es/standards-sdk.es146.js +204 -13
  144. package/dist/es/standards-sdk.es146.js.map +1 -1
  145. package/dist/es/standards-sdk.es147.js +1541 -233
  146. package/dist/es/standards-sdk.es147.js.map +1 -1
  147. package/dist/es/standards-sdk.es148.js +1157 -4
  148. package/dist/es/standards-sdk.es148.js.map +1 -1
  149. package/dist/es/standards-sdk.es149.js +15 -79
  150. package/dist/es/standards-sdk.es149.js.map +1 -1
  151. package/dist/es/standards-sdk.es15.js +1 -1
  152. package/dist/es/standards-sdk.es150.js +250 -78
  153. package/dist/es/standards-sdk.es150.js.map +1 -1
  154. package/dist/es/standards-sdk.es151.js +4 -60
  155. package/dist/es/standards-sdk.es151.js.map +1 -1
  156. package/dist/es/standards-sdk.es152.js +75 -153
  157. package/dist/es/standards-sdk.es152.js.map +1 -1
  158. package/dist/es/standards-sdk.es153.js +87 -7
  159. package/dist/es/standards-sdk.es153.js.map +1 -1
  160. package/dist/es/standards-sdk.es154.js +54 -80
  161. package/dist/es/standards-sdk.es154.js.map +1 -1
  162. package/dist/es/standards-sdk.es155.js +2547 -65
  163. package/dist/es/standards-sdk.es155.js.map +1 -1
  164. package/dist/es/standards-sdk.es156.js +159 -30
  165. package/dist/es/standards-sdk.es156.js.map +1 -1
  166. package/dist/es/standards-sdk.es157.js +7 -34
  167. package/dist/es/standards-sdk.es157.js.map +1 -1
  168. package/dist/es/standards-sdk.es158.js +86 -48
  169. package/dist/es/standards-sdk.es158.js.map +1 -1
  170. package/dist/es/standards-sdk.es159.js +52 -125
  171. package/dist/es/standards-sdk.es159.js.map +1 -1
  172. package/dist/es/standards-sdk.es16.js +5 -5
  173. package/dist/es/standards-sdk.es160.js +30 -42
  174. package/dist/es/standards-sdk.es160.js.map +1 -1
  175. package/dist/es/standards-sdk.es161.js +32 -2538
  176. package/dist/es/standards-sdk.es161.js.map +1 -1
  177. package/dist/es/standards-sdk.es162.js +48 -12482
  178. package/dist/es/standards-sdk.es162.js.map +1 -1
  179. package/dist/es/standards-sdk.es163.js +12479 -53
  180. package/dist/es/standards-sdk.es163.js.map +1 -1
  181. package/dist/es/standards-sdk.es164.js +124 -97
  182. package/dist/es/standards-sdk.es164.js.map +1 -1
  183. package/dist/es/standards-sdk.es165.js +35 -74
  184. package/dist/es/standards-sdk.es165.js.map +1 -1
  185. package/dist/es/standards-sdk.es166.js +14 -197
  186. package/dist/es/standards-sdk.es166.js.map +1 -1
  187. package/dist/es/standards-sdk.es167.js +54 -15
  188. package/dist/es/standards-sdk.es167.js.map +1 -1
  189. package/dist/es/standards-sdk.es168.js +96 -58
  190. package/dist/es/standards-sdk.es168.js.map +1 -1
  191. package/dist/es/standards-sdk.es169.js +69 -660
  192. package/dist/es/standards-sdk.es169.js.map +1 -1
  193. package/dist/es/standards-sdk.es170.js +188 -160
  194. package/dist/es/standards-sdk.es170.js.map +1 -1
  195. package/dist/es/standards-sdk.es171.js +657 -307
  196. package/dist/es/standards-sdk.es171.js.map +1 -1
  197. package/dist/es/standards-sdk.es172.js +64 -337
  198. package/dist/es/standards-sdk.es172.js.map +1 -1
  199. package/dist/es/standards-sdk.es173.js +129 -410
  200. package/dist/es/standards-sdk.es173.js.map +1 -1
  201. package/dist/es/standards-sdk.es174.js +200 -209
  202. package/dist/es/standards-sdk.es174.js.map +1 -1
  203. package/dist/es/standards-sdk.es175.js +334 -64
  204. package/dist/es/standards-sdk.es175.js.map +1 -1
  205. package/dist/es/standards-sdk.es176.js +438 -124
  206. package/dist/es/standards-sdk.es176.js.map +1 -1
  207. package/dist/es/standards-sdk.es177.js +310 -496
  208. package/dist/es/standards-sdk.es177.js.map +1 -1
  209. package/dist/es/standards-sdk.es178.js +60 -243
  210. package/dist/es/standards-sdk.es178.js.map +1 -1
  211. package/dist/es/standards-sdk.es179.js +118 -175
  212. package/dist/es/standards-sdk.es179.js.map +1 -1
  213. package/dist/es/standards-sdk.es18.js +12 -12
  214. package/dist/es/standards-sdk.es180.js +465 -67
  215. package/dist/es/standards-sdk.es180.js.map +1 -1
  216. package/dist/es/standards-sdk.es181.js +250 -143
  217. package/dist/es/standards-sdk.es181.js.map +1 -1
  218. package/dist/es/standards-sdk.es182.js +172 -160
  219. package/dist/es/standards-sdk.es182.js.map +1 -1
  220. package/dist/es/standards-sdk.es183.js +65 -630
  221. package/dist/es/standards-sdk.es183.js.map +1 -1
  222. package/dist/es/standards-sdk.es184.js +128 -161
  223. package/dist/es/standards-sdk.es184.js.map +1 -1
  224. package/dist/es/standards-sdk.es185.js +144 -195
  225. package/dist/es/standards-sdk.es185.js.map +1 -1
  226. package/dist/es/standards-sdk.es186.js +668 -223
  227. package/dist/es/standards-sdk.es186.js.map +1 -1
  228. package/dist/es/standards-sdk.es187.js +188 -0
  229. package/dist/es/standards-sdk.es187.js.map +1 -0
  230. package/dist/es/standards-sdk.es188.js +238 -0
  231. package/dist/es/standards-sdk.es188.js.map +1 -0
  232. package/dist/es/standards-sdk.es189.js +242 -0
  233. package/dist/es/standards-sdk.es189.js.map +1 -0
  234. package/dist/es/standards-sdk.es19.js +9 -9
  235. package/dist/es/standards-sdk.es2.js +2 -2
  236. package/dist/es/standards-sdk.es20.js +1 -1
  237. package/dist/es/standards-sdk.es21.js +1 -1
  238. package/dist/es/standards-sdk.es22.js +1 -1
  239. package/dist/es/standards-sdk.es23.js +1 -1
  240. package/dist/es/standards-sdk.es24.js +1 -1
  241. package/dist/es/standards-sdk.es25.js +1 -1
  242. package/dist/es/standards-sdk.es26.js +1 -1
  243. package/dist/es/standards-sdk.es27.js +12 -12
  244. package/dist/es/standards-sdk.es30.js +2 -2
  245. package/dist/es/standards-sdk.es31.js +4 -4
  246. package/dist/es/standards-sdk.es32.js +1 -1
  247. package/dist/es/standards-sdk.es35.js +6 -6
  248. package/dist/es/standards-sdk.es36.js +4 -4
  249. package/dist/es/standards-sdk.es37.js +2 -2
  250. package/dist/es/standards-sdk.es38.js +2 -2
  251. package/dist/es/standards-sdk.es39.js +1 -1
  252. package/dist/es/standards-sdk.es4.js +2 -2
  253. package/dist/es/standards-sdk.es40.js +1 -1
  254. package/dist/es/standards-sdk.es41.js +2 -2
  255. package/dist/es/standards-sdk.es46.js +1 -1
  256. package/dist/es/standards-sdk.es5.js +2 -2
  257. package/dist/es/standards-sdk.es51.js +1 -1
  258. package/dist/es/standards-sdk.es53.js +1 -1
  259. package/dist/es/standards-sdk.es56.js +2 -2
  260. package/dist/es/standards-sdk.es59.js +1 -1
  261. package/dist/es/standards-sdk.es6.js +2 -2
  262. package/dist/es/standards-sdk.es60.js +1 -1
  263. package/dist/es/standards-sdk.es62.js +1 -1
  264. package/dist/es/standards-sdk.es63.js +2 -2
  265. package/dist/es/standards-sdk.es64.js +1 -1
  266. package/dist/es/standards-sdk.es65.js +1 -1
  267. package/dist/es/standards-sdk.es66.js +1 -1
  268. package/dist/es/standards-sdk.es67.js +7 -7
  269. package/dist/es/standards-sdk.es69.js +1 -1
  270. package/dist/es/standards-sdk.es7.js +1 -1
  271. package/dist/es/standards-sdk.es71.js +2 -2
  272. package/dist/es/standards-sdk.es72.js +3 -3
  273. package/dist/es/standards-sdk.es75.js +5 -5
  274. package/dist/es/standards-sdk.es76.js +3 -3
  275. package/dist/es/standards-sdk.es77.js +2 -2
  276. package/dist/es/standards-sdk.es78.js +1 -1
  277. package/dist/es/standards-sdk.es81.js +2 -2
  278. package/dist/es/standards-sdk.es83.js +2 -2
  279. package/dist/es/standards-sdk.es84.js +4 -4
  280. package/dist/es/standards-sdk.es85.js +1 -1
  281. package/dist/es/standards-sdk.es88.js +1 -1
  282. package/dist/es/standards-sdk.es89.js +2 -2
  283. package/dist/es/standards-sdk.es9.js +2 -2
  284. package/dist/es/standards-sdk.es90.js +4 -4
  285. package/dist/es/standards-sdk.es94.js +3 -3
  286. package/dist/es/standards-sdk.es96.js +2 -2
  287. package/dist/es/standards-sdk.es98.js +1 -1
  288. package/dist/es/standards-sdk.es99.js +3 -3
  289. package/package.json +1 -1
@@ -1,358 +1,1143 @@
1
- const protoFieldToTypeRegistry = {
2
- tokenCreation: { type: "TOKENCREATE", humanReadableType: "Token Creation" },
3
- tokenAirdrop: { type: "TOKENAIRDROP", humanReadableType: "Token Airdrop" },
4
- tokenMint: { type: "TOKENMINT", humanReadableType: "Token Mint" },
5
- tokenBurn: { type: "TOKENBURN", humanReadableType: "Token Burn" },
6
- tokenUpdate: { type: "TOKENUPDATE", humanReadableType: "Token Update" },
7
- tokenDeletion: { type: "TOKENDELETE", humanReadableType: "Token Deletion" },
8
- tokenAssociate: {
9
- type: "TOKENASSOCIATE",
10
- humanReadableType: "Token Association"
11
- },
12
- tokenDissociate: {
13
- type: "TOKENDISSOCIATE",
14
- humanReadableType: "Token Dissociation"
15
- },
16
- tokenFreeze: { type: "TOKENFREEZE", humanReadableType: "Token Freeze" },
17
- tokenUnfreeze: { type: "TOKENUNFREEZE", humanReadableType: "Token Unfreeze" },
18
- tokenGrantKyc: {
19
- type: "TOKENGRANTKYC",
20
- humanReadableType: "Token Grant KYC"
21
- },
22
- tokenRevokeKyc: {
23
- type: "TOKENREVOKEKYC",
24
- humanReadableType: "Token Revoke KYC"
25
- },
26
- tokenPause: { type: "TOKENPAUSE", humanReadableType: "Token Pause" },
27
- tokenUnpause: { type: "TOKENUNPAUSE", humanReadableType: "Token Unpause" },
28
- tokenWipe: { type: "TOKENWIPE", humanReadableType: "Token Wipe" },
29
- tokenFeeScheduleUpdate: {
30
- type: "TOKENFEESCHEDULEUPDATE",
31
- humanReadableType: "Token Fee Schedule Update"
32
- },
33
- tokenCancelAirdrop: {
34
- type: "TOKENCANCELAIRDROP",
35
- humanReadableType: "Cancel Token Airdrop"
36
- },
37
- tokenClaimAirdrop: {
38
- type: "TOKENCLAIMAIRDROP",
39
- humanReadableType: "Claim Token Airdrop"
40
- },
41
- tokenReject: { type: "TOKENREJECT", humanReadableType: "Token Reject" },
42
- tokenUpdateNfts: {
43
- type: "TOKENUPDATENFTS",
44
- humanReadableType: "Update NFT Metadata"
45
- },
46
- cryptoTransfer: {
47
- type: "CRYPTOTRANSFER",
48
- humanReadableType: "Crypto Transfer"
49
- },
50
- cryptoCreateAccount: {
51
- type: "ACCOUNTCREATE",
52
- humanReadableType: "Account Creation"
53
- },
54
- cryptoUpdateAccount: {
55
- type: "ACCOUNTUPDATE",
56
- humanReadableType: "Account Update"
57
- },
58
- cryptoDelete: {
59
- type: "ACCOUNTDELETE",
60
- humanReadableType: "Account Deletion"
61
- },
62
- cryptoApproveAllowance: {
63
- type: "APPROVEALLOWANCE",
64
- humanReadableType: "Approve Allowance"
65
- },
66
- cryptoDeleteAllowance: {
67
- type: "DELETEALLOWANCE",
68
- humanReadableType: "Delete Allowance"
69
- },
70
- cryptoAddLiveHash: {
71
- type: "CRYPTOADDLIVEHASH",
72
- humanReadableType: "Add Live Hash"
73
- },
74
- cryptoDeleteLiveHash: {
75
- type: "CRYPTODELETELIVEHASH",
76
- humanReadableType: "Delete Live Hash"
77
- },
78
- consensusCreateTopic: {
79
- type: "TOPICCREATE",
80
- humanReadableType: "Topic Creation"
81
- },
82
- consensusSubmitMessage: {
83
- type: "CONSENSUSSUBMITMESSAGE",
84
- humanReadableType: "Submit Message"
85
- },
86
- consensusUpdateTopic: {
87
- type: "TOPICUPDATE",
88
- humanReadableType: "Topic Update"
89
- },
90
- consensusDeleteTopic: {
91
- type: "TOPICDELETE",
92
- humanReadableType: "Topic Deletion"
93
- },
94
- uncheckedSubmit: {
95
- type: "UNCHECKEDSUBMIT",
96
- humanReadableType: "Unchecked Submit"
97
- },
98
- contractCall: { type: "CONTRACTCALL", humanReadableType: "Contract Call" },
99
- contractCreateInstance: {
100
- type: "CONTRACTCREATE",
101
- humanReadableType: "Contract Creation"
102
- },
103
- contractUpdateInstance: {
104
- type: "CONTRACTUPDATE",
105
- humanReadableType: "Contract Update"
106
- },
107
- contractDeleteInstance: {
108
- type: "CONTRACTDELETE",
109
- humanReadableType: "Contract Deletion"
110
- },
111
- ethereumTransaction: {
112
- type: "ETHEREUMTRANSACTION",
113
- humanReadableType: "Ethereum Transaction"
114
- },
115
- fileCreate: { type: "FILECREATE", humanReadableType: "File Creation" },
116
- fileUpdate: { type: "FILEUPDATE", humanReadableType: "File Update" },
117
- fileDelete: { type: "FILEDELETE", humanReadableType: "File Deletion" },
118
- fileAppend: { type: "FILEAPPEND", humanReadableType: "File Append" },
119
- scheduleCreate: {
120
- type: "SCHEDULECREATE",
121
- humanReadableType: "Schedule Creation"
122
- },
123
- scheduleSign: { type: "SCHEDULESIGN", humanReadableType: "Schedule Sign" },
124
- scheduleDelete: {
125
- type: "SCHEDULEDELETE",
126
- humanReadableType: "Schedule Deletion"
127
- },
128
- freeze: { type: "FREEZE", humanReadableType: "Network Freeze" },
129
- systemDelete: { type: "SYSTEMDELETE", humanReadableType: "System Delete" },
130
- systemUndelete: {
131
- type: "SYSTEMUNDELETE",
132
- humanReadableType: "System Undelete"
133
- },
134
- nodeCreate: { type: "NODECREATE", humanReadableType: "Node Creation" },
135
- nodeUpdate: { type: "NODEUPDATE", humanReadableType: "Node Update" },
136
- nodeDelete: { type: "NODEDELETE", humanReadableType: "Node Deletion" },
137
- nodeStakeUpdate: {
138
- type: "NODESTAKEUPDATE",
139
- humanReadableType: "Node Stake Update"
140
- },
141
- utilPrng: { type: "PRNG", humanReadableType: "Pseudo Random Number" },
142
- atomicBatch: { type: "ATOMICBATCH", humanReadableType: "Atomic Batch" },
143
- stateSignatureTransaction: {
144
- type: "STATESIGNATURETRANSACTION",
145
- humanReadableType: "State Signature"
146
- },
147
- historyProofSignature: {
148
- type: "HISTORYPROOFSIGNATURE",
149
- humanReadableType: "History Proof Signature"
150
- },
151
- historyProofKeyPublication: {
152
- type: "HISTORYPROOFKEYPUBLICATION",
153
- humanReadableType: "History Proof Key Publication"
154
- },
155
- historyProofVote: {
156
- type: "HISTORYPROOFVOTE",
157
- humanReadableType: "History Proof Vote"
158
- },
159
- hintsPreprocessingVote: {
160
- type: "HINTSPREPROCESSINGVOTE",
161
- humanReadableType: "Hints Preprocessing Vote"
162
- },
163
- hintsKeyPublication: {
164
- type: "HINTSKEYPUBLICATION",
165
- humanReadableType: "Hints Key Publication"
166
- },
167
- hintsPartialSignature: {
168
- type: "HINTSPARTIALSIGNATURE",
169
- humanReadableType: "Hints Partial Signature"
170
- },
171
- crsPublication: {
172
- type: "CRSPUBLICATION",
173
- humanReadableType: "CRS Publication"
174
- },
175
- transactionID: { type: "UNKNOWN", humanReadableType: "Unknown Transaction" },
176
- nodeAccountID: { type: "UNKNOWN", humanReadableType: "Unknown Transaction" },
177
- transactionFee: { type: "UNKNOWN", humanReadableType: "Unknown Transaction" },
178
- transactionValidDuration: {
179
- type: "UNKNOWN",
180
- humanReadableType: "Unknown Transaction"
181
- },
182
- generateRecord: { type: "UNKNOWN", humanReadableType: "Unknown Transaction" },
183
- memo: { type: "UNKNOWN", humanReadableType: "Unknown Transaction" },
184
- batchKey: { type: "UNKNOWN", humanReadableType: "Unknown Transaction" },
185
- maxCustomFees: { type: "UNKNOWN", humanReadableType: "Unknown Transaction" }
186
- };
187
- const humanReadableTypeRegistry = {
188
- cryptoTransfer: "HBAR Transfer",
189
- CRYPTOTRANSFER: "HBAR Transfer",
190
- cryptoCreateAccount: "Create Account",
191
- ACCOUNTCREATE: "Create Account",
192
- cryptoUpdateAccount: "Update Account",
193
- ACCOUNTUPDATE: "Update Account",
194
- cryptoDeleteAccount: "Delete Account",
195
- cryptoDelete: "Delete Account",
196
- ACCOUNTDELETE: "Delete Account",
197
- cryptoApproveAllowance: "Approve Allowance",
198
- APPROVEALLOWANCE: "Approve Allowance",
199
- cryptoDeleteAllowance: "Delete Allowance",
200
- DELETEALLOWANCE: "Delete Allowance",
201
- CRYPTOADDLIVEHASH: "Add Live Hash",
202
- CRYPTODELETELIVEHASH: "Delete Live Hash",
203
- consensusCreateTopic: "Create Topic",
204
- TOPICCREATE: "Create Topic",
205
- consensusUpdateTopic: "Update Topic",
206
- TOPICUPDATE: "Update Topic",
207
- consensusSubmitMessage: "Submit Message",
208
- CONSENSUSSUBMITMESSAGE: "Submit Message",
209
- consensusDeleteTopic: "Delete Topic",
210
- TOPICDELETE: "Delete Topic",
211
- UNCHECKEDSUBMIT: "Unchecked Submit",
212
- fileCreate: "Create File",
213
- FILECREATE: "Create File",
214
- fileAppend: "Append File",
215
- FILEAPPEND: "Append File",
216
- fileUpdate: "Update File",
217
- FILEUPDATE: "Update File",
218
- fileDelete: "Delete File",
219
- FILEDELETE: "Delete File",
220
- contractCall: "Contract Call",
221
- CONTRACTCALL: "Contract Call",
222
- contractCreate: "Create Contract",
223
- CONTRACTCREATE: "Create Contract",
224
- contractUpdate: "Update Contract",
225
- CONTRACTUPDATE: "Update Contract",
226
- contractDelete: "Delete Contract",
227
- CONTRACTDELETE: "Delete Contract",
228
- ethereumTransaction: "Ethereum Transaction",
229
- ETHEREUMTRANSACTION: "Ethereum Transaction",
230
- tokenCreate: "Create Token",
231
- TOKENCREATE: "Create Token",
232
- tokenUpdate: "Update Token",
233
- TOKENUPDATE: "Update Token",
234
- tokenDelete: "Delete Token",
235
- TOKENDELETE: "Delete Token",
236
- tokenAssociate: "Associate Token",
237
- TOKENASSOCIATE: "Associate Token",
238
- tokenDissociate: "Dissociate Token",
239
- TOKENDISSOCIATE: "Dissociate Token",
240
- tokenMint: "Mint Token",
241
- TOKENMINT: "Mint Token",
242
- tokenBurn: "Burn Token",
243
- TOKENBURN: "Burn Token",
244
- tokenFeeScheduleUpdate: "Update Token Fee Schedule",
245
- TOKENFEESCHEDULEUPDATE: "Update Token Fee Schedule",
246
- tokenFreeze: "Freeze Token",
247
- TOKENFREEZE: "Freeze Token",
248
- tokenUnfreeze: "Unfreeze Token",
249
- TOKENUNFREEZE: "Unfreeze Token",
250
- tokenGrantKyc: "Grant KYC",
251
- TOKENGRANTKYC: "Grant KYC",
252
- tokenRevokeKyc: "Revoke KYC",
253
- TOKENREVOKEKYC: "Revoke KYC",
254
- tokenPause: "Pause Token",
255
- TOKENPAUSE: "Pause Token",
256
- tokenUnpause: "Unpause Token",
257
- TOKENUNPAUSE: "Unpause Token",
258
- tokenWipe: "Wipe Token",
259
- TOKENWIPE: "Wipe Token",
260
- tokenAirdrop: "Token Airdrop",
261
- TOKENAIRDROP: "Token Airdrop",
262
- TOKENCANCELAIRDROP: "Cancel Token Airdrop",
263
- TOKENCLAIMAIRDROP: "Claim Token Airdrop",
264
- TOKENREJECT: "Token Reject",
265
- TOKENUPDATENFTS: "Update NFT Metadata",
266
- scheduleCreate: "Create Schedule",
267
- SCHEDULECREATE: "Create Schedule",
268
- scheduleSign: "Sign Schedule",
269
- SCHEDULESIGN: "Sign Schedule",
270
- SCHEDULEDELETE: "Delete Schedule",
271
- FREEZE: "Network Freeze",
272
- SYSTEMDELETE: "System Delete",
273
- SYSTEMUNDELETE: "System Undelete",
274
- NODECREATE: "Create Node",
275
- NODEUPDATE: "Update Node",
276
- NODEDELETE: "Delete Node",
277
- NODESTAKEUPDATE: "Update Node Stake",
278
- utilPrng: "Generate Random Number",
279
- PRNG: "Generate Random Number",
280
- ATOMICBATCH: "Atomic Batch",
281
- STATESIGNATURETRANSACTION: "State Signature",
282
- HISTORYPROOFSIGNATURE: "History Proof Signature",
283
- HISTORYPROOFKEYPUBLICATION: "History Proof Key Publication",
284
- HISTORYPROOFVOTE: "History Proof Vote",
285
- HINTSPREPROCESSINGVOTE: "Hints Preprocessing Vote",
286
- HINTSKEYPUBLICATION: "Hints Key Publication",
287
- HINTSPARTIALSIGNATURE: "Hints Partial Signature",
288
- CRSPUBLICATION: "CRS Publication",
289
- unknown: "Unknown Transaction",
290
- UNKNOWN: "Unknown Transaction"
291
- };
292
- const schedulableTransactionTypeRegistry = {
293
- tokenCreation: "tokenCreate",
294
- tokenAirdrop: "tokenAirdrop",
295
- cryptoTransfer: "cryptoTransfer",
296
- consensusSubmitMessage: "consensusSubmitMessage",
297
- contractCall: "contractCall",
298
- cryptoCreateAccount: "cryptoCreateAccount",
299
- cryptoUpdateAccount: "cryptoUpdateAccount",
300
- cryptoApproveAllowance: "cryptoApproveAllowance",
301
- cryptoDeleteAllowance: "cryptoDeleteAllowance",
302
- cryptoDelete: "cryptoDelete",
303
- consensusCreateTopic: "consensusCreateTopic",
304
- consensusUpdateTopic: "consensusUpdateTopic",
305
- consensusDeleteTopic: "consensusDeleteTopic",
306
- fileCreate: "fileCreate",
307
- fileAppend: "fileAppend",
308
- fileUpdate: "fileUpdate",
309
- fileDelete: "fileDelete",
310
- contractCreateInstance: "contractCreate",
311
- contractUpdateInstance: "contractUpdate",
312
- contractDeleteInstance: "contractDelete",
313
- tokenUpdate: "tokenUpdate",
314
- tokenDeletion: "tokenDelete",
315
- tokenAssociate: "tokenAssociate",
316
- tokenDissociate: "tokenDissociate",
317
- tokenMint: "tokenMint",
318
- tokenBurn: "tokenBurn",
319
- tokenFeeScheduleUpdate: "tokenFeeScheduleUpdate",
320
- tokenFreeze: "tokenFreeze",
321
- tokenUnfreeze: "tokenUnfreeze",
322
- tokenGrantKyc: "tokenGrantKyc",
323
- tokenRevokeKyc: "tokenRevokeKyc",
324
- tokenPause: "tokenPause",
325
- tokenUnpause: "tokenUnpause",
326
- tokenWipe: "tokenWipe",
327
- utilPrng: "utilPrng"
328
- };
329
- function getTransactionTypeFromBody(txBody) {
330
- for (const [field, typeInfo] of Object.entries(protoFieldToTypeRegistry)) {
331
- if (txBody[field]) {
332
- return typeInfo;
1
+ import { proto } from "@hashgraph/proto";
2
+ import { AccountId, Long, TokenId } from "@hashgraph/sdk";
3
+ import { parseKey, hasTransactionType, extractTransactionBody } from "./standards-sdk.es178.js";
4
+ import { Buffer } from "buffer";
5
+ class HTSParser {
6
+ /**
7
+ * Main entry point for parsing HTS transactions from a Transaction object
8
+ * This method bridges between the Transaction object and the protobuf parsers
9
+ */
10
+ static parseHTSTransaction(transaction) {
11
+ try {
12
+ const transactionBody = transaction._transactionBody;
13
+ if (!transactionBody) {
14
+ return {};
15
+ }
16
+ if (transactionBody.tokenCreation) {
17
+ const tokenCreation = this.parseTokenCreate(
18
+ transactionBody.tokenCreation
19
+ );
20
+ if (tokenCreation) {
21
+ return {
22
+ type: "TOKENCREATE",
23
+ humanReadableType: "Token Creation",
24
+ tokenCreation
25
+ };
26
+ }
27
+ }
28
+ if (transactionBody.tokenMint) {
29
+ const tokenMint = this.parseTokenMint(transactionBody.tokenMint);
30
+ if (tokenMint) {
31
+ return {
32
+ type: "TOKENMINT",
33
+ humanReadableType: "Token Mint",
34
+ tokenMint
35
+ };
36
+ }
37
+ }
38
+ if (transactionBody.tokenBurn) {
39
+ const tokenBurn = this.parseTokenBurn(transactionBody.tokenBurn);
40
+ if (tokenBurn) {
41
+ return {
42
+ type: "TOKENBURN",
43
+ humanReadableType: "Token Burn",
44
+ tokenBurn
45
+ };
46
+ }
47
+ }
48
+ if (transactionBody.tokenUpdate) {
49
+ const tokenUpdate = this.parseTokenUpdate(transactionBody.tokenUpdate);
50
+ if (tokenUpdate) {
51
+ return {
52
+ type: "TOKENUPDATE",
53
+ humanReadableType: "Token Update",
54
+ tokenUpdate
55
+ };
56
+ }
57
+ }
58
+ if (transactionBody.tokenFreeze) {
59
+ const tokenFreeze = this.parseTokenFreeze(transactionBody.tokenFreeze);
60
+ if (tokenFreeze) {
61
+ return {
62
+ type: "TOKENFREEZE",
63
+ humanReadableType: "Token Freeze",
64
+ tokenFreeze
65
+ };
66
+ }
67
+ }
68
+ if (transactionBody.tokenUnfreeze) {
69
+ const tokenUnfreeze = this.parseTokenUnfreeze(
70
+ transactionBody.tokenUnfreeze
71
+ );
72
+ if (tokenUnfreeze) {
73
+ return {
74
+ type: "TOKENUNFREEZE",
75
+ humanReadableType: "Token Unfreeze",
76
+ tokenUnfreeze
77
+ };
78
+ }
79
+ }
80
+ if (transactionBody.tokenGrantKyc) {
81
+ const tokenGrantKyc = this.parseTokenGrantKyc(
82
+ transactionBody.tokenGrantKyc
83
+ );
84
+ if (tokenGrantKyc) {
85
+ return {
86
+ type: "TOKENGRANTKYC",
87
+ humanReadableType: "Token Grant KYC",
88
+ tokenGrantKyc
89
+ };
90
+ }
91
+ }
92
+ if (transactionBody.tokenRevokeKyc) {
93
+ const tokenRevokeKyc = this.parseTokenRevokeKyc(
94
+ transactionBody.tokenRevokeKyc
95
+ );
96
+ if (tokenRevokeKyc) {
97
+ return {
98
+ type: "TOKENREVOKEKYC",
99
+ humanReadableType: "Token Revoke KYC",
100
+ tokenRevokeKyc
101
+ };
102
+ }
103
+ }
104
+ if (transactionBody.tokenPause) {
105
+ const tokenPause = this.parseTokenPause(transactionBody.tokenPause);
106
+ if (tokenPause) {
107
+ return {
108
+ type: "TOKENPAUSE",
109
+ humanReadableType: "Token Pause",
110
+ tokenPause
111
+ };
112
+ }
113
+ }
114
+ if (transactionBody.tokenUnpause) {
115
+ const tokenUnpause = this.parseTokenUnpause(
116
+ transactionBody.tokenUnpause
117
+ );
118
+ if (tokenUnpause) {
119
+ return {
120
+ type: "TOKENUNPAUSE",
121
+ humanReadableType: "Token Unpause",
122
+ tokenUnpause
123
+ };
124
+ }
125
+ }
126
+ if (transactionBody.tokenWipe) {
127
+ const tokenWipeAccount = this.parseTokenWipeAccount(
128
+ transactionBody.tokenWipe
129
+ );
130
+ if (tokenWipeAccount) {
131
+ return {
132
+ type: "TOKENWIPEACCOUNT",
133
+ humanReadableType: "Token Wipe Account",
134
+ tokenWipeAccount
135
+ };
136
+ }
137
+ }
138
+ if (transactionBody.tokenDeletion) {
139
+ const tokenDelete = this.parseTokenDelete(
140
+ transactionBody.tokenDeletion
141
+ );
142
+ if (tokenDelete) {
143
+ return {
144
+ type: "TOKENDELETE",
145
+ humanReadableType: "Token Delete",
146
+ tokenDelete
147
+ };
148
+ }
149
+ }
150
+ if (transactionBody.tokenAssociate) {
151
+ const tokenAssociate = this.parseTokenAssociate(
152
+ transactionBody.tokenAssociate
153
+ );
154
+ if (tokenAssociate) {
155
+ return {
156
+ type: "TOKENASSOCIATE",
157
+ humanReadableType: "Token Associate",
158
+ tokenAssociate
159
+ };
160
+ }
161
+ }
162
+ if (transactionBody.tokenDissociate) {
163
+ const tokenDissociate = this.parseTokenDissociate(
164
+ transactionBody.tokenDissociate
165
+ );
166
+ if (tokenDissociate) {
167
+ return {
168
+ type: "TOKENDISSOCIATE",
169
+ humanReadableType: "Token Dissociate",
170
+ tokenDissociate
171
+ };
172
+ }
173
+ }
174
+ if (transactionBody.tokenFeeScheduleUpdate) {
175
+ const tokenFeeScheduleUpdate = this.parseTokenFeeScheduleUpdate(
176
+ transactionBody.tokenFeeScheduleUpdate
177
+ );
178
+ if (tokenFeeScheduleUpdate) {
179
+ return {
180
+ type: "TOKENFEESCHEDULEUPDATE",
181
+ humanReadableType: "Token Fee Schedule Update",
182
+ tokenFeeScheduleUpdate
183
+ };
184
+ }
185
+ }
186
+ const airdrop = this.parseTokenAirdrop(transaction);
187
+ if (airdrop) {
188
+ return {
189
+ type: "TOKENAIRDROP",
190
+ humanReadableType: "Token Airdrop",
191
+ tokenAirdrop: airdrop
192
+ };
193
+ }
194
+ return {};
195
+ } catch (error) {
196
+ console.warn("[HTSParser] Failed to parse HTS transaction:", error);
197
+ return {};
333
198
  }
334
199
  }
335
- return { type: "UNKNOWN", humanReadableType: "Unknown Transaction" };
336
- }
337
- function getSchedulableTransactionType(txBody) {
338
- for (const [field, type] of Object.entries(
339
- schedulableTransactionTypeRegistry
340
- )) {
341
- if (txBody[field]) {
342
- return type;
200
+ static parseTokenCreate(body) {
201
+ if (!body) return void 0;
202
+ const data = {};
203
+ if (body.name) {
204
+ data.tokenName = body.name;
205
+ }
206
+ if (body.symbol) {
207
+ data.tokenSymbol = body.symbol;
208
+ }
209
+ if (body.treasury) {
210
+ data.treasuryAccountId = new AccountId(
211
+ body.treasury.shardNum ?? 0,
212
+ body.treasury.realmNum ?? 0,
213
+ body.treasury.accountNum ?? 0
214
+ ).toString();
215
+ }
216
+ if (body.initialSupply) {
217
+ data.initialSupply = Long.fromValue(body.initialSupply).toString();
218
+ }
219
+ if (body.decimals !== void 0 && body.decimals !== null) {
220
+ data.decimals = Long.fromValue(body.decimals).toNumber();
221
+ }
222
+ if (body.maxSupply) {
223
+ data.maxSupply = Long.fromValue(body.maxSupply).toString();
224
+ }
225
+ if (body.memo) {
226
+ data.memo = body.memo;
227
+ }
228
+ if (body.tokenType !== null && body.tokenType !== void 0) {
229
+ data.tokenType = proto.TokenType[body.tokenType];
230
+ }
231
+ if (body.supplyType !== null && body.supplyType !== void 0) {
232
+ data.supplyType = proto.TokenSupplyType[body.supplyType];
233
+ }
234
+ data.adminKey = parseKey(body.adminKey);
235
+ data.kycKey = parseKey(body.kycKey);
236
+ data.freezeKey = parseKey(body.freezeKey);
237
+ data.wipeKey = parseKey(body.wipeKey);
238
+ data.supplyKey = parseKey(body.supplyKey);
239
+ data.feeScheduleKey = parseKey(body.feeScheduleKey);
240
+ data.pauseKey = parseKey(body.pauseKey);
241
+ if (body.autoRenewAccount) {
242
+ data.autoRenewAccount = new AccountId(
243
+ body.autoRenewAccount.shardNum ?? 0,
244
+ body.autoRenewAccount.realmNum ?? 0,
245
+ body.autoRenewAccount.accountNum ?? 0
246
+ ).toString();
247
+ }
248
+ if (body.autoRenewPeriod?.seconds) {
249
+ data.autoRenewPeriod = Long.fromValue(
250
+ body.autoRenewPeriod.seconds
251
+ ).toString();
252
+ }
253
+ if (body.customFees && body.customFees.length > 0) {
254
+ data.customFees = body.customFees.map((fee) => {
255
+ const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
256
+ fee.feeCollectorAccountId.shardNum ?? 0,
257
+ fee.feeCollectorAccountId.realmNum ?? 0,
258
+ fee.feeCollectorAccountId.accountNum ?? 0
259
+ ).toString() : "Not Set";
260
+ const commonFeeData = {
261
+ feeCollectorAccountId,
262
+ allCollectorsAreExempt: fee.allCollectorsAreExempt || false
263
+ };
264
+ if (fee.fixedFee) {
265
+ return {
266
+ ...commonFeeData,
267
+ feeType: "FIXED_FEE",
268
+ fixedFee: {
269
+ amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
270
+ denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
271
+ fee.fixedFee.denominatingTokenId.shardNum ?? 0,
272
+ fee.fixedFee.denominatingTokenId.realmNum ?? 0,
273
+ fee.fixedFee.denominatingTokenId.tokenNum ?? 0
274
+ ).toString() : void 0
275
+ }
276
+ };
277
+ } else if (fee.fractionalFee) {
278
+ return {
279
+ ...commonFeeData,
280
+ feeType: "FRACTIONAL_FEE",
281
+ fractionalFee: {
282
+ numerator: Long.fromValue(
283
+ fee.fractionalFee.fractionalAmount?.numerator || 0
284
+ ).toString(),
285
+ denominator: Long.fromValue(
286
+ fee.fractionalFee.fractionalAmount?.denominator || 1
287
+ ).toString(),
288
+ minimumAmount: Long.fromValue(
289
+ fee.fractionalFee.minimumAmount || 0
290
+ ).toString(),
291
+ maximumAmount: Long.fromValue(
292
+ fee.fractionalFee.maximumAmount || 0
293
+ ).toString(),
294
+ netOfTransfers: fee.fractionalFee.netOfTransfers || false
295
+ }
296
+ };
297
+ } else if (fee.royaltyFee) {
298
+ let fallbackFeeData = void 0;
299
+ if (fee.royaltyFee.fallbackFee) {
300
+ fallbackFeeData = {
301
+ amount: Long.fromValue(
302
+ fee.royaltyFee.fallbackFee.amount || 0
303
+ ).toString(),
304
+ denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
305
+ fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
306
+ fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
307
+ fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
308
+ ).toString() : void 0
309
+ };
310
+ }
311
+ return {
312
+ ...commonFeeData,
313
+ feeType: "ROYALTY_FEE",
314
+ royaltyFee: {
315
+ numerator: Long.fromValue(
316
+ fee.royaltyFee.exchangeValueFraction?.numerator || 0
317
+ ).toString(),
318
+ denominator: Long.fromValue(
319
+ fee.royaltyFee.exchangeValueFraction?.denominator || 1
320
+ ).toString(),
321
+ fallbackFee: fallbackFeeData
322
+ }
323
+ };
324
+ }
325
+ return {
326
+ ...commonFeeData,
327
+ feeType: "FIXED_FEE",
328
+ fixedFee: { amount: "0" }
329
+ };
330
+ });
331
+ }
332
+ return data;
333
+ }
334
+ static parseTokenMint(body) {
335
+ if (!body || !body.token || body.amount === null || body.amount === void 0) {
336
+ return void 0;
337
+ }
338
+ const data = {
339
+ tokenId: new TokenId(
340
+ body.token.shardNum ?? 0,
341
+ body.token.realmNum ?? 0,
342
+ body.token.tokenNum ?? 0
343
+ ).toString(),
344
+ amount: Long.fromValue(body.amount).toNumber()
345
+ };
346
+ if (body.metadata && body.metadata.length > 0) {
347
+ data.metadata = body.metadata.map(
348
+ (meta) => Buffer.from(meta).toString("base64")
349
+ );
350
+ }
351
+ return data;
352
+ }
353
+ static parseTokenBurn(body) {
354
+ if (!body || !body.token || body.amount === null || body.amount === void 0) {
355
+ return void 0;
356
+ }
357
+ const data = {
358
+ tokenId: new TokenId(
359
+ body.token.shardNum ?? 0,
360
+ body.token.realmNum ?? 0,
361
+ body.token.tokenNum ?? 0
362
+ ).toString(),
363
+ amount: Long.fromValue(body.amount).toNumber()
364
+ };
365
+ if (body.serialNumbers && body.serialNumbers.length > 0) {
366
+ data.serialNumbers = body.serialNumbers.map(
367
+ (sn) => Long.fromValue(sn).toNumber()
368
+ );
369
+ }
370
+ return data;
371
+ }
372
+ static parseTokenUpdate(body) {
373
+ if (!body) return void 0;
374
+ const data = {};
375
+ if (body.token) {
376
+ data.tokenId = new TokenId(
377
+ body.token.shardNum ?? 0,
378
+ body.token.realmNum ?? 0,
379
+ body.token.tokenNum ?? 0
380
+ ).toString();
381
+ }
382
+ if (body.name) {
383
+ data.name = body.name;
384
+ }
385
+ if (body.symbol) {
386
+ data.symbol = body.symbol;
387
+ }
388
+ if (body.treasury) {
389
+ data.treasuryAccountId = new AccountId(
390
+ body.treasury.shardNum ?? 0,
391
+ body.treasury.realmNum ?? 0,
392
+ body.treasury.accountNum ?? 0
393
+ ).toString();
394
+ }
395
+ data.adminKey = parseKey(body.adminKey);
396
+ data.kycKey = parseKey(body.kycKey);
397
+ data.freezeKey = parseKey(body.freezeKey);
398
+ data.wipeKey = parseKey(body.wipeKey);
399
+ data.supplyKey = parseKey(body.supplyKey);
400
+ data.feeScheduleKey = parseKey(body.feeScheduleKey);
401
+ data.pauseKey = parseKey(body.pauseKey);
402
+ if (body.autoRenewAccount) {
403
+ data.autoRenewAccountId = new AccountId(
404
+ body.autoRenewAccount.shardNum ?? 0,
405
+ body.autoRenewAccount.realmNum ?? 0,
406
+ body.autoRenewAccount.accountNum ?? 0
407
+ ).toString();
408
+ }
409
+ if (body.autoRenewPeriod?.seconds) {
410
+ data.autoRenewPeriod = Long.fromValue(
411
+ body.autoRenewPeriod.seconds
412
+ ).toString();
413
+ }
414
+ if (body.memo?.value !== void 0) {
415
+ data.memo = body.memo.value;
416
+ }
417
+ if (body.expiry?.seconds) {
418
+ data.expiry = `${Long.fromValue(body.expiry.seconds).toString()}.${body.expiry.nanos}`;
419
+ }
420
+ return data;
421
+ }
422
+ static parseTokenFeeScheduleUpdate(body) {
423
+ if (!body) return void 0;
424
+ const data = {};
425
+ if (body.tokenId) {
426
+ data.tokenId = new TokenId(
427
+ body.tokenId.shardNum ?? 0,
428
+ body.tokenId.realmNum ?? 0,
429
+ body.tokenId.tokenNum ?? 0
430
+ ).toString();
431
+ }
432
+ if (body.customFees && body.customFees.length > 0) {
433
+ data.customFees = body.customFees.map((fee) => {
434
+ const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
435
+ fee.feeCollectorAccountId.shardNum ?? 0,
436
+ fee.feeCollectorAccountId.realmNum ?? 0,
437
+ fee.feeCollectorAccountId.accountNum ?? 0
438
+ ).toString() : "Not Set";
439
+ const commonFeeData = {
440
+ feeCollectorAccountId,
441
+ allCollectorsAreExempt: fee.allCollectorsAreExempt || false
442
+ };
443
+ if (fee.fixedFee) {
444
+ return {
445
+ ...commonFeeData,
446
+ feeType: "FIXED_FEE",
447
+ fixedFee: {
448
+ amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
449
+ denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
450
+ fee.fixedFee.denominatingTokenId.shardNum ?? 0,
451
+ fee.fixedFee.denominatingTokenId.realmNum ?? 0,
452
+ fee.fixedFee.denominatingTokenId.tokenNum ?? 0
453
+ ).toString() : void 0
454
+ }
455
+ };
456
+ } else if (fee.fractionalFee) {
457
+ return {
458
+ ...commonFeeData,
459
+ feeType: "FRACTIONAL_FEE",
460
+ fractionalFee: {
461
+ numerator: Long.fromValue(
462
+ fee.fractionalFee.fractionalAmount?.numerator || 0
463
+ ).toString(),
464
+ denominator: Long.fromValue(
465
+ fee.fractionalFee.fractionalAmount?.denominator || 1
466
+ ).toString(),
467
+ minimumAmount: Long.fromValue(
468
+ fee.fractionalFee.minimumAmount || 0
469
+ ).toString(),
470
+ maximumAmount: Long.fromValue(
471
+ fee.fractionalFee.maximumAmount || 0
472
+ ).toString(),
473
+ netOfTransfers: fee.fractionalFee.netOfTransfers || false
474
+ }
475
+ };
476
+ } else if (fee.royaltyFee) {
477
+ let fallbackFeeData = void 0;
478
+ if (fee.royaltyFee.fallbackFee) {
479
+ fallbackFeeData = {
480
+ amount: Long.fromValue(
481
+ fee.royaltyFee.fallbackFee.amount || 0
482
+ ).toString(),
483
+ denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
484
+ fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
485
+ fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
486
+ fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
487
+ ).toString() : void 0
488
+ };
489
+ }
490
+ return {
491
+ ...commonFeeData,
492
+ feeType: "ROYALTY_FEE",
493
+ royaltyFee: {
494
+ numerator: Long.fromValue(
495
+ fee.royaltyFee.exchangeValueFraction?.numerator || 0
496
+ ).toString(),
497
+ denominator: Long.fromValue(
498
+ fee.royaltyFee.exchangeValueFraction?.denominator || 1
499
+ ).toString(),
500
+ fallbackFee: fallbackFeeData
501
+ }
502
+ };
503
+ }
504
+ return {
505
+ ...commonFeeData,
506
+ feeType: "FIXED_FEE",
507
+ fixedFee: { amount: "0" }
508
+ };
509
+ });
510
+ }
511
+ return data;
512
+ }
513
+ static parseTokenFreeze(body) {
514
+ if (!body) return void 0;
515
+ const data = {};
516
+ if (body.token) {
517
+ data.tokenId = new TokenId(
518
+ body.token.shardNum ?? 0,
519
+ body.token.realmNum ?? 0,
520
+ body.token.tokenNum ?? 0
521
+ ).toString();
522
+ }
523
+ if (body.account) {
524
+ data.accountId = new AccountId(
525
+ body.account.shardNum ?? 0,
526
+ body.account.realmNum ?? 0,
527
+ body.account.accountNum ?? 0
528
+ ).toString();
529
+ }
530
+ return data;
531
+ }
532
+ static parseTokenUnfreeze(body) {
533
+ if (!body) return void 0;
534
+ const data = {};
535
+ if (body.token) {
536
+ data.tokenId = new TokenId(
537
+ body.token.shardNum ?? 0,
538
+ body.token.realmNum ?? 0,
539
+ body.token.tokenNum ?? 0
540
+ ).toString();
541
+ }
542
+ if (body.account) {
543
+ data.accountId = new AccountId(
544
+ body.account.shardNum ?? 0,
545
+ body.account.realmNum ?? 0,
546
+ body.account.accountNum ?? 0
547
+ ).toString();
548
+ }
549
+ return data;
550
+ }
551
+ static parseTokenGrantKyc(body) {
552
+ if (!body) return void 0;
553
+ const data = {};
554
+ if (body.token) {
555
+ data.tokenId = new TokenId(
556
+ body.token.shardNum ?? 0,
557
+ body.token.realmNum ?? 0,
558
+ body.token.tokenNum ?? 0
559
+ ).toString();
560
+ }
561
+ if (body.account) {
562
+ data.accountId = new AccountId(
563
+ body.account.shardNum ?? 0,
564
+ body.account.realmNum ?? 0,
565
+ body.account.accountNum ?? 0
566
+ ).toString();
567
+ }
568
+ return data;
569
+ }
570
+ static parseTokenRevokeKyc(body) {
571
+ if (!body) return void 0;
572
+ const data = {};
573
+ if (body.token) {
574
+ data.tokenId = new TokenId(
575
+ body.token.shardNum ?? 0,
576
+ body.token.realmNum ?? 0,
577
+ body.token.tokenNum ?? 0
578
+ ).toString();
579
+ }
580
+ if (body.account) {
581
+ data.accountId = new AccountId(
582
+ body.account.shardNum ?? 0,
583
+ body.account.realmNum ?? 0,
584
+ body.account.accountNum ?? 0
585
+ ).toString();
586
+ }
587
+ return data;
588
+ }
589
+ static parseTokenPause(body) {
590
+ if (!body) return void 0;
591
+ const data = {};
592
+ if (body.token) {
593
+ data.tokenId = new TokenId(
594
+ body.token.shardNum ?? 0,
595
+ body.token.realmNum ?? 0,
596
+ body.token.tokenNum ?? 0
597
+ ).toString();
598
+ }
599
+ return data;
600
+ }
601
+ static parseTokenUnpause(body) {
602
+ if (!body) return void 0;
603
+ const data = {};
604
+ if (body.token) {
605
+ data.tokenId = new TokenId(
606
+ body.token.shardNum ?? 0,
607
+ body.token.realmNum ?? 0,
608
+ body.token.tokenNum ?? 0
609
+ ).toString();
610
+ }
611
+ return data;
612
+ }
613
+ static parseTokenWipeAccount(body) {
614
+ if (!body) return void 0;
615
+ const data = {};
616
+ if (body.token) {
617
+ data.tokenId = new TokenId(
618
+ body.token.shardNum ?? 0,
619
+ body.token.realmNum ?? 0,
620
+ body.token.tokenNum ?? 0
621
+ ).toString();
622
+ }
623
+ if (body.account) {
624
+ data.accountId = new AccountId(
625
+ body.account.shardNum ?? 0,
626
+ body.account.realmNum ?? 0,
627
+ body.account.accountNum ?? 0
628
+ ).toString();
629
+ }
630
+ if (body.serialNumbers && body.serialNumbers.length > 0) {
631
+ data.serialNumbers = body.serialNumbers.map(
632
+ (sn) => Long.fromValue(sn).toString()
633
+ );
634
+ }
635
+ if (body.amount) {
636
+ data.amount = Long.fromValue(body.amount).toString();
637
+ }
638
+ return data;
639
+ }
640
+ static parseTokenDelete(body) {
641
+ if (!body) return void 0;
642
+ const data = {};
643
+ if (body.token) {
644
+ data.tokenId = new TokenId(
645
+ body.token.shardNum ?? 0,
646
+ body.token.realmNum ?? 0,
647
+ body.token.tokenNum ?? 0
648
+ ).toString();
649
+ }
650
+ return data;
651
+ }
652
+ static parseTokenAssociate(body) {
653
+ if (!body) return void 0;
654
+ const data = {};
655
+ if (body.account) {
656
+ data.accountId = new AccountId(
657
+ body.account.shardNum ?? 0,
658
+ body.account.realmNum ?? 0,
659
+ body.account.accountNum ?? 0
660
+ ).toString();
661
+ }
662
+ if (body.tokens && body.tokens.length > 0) {
663
+ data.tokenIds = body.tokens.map(
664
+ (t) => new TokenId(
665
+ t.shardNum ?? 0,
666
+ t.realmNum ?? 0,
667
+ t.tokenNum ?? 0
668
+ ).toString()
669
+ );
670
+ }
671
+ return data;
672
+ }
673
+ static parseTokenDissociate(body) {
674
+ if (!body) return void 0;
675
+ const data = {};
676
+ if (body.account) {
677
+ data.accountId = new AccountId(
678
+ body.account.shardNum ?? 0,
679
+ body.account.realmNum ?? 0,
680
+ body.account.accountNum ?? 0
681
+ ).toString();
682
+ }
683
+ if (body.tokens && body.tokens.length > 0) {
684
+ data.tokenIds = body.tokens.map(
685
+ (t) => new TokenId(
686
+ t.shardNum ?? 0,
687
+ t.realmNum ?? 0,
688
+ t.tokenNum ?? 0
689
+ ).toString()
690
+ );
691
+ }
692
+ return data;
693
+ }
694
+ /**
695
+ * Parse token airdrop transaction for both fungible tokens and NFTs
696
+ * Extracts airdrop transfers from transaction protobuf data
697
+ */
698
+ static parseTokenAirdrop(transaction) {
699
+ try {
700
+ const transactionBody = transaction._transactionBody;
701
+ if (transactionBody?.tokenAirdrop) {
702
+ const airdrop = transactionBody.tokenAirdrop;
703
+ return {
704
+ tokenTransfers: (airdrop.tokenTransfers || []).map(
705
+ (transfer) => ({
706
+ tokenId: transfer.token?.toString() || "Unknown",
707
+ transfers: (transfer.transfers || []).map((t) => ({
708
+ accountId: t.accountID?.toString() || "Unknown",
709
+ amount: t.amount?.toString() || "0",
710
+ serialNumbers: t.serialNumbers?.map((sn) => sn.toString())
711
+ }))
712
+ })
713
+ )
714
+ };
715
+ }
716
+ if (hasTransactionType(transaction, "tokenAirdrop")) {
717
+ const txBody = extractTransactionBody(transaction);
718
+ if (txBody?.tokenAirdrop) {
719
+ return this.parseTokenAirdropFromProto(txBody.tokenAirdrop);
720
+ }
721
+ }
722
+ const tx = transaction;
723
+ const tokenTransfersList = tx._tokenTransfers || [];
724
+ if (tokenTransfersList.length > 0) {
725
+ return {
726
+ tokenTransfers: tokenTransfersList.map((transfer) => ({
727
+ tokenId: transfer.tokenId?.toString() || "Unknown",
728
+ transfers: (transfer.transfers || []).map((t) => ({
729
+ accountId: t.accountId?.toString() || "Unknown",
730
+ amount: t.amount?.toString() || "0",
731
+ serialNumbers: t.serialNumbers?.map((sn) => sn.toString())
732
+ }))
733
+ }))
734
+ };
735
+ }
736
+ return null;
737
+ } catch (error) {
738
+ console.warn("[HTSParser] Failed to parse token airdrop:", error);
739
+ return null;
740
+ }
741
+ }
742
+ /**
743
+ * Parse token airdrop from protobuf data for scheduled transactions
744
+ */
745
+ static parseTokenAirdropFromProto(airdrop) {
746
+ const tokenTransfers = [];
747
+ if (airdrop.tokenTransfers) {
748
+ for (const tokenTransfer of airdrop.tokenTransfers) {
749
+ const token = tokenTransfer.token ? new TokenId(
750
+ tokenTransfer.token.shardNum ?? 0,
751
+ tokenTransfer.token.realmNum ?? 0,
752
+ tokenTransfer.token.tokenNum ?? 0
753
+ ) : null;
754
+ const transfers = [];
755
+ if (tokenTransfer.transfers) {
756
+ for (const transfer of tokenTransfer.transfers) {
757
+ const accountId = transfer.accountID ? new AccountId(
758
+ transfer.accountID.shardNum ?? 0,
759
+ transfer.accountID.realmNum ?? 0,
760
+ transfer.accountID.accountNum ?? 0
761
+ ) : null;
762
+ transfers.push({
763
+ accountId: accountId?.toString() || "Unknown",
764
+ amount: transfer.amount ? Long.fromValue(transfer.amount).toString() : "0",
765
+ serialNumbers: transfer.serialNumbers?.map(
766
+ (sn) => Long.fromValue(sn).toString()
767
+ )
768
+ });
769
+ }
770
+ }
771
+ tokenTransfers.push({
772
+ tokenId: token?.toString() || "Unknown",
773
+ transfers
774
+ });
775
+ }
776
+ }
777
+ return { tokenTransfers };
778
+ }
779
+ /**
780
+ * Extract token creation data from Transaction object internal fields
781
+ * This handles the case where token creation data is stored in Transaction internals
782
+ */
783
+ static extractTokenCreationFromTransaction(transaction) {
784
+ try {
785
+ const tx = transaction;
786
+ if (tx._tokenName || tx._tokenSymbol) {
787
+ const result = {
788
+ tokenName: tx._tokenName || "Unknown Token",
789
+ tokenSymbol: tx._tokenSymbol || "UNKNOWN",
790
+ initialSupply: tx._initialSupply?.toString() || "0",
791
+ decimals: Number(tx._decimals || 0),
792
+ treasuryAccountId: tx._treasuryAccountId?.toString() || "Unknown"
793
+ };
794
+ if (tx._maxSupply) {
795
+ result.maxSupply = tx._maxSupply.toString();
796
+ }
797
+ if (tx._tokenType) {
798
+ result.tokenType = tx._tokenType.toString ? tx._tokenType.toString() : String(tx._tokenType);
799
+ }
800
+ if (tx._supplyType) {
801
+ result.supplyType = tx._supplyType.toString ? tx._supplyType.toString() : String(tx._supplyType);
802
+ }
803
+ if (tx._tokenMemo) {
804
+ result.memo = tx._tokenMemo;
805
+ }
806
+ if (tx._adminKey) {
807
+ result.adminKey = tx._adminKey.toString();
808
+ }
809
+ if (tx._kycKey) {
810
+ result.kycKey = tx._kycKey.toString();
811
+ }
812
+ if (tx._freezeKey) {
813
+ result.freezeKey = tx._freezeKey.toString();
814
+ }
815
+ if (tx._wipeKey) {
816
+ result.wipeKey = tx._wipeKey.toString();
817
+ }
818
+ if (tx._supplyKey) {
819
+ result.supplyKey = tx._supplyKey.toString();
820
+ }
821
+ if (tx._feeScheduleKey) {
822
+ result.feeScheduleKey = tx._feeScheduleKey.toString();
823
+ }
824
+ if (tx._pauseKey) {
825
+ result.pauseKey = tx._pauseKey.toString();
826
+ }
827
+ if (tx._metadataKey) {
828
+ result.metadataKey = tx._metadataKey.toString();
829
+ }
830
+ if (tx._autoRenewAccountId) {
831
+ result.autoRenewAccount = tx._autoRenewAccountId.toString();
832
+ }
833
+ if (tx._autoRenewPeriod) {
834
+ result.autoRenewPeriod = tx._autoRenewPeriod.seconds?.toString() || tx._autoRenewPeriod.toString();
835
+ }
836
+ if (tx._expirationTime) {
837
+ result.expiry = tx._expirationTime.seconds?.toString() || tx._expirationTime.toString();
838
+ }
839
+ if (tx._customFees && Array.isArray(tx._customFees) && tx._customFees.length > 0) {
840
+ result.customFees = tx._customFees.map((fee) => {
841
+ const customFee = {
842
+ feeCollectorAccountId: fee.feeCollectorAccountId?.toString() || "",
843
+ feeType: "FIXED_FEE"
844
+ };
845
+ if (fee.fixedFee) {
846
+ customFee.feeType = "FIXED_FEE";
847
+ customFee.fixedFee = {
848
+ amount: fee.fixedFee.amount?.toString() || "0",
849
+ denominatingTokenId: fee.fixedFee.denominatingTokenId?.toString()
850
+ };
851
+ } else if (fee.fractionalFee) {
852
+ customFee.feeType = "FRACTIONAL_FEE";
853
+ customFee.fractionalFee = {
854
+ numerator: fee.fractionalFee.numerator?.toString() || "0",
855
+ denominator: fee.fractionalFee.denominator?.toString() || "1",
856
+ minimumAmount: fee.fractionalFee.minimumAmount?.toString() || "0",
857
+ maximumAmount: fee.fractionalFee.maximumAmount?.toString() || "0",
858
+ netOfTransfers: fee.fractionalFee.netOfTransfers || false
859
+ };
860
+ } else if (fee.royaltyFee) {
861
+ customFee.feeType = "ROYALTY_FEE";
862
+ customFee.royaltyFee = {
863
+ numerator: fee.royaltyFee.numerator?.toString() || "0",
864
+ denominator: fee.royaltyFee.denominator?.toString() || "1",
865
+ fallbackFee: fee.royaltyFee.fallbackFee ? {
866
+ amount: fee.royaltyFee.fallbackFee.amount?.toString() || "0",
867
+ denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId?.toString()
868
+ } : void 0
869
+ };
870
+ }
871
+ customFee.allCollectorsAreExempt = fee.allCollectorsAreExempt || false;
872
+ return customFee;
873
+ });
874
+ }
875
+ return result;
876
+ }
877
+ return null;
878
+ } catch (error) {
879
+ return null;
880
+ }
881
+ }
882
+ /**
883
+ * Extract token airdrop data from Transaction object internal fields
884
+ * This handles the case where airdrop data is stored in Transaction internals
885
+ */
886
+ static extractTokenAirdropFromTransaction(transaction) {
887
+ try {
888
+ const tx = transaction;
889
+ if (tx._tokenAirdrops && Array.isArray(tx._tokenAirdrops)) {
890
+ const tokenTransfers = tx._tokenAirdrops.map((airdrop) => ({
891
+ tokenId: airdrop.tokenId?.toString() || "Unknown",
892
+ transfers: (airdrop.transfers || []).map((transfer) => ({
893
+ accountId: transfer.accountId?.toString() || "Unknown",
894
+ amount: transfer.amount?.toString() || "0",
895
+ serialNumbers: transfer.serialNumbers?.map((s) => s.toString()) || []
896
+ }))
897
+ }));
898
+ return { tokenTransfers };
899
+ }
900
+ return null;
901
+ } catch (error) {
902
+ return null;
903
+ }
904
+ }
905
+ /**
906
+ * Parse HTS transaction from Transaction object with comprehensive extraction
907
+ * This is the unified entry point that handles both protobuf and internal field extraction
908
+ */
909
+ static parseFromTransactionObject(transaction) {
910
+ try {
911
+ try {
912
+ const bytes = transaction.toBytes ? transaction.toBytes() : void 0;
913
+ if (bytes) {
914
+ const decoded = proto.TransactionList.decode(bytes);
915
+ if (decoded.transactionList && decoded.transactionList.length > 0) {
916
+ const tx = decoded.transactionList[0];
917
+ let txBody = null;
918
+ if (tx.bodyBytes && tx.bodyBytes.length > 0) {
919
+ txBody = proto.TransactionBody.decode(tx.bodyBytes);
920
+ } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
921
+ const signedTx = proto.SignedTransaction.decode(
922
+ tx.signedTransactionBytes
923
+ );
924
+ if (signedTx.bodyBytes) {
925
+ txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
926
+ }
927
+ }
928
+ if (txBody) {
929
+ if (txBody.tokenCreation) {
930
+ const tokenCreation2 = this.parseTokenCreate(
931
+ txBody.tokenCreation
932
+ );
933
+ if (tokenCreation2) {
934
+ return {
935
+ type: "TOKENCREATE",
936
+ humanReadableType: "Token Creation",
937
+ tokenCreation: tokenCreation2
938
+ };
939
+ }
940
+ }
941
+ if (txBody.tokenMint) {
942
+ const tokenMint = this.parseTokenMint(txBody.tokenMint);
943
+ if (tokenMint) {
944
+ return {
945
+ type: "TOKENMINT",
946
+ humanReadableType: "Token Mint",
947
+ tokenMint
948
+ };
949
+ }
950
+ }
951
+ if (txBody.tokenBurn) {
952
+ const tokenBurn = this.parseTokenBurn(txBody.tokenBurn);
953
+ if (tokenBurn) {
954
+ return {
955
+ type: "TOKENBURN",
956
+ humanReadableType: "Token Burn",
957
+ tokenBurn
958
+ };
959
+ }
960
+ }
961
+ if (txBody.tokenUpdate) {
962
+ const tokenUpdate = this.parseTokenUpdate(txBody.tokenUpdate);
963
+ if (tokenUpdate) {
964
+ return {
965
+ type: "TOKENUPDATE",
966
+ humanReadableType: "Token Update",
967
+ tokenUpdate
968
+ };
969
+ }
970
+ }
971
+ if (txBody.tokenFreeze) {
972
+ const tokenFreeze = this.parseTokenFreeze(txBody.tokenFreeze);
973
+ if (tokenFreeze) {
974
+ return {
975
+ type: "TOKENFREEZE",
976
+ humanReadableType: "Token Freeze",
977
+ tokenFreeze
978
+ };
979
+ }
980
+ }
981
+ if (txBody.tokenUnfreeze) {
982
+ const tokenUnfreeze = this.parseTokenUnfreeze(
983
+ txBody.tokenUnfreeze
984
+ );
985
+ if (tokenUnfreeze) {
986
+ return {
987
+ type: "TOKENUNFREEZE",
988
+ humanReadableType: "Token Unfreeze",
989
+ tokenUnfreeze
990
+ };
991
+ }
992
+ }
993
+ if (txBody.tokenGrantKyc) {
994
+ const tokenGrantKyc = this.parseTokenGrantKyc(
995
+ txBody.tokenGrantKyc
996
+ );
997
+ if (tokenGrantKyc) {
998
+ return {
999
+ type: "TOKENGRANTKYC",
1000
+ humanReadableType: "Token Grant KYC",
1001
+ tokenGrantKyc
1002
+ };
1003
+ }
1004
+ }
1005
+ if (txBody.tokenRevokeKyc) {
1006
+ const tokenRevokeKyc = this.parseTokenRevokeKyc(
1007
+ txBody.tokenRevokeKyc
1008
+ );
1009
+ if (tokenRevokeKyc) {
1010
+ return {
1011
+ type: "TOKENREVOKEKYC",
1012
+ humanReadableType: "Token Revoke KYC",
1013
+ tokenRevokeKyc
1014
+ };
1015
+ }
1016
+ }
1017
+ if (txBody.tokenPause) {
1018
+ const tokenPause = this.parseTokenPause(txBody.tokenPause);
1019
+ if (tokenPause) {
1020
+ return {
1021
+ type: "TOKENPAUSE",
1022
+ humanReadableType: "Token Pause",
1023
+ tokenPause
1024
+ };
1025
+ }
1026
+ }
1027
+ if (txBody.tokenUnpause) {
1028
+ const tokenUnpause = this.parseTokenUnpause(
1029
+ txBody.tokenUnpause
1030
+ );
1031
+ if (tokenUnpause) {
1032
+ return {
1033
+ type: "TOKENUNPAUSE",
1034
+ humanReadableType: "Token Unpause",
1035
+ tokenUnpause
1036
+ };
1037
+ }
1038
+ }
1039
+ if (txBody.tokenWipe) {
1040
+ const tokenWipeAccount = this.parseTokenWipeAccount(
1041
+ txBody.tokenWipe
1042
+ );
1043
+ if (tokenWipeAccount) {
1044
+ return {
1045
+ type: "TOKENWIPEACCOUNT",
1046
+ humanReadableType: "Token Wipe Account",
1047
+ tokenWipeAccount
1048
+ };
1049
+ }
1050
+ }
1051
+ if (txBody.tokenDeletion) {
1052
+ const tokenDelete = this.parseTokenDelete(txBody.tokenDeletion);
1053
+ if (tokenDelete) {
1054
+ return {
1055
+ type: "TOKENDELETE",
1056
+ humanReadableType: "Token Delete",
1057
+ tokenDelete
1058
+ };
1059
+ }
1060
+ }
1061
+ if (txBody.tokenAssociate) {
1062
+ const tokenAssociate = this.parseTokenAssociate(
1063
+ txBody.tokenAssociate
1064
+ );
1065
+ if (tokenAssociate) {
1066
+ return {
1067
+ type: "TOKENASSOCIATE",
1068
+ humanReadableType: "Token Associate",
1069
+ tokenAssociate
1070
+ };
1071
+ }
1072
+ }
1073
+ if (txBody.tokenDissociate) {
1074
+ const tokenDissociate = this.parseTokenDissociate(
1075
+ txBody.tokenDissociate
1076
+ );
1077
+ if (tokenDissociate) {
1078
+ return {
1079
+ type: "TOKENDISSOCIATE",
1080
+ humanReadableType: "Token Dissociate",
1081
+ tokenDissociate
1082
+ };
1083
+ }
1084
+ }
1085
+ if (txBody.tokenFeeScheduleUpdate) {
1086
+ const tokenFeeScheduleUpdate = this.parseTokenFeeScheduleUpdate(
1087
+ txBody.tokenFeeScheduleUpdate
1088
+ );
1089
+ if (tokenFeeScheduleUpdate) {
1090
+ return {
1091
+ type: "TOKENFEESCHEDULEUPDATE",
1092
+ humanReadableType: "Token Fee Schedule Update",
1093
+ tokenFeeScheduleUpdate
1094
+ };
1095
+ }
1096
+ }
1097
+ if (txBody.tokenAirdrop) {
1098
+ const tokenAirdrop2 = this.parseTokenAirdropFromProto(
1099
+ txBody.tokenAirdrop
1100
+ );
1101
+ if (tokenAirdrop2) {
1102
+ return {
1103
+ type: "TOKENAIRDROP",
1104
+ humanReadableType: "Token Airdrop",
1105
+ tokenAirdrop: tokenAirdrop2
1106
+ };
1107
+ }
1108
+ }
1109
+ }
1110
+ }
1111
+ }
1112
+ } catch (e) {
1113
+ }
1114
+ const protoResult = this.parseHTSTransaction(transaction);
1115
+ if (protoResult.type) {
1116
+ return protoResult;
1117
+ }
1118
+ const tokenCreation = this.extractTokenCreationFromTransaction(transaction);
1119
+ const tokenAirdrop = this.extractTokenAirdropFromTransaction(transaction);
1120
+ if (tokenCreation) {
1121
+ return {
1122
+ type: "TOKENCREATE",
1123
+ humanReadableType: "Token Creation",
1124
+ tokenCreation
1125
+ };
1126
+ }
1127
+ if (tokenAirdrop) {
1128
+ return {
1129
+ type: "TOKENAIRDROP",
1130
+ humanReadableType: "Token Airdrop",
1131
+ tokenAirdrop
1132
+ };
1133
+ }
1134
+ return {};
1135
+ } catch (error) {
1136
+ return {};
343
1137
  }
344
1138
  }
345
- return "unknown";
346
- }
347
- function getHumanReadableTransactionType(type) {
348
- return humanReadableTypeRegistry[type] || "Unknown Transaction";
349
1139
  }
350
1140
  export {
351
- getHumanReadableTransactionType,
352
- getSchedulableTransactionType,
353
- getTransactionTypeFromBody,
354
- humanReadableTypeRegistry,
355
- protoFieldToTypeRegistry,
356
- schedulableTransactionTypeRegistry
1141
+ HTSParser
357
1142
  };
358
1143
  //# sourceMappingURL=standards-sdk.es141.js.map