@hashgraphonline/standards-sdk 0.1.143-feat-solana-register.canary.1c6f446.78 → 0.1.144-feat-solana-register.canary.d5edcec.80

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 (340) hide show
  1. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  2. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/services/registry-broker/schemas.d.ts +153 -153
  5. package/dist/cjs/standards-sdk.cjs +2 -2
  6. package/dist/cjs/standards-sdk.cjs.map +1 -1
  7. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  8. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  9. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  10. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  11. package/dist/es/index.d.ts.map +1 -1
  12. package/dist/es/services/registry-broker/schemas.d.ts +153 -153
  13. package/dist/es/standards-sdk.es.js +134 -135
  14. package/dist/es/standards-sdk.es.js.map +1 -1
  15. package/dist/es/standards-sdk.es10.js +70 -90
  16. package/dist/es/standards-sdk.es10.js.map +1 -1
  17. package/dist/es/standards-sdk.es100.js +229 -27
  18. package/dist/es/standards-sdk.es100.js.map +1 -1
  19. package/dist/es/standards-sdk.es101.js +109 -228
  20. package/dist/es/standards-sdk.es101.js.map +1 -1
  21. package/dist/es/standards-sdk.es102.js +15 -94
  22. package/dist/es/standards-sdk.es102.js.map +1 -1
  23. package/dist/es/standards-sdk.es103.js +80 -30
  24. package/dist/es/standards-sdk.es103.js.map +1 -1
  25. package/dist/es/standards-sdk.es104.js +27 -80
  26. package/dist/es/standards-sdk.es104.js.map +1 -1
  27. package/dist/es/standards-sdk.es105.js +136 -25
  28. package/dist/es/standards-sdk.es105.js.map +1 -1
  29. package/dist/es/standards-sdk.es106.js +27 -140
  30. package/dist/es/standards-sdk.es106.js.map +1 -1
  31. package/dist/es/standards-sdk.es107.js +20 -27
  32. package/dist/es/standards-sdk.es107.js.map +1 -1
  33. package/dist/es/standards-sdk.es108.js +156 -18
  34. package/dist/es/standards-sdk.es108.js.map +1 -1
  35. package/dist/es/standards-sdk.es109.js +198 -148
  36. package/dist/es/standards-sdk.es109.js.map +1 -1
  37. package/dist/es/standards-sdk.es11.js +121 -45
  38. package/dist/es/standards-sdk.es11.js.map +1 -1
  39. package/dist/es/standards-sdk.es110.js +747 -167
  40. package/dist/es/standards-sdk.es110.js.map +1 -1
  41. package/dist/es/standards-sdk.es111.js +9 -786
  42. package/dist/es/standards-sdk.es111.js.map +1 -1
  43. package/dist/es/standards-sdk.es112.js +567 -13
  44. package/dist/es/standards-sdk.es112.js.map +1 -1
  45. package/dist/es/standards-sdk.es113.js +576 -541
  46. package/dist/es/standards-sdk.es113.js.map +1 -1
  47. package/dist/es/standards-sdk.es114.js +12 -601
  48. package/dist/es/standards-sdk.es114.js.map +1 -1
  49. package/dist/es/standards-sdk.es115.js +2 -13
  50. package/dist/es/standards-sdk.es115.js.map +1 -1
  51. package/dist/es/standards-sdk.es116.js +87 -2
  52. package/dist/es/standards-sdk.es116.js.map +1 -1
  53. package/dist/es/standards-sdk.es117.js +37 -84
  54. package/dist/es/standards-sdk.es117.js.map +1 -1
  55. package/dist/es/standards-sdk.es118.js +2 -40
  56. package/dist/es/standards-sdk.es118.js.map +1 -1
  57. package/dist/es/standards-sdk.es119.js +231 -2
  58. package/dist/es/standards-sdk.es119.js.map +1 -1
  59. package/dist/es/standards-sdk.es12.js +60 -159
  60. package/dist/es/standards-sdk.es12.js.map +1 -1
  61. package/dist/es/standards-sdk.es120.js +1110 -201
  62. package/dist/es/standards-sdk.es120.js.map +1 -1
  63. package/dist/es/standards-sdk.es121.js +225 -1059
  64. package/dist/es/standards-sdk.es121.js.map +1 -1
  65. package/dist/es/standards-sdk.es122.js +419 -303
  66. package/dist/es/standards-sdk.es122.js.map +1 -1
  67. package/dist/es/standards-sdk.es123.js +351 -418
  68. package/dist/es/standards-sdk.es123.js.map +1 -1
  69. package/dist/es/standards-sdk.es124.js +872 -347
  70. package/dist/es/standards-sdk.es124.js.map +1 -1
  71. package/dist/es/standards-sdk.es125.js +182 -854
  72. package/dist/es/standards-sdk.es125.js.map +1 -1
  73. package/dist/es/standards-sdk.es126.js +1512 -153
  74. package/dist/es/standards-sdk.es126.js.map +1 -1
  75. package/dist/es/standards-sdk.es127.js +157 -1547
  76. package/dist/es/standards-sdk.es127.js.map +1 -1
  77. package/dist/es/standards-sdk.es128.js +192 -162
  78. package/dist/es/standards-sdk.es128.js.map +1 -1
  79. package/dist/es/standards-sdk.es129.js +61 -164
  80. package/dist/es/standards-sdk.es129.js.map +1 -1
  81. package/dist/es/standards-sdk.es13.js +200 -60
  82. package/dist/es/standards-sdk.es13.js.map +1 -1
  83. package/dist/es/standards-sdk.es130.js +102 -85
  84. package/dist/es/standards-sdk.es130.js.map +1 -1
  85. package/dist/es/standards-sdk.es131.js +222 -96
  86. package/dist/es/standards-sdk.es131.js.map +1 -1
  87. package/dist/es/standards-sdk.es132.js +153 -220
  88. package/dist/es/standards-sdk.es132.js.map +1 -1
  89. package/dist/es/standards-sdk.es133.js +104 -162
  90. package/dist/es/standards-sdk.es133.js.map +1 -1
  91. package/dist/es/standards-sdk.es134.js +296 -92
  92. package/dist/es/standards-sdk.es134.js.map +1 -1
  93. package/dist/es/standards-sdk.es135.js +432 -294
  94. package/dist/es/standards-sdk.es135.js.map +1 -1
  95. package/dist/es/standards-sdk.es136.js +14 -461
  96. package/dist/es/standards-sdk.es136.js.map +1 -1
  97. package/dist/es/standards-sdk.es137.js +79 -15
  98. package/dist/es/standards-sdk.es137.js.map +1 -1
  99. package/dist/es/standards-sdk.es138.js +77 -71
  100. package/dist/es/standards-sdk.es138.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +152 -80
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +149 -178
  104. package/dist/es/standards-sdk.es14.js.map +1 -1
  105. package/dist/es/standards-sdk.es140.js +7 -159
  106. package/dist/es/standards-sdk.es140.js.map +1 -1
  107. package/dist/es/standards-sdk.es141.js +86 -7
  108. package/dist/es/standards-sdk.es141.js.map +1 -1
  109. package/dist/es/standards-sdk.es142.js +44 -65
  110. package/dist/es/standards-sdk.es142.js.map +1 -1
  111. package/dist/es/standards-sdk.es143.js +30 -65
  112. package/dist/es/standards-sdk.es143.js.map +1 -1
  113. package/dist/es/standards-sdk.es144.js +34 -30
  114. package/dist/es/standards-sdk.es144.js.map +1 -1
  115. package/dist/es/standards-sdk.es145.js +28 -34
  116. package/dist/es/standards-sdk.es145.js.map +1 -1
  117. package/dist/es/standards-sdk.es146.js +138 -28
  118. package/dist/es/standards-sdk.es146.js.map +1 -1
  119. package/dist/es/standards-sdk.es147.js +37 -133
  120. package/dist/es/standards-sdk.es147.js.map +1 -1
  121. package/dist/es/standards-sdk.es148.js +12280 -33
  122. package/dist/es/standards-sdk.es148.js.map +1 -1
  123. package/dist/es/standards-sdk.es149.js +1 -1
  124. package/dist/es/standards-sdk.es15.js +152 -151
  125. package/dist/es/standards-sdk.es15.js.map +1 -1
  126. package/dist/es/standards-sdk.es150.js +12 -12284
  127. package/dist/es/standards-sdk.es150.js.map +1 -1
  128. package/dist/es/standards-sdk.es151.js +54 -15
  129. package/dist/es/standards-sdk.es151.js.map +1 -1
  130. package/dist/es/standards-sdk.es152.js +72 -160
  131. package/dist/es/standards-sdk.es152.js.map +1 -1
  132. package/dist/es/standards-sdk.es153.js +139 -289
  133. package/dist/es/standards-sdk.es153.js.map +1 -1
  134. package/dist/es/standards-sdk.es154.js +274 -298
  135. package/dist/es/standards-sdk.es154.js.map +1 -1
  136. package/dist/es/standards-sdk.es155.js +262 -369
  137. package/dist/es/standards-sdk.es155.js.map +1 -1
  138. package/dist/es/standards-sdk.es156.js +316 -194
  139. package/dist/es/standards-sdk.es156.js.map +1 -1
  140. package/dist/es/standards-sdk.es157.js +319 -64
  141. package/dist/es/standards-sdk.es157.js.map +1 -1
  142. package/dist/es/standards-sdk.es158.js +69 -49
  143. package/dist/es/standards-sdk.es158.js.map +1 -1
  144. package/dist/es/standards-sdk.es159.js +222 -65
  145. package/dist/es/standards-sdk.es159.js.map +1 -1
  146. package/dist/es/standards-sdk.es16.js +917 -136
  147. package/dist/es/standards-sdk.es16.js.map +1 -1
  148. package/dist/es/standards-sdk.es160.js +223 -218
  149. package/dist/es/standards-sdk.es160.js.map +1 -1
  150. package/dist/es/standards-sdk.es17.js +23 -948
  151. package/dist/es/standards-sdk.es17.js.map +1 -1
  152. package/dist/es/standards-sdk.es18.js +2422 -24
  153. package/dist/es/standards-sdk.es18.js.map +1 -1
  154. package/dist/es/standards-sdk.es19.js +818 -2092
  155. package/dist/es/standards-sdk.es19.js.map +1 -1
  156. package/dist/es/standards-sdk.es2.js +654 -189
  157. package/dist/es/standards-sdk.es2.js.map +1 -1
  158. package/dist/es/standards-sdk.es20.js +205 -1092
  159. package/dist/es/standards-sdk.es20.js.map +1 -1
  160. package/dist/es/standards-sdk.es21.js +858 -221
  161. package/dist/es/standards-sdk.es21.js.map +1 -1
  162. package/dist/es/standards-sdk.es22.js +179 -903
  163. package/dist/es/standards-sdk.es22.js.map +1 -1
  164. package/dist/es/standards-sdk.es23.js +164 -179
  165. package/dist/es/standards-sdk.es23.js.map +1 -1
  166. package/dist/es/standards-sdk.es24.js +62 -118
  167. package/dist/es/standards-sdk.es24.js.map +1 -1
  168. package/dist/es/standards-sdk.es25.js +377 -57
  169. package/dist/es/standards-sdk.es25.js.map +1 -1
  170. package/dist/es/standards-sdk.es26.js +36 -394
  171. package/dist/es/standards-sdk.es26.js.map +1 -1
  172. package/dist/es/standards-sdk.es27.js +901 -50
  173. package/dist/es/standards-sdk.es27.js.map +1 -1
  174. package/dist/es/standards-sdk.es28.js +134 -922
  175. package/dist/es/standards-sdk.es28.js.map +1 -1
  176. package/dist/es/standards-sdk.es29.js +7 -134
  177. package/dist/es/standards-sdk.es29.js.map +1 -1
  178. package/dist/es/standards-sdk.es3.js +63 -680
  179. package/dist/es/standards-sdk.es3.js.map +1 -1
  180. package/dist/es/standards-sdk.es30.js +344 -7
  181. package/dist/es/standards-sdk.es30.js.map +1 -1
  182. package/dist/es/standards-sdk.es31.js +302 -287
  183. package/dist/es/standards-sdk.es31.js.map +1 -1
  184. package/dist/es/standards-sdk.es32.js +94 -322
  185. package/dist/es/standards-sdk.es32.js.map +1 -1
  186. package/dist/es/standards-sdk.es33.js +458 -101
  187. package/dist/es/standards-sdk.es33.js.map +1 -1
  188. package/dist/es/standards-sdk.es34.js +132 -451
  189. package/dist/es/standards-sdk.es34.js.map +1 -1
  190. package/dist/es/standards-sdk.es35.js +216 -130
  191. package/dist/es/standards-sdk.es35.js.map +1 -1
  192. package/dist/es/standards-sdk.es36.js +273 -196
  193. package/dist/es/standards-sdk.es36.js.map +1 -1
  194. package/dist/es/standards-sdk.es37.js +148 -87
  195. package/dist/es/standards-sdk.es37.js.map +1 -1
  196. package/dist/es/standards-sdk.es38.js +183 -320
  197. package/dist/es/standards-sdk.es38.js.map +1 -1
  198. package/dist/es/standards-sdk.es39.js +238 -161
  199. package/dist/es/standards-sdk.es39.js.map +1 -1
  200. package/dist/es/standards-sdk.es4.js +425 -63
  201. package/dist/es/standards-sdk.es4.js.map +1 -1
  202. package/dist/es/standards-sdk.es40.js +136 -254
  203. package/dist/es/standards-sdk.es40.js.map +1 -1
  204. package/dist/es/standards-sdk.es41.js +225 -176
  205. package/dist/es/standards-sdk.es41.js.map +1 -1
  206. package/dist/es/standards-sdk.es42.js +199 -261
  207. package/dist/es/standards-sdk.es42.js.map +1 -1
  208. package/dist/es/standards-sdk.es43.js +237 -199
  209. package/dist/es/standards-sdk.es43.js.map +1 -1
  210. package/dist/es/standards-sdk.es44.js +209 -201
  211. package/dist/es/standards-sdk.es44.js.map +1 -1
  212. package/dist/es/standards-sdk.es45.js +305 -201
  213. package/dist/es/standards-sdk.es45.js.map +1 -1
  214. package/dist/es/standards-sdk.es46.js +371 -261
  215. package/dist/es/standards-sdk.es46.js.map +1 -1
  216. package/dist/es/standards-sdk.es47.js +316 -372
  217. package/dist/es/standards-sdk.es47.js.map +1 -1
  218. package/dist/es/standards-sdk.es48.js +404 -336
  219. package/dist/es/standards-sdk.es48.js.map +1 -1
  220. package/dist/es/standards-sdk.es49.js +83 -449
  221. package/dist/es/standards-sdk.es49.js.map +1 -1
  222. package/dist/es/standards-sdk.es5.js +232 -354
  223. package/dist/es/standards-sdk.es5.js.map +1 -1
  224. package/dist/es/standards-sdk.es50.js +179 -89
  225. package/dist/es/standards-sdk.es50.js.map +1 -1
  226. package/dist/es/standards-sdk.es51.js +231 -165
  227. package/dist/es/standards-sdk.es51.js.map +1 -1
  228. package/dist/es/standards-sdk.es52.js +25 -262
  229. package/dist/es/standards-sdk.es52.js.map +1 -1
  230. package/dist/es/standards-sdk.es53.js +56 -26
  231. package/dist/es/standards-sdk.es53.js.map +1 -1
  232. package/dist/es/standards-sdk.es54.js +12 -57
  233. package/dist/es/standards-sdk.es54.js.map +1 -1
  234. package/dist/es/standards-sdk.es55.js +49 -12
  235. package/dist/es/standards-sdk.es55.js.map +1 -1
  236. package/dist/es/standards-sdk.es56.js +115 -43
  237. package/dist/es/standards-sdk.es56.js.map +1 -1
  238. package/dist/es/standards-sdk.es57.js +42 -115
  239. package/dist/es/standards-sdk.es57.js.map +1 -1
  240. package/dist/es/standards-sdk.es58.js +52 -43
  241. package/dist/es/standards-sdk.es58.js.map +1 -1
  242. package/dist/es/standards-sdk.es59.js +36 -50
  243. package/dist/es/standards-sdk.es59.js.map +1 -1
  244. package/dist/es/standards-sdk.es6.js +125 -246
  245. package/dist/es/standards-sdk.es6.js.map +1 -1
  246. package/dist/es/standards-sdk.es60.js +207 -39
  247. package/dist/es/standards-sdk.es60.js.map +1 -1
  248. package/dist/es/standards-sdk.es61.js +24 -201
  249. package/dist/es/standards-sdk.es61.js.map +1 -1
  250. package/dist/es/standards-sdk.es62.js +87 -25
  251. package/dist/es/standards-sdk.es62.js.map +1 -1
  252. package/dist/es/standards-sdk.es63.js +3 -51
  253. package/dist/es/standards-sdk.es63.js.map +1 -1
  254. package/dist/es/standards-sdk.es64.js +100 -3
  255. package/dist/es/standards-sdk.es64.js.map +1 -1
  256. package/dist/es/standards-sdk.es65.js +61 -62
  257. package/dist/es/standards-sdk.es65.js.map +1 -1
  258. package/dist/es/standards-sdk.es66.js +17 -98
  259. package/dist/es/standards-sdk.es66.js.map +1 -1
  260. package/dist/es/standards-sdk.es67.js +77 -19
  261. package/dist/es/standards-sdk.es67.js.map +1 -1
  262. package/dist/es/standards-sdk.es68.js +458 -77
  263. package/dist/es/standards-sdk.es68.js.map +1 -1
  264. package/dist/es/standards-sdk.es69.js +106 -240
  265. package/dist/es/standards-sdk.es69.js.map +1 -1
  266. package/dist/es/standards-sdk.es7.js +28 -183
  267. package/dist/es/standards-sdk.es7.js.map +1 -1
  268. package/dist/es/standards-sdk.es70.js +170 -286
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +71 -207
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +71 -72
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +143 -71
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +62 -136
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +380 -45
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +222 -130
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +320 -444
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +88 -371
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +125 -89
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es8.js +80 -29
  289. package/dist/es/standards-sdk.es8.js.map +1 -1
  290. package/dist/es/standards-sdk.es80.js +8 -125
  291. package/dist/es/standards-sdk.es80.js.map +1 -1
  292. package/dist/es/standards-sdk.es81.js +45 -6
  293. package/dist/es/standards-sdk.es81.js.map +1 -1
  294. package/dist/es/standards-sdk.es82.js +98 -44
  295. package/dist/es/standards-sdk.es82.js.map +1 -1
  296. package/dist/es/standards-sdk.es83.js +331 -84
  297. package/dist/es/standards-sdk.es83.js.map +1 -1
  298. package/dist/es/standards-sdk.es84.js +93 -160
  299. package/dist/es/standards-sdk.es84.js.map +1 -1
  300. package/dist/es/standards-sdk.es85.js +55 -275
  301. package/dist/es/standards-sdk.es85.js.map +1 -1
  302. package/dist/es/standards-sdk.es86.js +43 -55
  303. package/dist/es/standards-sdk.es86.js.map +1 -1
  304. package/dist/es/standards-sdk.es87.js +145 -44
  305. package/dist/es/standards-sdk.es87.js.map +1 -1
  306. package/dist/es/standards-sdk.es88.js +30 -113
  307. package/dist/es/standards-sdk.es88.js.map +1 -1
  308. package/dist/es/standards-sdk.es89.js +22 -59
  309. package/dist/es/standards-sdk.es89.js.map +1 -1
  310. package/dist/es/standards-sdk.es9.js +104 -80
  311. package/dist/es/standards-sdk.es9.js.map +1 -1
  312. package/dist/es/standards-sdk.es90.js +23 -28
  313. package/dist/es/standards-sdk.es90.js.map +1 -1
  314. package/dist/es/standards-sdk.es91.js +238 -23
  315. package/dist/es/standards-sdk.es91.js.map +1 -1
  316. package/dist/es/standards-sdk.es92.js +267 -225
  317. package/dist/es/standards-sdk.es92.js.map +1 -1
  318. package/dist/es/standards-sdk.es93.js +95 -220
  319. package/dist/es/standards-sdk.es93.js.map +1 -1
  320. package/dist/es/standards-sdk.es94.js +124 -136
  321. package/dist/es/standards-sdk.es94.js.map +1 -1
  322. package/dist/es/standards-sdk.es95.js +42 -138
  323. package/dist/es/standards-sdk.es95.js.map +1 -1
  324. package/dist/es/standards-sdk.es96.js +259 -43
  325. package/dist/es/standards-sdk.es96.js.map +1 -1
  326. package/dist/es/standards-sdk.es97.js +82 -245
  327. package/dist/es/standards-sdk.es97.js.map +1 -1
  328. package/dist/es/standards-sdk.es98.js +49 -50
  329. package/dist/es/standards-sdk.es98.js.map +1 -1
  330. package/dist/es/standards-sdk.es99.js +29 -100
  331. package/dist/es/standards-sdk.es99.js.map +1 -1
  332. package/dist/es/utils/dynamic-import.d.ts +5 -1
  333. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  334. package/package.json +4 -4
  335. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  336. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  337. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  338. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
  339. package/dist/es/standards-sdk.es161.js +0 -247
  340. package/dist/es/standards-sdk.es161.js.map +0 -1
@@ -1,234 +1,1143 @@
1
- import { detectCryptoEnvironment } from "./standards-sdk.es118.js";
2
- import { NodeHashAdapter, WebHashAdapter, FallbackHashAdapter } from "./standards-sdk.es117.js";
3
- class NodeHmacAdapter {
4
- constructor(nodeHmac) {
5
- this.nodeHmac = nodeHmac;
1
+ import { proto } from "@hashgraph/proto";
2
+ import { AccountId, Long, TokenId } from "@hashgraph/sdk";
3
+ import { parseKey, hasTransactionType, extractTransactionBody } from "./standards-sdk.es158.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 {};
198
+ }
6
199
  }
7
- update(data) {
8
- this.nodeHmac.update(data);
9
- return this;
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;
10
333
  }
11
- digest(encoding) {
12
- return this.nodeHmac.digest(encoding);
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;
13
352
  }
14
- }
15
- class WebHmacAdapter {
16
- constructor(key, algorithm = "sha256") {
17
- this.key = key;
18
- this.algorithm = algorithm;
19
- this.data = [];
20
- }
21
- update(data) {
22
- this.data.push(data);
23
- return this;
24
- }
25
- async digest(encoding) {
26
- const combined = Buffer.concat(this.data);
27
- const keyBytes = new Uint8Array(this.key);
28
- const webCrypto = globalThis.crypto;
29
- if (!webCrypto?.subtle) {
30
- throw new Error("WebCrypto not available");
31
- }
32
- const keyBuffer = await webCrypto.subtle.importKey(
33
- "raw",
34
- keyBytes,
35
- { name: "HMAC", hash: this.mapAlgorithm(this.algorithm) },
36
- false,
37
- ["sign"]
38
- );
39
- const signature = await webCrypto.subtle.sign(
40
- "HMAC",
41
- keyBuffer,
42
- new Uint8Array(combined)
43
- );
44
- if (encoding === "hex") {
45
- return Array.from(new Uint8Array(signature)).map((b) => b.toString(16).padStart(2, "0")).join("");
46
- }
47
- return Buffer.from(signature);
48
- }
49
- mapAlgorithm(algorithm) {
50
- const algorithmMap = {
51
- sha256: "SHA-256",
52
- sha1: "SHA-1",
53
- sha512: "SHA-512"
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()
54
364
  };
55
- return algorithmMap[algorithm.toLowerCase()] || "SHA-256";
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;
56
371
  }
57
- }
58
- class FallbackHmacAdapter {
59
- constructor(key, algorithm = "sha256") {
60
- this.key = key;
61
- this.algorithm = algorithm;
62
- this.data = [];
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;
63
421
  }
64
- update(data) {
65
- this.data.push(data);
66
- return this;
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;
67
512
  }
68
- digest(encoding) {
69
- const combined = Buffer.concat(this.data);
70
- const hash2 = this.simpleHmac(combined, this.key);
71
- if (encoding === "hex") {
72
- return hash2.toString(16).padStart(8, "0");
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();
73
522
  }
74
- return hash2.toString();
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;
75
531
  }
76
- simpleHmac(data, key) {
77
- let hash2 = 0;
78
- for (let i = 0; i < data.length; i++) {
79
- const keyByte = key[i % key.length];
80
- hash2 = (hash2 << 5) - hash2 + data[i] + keyByte & 4294967295;
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();
81
548
  }
82
- return Math.abs(hash2);
549
+ return data;
83
550
  }
84
- }
85
- class NodeCryptoAdapter {
86
- constructor() {
87
- try {
88
- const moduleName = "crypto";
89
- this.crypto = require(moduleName);
90
- } catch (error) {
91
- throw new Error("Node.js crypto module not available");
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();
92
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;
93
569
  }
94
- createHash(algorithm) {
95
- return new NodeHashAdapter(this.crypto.createHash(algorithm));
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;
96
588
  }
97
- createHmac(algorithm, key) {
98
- return new NodeHmacAdapter(this.crypto.createHmac(algorithm, key));
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;
99
600
  }
100
- async pbkdf2(password, salt, iterations, keylen, digest) {
101
- return new Promise((resolve, reject) => {
102
- this.crypto.pbkdf2(
103
- password,
104
- salt,
105
- iterations,
106
- keylen,
107
- digest,
108
- (err, derivedKey) => {
109
- if (err) reject(err);
110
- else resolve(derivedKey);
111
- }
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()
112
633
  );
113
- });
634
+ }
635
+ if (body.amount) {
636
+ data.amount = Long.fromValue(body.amount).toString();
637
+ }
638
+ return data;
114
639
  }
115
- timingSafeEqual(a, b) {
116
- return this.crypto.timingSafeEqual(a, b);
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;
117
651
  }
118
- }
119
- class WebCryptoAdapter {
120
- createHash(algorithm) {
121
- return new WebHashAdapter(algorithm);
122
- }
123
- createHmac(algorithm, key) {
124
- return new WebHmacAdapter(key, algorithm);
125
- }
126
- async pbkdf2(password, salt, iterations, keylen, digest) {
127
- const encoder = new TextEncoder();
128
- const webCrypto = globalThis.crypto;
129
- if (!webCrypto?.subtle) {
130
- throw new Error("WebCrypto not available");
131
- }
132
- const keyMaterial = await webCrypto.subtle.importKey(
133
- "raw",
134
- encoder.encode(password),
135
- { name: "PBKDF2" },
136
- false,
137
- ["deriveBits"]
138
- );
139
- const derivedBits = await webCrypto.subtle.deriveBits(
140
- {
141
- name: "PBKDF2",
142
- salt: new Uint8Array(salt),
143
- iterations,
144
- hash: this.mapDigest(digest)
145
- },
146
- keyMaterial,
147
- keylen * 8
148
- );
149
- return Buffer.from(derivedBits);
150
- }
151
- timingSafeEqual(a, b) {
152
- if (a.length !== b.length) return false;
153
- let result = 0;
154
- for (let i = 0; i < a.length; i++) {
155
- result |= a[i] ^ b[i];
156
- }
157
- return result === 0;
158
- }
159
- mapDigest(digest) {
160
- const digestMap = {
161
- sha256: "SHA-256",
162
- sha1: "SHA-1",
163
- sha512: "SHA-512"
164
- };
165
- return digestMap[digest.toLowerCase()] || "SHA-256";
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;
166
672
  }
167
- }
168
- class FallbackCryptoAdapter {
169
- createHash(algorithm) {
170
- return new FallbackHashAdapter(algorithm);
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;
171
693
  }
172
- createHmac(algorithm, key) {
173
- return new FallbackHmacAdapter(key, algorithm);
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
+ }
174
741
  }
175
- async pbkdf2(password, salt, iterations, keylen, digest) {
176
- const encoder = new TextEncoder();
177
- const passwordBuffer = Buffer.from(encoder.encode(password));
178
- let result = Buffer.alloc(keylen);
179
- for (let i = 0; i < iterations; i++) {
180
- const combined = Buffer.concat([passwordBuffer, salt, Buffer.from([i])]);
181
- let hash2 = 0;
182
- for (let j = 0; j < combined.length; j++) {
183
- hash2 = (hash2 << 5) - hash2 + combined[j] & 4294967295;
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
+ });
184
775
  }
185
- result[i % keylen] ^= hash2 & 255;
186
776
  }
187
- return result;
777
+ return { tokenTransfers };
188
778
  }
189
- timingSafeEqual(a, b) {
190
- if (a.length !== b.length) return false;
191
- let result = 0;
192
- for (let i = 0; i < a.length; i++) {
193
- result |= a[i] ^ b[i];
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;
194
880
  }
195
- return result === 0;
196
881
  }
197
- }
198
- function getCryptoAdapter() {
199
- const env = detectCryptoEnvironment();
200
- switch (env.preferredAPI) {
201
- case "node":
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 {
202
911
  try {
203
- return new NodeCryptoAdapter();
204
- } catch {
205
- return new FallbackCryptoAdapter();
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
+ };
206
1126
  }
207
- case "web":
208
- return new WebCryptoAdapter();
209
- case "none":
210
- default:
211
- return new FallbackCryptoAdapter();
1127
+ if (tokenAirdrop) {
1128
+ return {
1129
+ type: "TOKENAIRDROP",
1130
+ humanReadableType: "Token Airdrop",
1131
+ tokenAirdrop
1132
+ };
1133
+ }
1134
+ return {};
1135
+ } catch (error) {
1136
+ return {};
1137
+ }
212
1138
  }
213
1139
  }
214
- async function hash(content, algorithm = "sha256") {
215
- const adapter = getCryptoAdapter();
216
- const hasher = adapter.createHash(algorithm);
217
- const buffer = typeof content === "string" ? Buffer.from(content) : content;
218
- const result = hasher.update(buffer).digest("hex");
219
- if (result instanceof Promise) {
220
- return await result;
221
- }
222
- return result;
223
- }
224
1140
  export {
225
- FallbackCryptoAdapter,
226
- FallbackHmacAdapter,
227
- NodeCryptoAdapter,
228
- NodeHmacAdapter,
229
- WebCryptoAdapter,
230
- WebHmacAdapter,
231
- getCryptoAdapter,
232
- hash
1141
+ HTSParser
233
1142
  };
234
1143
  //# sourceMappingURL=standards-sdk.es120.js.map