@hashgraphonline/standards-sdk 0.1.185 → 0.1.187

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 (431) hide show
  1. package/README.md +3 -0
  2. package/dist/browser/hcs-25/adapters/acp.d.ts +20 -0
  3. package/dist/browser/hcs-25/adapters/acp.d.ts.map +1 -0
  4. package/dist/browser/hcs-25/adapters/agentverse.d.ts +34 -0
  5. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -0
  6. package/dist/browser/hcs-25/adapters/availability.d.ts +22 -0
  7. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -0
  8. package/dist/browser/hcs-25/adapters/connectivity.d.ts +25 -0
  9. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -0
  10. package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  11. package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  12. package/dist/browser/hcs-25/adapters/ethos.d.ts +21 -0
  13. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -0
  14. package/dist/browser/hcs-25/adapters/index.d.ts +21 -0
  15. package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -0
  16. package/dist/browser/hcs-25/adapters/model-evals.d.ts +61 -0
  17. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -0
  18. package/dist/browser/hcs-25/adapters/normalization.d.ts +20 -0
  19. package/dist/browser/hcs-25/adapters/normalization.d.ts.map +1 -0
  20. package/dist/browser/hcs-25/adapters/oss-popularity.d.ts +22 -0
  21. package/dist/browser/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  22. package/dist/browser/hcs-25/adapters/output-verification.d.ts +27 -0
  23. package/dist/browser/hcs-25/adapters/output-verification.d.ts.map +1 -0
  24. package/dist/browser/hcs-25/adapters/simple-evals.d.ts +14 -0
  25. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  26. package/dist/browser/hcs-25/adapters/x402.d.ts +18 -0
  27. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -0
  28. package/dist/browser/hcs-25/identifiers.d.ts +2 -2
  29. package/dist/browser/hcs-25/identifiers.d.ts.map +1 -1
  30. package/dist/browser/hcs-25/index.d.ts +2 -0
  31. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  32. package/dist/browser/hcs-25/scoring.d.ts.map +1 -1
  33. package/dist/browser/hcs-25/signals/index.d.ts +20 -0
  34. package/dist/browser/hcs-25/signals/index.d.ts.map +1 -0
  35. package/dist/browser/hcs-25/signals/marketplace.d.ts +296 -0
  36. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -0
  37. package/dist/browser/hcs-25/signals/metadata.d.ts +40 -0
  38. package/dist/browser/hcs-25/signals/metadata.d.ts.map +1 -0
  39. package/dist/browser/hcs-25/signals/model-evals.d.ts +127 -0
  40. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -0
  41. package/dist/browser/hcs-25/signals/operational.d.ts +757 -0
  42. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -0
  43. package/dist/browser/hcs-25/signals/simple-evals.d.ts +156 -0
  44. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -0
  45. package/dist/browser-root/hcs-25/adapters/acp.d.ts +20 -0
  46. package/dist/browser-root/hcs-25/adapters/acp.d.ts.map +1 -0
  47. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts +34 -0
  48. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -0
  49. package/dist/browser-root/hcs-25/adapters/availability.d.ts +22 -0
  50. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -0
  51. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts +25 -0
  52. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -0
  53. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  54. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  55. package/dist/browser-root/hcs-25/adapters/ethos.d.ts +21 -0
  56. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -0
  57. package/dist/browser-root/hcs-25/adapters/index.d.ts +21 -0
  58. package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -0
  59. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts +61 -0
  60. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -0
  61. package/dist/browser-root/hcs-25/adapters/normalization.d.ts +20 -0
  62. package/dist/browser-root/hcs-25/adapters/normalization.d.ts.map +1 -0
  63. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts +22 -0
  64. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  65. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts +27 -0
  66. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts.map +1 -0
  67. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts +14 -0
  68. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  69. package/dist/browser-root/hcs-25/adapters/x402.d.ts +18 -0
  70. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -0
  71. package/dist/browser-root/hcs-25/identifiers.d.ts +2 -2
  72. package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -1
  73. package/dist/browser-root/hcs-25/index.d.ts +2 -0
  74. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  75. package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -1
  76. package/dist/browser-root/hcs-25/signals/index.d.ts +20 -0
  77. package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -0
  78. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +296 -0
  79. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -0
  80. package/dist/browser-root/hcs-25/signals/metadata.d.ts +40 -0
  81. package/dist/browser-root/hcs-25/signals/metadata.d.ts.map +1 -0
  82. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +127 -0
  83. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -0
  84. package/dist/browser-root/hcs-25/signals/operational.d.ts +757 -0
  85. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -0
  86. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +156 -0
  87. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -0
  88. package/dist/cjs/hcs-25/adapters/acp.d.ts +20 -0
  89. package/dist/cjs/hcs-25/adapters/acp.d.ts.map +1 -0
  90. package/dist/cjs/hcs-25/adapters/agentverse.d.ts +34 -0
  91. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -0
  92. package/dist/cjs/hcs-25/adapters/availability.d.ts +22 -0
  93. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -0
  94. package/dist/cjs/hcs-25/adapters/connectivity.d.ts +25 -0
  95. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -0
  96. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  97. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  98. package/dist/cjs/hcs-25/adapters/ethos.d.ts +21 -0
  99. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -0
  100. package/dist/cjs/hcs-25/adapters/index.d.ts +21 -0
  101. package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -0
  102. package/dist/cjs/hcs-25/adapters/model-evals.d.ts +61 -0
  103. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -0
  104. package/dist/cjs/hcs-25/adapters/normalization.d.ts +20 -0
  105. package/dist/cjs/hcs-25/adapters/normalization.d.ts.map +1 -0
  106. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts +22 -0
  107. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  108. package/dist/cjs/hcs-25/adapters/output-verification.d.ts +27 -0
  109. package/dist/cjs/hcs-25/adapters/output-verification.d.ts.map +1 -0
  110. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts +14 -0
  111. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  112. package/dist/cjs/hcs-25/adapters/x402.d.ts +18 -0
  113. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -0
  114. package/dist/cjs/hcs-25/identifiers.d.ts +2 -2
  115. package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -1
  116. package/dist/cjs/hcs-25/index.d.ts +2 -0
  117. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  118. package/dist/cjs/hcs-25/scoring.d.ts.map +1 -1
  119. package/dist/cjs/hcs-25/signals/index.d.ts +20 -0
  120. package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -0
  121. package/dist/cjs/hcs-25/signals/marketplace.d.ts +296 -0
  122. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -0
  123. package/dist/cjs/hcs-25/signals/metadata.d.ts +40 -0
  124. package/dist/cjs/hcs-25/signals/metadata.d.ts.map +1 -0
  125. package/dist/cjs/hcs-25/signals/model-evals.d.ts +127 -0
  126. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -0
  127. package/dist/cjs/hcs-25/signals/operational.d.ts +757 -0
  128. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -0
  129. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +156 -0
  130. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -0
  131. package/dist/cjs/standards-sdk.cjs +2 -2
  132. package/dist/cjs/standards-sdk.cjs.map +1 -1
  133. package/dist/es/hcs-25/adapters/acp.d.ts +20 -0
  134. package/dist/es/hcs-25/adapters/acp.d.ts.map +1 -0
  135. package/dist/es/hcs-25/adapters/agentverse.d.ts +34 -0
  136. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -0
  137. package/dist/es/hcs-25/adapters/availability.d.ts +22 -0
  138. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -0
  139. package/dist/es/hcs-25/adapters/connectivity.d.ts +25 -0
  140. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -0
  141. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  142. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  143. package/dist/es/hcs-25/adapters/ethos.d.ts +21 -0
  144. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -0
  145. package/dist/es/hcs-25/adapters/index.d.ts +21 -0
  146. package/dist/es/hcs-25/adapters/index.d.ts.map +1 -0
  147. package/dist/es/hcs-25/adapters/model-evals.d.ts +61 -0
  148. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -0
  149. package/dist/es/hcs-25/adapters/normalization.d.ts +20 -0
  150. package/dist/es/hcs-25/adapters/normalization.d.ts.map +1 -0
  151. package/dist/es/hcs-25/adapters/oss-popularity.d.ts +22 -0
  152. package/dist/es/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  153. package/dist/es/hcs-25/adapters/output-verification.d.ts +27 -0
  154. package/dist/es/hcs-25/adapters/output-verification.d.ts.map +1 -0
  155. package/dist/es/hcs-25/adapters/simple-evals.d.ts +14 -0
  156. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  157. package/dist/es/hcs-25/adapters/x402.d.ts +18 -0
  158. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -0
  159. package/dist/es/hcs-25/identifiers.d.ts +2 -2
  160. package/dist/es/hcs-25/identifiers.d.ts.map +1 -1
  161. package/dist/es/hcs-25/index.d.ts +2 -0
  162. package/dist/es/hcs-25/index.d.ts.map +1 -1
  163. package/dist/es/hcs-25/scoring.d.ts.map +1 -1
  164. package/dist/es/hcs-25/signals/index.d.ts +20 -0
  165. package/dist/es/hcs-25/signals/index.d.ts.map +1 -0
  166. package/dist/es/hcs-25/signals/marketplace.d.ts +296 -0
  167. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -0
  168. package/dist/es/hcs-25/signals/metadata.d.ts +40 -0
  169. package/dist/es/hcs-25/signals/metadata.d.ts.map +1 -0
  170. package/dist/es/hcs-25/signals/model-evals.d.ts +127 -0
  171. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -0
  172. package/dist/es/hcs-25/signals/operational.d.ts +757 -0
  173. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -0
  174. package/dist/es/hcs-25/signals/simple-evals.d.ts +156 -0
  175. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -0
  176. package/dist/es/standards-sdk.es.js +109 -40
  177. package/dist/es/standards-sdk.es.js.map +1 -1
  178. package/dist/es/standards-sdk.es101.js +2 -2
  179. package/dist/es/standards-sdk.es103.js +2 -2
  180. package/dist/es/standards-sdk.es104.js +1 -1
  181. package/dist/es/standards-sdk.es106.js +1 -1
  182. package/dist/es/standards-sdk.es108.js +2 -2
  183. package/dist/es/standards-sdk.es11.js +1 -1
  184. package/dist/es/standards-sdk.es110.js +1 -1
  185. package/dist/es/standards-sdk.es111.js +2 -2
  186. package/dist/es/standards-sdk.es115.js +3 -3
  187. package/dist/es/standards-sdk.es116.js +4 -4
  188. package/dist/es/standards-sdk.es117.js +1 -1
  189. package/dist/es/standards-sdk.es117.js.map +1 -1
  190. package/dist/es/standards-sdk.es119.js +10 -9
  191. package/dist/es/standards-sdk.es119.js.map +1 -1
  192. package/dist/es/standards-sdk.es12.js +1 -1
  193. package/dist/es/standards-sdk.es120.js +225 -251
  194. package/dist/es/standards-sdk.es120.js.map +1 -1
  195. package/dist/es/standards-sdk.es121.js +50 -477
  196. package/dist/es/standards-sdk.es121.js.map +1 -1
  197. package/dist/es/standards-sdk.es122.js +244 -97
  198. package/dist/es/standards-sdk.es122.js.map +1 -1
  199. package/dist/es/standards-sdk.es123.js +451 -133
  200. package/dist/es/standards-sdk.es123.js.map +1 -1
  201. package/dist/es/standards-sdk.es124.js +98 -27
  202. package/dist/es/standards-sdk.es124.js.map +1 -1
  203. package/dist/es/standards-sdk.es125.js +156 -8
  204. package/dist/es/standards-sdk.es125.js.map +1 -1
  205. package/dist/es/standards-sdk.es126.js +29 -177
  206. package/dist/es/standards-sdk.es126.js.map +1 -1
  207. package/dist/es/standards-sdk.es127.js +10 -27
  208. package/dist/es/standards-sdk.es127.js.map +1 -1
  209. package/dist/es/standards-sdk.es128.js +179 -19
  210. package/dist/es/standards-sdk.es128.js.map +1 -1
  211. package/dist/es/standards-sdk.es129.js +27 -158
  212. package/dist/es/standards-sdk.es129.js.map +1 -1
  213. package/dist/es/standards-sdk.es13.js +1 -1
  214. package/dist/es/standards-sdk.es130.js +16 -195
  215. package/dist/es/standards-sdk.es130.js.map +1 -1
  216. package/dist/es/standards-sdk.es131.js +133 -763
  217. package/dist/es/standards-sdk.es131.js.map +1 -1
  218. package/dist/es/standards-sdk.es132.js +198 -10
  219. package/dist/es/standards-sdk.es132.js.map +1 -1
  220. package/dist/es/standards-sdk.es133.js +762 -539
  221. package/dist/es/standards-sdk.es133.js.map +1 -1
  222. package/dist/es/standards-sdk.es134.js +10 -623
  223. package/dist/es/standards-sdk.es134.js.map +1 -1
  224. package/dist/es/standards-sdk.es135.js +567 -13
  225. package/dist/es/standards-sdk.es135.js.map +1 -1
  226. package/dist/es/standards-sdk.es136.js +626 -2
  227. package/dist/es/standards-sdk.es136.js.map +1 -1
  228. package/dist/es/standards-sdk.es137.js +12 -86
  229. package/dist/es/standards-sdk.es137.js.map +1 -1
  230. package/dist/es/standards-sdk.es138.js +2 -40
  231. package/dist/es/standards-sdk.es138.js.map +1 -1
  232. package/dist/es/standards-sdk.es139.js +87 -2
  233. package/dist/es/standards-sdk.es139.js.map +1 -1
  234. package/dist/es/standards-sdk.es14.js +1 -1
  235. package/dist/es/standards-sdk.es140.js +37 -232
  236. package/dist/es/standards-sdk.es140.js.map +1 -1
  237. package/dist/es/standards-sdk.es141.js +2 -1140
  238. package/dist/es/standards-sdk.es141.js.map +1 -1
  239. package/dist/es/standards-sdk.es142.js +213 -284
  240. package/dist/es/standards-sdk.es142.js.map +1 -1
  241. package/dist/es/standards-sdk.es143.js +1138 -420
  242. package/dist/es/standards-sdk.es143.js.map +1 -1
  243. package/dist/es/standards-sdk.es144.js +301 -350
  244. package/dist/es/standards-sdk.es144.js.map +1 -1
  245. package/dist/es/standards-sdk.es145.js +417 -1117
  246. package/dist/es/standards-sdk.es145.js.map +1 -1
  247. package/dist/es/standards-sdk.es146.js +348 -201
  248. package/dist/es/standards-sdk.es146.js.map +1 -1
  249. package/dist/es/standards-sdk.es147.js +1035 -1480
  250. package/dist/es/standards-sdk.es147.js.map +1 -1
  251. package/dist/es/standards-sdk.es148.js +181 -1130
  252. package/dist/es/standards-sdk.es148.js.map +1 -1
  253. package/dist/es/standards-sdk.es149.js +1564 -14
  254. package/dist/es/standards-sdk.es149.js.map +1 -1
  255. package/dist/es/standards-sdk.es15.js +1 -1
  256. package/dist/es/standards-sdk.es150.js +1122 -224
  257. package/dist/es/standards-sdk.es150.js.map +1 -1
  258. package/dist/es/standards-sdk.es151.js +17 -4
  259. package/dist/es/standards-sdk.es151.js.map +1 -1
  260. package/dist/es/standards-sdk.es152.js +252 -74
  261. package/dist/es/standards-sdk.es152.js.map +1 -1
  262. package/dist/es/standards-sdk.es153.js +4 -87
  263. package/dist/es/standards-sdk.es153.js.map +1 -1
  264. package/dist/es/standards-sdk.es154.js +73 -52
  265. package/dist/es/standards-sdk.es154.js.map +1 -1
  266. package/dist/es/standards-sdk.es155.js +86 -2546
  267. package/dist/es/standards-sdk.es155.js.map +1 -1
  268. package/dist/es/standards-sdk.es156.js +53 -152
  269. package/dist/es/standards-sdk.es156.js.map +1 -1
  270. package/dist/es/standards-sdk.es157.js +2547 -7
  271. package/dist/es/standards-sdk.es157.js.map +1 -1
  272. package/dist/es/standards-sdk.es158.js +138 -65
  273. package/dist/es/standards-sdk.es158.js.map +1 -1
  274. package/dist/es/standards-sdk.es159.js +7 -65
  275. package/dist/es/standards-sdk.es159.js.map +1 -1
  276. package/dist/es/standards-sdk.es16.js +4 -4
  277. package/dist/es/standards-sdk.es160.js +86 -30
  278. package/dist/es/standards-sdk.es160.js.map +1 -1
  279. package/dist/es/standards-sdk.es161.js +65 -34
  280. package/dist/es/standards-sdk.es161.js.map +1 -1
  281. package/dist/es/standards-sdk.es162.js +194 -48
  282. package/dist/es/standards-sdk.es162.js.map +1 -1
  283. package/dist/es/standards-sdk.es163.js +17 -12473
  284. package/dist/es/standards-sdk.es163.js.map +1 -1
  285. package/dist/es/standards-sdk.es164.js +53 -133
  286. package/dist/es/standards-sdk.es164.js.map +1 -1
  287. package/dist/es/standards-sdk.es165.js +91 -38
  288. package/dist/es/standards-sdk.es165.js.map +1 -1
  289. package/dist/es/standards-sdk.es166.js +47 -15
  290. package/dist/es/standards-sdk.es166.js.map +1 -1
  291. package/dist/es/standards-sdk.es167.js +201 -53
  292. package/dist/es/standards-sdk.es167.js.map +1 -1
  293. package/dist/es/standards-sdk.es168.js +53 -108
  294. package/dist/es/standards-sdk.es168.js.map +1 -1
  295. package/dist/es/standards-sdk.es169.js +47 -79
  296. package/dist/es/standards-sdk.es169.js.map +1 -1
  297. package/dist/es/standards-sdk.es170.js +48 -192
  298. package/dist/es/standards-sdk.es170.js.map +1 -1
  299. package/dist/es/standards-sdk.es171.js +47 -670
  300. package/dist/es/standards-sdk.es171.js.map +1 -1
  301. package/dist/es/standards-sdk.es172.js +110 -61
  302. package/dist/es/standards-sdk.es172.js.map +1 -1
  303. package/dist/es/standards-sdk.es173.js +51 -169
  304. package/dist/es/standards-sdk.es173.js.map +1 -1
  305. package/dist/es/standards-sdk.es174.js +39 -317
  306. package/dist/es/standards-sdk.es174.js.map +1 -1
  307. package/dist/es/standards-sdk.es175.js +72 -346
  308. package/dist/es/standards-sdk.es175.js.map +1 -1
  309. package/dist/es/standards-sdk.es176.js +68 -453
  310. package/dist/es/standards-sdk.es176.js.map +1 -1
  311. package/dist/es/standards-sdk.es177.js +44 -331
  312. package/dist/es/standards-sdk.es177.js.map +1 -1
  313. package/dist/es/standards-sdk.es178.js +31 -71
  314. package/dist/es/standards-sdk.es178.js.map +1 -1
  315. package/dist/es/standards-sdk.es179.js +30 -139
  316. package/dist/es/standards-sdk.es179.js.map +1 -1
  317. package/dist/es/standards-sdk.es18.js +11 -11
  318. package/dist/es/standards-sdk.es180.js +34 -517
  319. package/dist/es/standards-sdk.es180.js.map +1 -1
  320. package/dist/es/standards-sdk.es181.js +48 -259
  321. package/dist/es/standards-sdk.es181.js.map +1 -1
  322. package/dist/es/standards-sdk.es182.js +127 -185
  323. package/dist/es/standards-sdk.es182.js.map +1 -1
  324. package/dist/es/standards-sdk.es183.js +36 -113
  325. package/dist/es/standards-sdk.es183.js.map +1 -1
  326. package/dist/es/standards-sdk.es184.js +12464 -134
  327. package/dist/es/standards-sdk.es184.js.map +1 -1
  328. package/dist/es/standards-sdk.es185.js +629 -141
  329. package/dist/es/standards-sdk.es185.js.map +1 -1
  330. package/dist/es/standards-sdk.es186.js +83 -656
  331. package/dist/es/standards-sdk.es186.js.map +1 -1
  332. package/dist/es/standards-sdk.es187.js +61 -173
  333. package/dist/es/standards-sdk.es187.js.map +1 -1
  334. package/dist/es/standards-sdk.es188.js +49 -228
  335. package/dist/es/standards-sdk.es188.js.map +1 -1
  336. package/dist/es/standards-sdk.es189.js +68 -226
  337. package/dist/es/standards-sdk.es189.js.map +1 -1
  338. package/dist/es/standards-sdk.es19.js +8 -8
  339. package/dist/es/standards-sdk.es190.js +203 -0
  340. package/dist/es/standards-sdk.es190.js.map +1 -0
  341. package/dist/es/standards-sdk.es191.js +175 -0
  342. package/dist/es/standards-sdk.es191.js.map +1 -0
  343. package/dist/es/standards-sdk.es192.js +325 -0
  344. package/dist/es/standards-sdk.es192.js.map +1 -0
  345. package/dist/es/standards-sdk.es193.js +349 -0
  346. package/dist/es/standards-sdk.es193.js.map +1 -0
  347. package/dist/es/standards-sdk.es194.js +456 -0
  348. package/dist/es/standards-sdk.es194.js.map +1 -0
  349. package/dist/es/standards-sdk.es195.js +334 -0
  350. package/dist/es/standards-sdk.es195.js.map +1 -0
  351. package/dist/es/standards-sdk.es196.js +79 -0
  352. package/dist/es/standards-sdk.es196.js.map +1 -0
  353. package/dist/es/standards-sdk.es197.js +20 -0
  354. package/dist/es/standards-sdk.es197.js.map +1 -0
  355. package/dist/es/standards-sdk.es198.js +142 -0
  356. package/dist/es/standards-sdk.es198.js.map +1 -0
  357. package/dist/es/standards-sdk.es199.js +520 -0
  358. package/dist/es/standards-sdk.es199.js.map +1 -0
  359. package/dist/es/standards-sdk.es2.js +2 -2
  360. package/dist/es/standards-sdk.es20.js +1 -1
  361. package/dist/es/standards-sdk.es200.js +262 -0
  362. package/dist/es/standards-sdk.es200.js.map +1 -0
  363. package/dist/es/standards-sdk.es201.js +199 -0
  364. package/dist/es/standards-sdk.es201.js.map +1 -0
  365. package/dist/es/standards-sdk.es202.js +122 -0
  366. package/dist/es/standards-sdk.es202.js.map +1 -0
  367. package/dist/es/standards-sdk.es203.js +155 -0
  368. package/dist/es/standards-sdk.es203.js.map +1 -0
  369. package/dist/es/standards-sdk.es204.js +187 -0
  370. package/dist/es/standards-sdk.es204.js.map +1 -0
  371. package/dist/es/standards-sdk.es205.js +687 -0
  372. package/dist/es/standards-sdk.es205.js.map +1 -0
  373. package/dist/es/standards-sdk.es206.js +188 -0
  374. package/dist/es/standards-sdk.es206.js.map +1 -0
  375. package/dist/es/standards-sdk.es207.js +238 -0
  376. package/dist/es/standards-sdk.es207.js.map +1 -0
  377. package/dist/es/standards-sdk.es208.js +242 -0
  378. package/dist/es/standards-sdk.es208.js.map +1 -0
  379. package/dist/es/standards-sdk.es21.js +1 -1
  380. package/dist/es/standards-sdk.es22.js +1 -1
  381. package/dist/es/standards-sdk.es23.js +1 -1
  382. package/dist/es/standards-sdk.es24.js +1 -1
  383. package/dist/es/standards-sdk.es25.js +1 -1
  384. package/dist/es/standards-sdk.es26.js +1 -1
  385. package/dist/es/standards-sdk.es27.js +11 -11
  386. package/dist/es/standards-sdk.es30.js +2 -2
  387. package/dist/es/standards-sdk.es31.js +4 -4
  388. package/dist/es/standards-sdk.es32.js +1 -1
  389. package/dist/es/standards-sdk.es35.js +5 -5
  390. package/dist/es/standards-sdk.es36.js +4 -4
  391. package/dist/es/standards-sdk.es37.js +2 -2
  392. package/dist/es/standards-sdk.es38.js +2 -2
  393. package/dist/es/standards-sdk.es39.js +1 -1
  394. package/dist/es/standards-sdk.es4.js +2 -2
  395. package/dist/es/standards-sdk.es40.js +1 -1
  396. package/dist/es/standards-sdk.es41.js +2 -2
  397. package/dist/es/standards-sdk.es46.js +1 -1
  398. package/dist/es/standards-sdk.es5.js +2 -2
  399. package/dist/es/standards-sdk.es51.js +1 -1
  400. package/dist/es/standards-sdk.es53.js +1 -1
  401. package/dist/es/standards-sdk.es56.js +2 -2
  402. package/dist/es/standards-sdk.es59.js +1 -1
  403. package/dist/es/standards-sdk.es6.js +2 -2
  404. package/dist/es/standards-sdk.es60.js +1 -1
  405. package/dist/es/standards-sdk.es62.js +1 -1
  406. package/dist/es/standards-sdk.es63.js +2 -2
  407. package/dist/es/standards-sdk.es64.js +1 -1
  408. package/dist/es/standards-sdk.es65.js +1 -1
  409. package/dist/es/standards-sdk.es66.js +1 -1
  410. package/dist/es/standards-sdk.es67.js +6 -6
  411. package/dist/es/standards-sdk.es69.js +1 -1
  412. package/dist/es/standards-sdk.es7.js +1 -1
  413. package/dist/es/standards-sdk.es71.js +2 -2
  414. package/dist/es/standards-sdk.es72.js +3 -3
  415. package/dist/es/standards-sdk.es75.js +5 -5
  416. package/dist/es/standards-sdk.es76.js +3 -3
  417. package/dist/es/standards-sdk.es77.js +2 -2
  418. package/dist/es/standards-sdk.es78.js +1 -1
  419. package/dist/es/standards-sdk.es81.js +2 -2
  420. package/dist/es/standards-sdk.es83.js +2 -2
  421. package/dist/es/standards-sdk.es84.js +3 -3
  422. package/dist/es/standards-sdk.es85.js +1 -1
  423. package/dist/es/standards-sdk.es88.js +1 -1
  424. package/dist/es/standards-sdk.es89.js +2 -2
  425. package/dist/es/standards-sdk.es9.js +2 -2
  426. package/dist/es/standards-sdk.es90.js +4 -4
  427. package/dist/es/standards-sdk.es94.js +3 -3
  428. package/dist/es/standards-sdk.es96.js +2 -2
  429. package/dist/es/standards-sdk.es98.js +1 -1
  430. package/dist/es/standards-sdk.es99.js +3 -3
  431. package/package.json +1 -1
@@ -0,0 +1,334 @@
1
+ import { proto } from "@hashgraph/proto";
2
+ import { Long, FileId, ContractId } from "@hashgraph/sdk";
3
+ import { hasTransactionType } from "./standards-sdk.es196.js";
4
+ class UtilParser {
5
+ /**
6
+ * Parse Utility/System Service transaction using unified dual-branch approach
7
+ * This handles both regular transactions and signed transaction variants
8
+ */
9
+ static parseUtilTransaction(transaction, originalBytes) {
10
+ try {
11
+ if (originalBytes || transaction.toBytes) {
12
+ try {
13
+ const bytesToParse = originalBytes || transaction.toBytes();
14
+ const decoded = proto.TransactionList.decode(bytesToParse);
15
+ if (decoded.transactionList && decoded.transactionList.length > 0) {
16
+ const tx = decoded.transactionList[0];
17
+ let txBody = null;
18
+ if (tx.bodyBytes && tx.bodyBytes.length > 0) {
19
+ txBody = proto.TransactionBody.decode(tx.bodyBytes);
20
+ } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
21
+ const signedTx = proto.SignedTransaction.decode(
22
+ tx.signedTransactionBytes
23
+ );
24
+ if (signedTx.bodyBytes) {
25
+ txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
26
+ }
27
+ }
28
+ if (txBody) {
29
+ const protoResult = this.parseFromProtobufTxBody(txBody);
30
+ if (protoResult.type && protoResult.type !== "UNKNOWN") {
31
+ return protoResult;
32
+ }
33
+ }
34
+ }
35
+ } catch (protoError) {
36
+ }
37
+ }
38
+ return this.parseFromTransactionInternals(transaction);
39
+ } catch (error) {
40
+ return {
41
+ type: "UNKNOWN",
42
+ humanReadableType: "Unknown Utility Transaction"
43
+ };
44
+ }
45
+ }
46
+ /**
47
+ * Parse utility transaction from protobuf TransactionBody
48
+ * Handles all utility operations from decoded protobuf data
49
+ */
50
+ static parseFromProtobufTxBody(txBody) {
51
+ if (txBody.utilPrng) {
52
+ const utilPrng = this.parseUtilPrng(txBody.utilPrng);
53
+ if (utilPrng) {
54
+ return {
55
+ type: "PRNG",
56
+ humanReadableType: "Pseudo Random Number",
57
+ utilPrng
58
+ };
59
+ }
60
+ }
61
+ if (txBody.freeze) {
62
+ const networkFreeze = this.parseNetworkFreezeFromProto(txBody.freeze);
63
+ if (networkFreeze) {
64
+ return {
65
+ type: "FREEZE",
66
+ humanReadableType: "Network Freeze",
67
+ freeze: networkFreeze
68
+ };
69
+ }
70
+ }
71
+ if (txBody.systemDelete) {
72
+ const systemDelete = this.parseSystemDeleteFromProto(txBody.systemDelete);
73
+ if (systemDelete) {
74
+ return {
75
+ type: "SYSTEMDELETE",
76
+ humanReadableType: "System Delete",
77
+ systemDelete
78
+ };
79
+ }
80
+ }
81
+ if (txBody.systemUndelete) {
82
+ const systemUndelete = this.parseSystemUndeleteFromProto(
83
+ txBody.systemUndelete
84
+ );
85
+ if (systemUndelete) {
86
+ return {
87
+ type: "SYSTEMUNDELETE",
88
+ humanReadableType: "System Undelete",
89
+ systemUndelete
90
+ };
91
+ }
92
+ }
93
+ if (txBody.nodeCreate) {
94
+ const nodeCreate = this.parseNodeCreateFromProto(txBody.nodeCreate);
95
+ if (nodeCreate) {
96
+ return {
97
+ type: "NODECREATE",
98
+ humanReadableType: "Node Create",
99
+ nodeCreate
100
+ };
101
+ }
102
+ }
103
+ if (txBody.nodeUpdate) {
104
+ const nodeUpdate = this.parseNodeUpdateFromProto(txBody.nodeUpdate);
105
+ if (nodeUpdate) {
106
+ return {
107
+ type: "NODEUPDATE",
108
+ humanReadableType: "Node Update",
109
+ nodeUpdate
110
+ };
111
+ }
112
+ }
113
+ if (txBody.nodeDelete) {
114
+ const nodeDelete = this.parseNodeDeleteFromProto(txBody.nodeDelete);
115
+ if (nodeDelete) {
116
+ return {
117
+ type: "NODEDELETE",
118
+ humanReadableType: "Node Delete",
119
+ nodeDelete
120
+ };
121
+ }
122
+ }
123
+ return {};
124
+ }
125
+ /**
126
+ * Extract utility data from Transaction internal fields
127
+ * This handles cases where data is stored in Transaction object internals
128
+ */
129
+ static parseFromTransactionInternals(transaction) {
130
+ try {
131
+ const tx = transaction;
132
+ if (hasTransactionType(transaction, "utilPrng")) {
133
+ const utilPrng = {};
134
+ if (tx._range && tx._range !== 0) {
135
+ utilPrng.range = tx._range;
136
+ }
137
+ return {
138
+ type: "PRNG",
139
+ humanReadableType: "Pseudo Random Number",
140
+ utilPrng
141
+ };
142
+ }
143
+ if (hasTransactionType(transaction, "freeze")) {
144
+ const networkFreeze = {};
145
+ if (tx._startTime) {
146
+ networkFreeze.startTime = tx._startTime.toString();
147
+ }
148
+ if (tx._endTime) {
149
+ networkFreeze.endTime = tx._endTime.toString();
150
+ }
151
+ if (tx._updateFile) {
152
+ networkFreeze.updateFile = tx._updateFile.toString();
153
+ }
154
+ if (tx._fileHash) {
155
+ networkFreeze.fileHash = Buffer.from(tx._fileHash).toString("hex");
156
+ }
157
+ if (tx._freezeType) {
158
+ networkFreeze.freezeType = tx._freezeType;
159
+ }
160
+ return {
161
+ type: "FREEZE",
162
+ humanReadableType: "Network Freeze",
163
+ freeze: networkFreeze
164
+ };
165
+ }
166
+ if (hasTransactionType(transaction, "systemDelete")) {
167
+ const systemDelete = {};
168
+ if (tx._fileId) {
169
+ systemDelete.fileId = tx._fileId.toString();
170
+ } else if (tx._contractId) {
171
+ systemDelete.contractId = tx._contractId.toString();
172
+ }
173
+ if (tx._expirationTime) {
174
+ systemDelete.expirationTime = tx._expirationTime.toString();
175
+ }
176
+ return {
177
+ type: "SYSTEMDELETE",
178
+ humanReadableType: "System Delete",
179
+ systemDelete
180
+ };
181
+ }
182
+ if (hasTransactionType(transaction, "systemUndelete")) {
183
+ const systemUndelete = {};
184
+ if (tx._fileId) {
185
+ systemUndelete.fileId = tx._fileId.toString();
186
+ } else if (tx._contractId) {
187
+ systemUndelete.contractId = tx._contractId.toString();
188
+ }
189
+ return {
190
+ type: "SYSTEMUNDELETE",
191
+ humanReadableType: "System Undelete",
192
+ systemUndelete
193
+ };
194
+ }
195
+ return {};
196
+ } catch (error) {
197
+ return {};
198
+ }
199
+ }
200
+ /**
201
+ * Parse Network Freeze from protobuf data
202
+ */
203
+ static parseNetworkFreezeFromProto(body) {
204
+ if (!body) return void 0;
205
+ const data = {};
206
+ if (body.startTime?.seconds) {
207
+ data.startTime = `${Long.fromValue(
208
+ body.startTime.seconds
209
+ ).toString()}.${body.startTime.nanos ?? 0}`;
210
+ }
211
+ if (body.updateFile) {
212
+ data.updateFile = new FileId(
213
+ body.updateFile.shardNum ?? 0,
214
+ body.updateFile.realmNum ?? 0,
215
+ body.updateFile.fileNum ?? 0
216
+ ).toString();
217
+ }
218
+ if (body.fileHash && body.fileHash.length > 0) {
219
+ data.fileHash = Buffer.from(body.fileHash).toString("hex");
220
+ }
221
+ if (body.freezeType !== void 0) {
222
+ const freezeTypes = [
223
+ "FREEZE_ONLY",
224
+ "PREPARE_UPGRADE",
225
+ "FREEZE_UPGRADE",
226
+ "FREEZE_ABORT"
227
+ ];
228
+ data.freezeType = freezeTypes[body.freezeType] || "FREEZE_ONLY";
229
+ }
230
+ return data;
231
+ }
232
+ /**
233
+ * Parse System Delete from protobuf data
234
+ */
235
+ static parseSystemDeleteFromProto(body) {
236
+ if (!body) return void 0;
237
+ const data = {};
238
+ if (body.fileID) {
239
+ data.fileId = new FileId(
240
+ body.fileID.shardNum ?? 0,
241
+ body.fileID.realmNum ?? 0,
242
+ body.fileID.fileNum ?? 0
243
+ ).toString();
244
+ } else if (body.contractID) {
245
+ data.contractId = new ContractId(
246
+ body.contractID.shardNum ?? 0,
247
+ body.contractID.realmNum ?? 0,
248
+ body.contractID.contractNum ?? 0
249
+ ).toString();
250
+ }
251
+ if (body.expirationTime?.seconds) {
252
+ data.expirationTime = Long.fromValue(
253
+ body.expirationTime.seconds
254
+ ).toString();
255
+ }
256
+ return data;
257
+ }
258
+ /**
259
+ * Parse System Undelete from protobuf data
260
+ */
261
+ static parseSystemUndeleteFromProto(body) {
262
+ if (!body) return void 0;
263
+ const data = {};
264
+ if (body.fileID) {
265
+ data.fileId = new FileId(
266
+ body.fileID.shardNum ?? 0,
267
+ body.fileID.realmNum ?? 0,
268
+ body.fileID.fileNum ?? 0
269
+ ).toString();
270
+ } else if (body.contractID) {
271
+ data.contractId = new ContractId(
272
+ body.contractID.shardNum ?? 0,
273
+ body.contractID.realmNum ?? 0,
274
+ body.contractID.contractNum ?? 0
275
+ ).toString();
276
+ }
277
+ return data;
278
+ }
279
+ /**
280
+ * Parse Node Create from protobuf data
281
+ */
282
+ static parseNodeCreateFromProto(body) {
283
+ if (!body) return void 0;
284
+ const data = {};
285
+ if (body.nodeId !== void 0) {
286
+ data.nodeId = Long.fromValue(body.nodeId).toNumber();
287
+ }
288
+ return data;
289
+ }
290
+ /**
291
+ * Parse Node Update from protobuf data
292
+ */
293
+ static parseNodeUpdateFromProto(body) {
294
+ if (!body) return void 0;
295
+ const data = {};
296
+ if (body.nodeId !== void 0) {
297
+ data.nodeId = Long.fromValue(body.nodeId).toNumber();
298
+ }
299
+ return data;
300
+ }
301
+ /**
302
+ * Parse Node Delete from protobuf data
303
+ */
304
+ static parseNodeDeleteFromProto(body) {
305
+ if (!body) return void 0;
306
+ const data = {};
307
+ if (body.nodeId !== void 0) {
308
+ data.nodeId = Long.fromValue(body.nodeId).toNumber();
309
+ }
310
+ return data;
311
+ }
312
+ static parseUtilPrng(body) {
313
+ if (!body) return void 0;
314
+ const data = {};
315
+ if (body.range && body.range !== 0) {
316
+ data.range = body.range;
317
+ }
318
+ return data;
319
+ }
320
+ static parseFreeze(body) {
321
+ return this.parseNetworkFreezeFromProto(body);
322
+ }
323
+ /**
324
+ * Parse Utility/System Service transaction from Transaction object
325
+ * This is the unified entry point that delegates to the comprehensive parsing logic
326
+ */
327
+ static parseFromTransactionObject(transaction) {
328
+ return this.parseUtilTransaction(transaction);
329
+ }
330
+ }
331
+ export {
332
+ UtilParser
333
+ };
334
+ //# sourceMappingURL=standards-sdk.es195.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-sdk.es195.js","sources":["../../src/utils/parsers/util-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { Transaction, Long, FileId, ContractId } from '@hashgraph/sdk';\nimport {\n UtilPrngData,\n NetworkFreezeData,\n SystemDeleteData,\n SystemUndeleteData,\n NodeCreateData,\n NodeUpdateData,\n NodeDeleteData,\n} from '../transaction-parser-types';\nimport {\n parseKey,\n extractTransactionBody,\n hasTransactionType,\n} from './parser-utils';\n\n/**\n * Utility and System Operations Parser\n *\n * Handles parsing for utility and system transaction types including:\n * - Pseudo-random number generation (PRNG)\n * - Network freeze operations\n * - System delete/undelete operations\n * - Node management operations\n * - Proper dual-branch parsing (regular vs signed transactions)\n * - Comprehensive protobuf extraction\n */\nexport class UtilParser {\n /**\n * Parse Utility/System Service transaction using unified dual-branch approach\n * This handles both regular transactions and signed transaction variants\n */\n static parseUtilTransaction(\n transaction: Transaction,\n originalBytes?: Uint8Array,\n ): {\n type?: string;\n humanReadableType?: string;\n utilPrng?: UtilPrngData;\n networkFreeze?: NetworkFreezeData;\n systemDelete?: SystemDeleteData;\n systemUndelete?: SystemUndeleteData;\n nodeCreate?: NodeCreateData;\n nodeUpdate?: NodeUpdateData;\n nodeDelete?: NodeDeleteData;\n [key: string]: unknown;\n } {\n try {\n if (originalBytes || transaction.toBytes) {\n try {\n const bytesToParse = originalBytes || transaction.toBytes();\n const decoded = proto.TransactionList.decode(bytesToParse);\n\n if (decoded.transactionList && decoded.transactionList.length > 0) {\n const tx = decoded.transactionList[0];\n let txBody: proto.ITransactionBody | null = null;\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n txBody = proto.TransactionBody.decode(tx.bodyBytes);\n } else if (\n tx.signedTransactionBytes &&\n tx.signedTransactionBytes.length > 0\n ) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n txBody = proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n if (txBody) {\n const protoResult = this.parseFromProtobufTxBody(txBody);\n if (protoResult.type && protoResult.type !== 'UNKNOWN') {\n return protoResult;\n }\n }\n }\n } catch (protoError) {}\n }\n\n return this.parseFromTransactionInternals(transaction);\n } catch (error) {\n return {\n type: 'UNKNOWN',\n humanReadableType: 'Unknown Utility Transaction',\n };\n }\n }\n\n /**\n * Parse utility transaction from protobuf TransactionBody\n * Handles all utility operations from decoded protobuf data\n */\n private static parseFromProtobufTxBody(txBody: proto.ITransactionBody): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n if (txBody.utilPrng) {\n const utilPrng = this.parseUtilPrng(txBody.utilPrng);\n if (utilPrng) {\n return {\n type: 'PRNG',\n humanReadableType: 'Pseudo Random Number',\n utilPrng,\n };\n }\n }\n\n if (txBody.freeze) {\n const networkFreeze = this.parseNetworkFreezeFromProto(txBody.freeze);\n if (networkFreeze) {\n return {\n type: 'FREEZE',\n humanReadableType: 'Network Freeze',\n freeze: networkFreeze,\n };\n }\n }\n\n if (txBody.systemDelete) {\n const systemDelete = this.parseSystemDeleteFromProto(txBody.systemDelete);\n if (systemDelete) {\n return {\n type: 'SYSTEMDELETE',\n humanReadableType: 'System Delete',\n systemDelete,\n };\n }\n }\n\n if (txBody.systemUndelete) {\n const systemUndelete = this.parseSystemUndeleteFromProto(\n txBody.systemUndelete,\n );\n if (systemUndelete) {\n return {\n type: 'SYSTEMUNDELETE',\n humanReadableType: 'System Undelete',\n systemUndelete,\n };\n }\n }\n\n if (txBody.nodeCreate) {\n const nodeCreate = this.parseNodeCreateFromProto(txBody.nodeCreate);\n if (nodeCreate) {\n return {\n type: 'NODECREATE',\n humanReadableType: 'Node Create',\n nodeCreate,\n };\n }\n }\n\n if (txBody.nodeUpdate) {\n const nodeUpdate = this.parseNodeUpdateFromProto(txBody.nodeUpdate);\n if (nodeUpdate) {\n return {\n type: 'NODEUPDATE',\n humanReadableType: 'Node Update',\n nodeUpdate,\n };\n }\n }\n\n if (txBody.nodeDelete) {\n const nodeDelete = this.parseNodeDeleteFromProto(txBody.nodeDelete);\n if (nodeDelete) {\n return {\n type: 'NODEDELETE',\n humanReadableType: 'Node Delete',\n nodeDelete,\n };\n }\n }\n\n return {};\n }\n\n /**\n * Extract utility data from Transaction internal fields\n * This handles cases where data is stored in Transaction object internals\n */\n private static parseFromTransactionInternals(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n try {\n const tx = transaction as unknown as {\n _range?: number;\n _startTime?: { toString(): string };\n _endTime?: { toString(): string };\n _updateFile?: { toString(): string };\n _fileHash?: Uint8Array;\n _freezeType?: string;\n _fileId?: { toString(): string };\n _contractId?: { toString(): string };\n _expirationTime?: { toString(): string };\n _nodeId?: number;\n _accountId?: { toString(): string };\n _description?: string;\n _gossipEndpoint?: Array<unknown>;\n _serviceEndpoint?: Array<unknown>;\n _gossipCaCertificate?: Uint8Array;\n _grpcCertificateHash?: Uint8Array;\n _adminKey?: unknown;\n constructor?: { name?: string };\n };\n\n if (hasTransactionType(transaction, 'utilPrng')) {\n const utilPrng: UtilPrngData = {};\n if (tx._range && tx._range !== 0) {\n utilPrng.range = tx._range;\n }\n\n return {\n type: 'PRNG',\n humanReadableType: 'Pseudo Random Number',\n utilPrng,\n };\n }\n\n if (hasTransactionType(transaction, 'freeze')) {\n const networkFreeze: NetworkFreezeData = {};\n\n if (tx._startTime) {\n networkFreeze.startTime = tx._startTime.toString();\n }\n if (tx._endTime) {\n networkFreeze.endTime = tx._endTime.toString();\n }\n if (tx._updateFile) {\n networkFreeze.updateFile = tx._updateFile.toString();\n }\n if (tx._fileHash) {\n networkFreeze.fileHash = Buffer.from(tx._fileHash).toString('hex');\n }\n if (tx._freezeType) {\n networkFreeze.freezeType = tx._freezeType as any;\n }\n\n return {\n type: 'FREEZE',\n humanReadableType: 'Network Freeze',\n freeze: networkFreeze,\n };\n }\n\n if (hasTransactionType(transaction, 'systemDelete')) {\n const systemDelete: SystemDeleteData = {};\n\n if (tx._fileId) {\n systemDelete.fileId = tx._fileId.toString();\n } else if (tx._contractId) {\n systemDelete.contractId = tx._contractId.toString();\n }\n\n if (tx._expirationTime) {\n systemDelete.expirationTime = tx._expirationTime.toString();\n }\n\n return {\n type: 'SYSTEMDELETE',\n humanReadableType: 'System Delete',\n systemDelete,\n };\n }\n\n if (hasTransactionType(transaction, 'systemUndelete')) {\n const systemUndelete: SystemUndeleteData = {};\n\n if (tx._fileId) {\n systemUndelete.fileId = tx._fileId.toString();\n } else if (tx._contractId) {\n systemUndelete.contractId = tx._contractId.toString();\n }\n\n return {\n type: 'SYSTEMUNDELETE',\n humanReadableType: 'System Undelete',\n systemUndelete,\n };\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Parse Network Freeze from protobuf data\n */\n private static parseNetworkFreezeFromProto(\n body: proto.IFreezeTransactionBody,\n ): NetworkFreezeData | undefined {\n if (!body) return undefined;\n\n const data: NetworkFreezeData = {};\n\n if (body.startTime?.seconds) {\n data.startTime = `${Long.fromValue(\n body.startTime.seconds,\n ).toString()}.${body.startTime.nanos ?? 0}`;\n }\n\n if (body.updateFile) {\n data.updateFile = new FileId(\n body.updateFile.shardNum ?? 0,\n body.updateFile.realmNum ?? 0,\n body.updateFile.fileNum ?? 0,\n ).toString();\n }\n\n if (body.fileHash && body.fileHash.length > 0) {\n data.fileHash = Buffer.from(body.fileHash).toString('hex');\n }\n\n if (body.freezeType !== undefined) {\n const freezeTypes = [\n 'FREEZE_ONLY',\n 'PREPARE_UPGRADE',\n 'FREEZE_UPGRADE',\n 'FREEZE_ABORT',\n ];\n data.freezeType = (freezeTypes[body.freezeType] as any) || 'FREEZE_ONLY';\n }\n\n return data;\n }\n\n /**\n * Parse System Delete from protobuf data\n */\n private static parseSystemDeleteFromProto(\n body: proto.ISystemDeleteTransactionBody,\n ): SystemDeleteData | undefined {\n if (!body) return undefined;\n\n const data: SystemDeleteData = {};\n\n if (body.fileID) {\n data.fileId = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0,\n ).toString();\n } else if (body.contractID) {\n data.contractId = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n\n if (body.expirationTime?.seconds) {\n data.expirationTime = Long.fromValue(\n body.expirationTime.seconds,\n ).toString();\n }\n\n return data;\n }\n\n /**\n * Parse System Undelete from protobuf data\n */\n private static parseSystemUndeleteFromProto(\n body: proto.ISystemUndeleteTransactionBody,\n ): SystemUndeleteData | undefined {\n if (!body) return undefined;\n\n const data: SystemUndeleteData = {};\n\n if (body.fileID) {\n data.fileId = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0,\n ).toString();\n } else if (body.contractID) {\n data.contractId = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n\n return data;\n }\n\n /**\n * Parse Node Create from protobuf data\n */\n private static parseNodeCreateFromProto(\n body: any,\n ): NodeCreateData | undefined {\n if (!body) return undefined;\n\n const data: NodeCreateData = {};\n\n if (body.nodeId !== undefined) {\n data.nodeId = Long.fromValue(body.nodeId).toNumber();\n }\n\n return data;\n }\n\n /**\n * Parse Node Update from protobuf data\n */\n private static parseNodeUpdateFromProto(\n body: any,\n ): NodeUpdateData | undefined {\n if (!body) return undefined;\n\n const data: NodeUpdateData = {};\n\n if (body.nodeId !== undefined) {\n data.nodeId = Long.fromValue(body.nodeId).toNumber();\n }\n\n return data;\n }\n\n /**\n * Parse Node Delete from protobuf data\n */\n private static parseNodeDeleteFromProto(\n body: any,\n ): NodeDeleteData | undefined {\n if (!body) return undefined;\n\n const data: NodeDeleteData = {};\n\n if (body.nodeId !== undefined) {\n data.nodeId = Long.fromValue(body.nodeId).toNumber();\n }\n\n return data;\n }\n\n static parseUtilPrng(\n body: proto.IUtilPrngTransactionBody,\n ): UtilPrngData | undefined {\n if (!body) return undefined;\n const data: UtilPrngData = {};\n if (body.range && body.range !== 0) {\n data.range = body.range;\n }\n return data;\n }\n\n static parseFreeze(\n body: proto.IFreezeTransactionBody,\n ): NetworkFreezeData | undefined {\n return this.parseNetworkFreezeFromProto(body);\n }\n\n /**\n * Parse Utility/System Service transaction from Transaction object\n * This is the unified entry point that delegates to the comprehensive parsing logic\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n return this.parseUtilTransaction(transaction);\n }\n}\n"],"names":[],"mappings":";;;AA4BO,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtB,OAAO,qBACL,aACA,eAYA;AACA,QAAI;AACF,UAAI,iBAAiB,YAAY,SAAS;AACxC,YAAI;AACF,gBAAM,eAAe,iBAAiB,YAAY,QAAA;AAClD,gBAAM,UAAU,MAAM,gBAAgB,OAAO,YAAY;AAEzD,cAAI,QAAQ,mBAAmB,QAAQ,gBAAgB,SAAS,GAAG;AACjE,kBAAM,KAAK,QAAQ,gBAAgB,CAAC;AACpC,gBAAI,SAAwC;AAE5C,gBAAI,GAAG,aAAa,GAAG,UAAU,SAAS,GAAG;AAC3C,uBAAS,MAAM,gBAAgB,OAAO,GAAG,SAAS;AAAA,YACpD,WACE,GAAG,0BACH,GAAG,uBAAuB,SAAS,GACnC;AACA,oBAAM,WAAW,MAAM,kBAAkB;AAAA,gBACvC,GAAG;AAAA,cAAA;AAEL,kBAAI,SAAS,WAAW;AACtB,yBAAS,MAAM,gBAAgB,OAAO,SAAS,SAAS;AAAA,cAC1D;AAAA,YACF;AAEA,gBAAI,QAAQ;AACV,oBAAM,cAAc,KAAK,wBAAwB,MAAM;AACvD,kBAAI,YAAY,QAAQ,YAAY,SAAS,WAAW;AACtD,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,QACF,SAAS,YAAY;AAAA,QAAC;AAAA,MACxB;AAEA,aAAO,KAAK,8BAA8B,WAAW;AAAA,IACvD,SAAS,OAAO;AACd,aAAO;AAAA,QACL,MAAM;AAAA,QACN,mBAAmB;AAAA,MAAA;AAAA,IAEvB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAe,wBAAwB,QAIrC;AACA,QAAI,OAAO,UAAU;AACnB,YAAM,WAAW,KAAK,cAAc,OAAO,QAAQ;AACnD,UAAI,UAAU;AACZ,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,QAAQ;AACjB,YAAM,gBAAgB,KAAK,4BAA4B,OAAO,MAAM;AACpE,UAAI,eAAe;AACjB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB,QAAQ;AAAA,QAAA;AAAA,MAEZ;AAAA,IACF;AAEA,QAAI,OAAO,cAAc;AACvB,YAAM,eAAe,KAAK,2BAA2B,OAAO,YAAY;AACxE,UAAI,cAAc;AAChB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,gBAAgB;AACzB,YAAM,iBAAiB,KAAK;AAAA,QAC1B,OAAO;AAAA,MAAA;AAET,UAAI,gBAAgB;AAClB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,YAAY;AACrB,YAAM,aAAa,KAAK,yBAAyB,OAAO,UAAU;AAClE,UAAI,YAAY;AACd,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,YAAY;AACrB,YAAM,aAAa,KAAK,yBAAyB,OAAO,UAAU;AAClE,UAAI,YAAY;AACd,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,YAAY;AACrB,YAAM,aAAa,KAAK,yBAAyB,OAAO,UAAU;AAClE,UAAI,YAAY;AACd,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,WAAO,CAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAe,8BAA8B,aAI3C;AACA,QAAI;AACF,YAAM,KAAK;AAqBX,UAAI,mBAAmB,aAAa,UAAU,GAAG;AAC/C,cAAM,WAAyB,CAAA;AAC/B,YAAI,GAAG,UAAU,GAAG,WAAW,GAAG;AAChC,mBAAS,QAAQ,GAAG;AAAA,QACtB;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAEA,UAAI,mBAAmB,aAAa,QAAQ,GAAG;AAC7C,cAAM,gBAAmC,CAAA;AAEzC,YAAI,GAAG,YAAY;AACjB,wBAAc,YAAY,GAAG,WAAW,SAAA;AAAA,QAC1C;AACA,YAAI,GAAG,UAAU;AACf,wBAAc,UAAU,GAAG,SAAS,SAAA;AAAA,QACtC;AACA,YAAI,GAAG,aAAa;AAClB,wBAAc,aAAa,GAAG,YAAY,SAAA;AAAA,QAC5C;AACA,YAAI,GAAG,WAAW;AAChB,wBAAc,WAAW,OAAO,KAAK,GAAG,SAAS,EAAE,SAAS,KAAK;AAAA,QACnE;AACA,YAAI,GAAG,aAAa;AAClB,wBAAc,aAAa,GAAG;AAAA,QAChC;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB,QAAQ;AAAA,QAAA;AAAA,MAEZ;AAEA,UAAI,mBAAmB,aAAa,cAAc,GAAG;AACnD,cAAM,eAAiC,CAAA;AAEvC,YAAI,GAAG,SAAS;AACd,uBAAa,SAAS,GAAG,QAAQ,SAAA;AAAA,QACnC,WAAW,GAAG,aAAa;AACzB,uBAAa,aAAa,GAAG,YAAY,SAAA;AAAA,QAC3C;AAEA,YAAI,GAAG,iBAAiB;AACtB,uBAAa,iBAAiB,GAAG,gBAAgB,SAAA;AAAA,QACnD;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAEA,UAAI,mBAAmB,aAAa,gBAAgB,GAAG;AACrD,cAAM,iBAAqC,CAAA;AAE3C,YAAI,GAAG,SAAS;AACd,yBAAe,SAAS,GAAG,QAAQ,SAAA;AAAA,QACrC,WAAW,GAAG,aAAa;AACzB,yBAAe,aAAa,GAAG,YAAY,SAAA;AAAA,QAC7C;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAEA,aAAO,CAAA;AAAA,IACT,SAAS,OAAO;AACd,aAAO,CAAA;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,4BACb,MAC+B;AAC/B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAA0B,CAAA;AAEhC,QAAI,KAAK,WAAW,SAAS;AAC3B,WAAK,YAAY,GAAG,KAAK;AAAA,QACvB,KAAK,UAAU;AAAA,MAAA,EACf,SAAA,CAAU,IAAI,KAAK,UAAU,SAAS,CAAC;AAAA,IAC3C;AAEA,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa,IAAI;AAAA,QACpB,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,WAAW;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AAEA,QAAI,KAAK,YAAY,KAAK,SAAS,SAAS,GAAG;AAC7C,WAAK,WAAW,OAAO,KAAK,KAAK,QAAQ,EAAE,SAAS,KAAK;AAAA,IAC3D;AAEA,QAAI,KAAK,eAAe,QAAW;AACjC,YAAM,cAAc;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAEF,WAAK,aAAc,YAAY,KAAK,UAAU,KAAa;AAAA,IAC7D;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,2BACb,MAC8B;AAC9B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAyB,CAAA;AAE/B,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,IAAI;AAAA,QAChB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,WAAW;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ,WAAW,KAAK,YAAY;AAC1B,WAAK,aAAa,IAAI;AAAA,QACpB,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,eAAe;AAAA,MAAA,EAC/B,SAAA;AAAA,IACJ;AAEA,QAAI,KAAK,gBAAgB,SAAS;AAChC,WAAK,iBAAiB,KAAK;AAAA,QACzB,KAAK,eAAe;AAAA,MAAA,EACpB,SAAA;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,6BACb,MACgC;AAChC,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAA2B,CAAA;AAEjC,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,IAAI;AAAA,QAChB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,WAAW;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ,WAAW,KAAK,YAAY;AAC1B,WAAK,aAAa,IAAI;AAAA,QACpB,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,eAAe;AAAA,MAAA,EAC/B,SAAA;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,yBACb,MAC4B;AAC5B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAuB,CAAA;AAE7B,QAAI,KAAK,WAAW,QAAW;AAC7B,WAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,yBACb,MAC4B;AAC5B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAuB,CAAA;AAE7B,QAAI,KAAK,WAAW,QAAW;AAC7B,WAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,yBACb,MAC4B;AAC5B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAuB,CAAA;AAE7B,QAAI,KAAK,WAAW,QAAW;AAC7B,WAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,cACL,MAC0B;AAC1B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAqB,CAAA;AAC3B,QAAI,KAAK,SAAS,KAAK,UAAU,GAAG;AAClC,WAAK,QAAQ,KAAK;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,YACL,MAC+B;AAC/B,WAAO,KAAK,4BAA4B,IAAI;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,2BAA2B,aAIhC;AACA,WAAO,KAAK,qBAAqB,WAAW;AAAA,EAC9C;AACF;"}
@@ -0,0 +1,79 @@
1
+ import { proto } from "@hashgraph/proto";
2
+ import { ContractId } from "@hashgraph/sdk";
3
+ import { Buffer } from "buffer";
4
+ function parseKey(key) {
5
+ if (!key) {
6
+ return void 0;
7
+ }
8
+ if (key.contractID) {
9
+ return `ContractID: ${new ContractId(
10
+ key.contractID.shardNum ?? 0,
11
+ key.contractID.realmNum ?? 0,
12
+ key.contractID.contractNum ?? 0
13
+ ).toString()}`;
14
+ }
15
+ if (key.ed25519) {
16
+ return `ED25519: ${Buffer.from(key.ed25519).toString("hex")}`;
17
+ }
18
+ if (key.ECDSASecp256k1) {
19
+ return `ECDSA_secp256k1: ${Buffer.from(key.ECDSASecp256k1).toString(
20
+ "hex"
21
+ )}`;
22
+ }
23
+ if (key?.keyList?.keys?.length > 0) {
24
+ const keys = key.keyList.keys.map((k) => parseKey(k)).filter(Boolean);
25
+ return `KeyList (${keys.length} keys): [${keys.join(", ")}]`;
26
+ }
27
+ if (key?.thresholdKey?.keys?.keys?.length > 0) {
28
+ const keys = key.thresholdKey.keys.keys.map((k) => parseKey(k)).filter(Boolean);
29
+ return `ThresholdKey (${key.thresholdKey.threshold} of ${keys.length}): [${keys.join(", ")}]`;
30
+ }
31
+ if (key.delegatableContractId) {
32
+ return `DelegatableContractID: ${new ContractId(
33
+ key.delegatableContractId.shardNum ?? 0,
34
+ key.delegatableContractId.realmNum ?? 0,
35
+ key.delegatableContractId.contractNum ?? 0
36
+ ).toString()}`;
37
+ }
38
+ if (Object.keys(key).length === 0) {
39
+ return "Empty Key Structure";
40
+ }
41
+ return "Unknown or Unset Key Type";
42
+ }
43
+ function extractTransactionBody(transaction) {
44
+ try {
45
+ const bytes = transaction.toBytes ? transaction.toBytes() : void 0;
46
+ if (!bytes) {
47
+ return null;
48
+ }
49
+ const decoded = proto.TransactionList.decode(bytes);
50
+ if (!decoded.transactionList || decoded.transactionList.length === 0) {
51
+ return null;
52
+ }
53
+ const tx = decoded.transactionList[0];
54
+ if (tx.bodyBytes && tx.bodyBytes.length > 0) {
55
+ return proto.TransactionBody.decode(tx.bodyBytes);
56
+ }
57
+ if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
58
+ const signedTx = proto.SignedTransaction.decode(
59
+ tx.signedTransactionBytes
60
+ );
61
+ if (signedTx.bodyBytes) {
62
+ return proto.TransactionBody.decode(signedTx.bodyBytes);
63
+ }
64
+ }
65
+ return null;
66
+ } catch (error) {
67
+ return null;
68
+ }
69
+ }
70
+ function hasTransactionType(transaction, transactionField) {
71
+ const txBody = extractTransactionBody(transaction);
72
+ return !!(txBody && txBody[transactionField]);
73
+ }
74
+ export {
75
+ extractTransactionBody,
76
+ hasTransactionType,
77
+ parseKey
78
+ };
79
+ //# sourceMappingURL=standards-sdk.es196.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-sdk.es196.js","sources":["../../src/utils/parsers/parser-utils.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Transaction } from '@hashgraph/sdk';\nimport { Buffer } from 'buffer';\n\nexport function parseKey(\n key: proto.IKey | null | undefined,\n): string | undefined {\n if (!key) {\n return undefined;\n }\n\n if (key.contractID) {\n return `ContractID: ${new ContractId(\n key.contractID.shardNum ?? 0,\n key.contractID.realmNum ?? 0,\n key.contractID.contractNum ?? 0,\n ).toString()}`;\n }\n if (key.ed25519) {\n return `ED25519: ${Buffer.from(key.ed25519).toString('hex')}`;\n }\n if (key.ECDSASecp256k1) {\n return `ECDSA_secp256k1: ${Buffer.from(key.ECDSASecp256k1).toString(\n 'hex',\n )}`;\n }\n if (key?.keyList?.keys?.length > 0) {\n const keys = key.keyList.keys.map(k => parseKey(k)).filter(Boolean);\n return `KeyList (${keys.length} keys): [${keys.join(', ')}]`;\n }\n if (key?.thresholdKey?.keys?.keys?.length > 0) {\n const keys = key.thresholdKey.keys.keys\n .map(k => parseKey(k))\n .filter(Boolean);\n return `ThresholdKey (${key.thresholdKey.threshold} of ${\n keys.length\n }): [${keys.join(', ')}]`;\n }\n if (key.delegatableContractId) {\n return `DelegatableContractID: ${new ContractId(\n key.delegatableContractId.shardNum ?? 0,\n key.delegatableContractId.realmNum ?? 0,\n key.delegatableContractId.contractNum ?? 0,\n ).toString()}`;\n }\n if (Object.keys(key).length === 0) {\n return 'Empty Key Structure';\n }\n\n return 'Unknown or Unset Key Type';\n}\n\n/**\n * Extract TransactionBody from Transaction object using protobuf parsing\n * This replaces fragile constructor name checking with reliable protobuf data\n */\nexport function extractTransactionBody(\n transaction: Transaction,\n): proto.ITransactionBody | null {\n try {\n const bytes = transaction.toBytes ? transaction.toBytes() : undefined;\n if (!bytes) {\n return null;\n }\n\n const decoded = proto.TransactionList.decode(bytes);\n if (!decoded.transactionList || decoded.transactionList.length === 0) {\n return null;\n }\n\n const tx = decoded.transactionList[0];\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n return proto.TransactionBody.decode(tx.bodyBytes);\n }\n\n if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n return proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n return null;\n } catch (error) {\n return null;\n }\n}\n\n/**\n * Check if transaction has specific transaction type using protobuf data\n * This replaces constructor name checking with reliable protobuf field detection\n */\nexport function hasTransactionType(\n transaction: Transaction,\n transactionField: keyof proto.ITransactionBody,\n): boolean {\n const txBody = extractTransactionBody(transaction);\n return !!(txBody && txBody[transactionField]);\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,SACd,KACoB;AACpB,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,YAAY;AAClB,WAAO,eAAe,IAAI;AAAA,MACxB,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,eAAe;AAAA,IAAA,EAC9B,UAAU;AAAA,EACd;AACA,MAAI,IAAI,SAAS;AACf,WAAO,YAAY,OAAO,KAAK,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC;AAAA,EAC7D;AACA,MAAI,IAAI,gBAAgB;AACtB,WAAO,oBAAoB,OAAO,KAAK,IAAI,cAAc,EAAE;AAAA,MACzD;AAAA,IAAA,CACD;AAAA,EACH;AACA,MAAI,KAAK,SAAS,MAAM,SAAS,GAAG;AAClC,UAAM,OAAO,IAAI,QAAQ,KAAK,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EAAE,OAAO,OAAO;AAClE,WAAO,YAAY,KAAK,MAAM,YAAY,KAAK,KAAK,IAAI,CAAC;AAAA,EAC3D;AACA,MAAI,KAAK,cAAc,MAAM,MAAM,SAAS,GAAG;AAC7C,UAAM,OAAO,IAAI,aAAa,KAAK,KAChC,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EACpB,OAAO,OAAO;AACjB,WAAO,iBAAiB,IAAI,aAAa,SAAS,OAChD,KAAK,MACP,OAAO,KAAK,KAAK,IAAI,CAAC;AAAA,EACxB;AACA,MAAI,IAAI,uBAAuB;AAC7B,WAAO,0BAA0B,IAAI;AAAA,MACnC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,eAAe;AAAA,IAAA,EACzC,UAAU;AAAA,EACd;AACA,MAAI,OAAO,KAAK,GAAG,EAAE,WAAW,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAMO,SAAS,uBACd,aAC+B;AAC/B,MAAI;AACF,UAAM,QAAQ,YAAY,UAAU,YAAY,YAAY;AAC5D,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,MAAM,gBAAgB,OAAO,KAAK;AAClD,QAAI,CAAC,QAAQ,mBAAmB,QAAQ,gBAAgB,WAAW,GAAG;AACpE,aAAO;AAAA,IACT;AAEA,UAAM,KAAK,QAAQ,gBAAgB,CAAC;AAEpC,QAAI,GAAG,aAAa,GAAG,UAAU,SAAS,GAAG;AAC3C,aAAO,MAAM,gBAAgB,OAAO,GAAG,SAAS;AAAA,IAClD;AAEA,QAAI,GAAG,0BAA0B,GAAG,uBAAuB,SAAS,GAAG;AACrE,YAAM,WAAW,MAAM,kBAAkB;AAAA,QACvC,GAAG;AAAA,MAAA;AAEL,UAAI,SAAS,WAAW;AACtB,eAAO,MAAM,gBAAgB,OAAO,SAAS,SAAS;AAAA,MACxD;AAAA,IACF;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AAMO,SAAS,mBACd,aACA,kBACS;AACT,QAAM,SAAS,uBAAuB,WAAW;AACjD,SAAO,CAAC,EAAE,UAAU,OAAO,gBAAgB;AAC7C;"}
@@ -0,0 +1,20 @@
1
+ import { Logger } from "./standards-sdk.es128.js";
2
+ import { HederaMirrorNode } from "./standards-sdk.es149.js";
3
+ class HCS5BaseClient {
4
+ /**
5
+ * Create a new HCS-5 base client
6
+ */
7
+ constructor(config) {
8
+ this.network = config.network;
9
+ this.logger = config.logger || Logger.getInstance({
10
+ level: config.logLevel || "info",
11
+ module: "HCS5Client",
12
+ silent: config.silent
13
+ });
14
+ this.mirrorNode = new HederaMirrorNode(this.network, this.logger);
15
+ }
16
+ }
17
+ export {
18
+ HCS5BaseClient
19
+ };
20
+ //# sourceMappingURL=standards-sdk.es197.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-sdk.es197.js","sources":["../../src/hcs-5/base-client.ts"],"sourcesContent":["import { Logger, ILogger } from '../utils/logger';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport { HCS5ClientConfig } from './types';\nimport { NetworkType } from '../utils/types';\n\n/**\n * Base client for HCS-5 operations\n */\nexport abstract class HCS5BaseClient {\n protected logger: ILogger;\n protected mirrorNode: HederaMirrorNode;\n protected network: NetworkType;\n\n /**\n * Create a new HCS-5 base client\n */\n constructor(config: HCS5ClientConfig) {\n this.network = config.network;\n this.logger =\n config.logger ||\n Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS5Client',\n silent: config.silent,\n });\n\n this.mirrorNode = new HederaMirrorNode(this.network, this.logger);\n }\n}\n"],"names":[],"mappings":";;AAQO,MAAe,eAAe;AAAA;AAAA;AAAA;AAAA,EAQnC,YAAY,QAA0B;AACpC,SAAK,UAAU,OAAO;AACtB,SAAK,SACH,OAAO,UACP,OAAO,YAAY;AAAA,MACjB,OAAO,OAAO,YAAY;AAAA,MAC1B,QAAQ;AAAA,MACR,QAAQ,OAAO;AAAA,IAAA,CAChB;AAEH,SAAK,aAAa,IAAI,iBAAiB,KAAK,SAAS,KAAK,MAAM;AAAA,EAClE;AACF;"}
@@ -0,0 +1,142 @@
1
+ import { Buffer } from "buffer";
2
+ import { chatHistorySnapshotResponseSchema } from "./standards-sdk.es157.js";
3
+ function identitiesMatch(a, b) {
4
+ if (!a && !b) {
5
+ return true;
6
+ }
7
+ if (!a || !b) {
8
+ return false;
9
+ }
10
+ if (a.uaid && b.uaid && a.uaid.toLowerCase() === b.uaid.toLowerCase()) {
11
+ return true;
12
+ }
13
+ if (a.ledgerAccountId && b.ledgerAccountId && a.ledgerAccountId.toLowerCase() === b.ledgerAccountId.toLowerCase()) {
14
+ return true;
15
+ }
16
+ if (a.userId && b.userId && a.userId === b.userId) {
17
+ return true;
18
+ }
19
+ if (a.email && b.email && a.email.toLowerCase() === b.email.toLowerCase()) {
20
+ return true;
21
+ }
22
+ return false;
23
+ }
24
+ async function fetchHistorySnapshot(conversationContexts, client, sessionId, options) {
25
+ if (!sessionId || sessionId.trim().length === 0) {
26
+ throw new Error("sessionId is required to fetch chat history");
27
+ }
28
+ const raw = await client.requestJson(
29
+ `/chat/session/${encodeURIComponent(sessionId)}/history`,
30
+ {
31
+ method: "GET"
32
+ }
33
+ );
34
+ const snapshot = client.parseWithSchema(
35
+ raw,
36
+ chatHistorySnapshotResponseSchema,
37
+ "chat history snapshot response"
38
+ );
39
+ return attachDecryptedHistory(
40
+ conversationContexts,
41
+ client,
42
+ sessionId,
43
+ snapshot,
44
+ options
45
+ );
46
+ }
47
+ function attachDecryptedHistory(conversationContexts, client, sessionId, snapshot, options) {
48
+ const shouldDecrypt = options?.decrypt !== void 0 ? options.decrypt : client.encryptionOptions?.autoDecryptHistory === true;
49
+ if (!shouldDecrypt) {
50
+ return snapshot;
51
+ }
52
+ const requiresContext = snapshot.history.some(
53
+ (entry) => Boolean(entry.cipherEnvelope)
54
+ );
55
+ if (!requiresContext) {
56
+ return {
57
+ ...snapshot,
58
+ decryptedHistory: snapshot.history.map((entry) => ({
59
+ entry,
60
+ plaintext: entry.content
61
+ }))
62
+ };
63
+ }
64
+ const context = resolveDecryptionContext(
65
+ conversationContexts,
66
+ client,
67
+ sessionId,
68
+ options
69
+ );
70
+ if (!context) {
71
+ throw new Error(
72
+ "Unable to decrypt chat history: encryption context unavailable"
73
+ );
74
+ }
75
+ const decryptedHistory = snapshot.history.map((entry) => ({
76
+ entry,
77
+ plaintext: decryptHistoryEntryFromContext(client, entry, context)
78
+ }));
79
+ return { ...snapshot, decryptedHistory };
80
+ }
81
+ function registerConversationContextForEncryption(conversationContexts, context) {
82
+ const normalized = {
83
+ sessionId: context.sessionId,
84
+ sharedSecret: Buffer.from(context.sharedSecret),
85
+ identity: context.identity ? { ...context.identity } : void 0
86
+ };
87
+ const entries = conversationContexts.get(context.sessionId) ?? [];
88
+ const existingIndex = entries.findIndex(
89
+ (existing) => identitiesMatch(existing.identity, normalized.identity)
90
+ );
91
+ if (existingIndex >= 0) {
92
+ entries[existingIndex] = normalized;
93
+ } else {
94
+ entries.push(normalized);
95
+ }
96
+ conversationContexts.set(context.sessionId, entries);
97
+ }
98
+ function resolveDecryptionContext(conversationContexts, client, sessionId, options) {
99
+ if (options?.sharedSecret) {
100
+ return {
101
+ sessionId,
102
+ sharedSecret: client.normalizeSharedSecret(options.sharedSecret),
103
+ identity: options.identity
104
+ };
105
+ }
106
+ const contexts = conversationContexts.get(sessionId);
107
+ if (!contexts || contexts.length === 0) {
108
+ return null;
109
+ }
110
+ if (options?.identity) {
111
+ const match = contexts.find(
112
+ (context) => identitiesMatch(context.identity, options.identity)
113
+ );
114
+ if (match) {
115
+ return match;
116
+ }
117
+ }
118
+ return contexts[0];
119
+ }
120
+ function decryptHistoryEntryFromContext(client, entry, context) {
121
+ const envelope = entry.cipherEnvelope;
122
+ if (!envelope) {
123
+ return entry.content;
124
+ }
125
+ const secret = Buffer.from(context.sharedSecret);
126
+ try {
127
+ return client.encryption.decryptCipherEnvelope({
128
+ envelope,
129
+ sharedSecret: secret
130
+ });
131
+ } catch (_error) {
132
+ return null;
133
+ }
134
+ }
135
+ export {
136
+ attachDecryptedHistory,
137
+ decryptHistoryEntryFromContext,
138
+ fetchHistorySnapshot,
139
+ registerConversationContextForEncryption,
140
+ resolveDecryptionContext
141
+ };
142
+ //# sourceMappingURL=standards-sdk.es198.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-sdk.es198.js","sources":["../../src/services/registry-broker/client/chat-history.ts"],"sourcesContent":["import { Buffer } from 'buffer';\nimport type {\n ChatHistoryEntry,\n ChatHistoryFetchOptions,\n ChatHistorySnapshotResponse,\n ChatHistorySnapshotWithDecryptedEntries,\n JsonValue,\n RecipientIdentity,\n} from '../types';\nimport { chatHistorySnapshotResponseSchema } from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\n\nexport interface ConversationContextInput {\n sessionId: string;\n sharedSecret: Uint8Array | Buffer;\n identity?: RecipientIdentity;\n}\n\nexport interface ConversationContextState {\n sessionId: string;\n sharedSecret: Buffer;\n identity?: RecipientIdentity;\n}\n\nfunction identitiesMatch(\n a?: RecipientIdentity,\n b?: RecipientIdentity,\n): boolean {\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.uaid && b.uaid && a.uaid.toLowerCase() === b.uaid.toLowerCase()) {\n return true;\n }\n if (\n a.ledgerAccountId &&\n b.ledgerAccountId &&\n a.ledgerAccountId.toLowerCase() === b.ledgerAccountId.toLowerCase()\n ) {\n return true;\n }\n if (a.userId && b.userId && a.userId === b.userId) {\n return true;\n }\n if (a.email && b.email && a.email.toLowerCase() === b.email.toLowerCase()) {\n return true;\n }\n return false;\n}\n\nexport async function fetchHistorySnapshot(\n conversationContexts: Map<string, ConversationContextState[]>,\n client: RegistryBrokerClient,\n sessionId: string,\n options?: ChatHistoryFetchOptions,\n): Promise<ChatHistorySnapshotWithDecryptedEntries> {\n if (!sessionId || sessionId.trim().length === 0) {\n throw new Error('sessionId is required to fetch chat history');\n }\n const raw = await client.requestJson<JsonValue>(\n `/chat/session/${encodeURIComponent(sessionId)}/history`,\n {\n method: 'GET',\n },\n );\n const snapshot = client.parseWithSchema(\n raw,\n chatHistorySnapshotResponseSchema,\n 'chat history snapshot response',\n );\n return attachDecryptedHistory(\n conversationContexts,\n client,\n sessionId,\n snapshot,\n options,\n );\n}\n\nexport function attachDecryptedHistory(\n conversationContexts: Map<string, ConversationContextState[]>,\n client: RegistryBrokerClient,\n sessionId: string,\n snapshot: ChatHistorySnapshotResponse,\n options?: ChatHistoryFetchOptions,\n): ChatHistorySnapshotWithDecryptedEntries {\n const shouldDecrypt =\n options?.decrypt !== undefined\n ? options.decrypt\n : client.encryptionOptions?.autoDecryptHistory === true;\n if (!shouldDecrypt) {\n return snapshot;\n }\n const requiresContext = snapshot.history.some(entry =>\n Boolean(entry.cipherEnvelope),\n );\n if (!requiresContext) {\n return {\n ...snapshot,\n decryptedHistory: snapshot.history.map(entry => ({\n entry,\n plaintext: entry.content,\n })),\n };\n }\n const context = resolveDecryptionContext(\n conversationContexts,\n client,\n sessionId,\n options,\n );\n if (!context) {\n throw new Error(\n 'Unable to decrypt chat history: encryption context unavailable',\n );\n }\n const decryptedHistory = snapshot.history.map(entry => ({\n entry,\n plaintext: decryptHistoryEntryFromContext(client, entry, context),\n }));\n return { ...snapshot, decryptedHistory };\n}\n\nexport function registerConversationContextForEncryption(\n conversationContexts: Map<string, ConversationContextState[]>,\n context: ConversationContextInput,\n): void {\n const normalized: ConversationContextState = {\n sessionId: context.sessionId,\n sharedSecret: Buffer.from(context.sharedSecret),\n identity: context.identity ? { ...context.identity } : undefined,\n };\n const entries = conversationContexts.get(context.sessionId) ?? [];\n const existingIndex = entries.findIndex(existing =>\n identitiesMatch(existing.identity, normalized.identity),\n );\n if (existingIndex >= 0) {\n entries[existingIndex] = normalized;\n } else {\n entries.push(normalized);\n }\n conversationContexts.set(context.sessionId, entries);\n}\n\nexport function resolveDecryptionContext(\n conversationContexts: Map<string, ConversationContextState[]>,\n client: RegistryBrokerClient,\n sessionId: string,\n options?: ChatHistoryFetchOptions,\n): ConversationContextState | null {\n if (options?.sharedSecret) {\n return {\n sessionId,\n sharedSecret: client.normalizeSharedSecret(options.sharedSecret),\n identity: options.identity,\n };\n }\n const contexts = conversationContexts.get(sessionId);\n if (!contexts || contexts.length === 0) {\n return null;\n }\n if (options?.identity) {\n const match = contexts.find(context =>\n identitiesMatch(context.identity, options.identity),\n );\n if (match) {\n return match;\n }\n }\n return contexts[0];\n}\n\nexport function decryptHistoryEntryFromContext(\n client: RegistryBrokerClient,\n entry: ChatHistoryEntry,\n context: ConversationContextState,\n): string | null {\n const envelope = entry.cipherEnvelope;\n if (!envelope) {\n return entry.content;\n }\n const secret = Buffer.from(context.sharedSecret);\n try {\n return client.encryption.decryptCipherEnvelope({\n envelope,\n sharedSecret: secret,\n });\n } catch (_error) {\n return null;\n }\n}\n"],"names":[],"mappings":"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"}