@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,299 +1,67 @@
1
- import { proto } from "@hashgraph/proto";
2
- import { Long, Hbar, HbarUnit, ContractId, AccountId, FileId } from "@hashgraph/sdk";
3
- import { Buffer } from "buffer";
4
- import { hasTransactionType, parseKey } from "./standards-sdk.es157.js";
5
- class SCSParser {
6
- /**
7
- * Parse Smart Contract Service transaction using unified dual-branch approach
8
- * This handles both regular transactions and signed transaction variants
9
- */
10
- static parseSCSTransaction(transaction, originalBytes) {
11
- try {
12
- if (originalBytes || transaction.toBytes) {
13
- try {
14
- const bytesToParse = originalBytes || transaction.toBytes();
15
- const decoded = proto.TransactionList.decode(bytesToParse);
16
- if (decoded.transactionList && decoded.transactionList.length > 0) {
17
- const tx = decoded.transactionList[0];
18
- let txBody = null;
19
- if (tx.bodyBytes && tx.bodyBytes.length > 0) {
20
- txBody = proto.TransactionBody.decode(tx.bodyBytes);
21
- } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
22
- const signedTx = proto.SignedTransaction.decode(
23
- tx.signedTransactionBytes
24
- );
25
- if (signedTx.bodyBytes) {
26
- txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
27
- }
28
- }
29
- if (txBody) {
30
- const protoResult = this.parseFromProtobufTxBody(txBody);
31
- if (protoResult.type && protoResult.type !== "UNKNOWN") {
32
- return protoResult;
33
- }
34
- }
35
- }
36
- } catch (protoError) {
37
- }
38
- }
39
- return this.parseFromTransactionInternals(transaction);
40
- } catch (error) {
41
- return {
42
- type: "UNKNOWN",
43
- humanReadableType: "Unknown Contract Transaction"
44
- };
45
- }
46
- }
47
- /**
48
- * Parse contract transaction from protobuf TransactionBody
49
- * Handles all contract operations from decoded protobuf data
50
- */
51
- static parseFromProtobufTxBody(txBody) {
52
- if (txBody.contractCall) {
53
- const contractCall = this.parseContractCall(txBody.contractCall);
54
- if (contractCall) {
55
- return {
56
- type: "CONTRACTCALL",
57
- humanReadableType: "Contract Call",
58
- contractCall
59
- };
60
- }
61
- }
62
- if (txBody.contractCreateInstance) {
63
- const contractCreate = this.parseContractCreate(
64
- txBody.contractCreateInstance
65
- );
66
- if (contractCreate) {
67
- return {
68
- type: "CONTRACTCREATE",
69
- humanReadableType: "Contract Create",
70
- contractCreate
71
- };
72
- }
73
- }
74
- if (txBody.contractUpdateInstance) {
75
- const contractUpdate = this.parseContractUpdate(
76
- txBody.contractUpdateInstance
77
- );
78
- if (contractUpdate) {
1
+ import { AccountId, Hbar, Long, HbarUnit, TokenId } from "@hashgraph/sdk";
2
+ import { parseKey } from "./standards-sdk.es158.js";
3
+ class CryptoParser {
4
+ static parseCryptoTransfers(cryptoTransfer, result) {
5
+ if (cryptoTransfer.transfers?.accountAmounts) {
6
+ result.transfers = cryptoTransfer.transfers.accountAmounts.map((aa) => {
7
+ const accountId = new AccountId(
8
+ aa.accountID.shardNum ?? 0,
9
+ aa.accountID.realmNum ?? 0,
10
+ aa.accountID.accountNum ?? 0
11
+ );
12
+ const hbarAmount = Hbar.fromTinybars(Long.fromValue(aa.amount));
79
13
  return {
80
- type: "CONTRACTUPDATE",
81
- humanReadableType: "Contract Update",
82
- contractUpdate
14
+ accountId: accountId.toString(),
15
+ amount: hbarAmount.toString(HbarUnit.Hbar),
16
+ isDecimal: true
83
17
  };
84
- }
85
- }
86
- if (txBody.contractDeleteInstance) {
87
- const contractDelete = this.parseContractDelete(
88
- txBody.contractDeleteInstance
89
- );
90
- if (contractDelete) {
91
- return {
92
- type: "CONTRACTDELETE",
93
- humanReadableType: "Contract Delete",
94
- contractDelete
95
- };
96
- }
18
+ });
97
19
  }
98
- if (txBody.ethereumTransaction) {
99
- const ethereumCall = this.parseEthereumTransaction(
100
- txBody.ethereumTransaction
101
- );
102
- if (ethereumCall) {
103
- return {
104
- type: "ETHEREUMTRANSACTION",
105
- humanReadableType: "Ethereum Transaction",
106
- ethereumTransaction: ethereumCall
107
- };
108
- }
109
- }
110
- return {};
111
- }
112
- /**
113
- * Extract contract data from Transaction internal fields
114
- * This handles cases where data is stored in Transaction object internals
115
- */
116
- static parseFromTransactionInternals(transaction) {
117
- try {
118
- const tx = transaction;
119
- if (tx._contractId && tx._gas) {
120
- const contractCall = {
121
- contractId: tx._contractId.toString(),
122
- gas: typeof tx._gas === "number" ? tx._gas : Long.fromValue(tx._gas).toNumber(),
123
- amount: tx._amount ? parseFloat(tx._amount.toString()) : 0
124
- };
125
- if (tx._functionParameters) {
126
- const funcParams = Buffer.from(tx._functionParameters).toString(
127
- "hex"
128
- );
129
- contractCall.functionParameters = funcParams;
130
- contractCall.functionName = this.extractFunctionName(funcParams);
131
- }
132
- return {
133
- type: "CONTRACTCALL",
134
- humanReadableType: "Contract Call",
135
- contractCall
136
- };
137
- }
138
- if (hasTransactionType(transaction, "contractCreateInstance")) {
139
- const contractCreate = {
140
- gas: tx._gas.toString(),
141
- initialBalance: tx._initialBalance?.toString() || "0"
142
- };
143
- if (tx._fileId) {
144
- contractCreate.initcodeSource = "fileID";
145
- contractCreate.initcode = tx._fileId.toString();
146
- } else if (tx._bytecode) {
147
- contractCreate.initcodeSource = "bytes";
148
- contractCreate.initcode = Buffer.from(tx._bytecode).toString("hex");
149
- }
150
- if (tx._constructorParameters) {
151
- contractCreate.constructorParameters = Buffer.from(
152
- tx._constructorParameters
153
- ).toString("hex");
154
- }
155
- if (tx._memo) contractCreate.memo = tx._memo;
156
- if (tx._adminKey) contractCreate.adminKey = parseKey(tx._adminKey);
157
- if (tx._maxAutomaticTokenAssociations !== void 0) {
158
- contractCreate.maxAutomaticTokenAssociations = tx._maxAutomaticTokenAssociations;
159
- }
160
- if (tx._stakedAccountId) {
161
- contractCreate.stakedAccountId = tx._stakedAccountId.toString();
162
- } else if (tx._stakedNodeId !== null && tx._stakedNodeId !== void 0) {
163
- contractCreate.stakedNodeId = Long.fromValue(
164
- tx._stakedNodeId
165
- ).toString();
166
- }
167
- if (tx._declineReward !== void 0)
168
- contractCreate.declineReward = tx._declineReward;
169
- if (tx._autoRenewPeriod)
170
- contractCreate.autoRenewPeriod = tx._autoRenewPeriod.toString();
171
- return {
172
- type: "CONTRACTCREATE",
173
- humanReadableType: "Contract Create",
174
- contractCreate
175
- };
176
- }
177
- if (hasTransactionType(transaction, "contractUpdateInstance")) {
178
- const contractUpdate = {
179
- contractIdToUpdate: tx._contractId.toString()
180
- };
181
- if (tx._memo) contractUpdate.memo = tx._memo;
182
- if (tx._adminKey) contractUpdate.adminKey = parseKey(tx._adminKey);
183
- if (tx._maxAutomaticTokenAssociations !== void 0) {
184
- contractUpdate.maxAutomaticTokenAssociations = tx._maxAutomaticTokenAssociations;
185
- }
186
- if (tx._stakedAccountId) {
187
- contractUpdate.stakedAccountId = tx._stakedAccountId.toString();
188
- } else if (tx._stakedNodeId !== null && tx._stakedNodeId !== void 0) {
189
- contractUpdate.stakedNodeId = Long.fromValue(
190
- tx._stakedNodeId
191
- ).toString();
20
+ if (cryptoTransfer.tokenTransfers) {
21
+ for (const tokenTransferList of cryptoTransfer.tokenTransfers) {
22
+ const tokenId = new TokenId(
23
+ tokenTransferList.token.shardNum ?? 0,
24
+ tokenTransferList.token.realmNum ?? 0,
25
+ tokenTransferList.token.tokenNum ?? 0
26
+ );
27
+ if (tokenTransferList.transfers) {
28
+ for (const transfer of tokenTransferList.transfers) {
29
+ const accountId = new AccountId(
30
+ transfer.accountID.shardNum ?? 0,
31
+ transfer.accountID.realmNum ?? 0,
32
+ transfer.accountID.accountNum ?? 0
33
+ );
34
+ const tokenAmount = Long.fromValue(transfer.amount).toNumber();
35
+ result.tokenTransfers.push({
36
+ tokenId: tokenId.toString(),
37
+ accountId: accountId.toString(),
38
+ amount: tokenAmount
39
+ });
40
+ }
192
41
  }
193
- if (tx._declineReward !== void 0)
194
- contractUpdate.declineReward = tx._declineReward;
195
- if (tx._autoRenewPeriod)
196
- contractUpdate.autoRenewPeriod = tx._autoRenewPeriod.toString();
197
- return {
198
- type: "CONTRACTUPDATE",
199
- humanReadableType: "Contract Update",
200
- contractUpdate
201
- };
202
42
  }
203
- if (hasTransactionType(transaction, "contractDeleteInstance")) {
204
- const contractDelete = {
205
- contractIdToDelete: tx._contractId.toString()
206
- };
207
- if (tx._transferAccountId) {
208
- contractDelete.transferAccountId = tx._transferAccountId.toString();
209
- } else if (tx._transferContractId) {
210
- contractDelete.transferContractId = tx._transferContractId.toString();
211
- }
212
- return {
213
- type: "CONTRACTDELETE",
214
- humanReadableType: "Contract Delete",
215
- contractDelete
216
- };
217
- }
218
- return {};
219
- } catch (error) {
220
- return {};
221
43
  }
222
44
  }
223
- /**
224
- * Enhanced function name extraction from contract call parameters
225
- * Attempts to decode function selector and map to known function names
226
- */
227
- static extractFunctionName(functionParameters) {
228
- if (functionParameters.length < 8) return "unknown";
229
- const selector = functionParameters.substring(0, 8);
230
- const commonSelectors = {
231
- a9059cbb: "transfer",
232
- "095ea7b3": "approve",
233
- "23b872dd": "transferFrom",
234
- "70a08231": "balanceOf",
235
- dd62ed3e: "allowance",
236
- "18160ddd": "totalSupply",
237
- "06fdde03": "name",
238
- "95d89b41": "symbol",
239
- "313ce567": "decimals",
240
- "42842e0e": "safeTransferFrom",
241
- b88d4fde: "safeTransferFrom",
242
- e985e9c5: "isApprovedForAll",
243
- a22cb465: "setApprovalForAll",
244
- "6352211e": "ownerOf",
245
- c87b56dd: "tokenURI",
246
- "01ffc9a7": "supportsInterface",
247
- "40c10f19": "mint",
248
- "42966c68": "burn",
249
- f2fde38b: "transferOwnership",
250
- "715018a6": "renounceOwnership",
251
- "8da5cb5b": "owner"
252
- };
253
- return commonSelectors[selector] || selector;
254
- }
255
- /**
256
- * Parse Ethereum Transaction (was completely missing from original parser)
257
- */
258
- static parseEthereumTransaction(body) {
45
+ static parseCryptoDelete(body) {
259
46
  if (!body) return void 0;
260
- const data = {
261
- contractId: "EVM",
262
- gas: body.maxGasAllowance ? Long.fromValue(body.maxGasAllowance).toNumber() : 0,
263
- amount: 0
264
- };
265
- if (body.ethereumData && body.ethereumData.length > 0) {
266
- const ethData = Buffer.from(body.ethereumData).toString("hex");
267
- data.functionParameters = ethData;
268
- if (ethData.length >= 8) {
269
- data.functionName = this.extractFunctionName(ethData);
270
- }
47
+ const data = {};
48
+ if (body.deleteAccountID) {
49
+ data.deleteAccountId = new AccountId(
50
+ body.deleteAccountID.shardNum ?? 0,
51
+ body.deleteAccountID.realmNum ?? 0,
52
+ body.deleteAccountID.accountNum ?? 0
53
+ ).toString();
271
54
  }
272
- return data;
273
- }
274
- static parseContractCall(body) {
275
- if (!body) return void 0;
276
- const hbarAmount = Hbar.fromTinybars(Long.fromValue(body.amount ?? 0));
277
- const data = {
278
- contractId: new ContractId(
279
- body.contractID.shardNum ?? 0,
280
- body.contractID.realmNum ?? 0,
281
- body.contractID.contractNum ?? 0
282
- ).toString(),
283
- gas: Long.fromValue(body.gas ?? 0).toNumber(),
284
- amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar))
285
- };
286
- if (body.functionParameters) {
287
- data.functionParameters = Buffer.from(body.functionParameters).toString(
288
- "hex"
289
- );
290
- if (data.functionParameters.length >= 8) {
291
- data.functionName = this.extractFunctionName(data.functionParameters);
292
- }
55
+ if (body.transferAccountID) {
56
+ data.transferAccountId = new AccountId(
57
+ body.transferAccountID.shardNum ?? 0,
58
+ body.transferAccountID.realmNum ?? 0,
59
+ body.transferAccountID.accountNum ?? 0
60
+ ).toString();
293
61
  }
294
62
  return data;
295
63
  }
296
- static parseContractCreate(body) {
64
+ static parseCryptoCreateAccount(body) {
297
65
  if (!body) return void 0;
298
66
  const data = {};
299
67
  if (body.initialBalance) {
@@ -301,25 +69,23 @@ class SCSParser {
301
69
  Long.fromValue(body.initialBalance)
302
70
  ).toString(HbarUnit.Hbar);
303
71
  }
304
- if (body.gas) {
305
- data.gas = Long.fromValue(body.gas).toString();
306
- }
307
- if (body.adminKey) {
308
- data.adminKey = parseKey(body.adminKey);
72
+ if (body.key) {
73
+ data.key = parseKey(body.key);
309
74
  }
310
- if (body.constructorParameters) {
311
- data.constructorParameters = Buffer.from(
312
- body.constructorParameters
313
- ).toString("hex");
314
- }
315
- if (body.memo) {
316
- data.memo = body.memo;
75
+ if (body.receiverSigRequired !== void 0) {
76
+ data.receiverSigRequired = body.receiverSigRequired;
317
77
  }
318
78
  if (body.autoRenewPeriod?.seconds) {
319
79
  data.autoRenewPeriod = Long.fromValue(
320
80
  body.autoRenewPeriod.seconds
321
81
  ).toString();
322
82
  }
83
+ if (body.memo) {
84
+ data.memo = body.memo;
85
+ }
86
+ if (body.maxAutomaticTokenAssociations !== void 0) {
87
+ data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;
88
+ }
323
89
  if (body.stakedAccountId) {
324
90
  data.stakedAccountId = new AccountId(
325
91
  body.stakedAccountId.shardNum ?? 0,
@@ -332,61 +98,42 @@ class SCSParser {
332
98
  if (body.declineReward !== void 0) {
333
99
  data.declineReward = body.declineReward;
334
100
  }
335
- if (body.maxAutomaticTokenAssociations !== void 0) {
336
- data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;
337
- }
338
- if (body.fileID) {
339
- data.initcodeSource = "fileID";
340
- data.initcode = new FileId(
341
- body.fileID.shardNum ?? 0,
342
- body.fileID.realmNum ?? 0,
343
- body.fileID.fileNum ?? 0
344
- ).toString();
345
- } else if (body.initcode && body.initcode.length > 0) {
346
- data.initcodeSource = "bytes";
347
- data.initcode = Buffer.from(body.initcode).toString("hex");
101
+ if (body.alias && body.alias.length > 0) {
102
+ data.alias = Buffer.from(body.alias).toString("hex");
348
103
  }
349
104
  return data;
350
105
  }
351
- static parseContractUpdate(body) {
106
+ static parseCryptoUpdateAccount(body) {
352
107
  if (!body) return void 0;
353
108
  const data = {};
354
- if (body.contractID) {
355
- data.contractIdToUpdate = new ContractId(
356
- body.contractID.shardNum ?? 0,
357
- body.contractID.realmNum ?? 0,
358
- body.contractID.contractNum ?? 0
109
+ if (body.accountIDToUpdate) {
110
+ data.accountIdToUpdate = new AccountId(
111
+ body.accountIDToUpdate.shardNum ?? 0,
112
+ body.accountIDToUpdate.realmNum ?? 0,
113
+ body.accountIDToUpdate.accountNum ?? 0
359
114
  ).toString();
360
115
  }
361
- if (body.adminKey) {
362
- data.adminKey = parseKey(body.adminKey);
116
+ if (body.key) {
117
+ data.key = parseKey(body.key);
363
118
  }
364
119
  if (body.expirationTime?.seconds) {
365
120
  data.expirationTime = `${Long.fromValue(
366
121
  body.expirationTime.seconds
367
122
  ).toString()}.${body.expirationTime.nanos}`;
368
123
  }
124
+ if (body.receiverSigRequired !== null && body.receiverSigRequired !== void 0) {
125
+ data.receiverSigRequired = Boolean(body.receiverSigRequired);
126
+ }
369
127
  if (body.autoRenewPeriod?.seconds) {
370
128
  data.autoRenewPeriod = Long.fromValue(
371
129
  body.autoRenewPeriod.seconds
372
130
  ).toString();
373
131
  }
374
- if (body.memo) {
375
- const memoUnion = body.memo;
376
- if (memoUnion && typeof memoUnion === "object" && Object.prototype.hasOwnProperty.call(memoUnion, "value")) {
377
- const value = memoUnion.value;
378
- if (value === null || value === void 0) {
379
- data.memo = void 0;
380
- } else {
381
- data.memo = String(value);
382
- }
383
- } else if (typeof memoUnion === "string") {
384
- data.memo = memoUnion;
385
- } else {
386
- data.memo = void 0;
387
- }
388
- } else {
389
- data.memo = void 0;
132
+ if (body.memo?.value !== void 0) {
133
+ data.memo = body.memo.value;
134
+ }
135
+ if (body.maxAutomaticTokenAssociations?.value !== void 0) {
136
+ data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations.value;
390
137
  }
391
138
  if (body.stakedAccountId) {
392
139
  data.stakedAccountId = new AccountId(
@@ -395,62 +142,208 @@ class SCSParser {
395
142
  body.stakedAccountId.accountNum ?? 0
396
143
  ).toString();
397
144
  data.stakedNodeId = void 0;
398
- } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0 && Long.fromValue(body.stakedNodeId).notEquals(-1)) {
145
+ } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0) {
399
146
  data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
400
147
  data.stakedAccountId = void 0;
401
148
  } else {
402
- data.stakedNodeId = void 0;
403
149
  data.stakedAccountId = void 0;
150
+ data.stakedNodeId = void 0;
404
151
  }
405
- if (body.declineReward?.value !== void 0) {
406
- data.declineReward = body.declineReward.value;
152
+ if (body.declineReward !== null && body.declineReward !== void 0) {
153
+ data.declineReward = Boolean(body.declineReward);
407
154
  }
408
- if (body.maxAutomaticTokenAssociations?.value !== void 0) {
409
- data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations.value;
155
+ return data;
156
+ }
157
+ static parseCryptoApproveAllowance(body) {
158
+ if (!body) return void 0;
159
+ const data = {};
160
+ if (body.cryptoAllowances && body.cryptoAllowances.length > 0) {
161
+ data.hbarAllowances = body.cryptoAllowances.map((a) => ({
162
+ ownerAccountId: new AccountId(
163
+ a.owner.shardNum ?? 0,
164
+ a.owner.realmNum ?? 0,
165
+ a.owner.accountNum ?? 0
166
+ ).toString(),
167
+ spenderAccountId: new AccountId(
168
+ a.spender.shardNum ?? 0,
169
+ a.spender.realmNum ?? 0,
170
+ a.spender.accountNum ?? 0
171
+ ).toString(),
172
+ amount: Hbar.fromTinybars(Long.fromValue(a.amount)).toString(
173
+ HbarUnit.Hbar
174
+ )
175
+ }));
410
176
  }
411
- if (body.autoRenewAccountId) {
412
- data.autoRenewAccountId = new AccountId(
413
- body.autoRenewAccountId.shardNum ?? 0,
414
- body.autoRenewAccountId.realmNum ?? 0,
415
- body.autoRenewAccountId.accountNum ?? 0
416
- ).toString();
177
+ if (body.tokenAllowances && body.tokenAllowances.length > 0) {
178
+ data.tokenAllowances = body.tokenAllowances.map((a) => ({
179
+ tokenId: new TokenId(
180
+ a.tokenId.shardNum ?? 0,
181
+ a.tokenId.realmNum ?? 0,
182
+ a.tokenId.tokenNum ?? 0
183
+ ).toString(),
184
+ ownerAccountId: new AccountId(
185
+ a.owner.shardNum ?? 0,
186
+ a.owner.realmNum ?? 0,
187
+ a.owner.accountNum ?? 0
188
+ ).toString(),
189
+ spenderAccountId: new AccountId(
190
+ a.spender.shardNum ?? 0,
191
+ a.spender.realmNum ?? 0,
192
+ a.spender.accountNum ?? 0
193
+ ).toString(),
194
+ amount: Long.fromValue(a.amount).toString()
195
+ }));
196
+ }
197
+ if (body.nftAllowances && body.nftAllowances.length > 0) {
198
+ data.nftAllowances = body.nftAllowances.map((a) => {
199
+ const allowance = {};
200
+ if (a.tokenId)
201
+ allowance.tokenId = new TokenId(
202
+ a.tokenId.shardNum ?? 0,
203
+ a.tokenId.realmNum ?? 0,
204
+ a.tokenId.tokenNum ?? 0
205
+ ).toString();
206
+ if (a.owner)
207
+ allowance.ownerAccountId = new AccountId(
208
+ a.owner.shardNum ?? 0,
209
+ a.owner.realmNum ?? 0,
210
+ a.owner.accountNum ?? 0
211
+ ).toString();
212
+ if (a.spender)
213
+ allowance.spenderAccountId = new AccountId(
214
+ a.spender.shardNum ?? 0,
215
+ a.spender.realmNum ?? 0,
216
+ a.spender.accountNum ?? 0
217
+ ).toString();
218
+ if (a.serialNumbers && a.serialNumbers.length > 0)
219
+ allowance.serialNumbers = a.serialNumbers.map(
220
+ (sn) => Long.fromValue(sn).toString()
221
+ );
222
+ if (a.approvedForAll?.value !== void 0)
223
+ allowance.approvedForAll = a.approvedForAll.value;
224
+ if (a.delegatingSpender)
225
+ allowance.delegatingSpender = new AccountId(
226
+ a.delegatingSpender.shardNum ?? 0,
227
+ a.delegatingSpender.realmNum ?? 0,
228
+ a.delegatingSpender.accountNum ?? 0
229
+ ).toString();
230
+ return allowance;
231
+ });
417
232
  }
418
233
  return data;
419
234
  }
420
- static parseContractDelete(body) {
235
+ static parseCryptoDeleteAllowance(body) {
421
236
  if (!body) return void 0;
422
237
  const data = {};
423
- if (body.contractID) {
424
- data.contractIdToDelete = new ContractId(
425
- body.contractID.shardNum ?? 0,
426
- body.contractID.realmNum ?? 0,
427
- body.contractID.contractNum ?? 0
428
- ).toString();
429
- }
430
- if (body.transferAccountID) {
431
- data.transferAccountId = new AccountId(
432
- body.transferAccountID.shardNum ?? 0,
433
- body.transferAccountID.realmNum ?? 0,
434
- body.transferAccountID.accountNum ?? 0
435
- ).toString();
436
- } else if (body.transferContractID) {
437
- data.transferContractId = new ContractId(
438
- body.transferContractID.shardNum ?? 0,
439
- body.transferContractID.realmNum ?? 0,
440
- body.transferContractID.contractNum ?? 0
441
- ).toString();
238
+ if (body.nftAllowances && body.nftAllowances.length > 0) {
239
+ data.nftAllowancesToRemove = body.nftAllowances.map((a) => ({
240
+ ownerAccountId: new AccountId(
241
+ a.owner.shardNum ?? 0,
242
+ a.owner.realmNum ?? 0,
243
+ a.owner.accountNum ?? 0
244
+ ).toString(),
245
+ tokenId: new TokenId(
246
+ a.tokenId.shardNum ?? 0,
247
+ a.tokenId.realmNum ?? 0,
248
+ a.tokenId.tokenNum ?? 0
249
+ ).toString(),
250
+ serialNumbers: a.serialNumbers ? a.serialNumbers.map((sn) => Long.fromValue(sn).toString()) : []
251
+ }));
442
252
  }
443
253
  return data;
444
254
  }
445
255
  /**
446
- * Parse SCS (Smart Contract Service) transaction from Transaction object
447
- * This is the unified entry point that delegates to the comprehensive parsing logic
256
+ * Extract HBAR transfers from Transaction object
257
+ */
258
+ static extractHbarTransfersFromTransaction(transaction) {
259
+ const transfers = [];
260
+ try {
261
+ const hbarTransfers = transaction._hbarTransfers;
262
+ if (Array.isArray(hbarTransfers)) {
263
+ hbarTransfers.forEach((transfer) => {
264
+ if (transfer.accountId && transfer.amount) {
265
+ const amountInTinybars = transfer.amount.toTinybars();
266
+ const amountInHbar = Number(amountInTinybars) / 1e8;
267
+ transfers.push({
268
+ accountId: transfer.accountId.toString(),
269
+ amount: amountInHbar
270
+ });
271
+ }
272
+ });
273
+ }
274
+ } catch (error) {
275
+ }
276
+ return transfers;
277
+ }
278
+ /**
279
+ * Extract token transfers from Transaction object
280
+ */
281
+ static extractTokenTransfersFromTransaction(transaction) {
282
+ const tokenTransfers = [];
283
+ try {
284
+ const tokenTransfersList = transaction._tokenTransfers;
285
+ if (Array.isArray(tokenTransfersList)) {
286
+ tokenTransfersList.forEach((tokenTransfer) => {
287
+ if (tokenTransfer.tokenId && Array.isArray(tokenTransfer.transfers)) {
288
+ const transfers = tokenTransfer.transfers.map((transfer) => ({
289
+ accountId: transfer.accountId?.toString() || "Unknown",
290
+ amount: Number(transfer.amount || 0)
291
+ }));
292
+ tokenTransfers.push({
293
+ tokenId: tokenTransfer.tokenId.toString(),
294
+ transfers
295
+ });
296
+ }
297
+ });
298
+ }
299
+ } catch (error) {
300
+ }
301
+ return tokenTransfers;
302
+ }
303
+ /**
304
+ * Parse crypto transaction from Transaction object with comprehensive extraction
305
+ * This is the unified entry point that handles both protobuf and internal field extraction
448
306
  */
449
307
  static parseFromTransactionObject(transaction) {
450
- return this.parseSCSTransaction(transaction);
308
+ try {
309
+ const hbarTransfers = this.extractHbarTransfersFromTransaction(transaction);
310
+ const tokenTransfers = this.extractTokenTransfersFromTransaction(transaction);
311
+ if (hbarTransfers.length > 0 || tokenTransfers.length > 0) {
312
+ const convertedTransfers = hbarTransfers.map((transfer) => ({
313
+ accountId: transfer.accountId,
314
+ amount: transfer.amount.toString() + " ℏ",
315
+ isDecimal: true
316
+ }));
317
+ const convertedTokenTransfers = tokenTransfers.flatMap(
318
+ (tokenGroup) => tokenGroup.transfers.map((transfer) => ({
319
+ tokenId: tokenGroup.tokenId,
320
+ accountId: transfer.accountId,
321
+ amount: transfer.amount
322
+ }))
323
+ );
324
+ if (hbarTransfers.length > 0) {
325
+ return {
326
+ type: "CRYPTOTRANSFER",
327
+ humanReadableType: "Crypto Transfer",
328
+ transfers: convertedTransfers,
329
+ tokenTransfers: convertedTokenTransfers
330
+ };
331
+ } else if (tokenTransfers.length > 0) {
332
+ return {
333
+ type: "TOKENTRANSFER",
334
+ humanReadableType: "Token Transfer",
335
+ transfers: convertedTransfers,
336
+ tokenTransfers: convertedTokenTransfers
337
+ };
338
+ }
339
+ }
340
+ return {};
341
+ } catch (error) {
342
+ return {};
343
+ }
451
344
  }
452
345
  }
453
346
  export {
454
- SCSParser
347
+ CryptoParser
455
348
  };
456
349
  //# sourceMappingURL=standards-sdk.es155.js.map