@hashgraphonline/standards-sdk 0.1.189 → 0.1.190

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 (528) hide show
  1. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -1
  2. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -1
  3. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -1
  4. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -1
  5. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -1
  6. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  7. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -1
  8. package/dist/browser/hcs-25/collectors/acp.d.ts +42 -0
  9. package/dist/browser/hcs-25/collectors/acp.d.ts.map +1 -0
  10. package/dist/browser/hcs-25/collectors/agentverse.d.ts +37 -0
  11. package/dist/browser/hcs-25/collectors/agentverse.d.ts.map +1 -0
  12. package/dist/browser/hcs-25/collectors/availability.d.ts +29 -0
  13. package/dist/browser/hcs-25/collectors/availability.d.ts.map +1 -0
  14. package/dist/browser/hcs-25/collectors/catalog.d.ts +57 -0
  15. package/dist/browser/hcs-25/collectors/catalog.d.ts.map +1 -0
  16. package/dist/browser/hcs-25/collectors/connectivity.d.ts +49 -0
  17. package/dist/browser/hcs-25/collectors/connectivity.d.ts.map +1 -0
  18. package/dist/browser/hcs-25/collectors/endpoints.d.ts +9 -0
  19. package/dist/browser/hcs-25/collectors/endpoints.d.ts.map +1 -0
  20. package/dist/browser/hcs-25/collectors/erc8004.d.ts +104 -0
  21. package/dist/browser/hcs-25/collectors/erc8004.d.ts.map +1 -0
  22. package/dist/browser/hcs-25/collectors/ethos.d.ts +95 -0
  23. package/dist/browser/hcs-25/collectors/ethos.d.ts.map +1 -0
  24. package/dist/browser/hcs-25/collectors/freshness.d.ts +36 -0
  25. package/dist/browser/hcs-25/collectors/freshness.d.ts.map +1 -0
  26. package/dist/browser/hcs-25/collectors/http.d.ts +67 -0
  27. package/dist/browser/hcs-25/collectors/http.d.ts.map +1 -0
  28. package/dist/browser/hcs-25/collectors/index.d.ts +21 -0
  29. package/dist/browser/hcs-25/collectors/index.d.ts.map +1 -0
  30. package/dist/browser/hcs-25/collectors/merge.d.ts +11 -0
  31. package/dist/browser/hcs-25/collectors/merge.d.ts.map +1 -0
  32. package/dist/browser/hcs-25/collectors/model-evals.d.ts +315 -0
  33. package/dist/browser/hcs-25/collectors/model-evals.d.ts.map +1 -0
  34. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts +51 -0
  35. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  36. package/dist/browser/hcs-25/collectors/output-verification.d.ts +37 -0
  37. package/dist/browser/hcs-25/collectors/output-verification.d.ts.map +1 -0
  38. package/dist/browser/hcs-25/collectors/pipeline.d.ts +19 -0
  39. package/dist/browser/hcs-25/collectors/pipeline.d.ts.map +1 -0
  40. package/dist/browser/hcs-25/collectors/runner.d.ts +20 -0
  41. package/dist/browser/hcs-25/collectors/runner.d.ts.map +1 -0
  42. package/dist/browser/hcs-25/collectors/simple-evals.d.ts +91 -0
  43. package/dist/browser/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  44. package/dist/browser/hcs-25/collectors/types.d.ts +113 -0
  45. package/dist/browser/hcs-25/collectors/types.d.ts.map +1 -0
  46. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts +105 -0
  47. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  48. package/dist/browser/hcs-25/collectors/x402.d.ts +48 -0
  49. package/dist/browser/hcs-25/collectors/x402.d.ts.map +1 -0
  50. package/dist/browser/hcs-25/index.d.ts +1 -0
  51. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  52. package/dist/browser/hcs-25/signals/marketplace.d.ts +6 -6
  53. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -1
  54. package/dist/browser/hcs-25/signals/model-evals.d.ts +12 -12
  55. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -1
  56. package/dist/browser/hcs-25/signals/operational.d.ts +15 -12
  57. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -1
  58. package/dist/browser/hcs-25/signals/simple-evals.d.ts +1 -1
  59. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -1
  60. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -1
  61. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -1
  62. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -1
  63. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -1
  64. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -1
  65. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  66. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -1
  67. package/dist/browser-root/hcs-25/collectors/acp.d.ts +42 -0
  68. package/dist/browser-root/hcs-25/collectors/acp.d.ts.map +1 -0
  69. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts +37 -0
  70. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts.map +1 -0
  71. package/dist/browser-root/hcs-25/collectors/availability.d.ts +29 -0
  72. package/dist/browser-root/hcs-25/collectors/availability.d.ts.map +1 -0
  73. package/dist/browser-root/hcs-25/collectors/catalog.d.ts +57 -0
  74. package/dist/browser-root/hcs-25/collectors/catalog.d.ts.map +1 -0
  75. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts +49 -0
  76. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts.map +1 -0
  77. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts +9 -0
  78. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts.map +1 -0
  79. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts +104 -0
  80. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts.map +1 -0
  81. package/dist/browser-root/hcs-25/collectors/ethos.d.ts +95 -0
  82. package/dist/browser-root/hcs-25/collectors/ethos.d.ts.map +1 -0
  83. package/dist/browser-root/hcs-25/collectors/freshness.d.ts +36 -0
  84. package/dist/browser-root/hcs-25/collectors/freshness.d.ts.map +1 -0
  85. package/dist/browser-root/hcs-25/collectors/http.d.ts +67 -0
  86. package/dist/browser-root/hcs-25/collectors/http.d.ts.map +1 -0
  87. package/dist/browser-root/hcs-25/collectors/index.d.ts +21 -0
  88. package/dist/browser-root/hcs-25/collectors/index.d.ts.map +1 -0
  89. package/dist/browser-root/hcs-25/collectors/merge.d.ts +11 -0
  90. package/dist/browser-root/hcs-25/collectors/merge.d.ts.map +1 -0
  91. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts +315 -0
  92. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts.map +1 -0
  93. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts +51 -0
  94. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  95. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts +37 -0
  96. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts.map +1 -0
  97. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts +19 -0
  98. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts.map +1 -0
  99. package/dist/browser-root/hcs-25/collectors/runner.d.ts +20 -0
  100. package/dist/browser-root/hcs-25/collectors/runner.d.ts.map +1 -0
  101. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts +91 -0
  102. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  103. package/dist/browser-root/hcs-25/collectors/types.d.ts +113 -0
  104. package/dist/browser-root/hcs-25/collectors/types.d.ts.map +1 -0
  105. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts +105 -0
  106. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  107. package/dist/browser-root/hcs-25/collectors/x402.d.ts +48 -0
  108. package/dist/browser-root/hcs-25/collectors/x402.d.ts.map +1 -0
  109. package/dist/browser-root/hcs-25/index.d.ts +1 -0
  110. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  111. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +6 -6
  112. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -1
  113. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +12 -12
  114. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -1
  115. package/dist/browser-root/hcs-25/signals/operational.d.ts +15 -12
  116. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -1
  117. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +1 -1
  118. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -1
  119. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -1
  120. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -1
  121. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -1
  122. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -1
  123. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -1
  124. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  125. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -1
  126. package/dist/cjs/hcs-25/collectors/acp.d.ts +42 -0
  127. package/dist/cjs/hcs-25/collectors/acp.d.ts.map +1 -0
  128. package/dist/cjs/hcs-25/collectors/agentverse.d.ts +37 -0
  129. package/dist/cjs/hcs-25/collectors/agentverse.d.ts.map +1 -0
  130. package/dist/cjs/hcs-25/collectors/availability.d.ts +29 -0
  131. package/dist/cjs/hcs-25/collectors/availability.d.ts.map +1 -0
  132. package/dist/cjs/hcs-25/collectors/catalog.d.ts +57 -0
  133. package/dist/cjs/hcs-25/collectors/catalog.d.ts.map +1 -0
  134. package/dist/cjs/hcs-25/collectors/connectivity.d.ts +49 -0
  135. package/dist/cjs/hcs-25/collectors/connectivity.d.ts.map +1 -0
  136. package/dist/cjs/hcs-25/collectors/endpoints.d.ts +9 -0
  137. package/dist/cjs/hcs-25/collectors/endpoints.d.ts.map +1 -0
  138. package/dist/cjs/hcs-25/collectors/erc8004.d.ts +104 -0
  139. package/dist/cjs/hcs-25/collectors/erc8004.d.ts.map +1 -0
  140. package/dist/cjs/hcs-25/collectors/ethos.d.ts +95 -0
  141. package/dist/cjs/hcs-25/collectors/ethos.d.ts.map +1 -0
  142. package/dist/cjs/hcs-25/collectors/freshness.d.ts +36 -0
  143. package/dist/cjs/hcs-25/collectors/freshness.d.ts.map +1 -0
  144. package/dist/cjs/hcs-25/collectors/http.d.ts +67 -0
  145. package/dist/cjs/hcs-25/collectors/http.d.ts.map +1 -0
  146. package/dist/cjs/hcs-25/collectors/index.d.ts +21 -0
  147. package/dist/cjs/hcs-25/collectors/index.d.ts.map +1 -0
  148. package/dist/cjs/hcs-25/collectors/merge.d.ts +11 -0
  149. package/dist/cjs/hcs-25/collectors/merge.d.ts.map +1 -0
  150. package/dist/cjs/hcs-25/collectors/model-evals.d.ts +315 -0
  151. package/dist/cjs/hcs-25/collectors/model-evals.d.ts.map +1 -0
  152. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts +51 -0
  153. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  154. package/dist/cjs/hcs-25/collectors/output-verification.d.ts +37 -0
  155. package/dist/cjs/hcs-25/collectors/output-verification.d.ts.map +1 -0
  156. package/dist/cjs/hcs-25/collectors/pipeline.d.ts +19 -0
  157. package/dist/cjs/hcs-25/collectors/pipeline.d.ts.map +1 -0
  158. package/dist/cjs/hcs-25/collectors/runner.d.ts +20 -0
  159. package/dist/cjs/hcs-25/collectors/runner.d.ts.map +1 -0
  160. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts +91 -0
  161. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  162. package/dist/cjs/hcs-25/collectors/types.d.ts +113 -0
  163. package/dist/cjs/hcs-25/collectors/types.d.ts.map +1 -0
  164. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts +105 -0
  165. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  166. package/dist/cjs/hcs-25/collectors/x402.d.ts +48 -0
  167. package/dist/cjs/hcs-25/collectors/x402.d.ts.map +1 -0
  168. package/dist/cjs/hcs-25/index.d.ts +1 -0
  169. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  170. package/dist/cjs/hcs-25/signals/marketplace.d.ts +6 -6
  171. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -1
  172. package/dist/cjs/hcs-25/signals/model-evals.d.ts +12 -12
  173. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -1
  174. package/dist/cjs/hcs-25/signals/operational.d.ts +15 -12
  175. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -1
  176. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +1 -1
  177. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -1
  178. package/dist/cjs/standards-sdk.cjs +2 -2
  179. package/dist/cjs/standards-sdk.cjs.map +1 -1
  180. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -1
  181. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -1
  182. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -1
  183. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -1
  184. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -1
  185. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  186. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -1
  187. package/dist/es/hcs-25/collectors/acp.d.ts +42 -0
  188. package/dist/es/hcs-25/collectors/acp.d.ts.map +1 -0
  189. package/dist/es/hcs-25/collectors/agentverse.d.ts +37 -0
  190. package/dist/es/hcs-25/collectors/agentverse.d.ts.map +1 -0
  191. package/dist/es/hcs-25/collectors/availability.d.ts +29 -0
  192. package/dist/es/hcs-25/collectors/availability.d.ts.map +1 -0
  193. package/dist/es/hcs-25/collectors/catalog.d.ts +57 -0
  194. package/dist/es/hcs-25/collectors/catalog.d.ts.map +1 -0
  195. package/dist/es/hcs-25/collectors/connectivity.d.ts +49 -0
  196. package/dist/es/hcs-25/collectors/connectivity.d.ts.map +1 -0
  197. package/dist/es/hcs-25/collectors/endpoints.d.ts +9 -0
  198. package/dist/es/hcs-25/collectors/endpoints.d.ts.map +1 -0
  199. package/dist/es/hcs-25/collectors/erc8004.d.ts +104 -0
  200. package/dist/es/hcs-25/collectors/erc8004.d.ts.map +1 -0
  201. package/dist/es/hcs-25/collectors/ethos.d.ts +95 -0
  202. package/dist/es/hcs-25/collectors/ethos.d.ts.map +1 -0
  203. package/dist/es/hcs-25/collectors/freshness.d.ts +36 -0
  204. package/dist/es/hcs-25/collectors/freshness.d.ts.map +1 -0
  205. package/dist/es/hcs-25/collectors/http.d.ts +67 -0
  206. package/dist/es/hcs-25/collectors/http.d.ts.map +1 -0
  207. package/dist/es/hcs-25/collectors/index.d.ts +21 -0
  208. package/dist/es/hcs-25/collectors/index.d.ts.map +1 -0
  209. package/dist/es/hcs-25/collectors/merge.d.ts +11 -0
  210. package/dist/es/hcs-25/collectors/merge.d.ts.map +1 -0
  211. package/dist/es/hcs-25/collectors/model-evals.d.ts +315 -0
  212. package/dist/es/hcs-25/collectors/model-evals.d.ts.map +1 -0
  213. package/dist/es/hcs-25/collectors/oss-popularity.d.ts +51 -0
  214. package/dist/es/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  215. package/dist/es/hcs-25/collectors/output-verification.d.ts +37 -0
  216. package/dist/es/hcs-25/collectors/output-verification.d.ts.map +1 -0
  217. package/dist/es/hcs-25/collectors/pipeline.d.ts +19 -0
  218. package/dist/es/hcs-25/collectors/pipeline.d.ts.map +1 -0
  219. package/dist/es/hcs-25/collectors/runner.d.ts +20 -0
  220. package/dist/es/hcs-25/collectors/runner.d.ts.map +1 -0
  221. package/dist/es/hcs-25/collectors/simple-evals.d.ts +91 -0
  222. package/dist/es/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  223. package/dist/es/hcs-25/collectors/types.d.ts +113 -0
  224. package/dist/es/hcs-25/collectors/types.d.ts.map +1 -0
  225. package/dist/es/hcs-25/collectors/x402-onchain.d.ts +105 -0
  226. package/dist/es/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  227. package/dist/es/hcs-25/collectors/x402.d.ts +48 -0
  228. package/dist/es/hcs-25/collectors/x402.d.ts.map +1 -0
  229. package/dist/es/hcs-25/index.d.ts +1 -0
  230. package/dist/es/hcs-25/index.d.ts.map +1 -1
  231. package/dist/es/hcs-25/signals/marketplace.d.ts +6 -6
  232. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -1
  233. package/dist/es/hcs-25/signals/model-evals.d.ts +12 -12
  234. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -1
  235. package/dist/es/hcs-25/signals/operational.d.ts +15 -12
  236. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -1
  237. package/dist/es/hcs-25/signals/simple-evals.d.ts +1 -1
  238. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -1
  239. package/dist/es/standards-sdk.es.js +137 -58
  240. package/dist/es/standards-sdk.es.js.map +1 -1
  241. package/dist/es/standards-sdk.es101.js +2 -2
  242. package/dist/es/standards-sdk.es103.js +2 -2
  243. package/dist/es/standards-sdk.es104.js +1 -1
  244. package/dist/es/standards-sdk.es106.js +1 -1
  245. package/dist/es/standards-sdk.es108.js +2 -2
  246. package/dist/es/standards-sdk.es11.js +1 -1
  247. package/dist/es/standards-sdk.es110.js +1 -1
  248. package/dist/es/standards-sdk.es111.js +2 -2
  249. package/dist/es/standards-sdk.es115.js +3 -3
  250. package/dist/es/standards-sdk.es116.js +4 -4
  251. package/dist/es/standards-sdk.es12.js +1 -1
  252. package/dist/es/standards-sdk.es120.js +4 -4
  253. package/dist/es/standards-sdk.es121.js +11 -11
  254. package/dist/es/standards-sdk.es122.js +176 -240
  255. package/dist/es/standards-sdk.es122.js.map +1 -1
  256. package/dist/es/standards-sdk.es123.js +41 -468
  257. package/dist/es/standards-sdk.es123.js.map +1 -1
  258. package/dist/es/standards-sdk.es124.js +28 -103
  259. package/dist/es/standards-sdk.es124.js.map +1 -1
  260. package/dist/es/standards-sdk.es125.js +185 -145
  261. package/dist/es/standards-sdk.es125.js.map +1 -1
  262. package/dist/es/standards-sdk.es126.js +13 -33
  263. package/dist/es/standards-sdk.es126.js.map +1 -1
  264. package/dist/es/standards-sdk.es127.js +44 -10
  265. package/dist/es/standards-sdk.es127.js.map +1 -1
  266. package/dist/es/standards-sdk.es128.js +150 -172
  267. package/dist/es/standards-sdk.es128.js.map +1 -1
  268. package/dist/es/standards-sdk.es129.js +166 -26
  269. package/dist/es/standards-sdk.es129.js.map +1 -1
  270. package/dist/es/standards-sdk.es13.js +1 -1
  271. package/dist/es/standards-sdk.es130.js +375 -18
  272. package/dist/es/standards-sdk.es130.js.map +1 -1
  273. package/dist/es/standards-sdk.es131.js +371 -139
  274. package/dist/es/standards-sdk.es131.js.map +1 -1
  275. package/dist/es/standards-sdk.es132.js +211 -180
  276. package/dist/es/standards-sdk.es132.js.map +1 -1
  277. package/dist/es/standards-sdk.es133.js +210 -770
  278. package/dist/es/standards-sdk.es133.js.map +1 -1
  279. package/dist/es/standards-sdk.es134.js +376 -10
  280. package/dist/es/standards-sdk.es134.js.map +1 -1
  281. package/dist/es/standards-sdk.es135.js +118 -564
  282. package/dist/es/standards-sdk.es135.js.map +1 -1
  283. package/dist/es/standards-sdk.es136.js +233 -608
  284. package/dist/es/standards-sdk.es136.js.map +1 -1
  285. package/dist/es/standards-sdk.es137.js +1328 -12
  286. package/dist/es/standards-sdk.es137.js.map +1 -1
  287. package/dist/es/standards-sdk.es138.js +133 -2
  288. package/dist/es/standards-sdk.es138.js.map +1 -1
  289. package/dist/es/standards-sdk.es139.js +258 -74
  290. package/dist/es/standards-sdk.es139.js.map +1 -1
  291. package/dist/es/standards-sdk.es14.js +1 -1
  292. package/dist/es/standards-sdk.es140.js +104 -38
  293. package/dist/es/standards-sdk.es140.js.map +1 -1
  294. package/dist/es/standards-sdk.es141.js +252 -2
  295. package/dist/es/standards-sdk.es141.js.map +1 -1
  296. package/dist/es/standards-sdk.es142.js +446 -203
  297. package/dist/es/standards-sdk.es142.js.map +1 -1
  298. package/dist/es/standards-sdk.es143.js +104 -1139
  299. package/dist/es/standards-sdk.es143.js.map +1 -1
  300. package/dist/es/standards-sdk.es144.js +144 -290
  301. package/dist/es/standards-sdk.es144.js.map +1 -1
  302. package/dist/es/standards-sdk.es145.js +31 -419
  303. package/dist/es/standards-sdk.es145.js.map +1 -1
  304. package/dist/es/standards-sdk.es146.js +10 -353
  305. package/dist/es/standards-sdk.es146.js.map +1 -1
  306. package/dist/es/standards-sdk.es147.js +144 -1084
  307. package/dist/es/standards-sdk.es147.js.map +1 -1
  308. package/dist/es/standards-sdk.es148.js +25 -204
  309. package/dist/es/standards-sdk.es148.js.map +1 -1
  310. package/dist/es/standards-sdk.es149.js +17 -1562
  311. package/dist/es/standards-sdk.es149.js.map +1 -1
  312. package/dist/es/standards-sdk.es15.js +1 -1
  313. package/dist/es/standards-sdk.es150.js +128 -1134
  314. package/dist/es/standards-sdk.es150.js.map +1 -1
  315. package/dist/es/standards-sdk.es151.js +199 -14
  316. package/dist/es/standards-sdk.es151.js.map +1 -1
  317. package/dist/es/standards-sdk.es152.js +773 -434
  318. package/dist/es/standards-sdk.es152.js.map +1 -1
  319. package/dist/es/standards-sdk.es153.js +10 -256
  320. package/dist/es/standards-sdk.es153.js.map +1 -1
  321. package/dist/es/standards-sdk.es154.js +567 -4
  322. package/dist/es/standards-sdk.es154.js.map +1 -1
  323. package/dist/es/standards-sdk.es155.js +619 -74
  324. package/dist/es/standards-sdk.es155.js.map +1 -1
  325. package/dist/es/standards-sdk.es156.js +12 -86
  326. package/dist/es/standards-sdk.es156.js.map +1 -1
  327. package/dist/es/standards-sdk.es157.js +2 -60
  328. package/dist/es/standards-sdk.es157.js.map +1 -1
  329. package/dist/es/standards-sdk.es158.js +87 -2547
  330. package/dist/es/standards-sdk.es158.js.map +1 -1
  331. package/dist/es/standards-sdk.es159.js +36 -155
  332. package/dist/es/standards-sdk.es159.js.map +1 -1
  333. package/dist/es/standards-sdk.es16.js +6 -6
  334. package/dist/es/standards-sdk.es160.js +2 -7
  335. package/dist/es/standards-sdk.es160.js.map +1 -1
  336. package/dist/es/standards-sdk.es161.js +223 -74
  337. package/dist/es/standards-sdk.es161.js.map +1 -1
  338. package/dist/es/standards-sdk.es162.js +1122 -47
  339. package/dist/es/standards-sdk.es162.js.map +1 -1
  340. package/dist/es/standards-sdk.es163.js +299 -187
  341. package/dist/es/standards-sdk.es163.js.map +1 -1
  342. package/dist/es/standards-sdk.es164.js +419 -23
  343. package/dist/es/standards-sdk.es164.js.map +1 -1
  344. package/dist/es/standards-sdk.es165.js +352 -55
  345. package/dist/es/standards-sdk.es165.js.map +1 -1
  346. package/dist/es/standards-sdk.es166.js +1113 -86
  347. package/dist/es/standards-sdk.es166.js.map +1 -1
  348. package/dist/es/standards-sdk.es167.js +200 -41
  349. package/dist/es/standards-sdk.es167.js.map +1 -1
  350. package/dist/es/standards-sdk.es168.js +1551 -188
  351. package/dist/es/standards-sdk.es168.js.map +1 -1
  352. package/dist/es/standards-sdk.es169.js +1161 -51
  353. package/dist/es/standards-sdk.es169.js.map +1 -1
  354. package/dist/es/standards-sdk.es170.js +15 -47
  355. package/dist/es/standards-sdk.es170.js.map +1 -1
  356. package/dist/es/standards-sdk.es171.js +445 -50
  357. package/dist/es/standards-sdk.es171.js.map +1 -1
  358. package/dist/es/standards-sdk.es172.js +255 -45
  359. package/dist/es/standards-sdk.es172.js.map +1 -1
  360. package/dist/es/standards-sdk.es173.js +4 -122
  361. package/dist/es/standards-sdk.es173.js.map +1 -1
  362. package/dist/es/standards-sdk.es174.js +77 -50
  363. package/dist/es/standards-sdk.es174.js.map +1 -1
  364. package/dist/es/standards-sdk.es175.js +85 -42
  365. package/dist/es/standards-sdk.es175.js.map +1 -1
  366. package/dist/es/standards-sdk.es176.js +60 -72
  367. package/dist/es/standards-sdk.es176.js.map +1 -1
  368. package/dist/es/standards-sdk.es177.js +2544 -65
  369. package/dist/es/standards-sdk.es177.js.map +1 -1
  370. package/dist/es/standards-sdk.es178.js +159 -44
  371. package/dist/es/standards-sdk.es178.js.map +1 -1
  372. package/dist/es/standards-sdk.es179.js +7 -36
  373. package/dist/es/standards-sdk.es179.js.map +1 -1
  374. package/dist/es/standards-sdk.es18.js +13 -13
  375. package/dist/es/standards-sdk.es180.js +86 -30
  376. package/dist/es/standards-sdk.es180.js.map +1 -1
  377. package/dist/es/standards-sdk.es181.js +65 -34
  378. package/dist/es/standards-sdk.es181.js.map +1 -1
  379. package/dist/es/standards-sdk.es182.js +196 -48
  380. package/dist/es/standards-sdk.es182.js.map +1 -1
  381. package/dist/es/standards-sdk.es183.js +23 -135
  382. package/dist/es/standards-sdk.es183.js.map +1 -1
  383. package/dist/es/standards-sdk.es184.js +54 -38
  384. package/dist/es/standards-sdk.es184.js.map +1 -1
  385. package/dist/es/standards-sdk.es185.js +102 -12470
  386. package/dist/es/standards-sdk.es185.js.map +1 -1
  387. package/dist/es/standards-sdk.es186.js +53 -52
  388. package/dist/es/standards-sdk.es186.js.map +1 -1
  389. package/dist/es/standards-sdk.es187.js +223 -103
  390. package/dist/es/standards-sdk.es187.js.map +1 -1
  391. package/dist/es/standards-sdk.es188.js +66 -75
  392. package/dist/es/standards-sdk.es188.js.map +1 -1
  393. package/dist/es/standards-sdk.es189.js +46 -197
  394. package/dist/es/standards-sdk.es189.js.map +1 -1
  395. package/dist/es/standards-sdk.es19.js +10 -10
  396. package/dist/es/standards-sdk.es190.js +58 -668
  397. package/dist/es/standards-sdk.es190.js.map +1 -1
  398. package/dist/es/standards-sdk.es191.js +45 -168
  399. package/dist/es/standards-sdk.es191.js.map +1 -1
  400. package/dist/es/standards-sdk.es192.js +115 -315
  401. package/dist/es/standards-sdk.es192.js.map +1 -1
  402. package/dist/es/standards-sdk.es193.js +51 -340
  403. package/dist/es/standards-sdk.es193.js.map +1 -1
  404. package/dist/es/standards-sdk.es194.js +54 -448
  405. package/dist/es/standards-sdk.es194.js.map +1 -1
  406. package/dist/es/standards-sdk.es195.js +72 -331
  407. package/dist/es/standards-sdk.es195.js.map +1 -1
  408. package/dist/es/standards-sdk.es196.js +75 -76
  409. package/dist/es/standards-sdk.es196.js.map +1 -1
  410. package/dist/es/standards-sdk.es197.js +44 -73
  411. package/dist/es/standards-sdk.es197.js.map +1 -1
  412. package/dist/es/standards-sdk.es198.js +34 -15
  413. package/dist/es/standards-sdk.es198.js.map +1 -1
  414. package/dist/es/standards-sdk.es199.js +30 -139
  415. package/dist/es/standards-sdk.es199.js.map +1 -1
  416. package/dist/es/standards-sdk.es2.js +2 -2
  417. package/dist/es/standards-sdk.es20.js +1 -1
  418. package/dist/es/standards-sdk.es200.js +34 -517
  419. package/dist/es/standards-sdk.es200.js.map +1 -1
  420. package/dist/es/standards-sdk.es201.js +48 -259
  421. package/dist/es/standards-sdk.es201.js.map +1 -1
  422. package/dist/es/standards-sdk.es202.js +127 -185
  423. package/dist/es/standards-sdk.es202.js.map +1 -1
  424. package/dist/es/standards-sdk.es203.js +36 -113
  425. package/dist/es/standards-sdk.es203.js.map +1 -1
  426. package/dist/es/standards-sdk.es204.js +12464 -134
  427. package/dist/es/standards-sdk.es204.js.map +1 -1
  428. package/dist/es/standards-sdk.es205.js +14 -181
  429. package/dist/es/standards-sdk.es205.js.map +1 -1
  430. package/dist/es/standards-sdk.es206.js +55 -683
  431. package/dist/es/standards-sdk.es206.js.map +1 -1
  432. package/dist/es/standards-sdk.es207.js +93 -167
  433. package/dist/es/standards-sdk.es207.js.map +1 -1
  434. package/dist/es/standards-sdk.es208.js +71 -225
  435. package/dist/es/standards-sdk.es208.js.map +1 -1
  436. package/dist/es/standards-sdk.es209.js +176 -215
  437. package/dist/es/standards-sdk.es209.js.map +1 -1
  438. package/dist/es/standards-sdk.es21.js +1 -1
  439. package/dist/es/standards-sdk.es210.js +675 -0
  440. package/dist/es/standards-sdk.es210.js.map +1 -0
  441. package/dist/es/standards-sdk.es211.js +76 -0
  442. package/dist/es/standards-sdk.es211.js.map +1 -0
  443. package/dist/es/standards-sdk.es212.js +175 -0
  444. package/dist/es/standards-sdk.es212.js.map +1 -0
  445. package/dist/es/standards-sdk.es213.js +325 -0
  446. package/dist/es/standards-sdk.es213.js.map +1 -0
  447. package/dist/es/standards-sdk.es214.js +349 -0
  448. package/dist/es/standards-sdk.es214.js.map +1 -0
  449. package/dist/es/standards-sdk.es215.js +456 -0
  450. package/dist/es/standards-sdk.es215.js.map +1 -0
  451. package/dist/es/standards-sdk.es216.js +334 -0
  452. package/dist/es/standards-sdk.es216.js.map +1 -0
  453. package/dist/es/standards-sdk.es217.js +79 -0
  454. package/dist/es/standards-sdk.es217.js.map +1 -0
  455. package/dist/es/standards-sdk.es218.js +142 -0
  456. package/dist/es/standards-sdk.es218.js.map +1 -0
  457. package/dist/es/standards-sdk.es219.js +520 -0
  458. package/dist/es/standards-sdk.es219.js.map +1 -0
  459. package/dist/es/standards-sdk.es22.js +1 -1
  460. package/dist/es/standards-sdk.es220.js +262 -0
  461. package/dist/es/standards-sdk.es220.js.map +1 -0
  462. package/dist/es/standards-sdk.es221.js +199 -0
  463. package/dist/es/standards-sdk.es221.js.map +1 -0
  464. package/dist/es/standards-sdk.es222.js +122 -0
  465. package/dist/es/standards-sdk.es222.js.map +1 -0
  466. package/dist/es/standards-sdk.es223.js +155 -0
  467. package/dist/es/standards-sdk.es223.js.map +1 -0
  468. package/dist/es/standards-sdk.es224.js +187 -0
  469. package/dist/es/standards-sdk.es224.js.map +1 -0
  470. package/dist/es/standards-sdk.es225.js +687 -0
  471. package/dist/es/standards-sdk.es225.js.map +1 -0
  472. package/dist/es/standards-sdk.es226.js +188 -0
  473. package/dist/es/standards-sdk.es226.js.map +1 -0
  474. package/dist/es/standards-sdk.es227.js +238 -0
  475. package/dist/es/standards-sdk.es227.js.map +1 -0
  476. package/dist/es/standards-sdk.es228.js +242 -0
  477. package/dist/es/standards-sdk.es228.js.map +1 -0
  478. package/dist/es/standards-sdk.es23.js +1 -1
  479. package/dist/es/standards-sdk.es24.js +1 -1
  480. package/dist/es/standards-sdk.es25.js +1 -1
  481. package/dist/es/standards-sdk.es26.js +1 -1
  482. package/dist/es/standards-sdk.es27.js +13 -13
  483. package/dist/es/standards-sdk.es30.js +2 -2
  484. package/dist/es/standards-sdk.es31.js +4 -4
  485. package/dist/es/standards-sdk.es32.js +1 -1
  486. package/dist/es/standards-sdk.es35.js +7 -7
  487. package/dist/es/standards-sdk.es36.js +4 -4
  488. package/dist/es/standards-sdk.es37.js +2 -2
  489. package/dist/es/standards-sdk.es38.js +2 -2
  490. package/dist/es/standards-sdk.es39.js +1 -1
  491. package/dist/es/standards-sdk.es4.js +2 -2
  492. package/dist/es/standards-sdk.es40.js +1 -1
  493. package/dist/es/standards-sdk.es41.js +2 -2
  494. package/dist/es/standards-sdk.es46.js +1 -1
  495. package/dist/es/standards-sdk.es5.js +2 -2
  496. package/dist/es/standards-sdk.es51.js +1 -1
  497. package/dist/es/standards-sdk.es53.js +1 -1
  498. package/dist/es/standards-sdk.es56.js +2 -2
  499. package/dist/es/standards-sdk.es59.js +1 -1
  500. package/dist/es/standards-sdk.es6.js +2 -2
  501. package/dist/es/standards-sdk.es60.js +1 -1
  502. package/dist/es/standards-sdk.es62.js +1 -1
  503. package/dist/es/standards-sdk.es63.js +2 -2
  504. package/dist/es/standards-sdk.es64.js +1 -1
  505. package/dist/es/standards-sdk.es65.js +1 -1
  506. package/dist/es/standards-sdk.es66.js +1 -1
  507. package/dist/es/standards-sdk.es67.js +8 -8
  508. package/dist/es/standards-sdk.es69.js +1 -1
  509. package/dist/es/standards-sdk.es7.js +1 -1
  510. package/dist/es/standards-sdk.es71.js +2 -2
  511. package/dist/es/standards-sdk.es72.js +3 -3
  512. package/dist/es/standards-sdk.es75.js +5 -5
  513. package/dist/es/standards-sdk.es76.js +3 -3
  514. package/dist/es/standards-sdk.es77.js +2 -2
  515. package/dist/es/standards-sdk.es78.js +1 -1
  516. package/dist/es/standards-sdk.es81.js +2 -2
  517. package/dist/es/standards-sdk.es83.js +2 -2
  518. package/dist/es/standards-sdk.es84.js +5 -5
  519. package/dist/es/standards-sdk.es85.js +1 -1
  520. package/dist/es/standards-sdk.es88.js +1 -1
  521. package/dist/es/standards-sdk.es89.js +2 -2
  522. package/dist/es/standards-sdk.es9.js +2 -2
  523. package/dist/es/standards-sdk.es90.js +4 -4
  524. package/dist/es/standards-sdk.es94.js +3 -3
  525. package/dist/es/standards-sdk.es96.js +2 -2
  526. package/dist/es/standards-sdk.es98.js +1 -1
  527. package/dist/es/standards-sdk.es99.js +3 -3
  528. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es143.js","sources":["../../src/utils/parsers/hts-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { AccountId, TokenId, Long } from '@hashgraph/sdk';\nimport {\n TokenCreationData,\n TokenMintData,\n TokenBurnData,\n TokenUpdateData,\n TokenFeeScheduleUpdateData,\n TokenFreezeData,\n TokenUnfreezeData,\n TokenGrantKycData,\n TokenRevokeKycData,\n TokenPauseData,\n TokenUnpauseData,\n TokenWipeAccountData,\n TokenDeleteData,\n TokenAssociateData,\n TokenDissociateData,\n TokenAirdropData,\n CustomFeeData,\n FixedFeeData,\n FractionalFeeData,\n RoyaltyFeeData,\n} from '../transaction-parser-types';\nimport { ParsedTransaction } from '../transaction-parser-types';\nimport {\n parseKey,\n extractTransactionBody,\n hasTransactionType,\n} from './parser-utils';\nimport { Buffer } from 'buffer';\n\nimport { Transaction } from '@hashgraph/sdk';\n\nexport class HTSParser {\n /**\n * Main entry point for parsing HTS transactions from a Transaction object\n * This method bridges between the Transaction object and the protobuf parsers\n */\n static parseHTSTransaction(\n transaction: Transaction,\n ): Partial<ParsedTransaction> {\n try {\n const transactionBody = (\n transaction as unknown as { _transactionBody?: proto.ITransactionBody }\n )._transactionBody as proto.ITransactionBody | undefined;\n\n if (!transactionBody) {\n return {};\n }\n\n if (transactionBody.tokenCreation) {\n const tokenCreation = this.parseTokenCreate(\n transactionBody.tokenCreation,\n );\n if (tokenCreation) {\n return {\n type: 'TOKENCREATE',\n humanReadableType: 'Token Creation',\n tokenCreation,\n };\n }\n }\n\n if (transactionBody.tokenMint) {\n const tokenMint = this.parseTokenMint(transactionBody.tokenMint);\n if (tokenMint) {\n return {\n type: 'TOKENMINT',\n humanReadableType: 'Token Mint',\n tokenMint,\n };\n }\n }\n\n if (transactionBody.tokenBurn) {\n const tokenBurn = this.parseTokenBurn(transactionBody.tokenBurn);\n if (tokenBurn) {\n return {\n type: 'TOKENBURN',\n humanReadableType: 'Token Burn',\n tokenBurn,\n };\n }\n }\n\n if (transactionBody.tokenUpdate) {\n const tokenUpdate = this.parseTokenUpdate(transactionBody.tokenUpdate);\n if (tokenUpdate) {\n return {\n type: 'TOKENUPDATE',\n humanReadableType: 'Token Update',\n tokenUpdate,\n };\n }\n }\n\n if (transactionBody.tokenFreeze) {\n const tokenFreeze = this.parseTokenFreeze(transactionBody.tokenFreeze);\n if (tokenFreeze) {\n return {\n type: 'TOKENFREEZE',\n humanReadableType: 'Token Freeze',\n tokenFreeze,\n };\n }\n }\n\n if (transactionBody.tokenUnfreeze) {\n const tokenUnfreeze = this.parseTokenUnfreeze(\n transactionBody.tokenUnfreeze,\n );\n if (tokenUnfreeze) {\n return {\n type: 'TOKENUNFREEZE',\n humanReadableType: 'Token Unfreeze',\n tokenUnfreeze,\n };\n }\n }\n\n if (transactionBody.tokenGrantKyc) {\n const tokenGrantKyc = this.parseTokenGrantKyc(\n transactionBody.tokenGrantKyc,\n );\n if (tokenGrantKyc) {\n return {\n type: 'TOKENGRANTKYC',\n humanReadableType: 'Token Grant KYC',\n tokenGrantKyc,\n };\n }\n }\n\n if (transactionBody.tokenRevokeKyc) {\n const tokenRevokeKyc = this.parseTokenRevokeKyc(\n transactionBody.tokenRevokeKyc,\n );\n if (tokenRevokeKyc) {\n return {\n type: 'TOKENREVOKEKYC',\n humanReadableType: 'Token Revoke KYC',\n tokenRevokeKyc,\n };\n }\n }\n\n if (transactionBody.tokenPause) {\n const tokenPause = this.parseTokenPause(transactionBody.tokenPause);\n if (tokenPause) {\n return {\n type: 'TOKENPAUSE',\n humanReadableType: 'Token Pause',\n tokenPause,\n };\n }\n }\n\n if (transactionBody.tokenUnpause) {\n const tokenUnpause = this.parseTokenUnpause(\n transactionBody.tokenUnpause,\n );\n if (tokenUnpause) {\n return {\n type: 'TOKENUNPAUSE',\n humanReadableType: 'Token Unpause',\n tokenUnpause,\n };\n }\n }\n\n if (transactionBody.tokenWipe) {\n const tokenWipeAccount = this.parseTokenWipeAccount(\n transactionBody.tokenWipe,\n );\n if (tokenWipeAccount) {\n return {\n type: 'TOKENWIPEACCOUNT',\n humanReadableType: 'Token Wipe Account',\n tokenWipeAccount,\n };\n }\n }\n\n if (transactionBody.tokenDeletion) {\n const tokenDelete = this.parseTokenDelete(\n transactionBody.tokenDeletion,\n );\n if (tokenDelete) {\n return {\n type: 'TOKENDELETE',\n humanReadableType: 'Token Delete',\n tokenDelete,\n };\n }\n }\n\n if (transactionBody.tokenAssociate) {\n const tokenAssociate = this.parseTokenAssociate(\n transactionBody.tokenAssociate,\n );\n if (tokenAssociate) {\n return {\n type: 'TOKENASSOCIATE',\n humanReadableType: 'Token Associate',\n tokenAssociate,\n };\n }\n }\n\n if (transactionBody.tokenDissociate) {\n const tokenDissociate = this.parseTokenDissociate(\n transactionBody.tokenDissociate,\n );\n if (tokenDissociate) {\n return {\n type: 'TOKENDISSOCIATE',\n humanReadableType: 'Token Dissociate',\n tokenDissociate,\n };\n }\n }\n\n if (transactionBody.tokenFeeScheduleUpdate) {\n const tokenFeeScheduleUpdate = this.parseTokenFeeScheduleUpdate(\n transactionBody.tokenFeeScheduleUpdate,\n );\n if (tokenFeeScheduleUpdate) {\n return {\n type: 'TOKENFEESCHEDULEUPDATE',\n humanReadableType: 'Token Fee Schedule Update',\n tokenFeeScheduleUpdate,\n };\n }\n }\n\n const airdrop = this.parseTokenAirdrop(transaction);\n if (airdrop) {\n return {\n type: 'TOKENAIRDROP',\n humanReadableType: 'Token Airdrop',\n tokenAirdrop: airdrop,\n };\n }\n\n return {};\n } catch (error) {\n console.warn('[HTSParser] Failed to parse HTS transaction:', error);\n return {};\n }\n }\n\n static parseTokenCreate(\n body: proto.ITokenCreateTransactionBody,\n ): TokenCreationData | undefined {\n if (!body) return undefined;\n const data: TokenCreationData = {};\n if (body.name) {\n data.tokenName = body.name;\n }\n if (body.symbol) {\n data.tokenSymbol = body.symbol;\n }\n if (body.treasury) {\n data.treasuryAccountId = new AccountId(\n body.treasury.shardNum ?? 0,\n body.treasury.realmNum ?? 0,\n body.treasury.accountNum ?? 0,\n ).toString();\n }\n if (body.initialSupply) {\n data.initialSupply = Long.fromValue(body.initialSupply).toString();\n }\n if (body.decimals !== undefined && body.decimals !== null) {\n data.decimals = Long.fromValue(body.decimals).toNumber();\n }\n if (body.maxSupply) {\n data.maxSupply = Long.fromValue(body.maxSupply).toString();\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n if (body.tokenType !== null && body.tokenType !== undefined) {\n data.tokenType = proto.TokenType[body.tokenType];\n }\n if (body.supplyType !== null && body.supplyType !== undefined) {\n data.supplyType = proto.TokenSupplyType[body.supplyType];\n }\n data.adminKey = parseKey(body.adminKey);\n data.kycKey = parseKey(body.kycKey);\n data.freezeKey = parseKey(body.freezeKey);\n data.wipeKey = parseKey(body.wipeKey);\n data.supplyKey = parseKey(body.supplyKey);\n data.feeScheduleKey = parseKey(body.feeScheduleKey);\n data.pauseKey = parseKey(body.pauseKey);\n if (body.autoRenewAccount) {\n data.autoRenewAccount = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.customFees && body.customFees.length > 0) {\n data.customFees = body.customFees.map(fee => {\n const feeCollectorAccountId = fee.feeCollectorAccountId\n ? new AccountId(\n fee.feeCollectorAccountId.shardNum ?? 0,\n fee.feeCollectorAccountId.realmNum ?? 0,\n fee.feeCollectorAccountId.accountNum ?? 0,\n ).toString()\n : 'Not Set';\n const commonFeeData = {\n feeCollectorAccountId,\n allCollectorsAreExempt: fee.allCollectorsAreExempt || false,\n };\n if (fee.fixedFee) {\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: {\n amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),\n denominatingTokenId: fee.fixedFee.denominatingTokenId\n ? new TokenId(\n fee.fixedFee.denominatingTokenId.shardNum ?? 0,\n fee.fixedFee.denominatingTokenId.realmNum ?? 0,\n fee.fixedFee.denominatingTokenId.tokenNum ?? 0,\n ).toString()\n : undefined,\n },\n };\n } else if (fee.fractionalFee) {\n return {\n ...commonFeeData,\n feeType: 'FRACTIONAL_FEE',\n fractionalFee: {\n numerator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.denominator || 1,\n ).toString(),\n minimumAmount: Long.fromValue(\n fee.fractionalFee.minimumAmount || 0,\n ).toString(),\n maximumAmount: Long.fromValue(\n fee.fractionalFee.maximumAmount || 0,\n ).toString(),\n netOfTransfers: fee.fractionalFee.netOfTransfers || false,\n },\n };\n } else if (fee.royaltyFee) {\n let fallbackFeeData: FixedFeeData | undefined = undefined;\n if (fee.royaltyFee.fallbackFee) {\n fallbackFeeData = {\n amount: Long.fromValue(\n fee.royaltyFee.fallbackFee.amount || 0,\n ).toString(),\n denominatingTokenId: fee.royaltyFee.fallbackFee\n .denominatingTokenId\n ? new TokenId(\n fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ??\n 0,\n ).toString()\n : undefined,\n };\n }\n return {\n ...commonFeeData,\n feeType: 'ROYALTY_FEE',\n royaltyFee: {\n numerator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.denominator || 1,\n ).toString(),\n fallbackFee: fallbackFeeData,\n },\n };\n }\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: { amount: '0' },\n } as CustomFeeData;\n });\n }\n return data;\n }\n\n static parseTokenMint(\n body: proto.ITokenMintTransactionBody,\n ): TokenMintData | undefined {\n if (\n !body ||\n !body.token ||\n body.amount === null ||\n body.amount === undefined\n ) {\n return undefined;\n }\n const data: TokenMintData = {\n tokenId: new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString(),\n amount: Long.fromValue(body.amount).toNumber(),\n };\n if (body.metadata && body.metadata.length > 0) {\n data.metadata = body.metadata.map(meta =>\n Buffer.from(meta).toString('base64'),\n );\n }\n return data;\n }\n\n static parseTokenBurn(\n body: proto.ITokenBurnTransactionBody,\n ): TokenBurnData | undefined {\n if (\n !body ||\n !body.token ||\n body.amount === null ||\n body.amount === undefined\n ) {\n return undefined;\n }\n const data: TokenBurnData = {\n tokenId: new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString(),\n amount: Long.fromValue(body.amount).toNumber(),\n };\n if (body.serialNumbers && body.serialNumbers.length > 0) {\n data.serialNumbers = body.serialNumbers.map(sn =>\n Long.fromValue(sn).toNumber(),\n );\n }\n return data;\n }\n\n static parseTokenUpdate(\n body: proto.ITokenUpdateTransactionBody,\n ): TokenUpdateData | undefined {\n if (!body) return undefined;\n const data: TokenUpdateData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.name) {\n data.name = body.name;\n }\n if (body.symbol) {\n data.symbol = body.symbol;\n }\n if (body.treasury) {\n data.treasuryAccountId = new AccountId(\n body.treasury.shardNum ?? 0,\n body.treasury.realmNum ?? 0,\n body.treasury.accountNum ?? 0,\n ).toString();\n }\n data.adminKey = parseKey(body.adminKey);\n data.kycKey = parseKey(body.kycKey);\n data.freezeKey = parseKey(body.freezeKey);\n data.wipeKey = parseKey(body.wipeKey);\n data.supplyKey = parseKey(body.supplyKey);\n data.feeScheduleKey = parseKey(body.feeScheduleKey);\n data.pauseKey = parseKey(body.pauseKey);\n if (body.autoRenewAccount) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.memo?.value !== undefined) {\n data.memo = body.memo.value;\n }\n if (body.expiry?.seconds) {\n data.expiry = `${Long.fromValue(body.expiry.seconds).toString()}.${\n body.expiry.nanos\n }`;\n }\n return data;\n }\n\n static parseTokenFeeScheduleUpdate(\n body: proto.ITokenFeeScheduleUpdateTransactionBody,\n ): TokenFeeScheduleUpdateData | undefined {\n if (!body) return undefined;\n const data: TokenFeeScheduleUpdateData = {};\n if (body.tokenId) {\n data.tokenId = new TokenId(\n body.tokenId.shardNum ?? 0,\n body.tokenId.realmNum ?? 0,\n body.tokenId.tokenNum ?? 0,\n ).toString();\n }\n if (body.customFees && body.customFees.length > 0) {\n data.customFees = body.customFees.map(fee => {\n const feeCollectorAccountId = fee.feeCollectorAccountId\n ? new AccountId(\n fee.feeCollectorAccountId.shardNum ?? 0,\n fee.feeCollectorAccountId.realmNum ?? 0,\n fee.feeCollectorAccountId.accountNum ?? 0,\n ).toString()\n : 'Not Set';\n const commonFeeData = {\n feeCollectorAccountId,\n allCollectorsAreExempt: fee.allCollectorsAreExempt || false,\n };\n if (fee.fixedFee) {\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: {\n amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),\n denominatingTokenId: fee.fixedFee.denominatingTokenId\n ? new TokenId(\n fee.fixedFee.denominatingTokenId.shardNum ?? 0,\n fee.fixedFee.denominatingTokenId.realmNum ?? 0,\n fee.fixedFee.denominatingTokenId.tokenNum ?? 0,\n ).toString()\n : undefined,\n },\n };\n } else if (fee.fractionalFee) {\n return {\n ...commonFeeData,\n feeType: 'FRACTIONAL_FEE',\n fractionalFee: {\n numerator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.denominator || 1,\n ).toString(),\n minimumAmount: Long.fromValue(\n fee.fractionalFee.minimumAmount || 0,\n ).toString(),\n maximumAmount: Long.fromValue(\n fee.fractionalFee.maximumAmount || 0,\n ).toString(),\n netOfTransfers: fee.fractionalFee.netOfTransfers || false,\n },\n };\n } else if (fee.royaltyFee) {\n let fallbackFeeData: FixedFeeData | undefined = undefined;\n if (fee.royaltyFee.fallbackFee) {\n fallbackFeeData = {\n amount: Long.fromValue(\n fee.royaltyFee.fallbackFee.amount || 0,\n ).toString(),\n denominatingTokenId: fee.royaltyFee.fallbackFee\n .denominatingTokenId\n ? new TokenId(\n fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ??\n 0,\n ).toString()\n : undefined,\n };\n }\n return {\n ...commonFeeData,\n feeType: 'ROYALTY_FEE',\n royaltyFee: {\n numerator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.denominator || 1,\n ).toString(),\n fallbackFee: fallbackFeeData,\n },\n };\n }\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: { amount: '0' },\n } as CustomFeeData;\n });\n }\n return data;\n }\n\n static parseTokenFreeze(\n body: proto.ITokenFreezeAccountTransactionBody,\n ): TokenFreezeData | undefined {\n if (!body) return undefined;\n const data: TokenFreezeData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenUnfreeze(\n body: proto.ITokenUnfreezeAccountTransactionBody,\n ): TokenUnfreezeData | undefined {\n if (!body) return undefined;\n const data: TokenUnfreezeData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenGrantKyc(\n body: proto.ITokenGrantKycTransactionBody,\n ): TokenGrantKycData | undefined {\n if (!body) return undefined;\n const data: TokenGrantKycData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenRevokeKyc(\n body: proto.ITokenRevokeKycTransactionBody,\n ): TokenRevokeKycData | undefined {\n if (!body) return undefined;\n const data: TokenRevokeKycData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenPause(\n body: proto.ITokenPauseTransactionBody,\n ): TokenPauseData | undefined {\n if (!body) return undefined;\n const data: TokenPauseData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenUnpause(\n body: proto.ITokenUnpauseTransactionBody,\n ): TokenUnpauseData | undefined {\n if (!body) return undefined;\n const data: TokenUnpauseData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenWipeAccount(\n body: proto.ITokenWipeAccountTransactionBody,\n ): TokenWipeAccountData | undefined {\n if (!body) return undefined;\n const data: TokenWipeAccountData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n if (body.serialNumbers && body.serialNumbers.length > 0) {\n data.serialNumbers = body.serialNumbers.map(sn =>\n Long.fromValue(sn).toString(),\n );\n }\n if (body.amount) {\n data.amount = Long.fromValue(body.amount).toString();\n }\n return data;\n }\n\n static parseTokenDelete(\n body: proto.ITokenDeleteTransactionBody,\n ): TokenDeleteData | undefined {\n if (!body) return undefined;\n const data: TokenDeleteData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenAssociate(\n body: proto.ITokenAssociateTransactionBody,\n ): TokenAssociateData | undefined {\n if (!body) return undefined;\n const data: TokenAssociateData = {};\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n if (body.tokens && body.tokens.length > 0) {\n data.tokenIds = body.tokens.map(t =>\n new TokenId(\n t.shardNum ?? 0,\n t.realmNum ?? 0,\n t.tokenNum ?? 0,\n ).toString(),\n );\n }\n return data;\n }\n\n static parseTokenDissociate(\n body: proto.ITokenDissociateTransactionBody,\n ): TokenDissociateData | undefined {\n if (!body) return undefined;\n const data: TokenDissociateData = {};\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n if (body.tokens && body.tokens.length > 0) {\n data.tokenIds = body.tokens.map(t =>\n new TokenId(\n t.shardNum ?? 0,\n t.realmNum ?? 0,\n t.tokenNum ?? 0,\n ).toString(),\n );\n }\n return data;\n }\n\n /**\n * Parse token airdrop transaction for both fungible tokens and NFTs\n * Extracts airdrop transfers from transaction protobuf data\n */\n static parseTokenAirdrop(transaction: Transaction): TokenAirdropData | null {\n try {\n const transactionBody = (\n transaction as unknown as { _transactionBody?: proto.ITransactionBody }\n )._transactionBody as proto.ITransactionBody | undefined;\n\n if (transactionBody?.tokenAirdrop) {\n const airdrop = transactionBody.tokenAirdrop;\n\n return {\n tokenTransfers: (airdrop.tokenTransfers || []).map(\n (transfer: any) => ({\n tokenId: transfer.token?.toString() || 'Unknown',\n transfers: (transfer.transfers || []).map((t: any) => ({\n accountId: t.accountID?.toString() || 'Unknown',\n amount: t.amount?.toString() || '0',\n serialNumbers: t.serialNumbers?.map((sn: any) => sn.toString()),\n })),\n }),\n ),\n };\n }\n\n if (hasTransactionType(transaction, 'tokenAirdrop')) {\n const txBody = extractTransactionBody(transaction);\n if (txBody?.tokenAirdrop) {\n return this.parseTokenAirdropFromProto(txBody.tokenAirdrop);\n }\n }\n\n const tx = transaction as unknown as {\n _tokenTransfers?: Array<{\n tokenId?: { toString(): string } | string;\n transfers?: Array<{\n accountId?: { toString(): string } | string;\n amount?: { toString(): string } | string | number | Long;\n serialNumbers?: Array<\n { toString(): string } | string | number | Long\n >;\n }>;\n }>;\n };\n const tokenTransfersList = tx._tokenTransfers || [];\n\n if (tokenTransfersList.length > 0) {\n return {\n tokenTransfers: tokenTransfersList.map((transfer: any) => ({\n tokenId: transfer.tokenId?.toString() || 'Unknown',\n transfers: (transfer.transfers || []).map((t: any) => ({\n accountId: t.accountId?.toString() || 'Unknown',\n amount: t.amount?.toString() || '0',\n serialNumbers: t.serialNumbers?.map((sn: any) => sn.toString()),\n })),\n })),\n };\n }\n\n return null;\n } catch (error) {\n console.warn('[HTSParser] Failed to parse token airdrop:', error);\n return null;\n }\n }\n\n /**\n * Parse token airdrop from protobuf data for scheduled transactions\n */\n static parseTokenAirdropFromProto(airdrop: any): TokenAirdropData {\n const tokenTransfers = [];\n\n if (airdrop.tokenTransfers) {\n for (const tokenTransfer of airdrop.tokenTransfers) {\n const token = tokenTransfer.token\n ? new TokenId(\n tokenTransfer.token.shardNum ?? 0,\n tokenTransfer.token.realmNum ?? 0,\n tokenTransfer.token.tokenNum ?? 0,\n )\n : null;\n const transfers = [];\n\n if (tokenTransfer.transfers) {\n for (const transfer of tokenTransfer.transfers) {\n const accountId = transfer.accountID\n ? new AccountId(\n transfer.accountID.shardNum ?? 0,\n transfer.accountID.realmNum ?? 0,\n transfer.accountID.accountNum ?? 0,\n )\n : null;\n\n transfers.push({\n accountId: accountId?.toString() || 'Unknown',\n amount: transfer.amount\n ? Long.fromValue(transfer.amount).toString()\n : '0',\n serialNumbers: transfer.serialNumbers?.map((sn: any) =>\n Long.fromValue(sn).toString(),\n ),\n });\n }\n }\n\n tokenTransfers.push({\n tokenId: token?.toString() || 'Unknown',\n transfers,\n });\n }\n }\n\n return { tokenTransfers };\n }\n\n /**\n * Extract token creation data from Transaction object internal fields\n * This handles the case where token creation data is stored in Transaction internals\n */\n static extractTokenCreationFromTransaction(\n transaction: Transaction,\n ): TokenCreationData | null {\n try {\n const tx = transaction as unknown as {\n _tokenName?: string;\n _tokenSymbol?: string;\n _initialSupply?: number | Long;\n _decimals?: number | Long;\n _treasuryAccountId?: AccountId;\n _maxSupply?: number | Long;\n _tokenType?: unknown;\n _supplyType?: unknown;\n _tokenMemo?: string;\n _adminKey?: unknown;\n _kycKey?: unknown;\n _freezeKey?: unknown;\n _wipeKey?: unknown;\n _supplyKey?: unknown;\n _feeScheduleKey?: unknown;\n _pauseKey?: unknown;\n _metadataKey?: unknown;\n _autoRenewAccountId?: AccountId;\n _autoRenewPeriod?: { seconds?: Long; toString(): string };\n _expirationTime?: { seconds?: Long; toString(): string };\n _customFees?: unknown[];\n };\n\n if (tx._tokenName || tx._tokenSymbol) {\n const result: TokenCreationData = {\n tokenName: tx._tokenName || 'Unknown Token',\n tokenSymbol: tx._tokenSymbol || 'UNKNOWN',\n initialSupply: tx._initialSupply?.toString() || '0',\n decimals: Number(tx._decimals || 0),\n treasuryAccountId: tx._treasuryAccountId?.toString() || 'Unknown',\n };\n\n if (tx._maxSupply) {\n result.maxSupply = tx._maxSupply.toString();\n }\n\n if (tx._tokenType) {\n result.tokenType = tx._tokenType.toString\n ? tx._tokenType.toString()\n : String(tx._tokenType);\n }\n\n if (tx._supplyType) {\n result.supplyType = tx._supplyType.toString\n ? tx._supplyType.toString()\n : String(tx._supplyType);\n }\n\n if (tx._tokenMemo) {\n result.memo = tx._tokenMemo;\n }\n\n if (tx._adminKey) {\n result.adminKey = tx._adminKey.toString();\n }\n\n if (tx._kycKey) {\n result.kycKey = tx._kycKey.toString();\n }\n\n if (tx._freezeKey) {\n result.freezeKey = tx._freezeKey.toString();\n }\n\n if (tx._wipeKey) {\n result.wipeKey = tx._wipeKey.toString();\n }\n\n if (tx._supplyKey) {\n result.supplyKey = tx._supplyKey.toString();\n }\n\n if (tx._feeScheduleKey) {\n result.feeScheduleKey = tx._feeScheduleKey.toString();\n }\n\n if (tx._pauseKey) {\n result.pauseKey = tx._pauseKey.toString();\n }\n\n if (tx._metadataKey) {\n result.metadataKey = tx._metadataKey.toString();\n }\n\n if (tx._autoRenewAccountId) {\n result.autoRenewAccount = tx._autoRenewAccountId.toString();\n }\n\n if (tx._autoRenewPeriod) {\n result.autoRenewPeriod =\n tx._autoRenewPeriod.seconds?.toString() ||\n tx._autoRenewPeriod.toString();\n }\n\n if (tx._expirationTime) {\n result.expiry =\n tx._expirationTime.seconds?.toString() ||\n tx._expirationTime.toString();\n }\n\n if (\n tx._customFees &&\n Array.isArray(tx._customFees) &&\n tx._customFees.length > 0\n ) {\n result.customFees = tx._customFees.map((fee: any) => {\n const customFee: CustomFeeData = {\n feeCollectorAccountId:\n fee.feeCollectorAccountId?.toString() || '',\n feeType: 'FIXED_FEE',\n };\n\n if (fee.fixedFee) {\n customFee.feeType = 'FIXED_FEE';\n customFee.fixedFee = {\n amount: fee.fixedFee.amount?.toString() || '0',\n denominatingTokenId:\n fee.fixedFee.denominatingTokenId?.toString(),\n };\n } else if (fee.fractionalFee) {\n customFee.feeType = 'FRACTIONAL_FEE';\n customFee.fractionalFee = {\n numerator: fee.fractionalFee.numerator?.toString() || '0',\n denominator: fee.fractionalFee.denominator?.toString() || '1',\n minimumAmount:\n fee.fractionalFee.minimumAmount?.toString() || '0',\n maximumAmount:\n fee.fractionalFee.maximumAmount?.toString() || '0',\n netOfTransfers: fee.fractionalFee.netOfTransfers || false,\n };\n } else if (fee.royaltyFee) {\n customFee.feeType = 'ROYALTY_FEE';\n customFee.royaltyFee = {\n numerator: fee.royaltyFee.numerator?.toString() || '0',\n denominator: fee.royaltyFee.denominator?.toString() || '1',\n fallbackFee: fee.royaltyFee.fallbackFee\n ? {\n amount:\n fee.royaltyFee.fallbackFee.amount?.toString() || '0',\n denominatingTokenId:\n fee.royaltyFee.fallbackFee.denominatingTokenId?.toString(),\n }\n : undefined,\n };\n }\n\n customFee.allCollectorsAreExempt =\n fee.allCollectorsAreExempt || false;\n return customFee;\n });\n }\n\n return result;\n }\n\n return null;\n } catch (error) {\n return null;\n }\n }\n\n /**\n * Extract token airdrop data from Transaction object internal fields\n * This handles the case where airdrop data is stored in Transaction internals\n */\n static extractTokenAirdropFromTransaction(\n transaction: Transaction,\n ): TokenAirdropData | null {\n try {\n const tx = transaction as unknown as {\n _tokenAirdrops?: Array<{\n tokenId?: { toString(): string };\n transfers?: Array<{\n accountId?: { toString(): string };\n amount?: { toString(): string };\n serialNumbers?: Array<{ toString(): string }>;\n }>;\n }>;\n };\n\n if (tx._tokenAirdrops && Array.isArray(tx._tokenAirdrops)) {\n const tokenTransfers = tx._tokenAirdrops.map(airdrop => ({\n tokenId: airdrop.tokenId?.toString() || 'Unknown',\n transfers: (airdrop.transfers || []).map(transfer => ({\n accountId: transfer.accountId?.toString() || 'Unknown',\n amount: transfer.amount?.toString() || '0',\n serialNumbers: transfer.serialNumbers?.map(s => s.toString()) || [],\n })),\n }));\n\n return { tokenTransfers };\n }\n\n return null;\n } catch (error) {\n return null;\n }\n }\n\n /**\n * Parse HTS transaction from Transaction object with comprehensive extraction\n * This is the unified entry point that handles both protobuf and internal field extraction\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n tokenCreation?: TokenCreationData;\n tokenAirdrop?: TokenAirdropData;\n [key: string]: unknown;\n } {\n try {\n try {\n const bytes = transaction.toBytes ? transaction.toBytes() : undefined;\n if (bytes) {\n const decoded = proto.TransactionList.decode(bytes);\n if (decoded.transactionList && decoded.transactionList.length > 0) {\n const tx = decoded.transactionList[0];\n let txBody: proto.TransactionBody | null = null;\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 if (txBody.tokenCreation) {\n const tokenCreation = this.parseTokenCreate(\n txBody.tokenCreation,\n );\n if (tokenCreation) {\n return {\n type: 'TOKENCREATE',\n humanReadableType: 'Token Creation',\n tokenCreation,\n };\n }\n }\n if (txBody.tokenMint) {\n const tokenMint = this.parseTokenMint(txBody.tokenMint);\n if (tokenMint) {\n return {\n type: 'TOKENMINT',\n humanReadableType: 'Token Mint',\n tokenMint,\n };\n }\n }\n if (txBody.tokenBurn) {\n const tokenBurn = this.parseTokenBurn(txBody.tokenBurn);\n if (tokenBurn) {\n return {\n type: 'TOKENBURN',\n humanReadableType: 'Token Burn',\n tokenBurn,\n };\n }\n }\n if (txBody.tokenUpdate) {\n const tokenUpdate = this.parseTokenUpdate(txBody.tokenUpdate);\n if (tokenUpdate) {\n return {\n type: 'TOKENUPDATE',\n humanReadableType: 'Token Update',\n tokenUpdate,\n };\n }\n }\n if (txBody.tokenFreeze) {\n const tokenFreeze = this.parseTokenFreeze(txBody.tokenFreeze);\n if (tokenFreeze) {\n return {\n type: 'TOKENFREEZE',\n humanReadableType: 'Token Freeze',\n tokenFreeze,\n };\n }\n }\n if (txBody.tokenUnfreeze) {\n const tokenUnfreeze = this.parseTokenUnfreeze(\n txBody.tokenUnfreeze,\n );\n if (tokenUnfreeze) {\n return {\n type: 'TOKENUNFREEZE',\n humanReadableType: 'Token Unfreeze',\n tokenUnfreeze,\n };\n }\n }\n if (txBody.tokenGrantKyc) {\n const tokenGrantKyc = this.parseTokenGrantKyc(\n txBody.tokenGrantKyc,\n );\n if (tokenGrantKyc) {\n return {\n type: 'TOKENGRANTKYC',\n humanReadableType: 'Token Grant KYC',\n tokenGrantKyc,\n };\n }\n }\n if (txBody.tokenRevokeKyc) {\n const tokenRevokeKyc = this.parseTokenRevokeKyc(\n txBody.tokenRevokeKyc,\n );\n if (tokenRevokeKyc) {\n return {\n type: 'TOKENREVOKEKYC',\n humanReadableType: 'Token Revoke KYC',\n tokenRevokeKyc,\n };\n }\n }\n if (txBody.tokenPause) {\n const tokenPause = this.parseTokenPause(txBody.tokenPause);\n if (tokenPause) {\n return {\n type: 'TOKENPAUSE',\n humanReadableType: 'Token Pause',\n tokenPause,\n };\n }\n }\n if (txBody.tokenUnpause) {\n const tokenUnpause = this.parseTokenUnpause(\n txBody.tokenUnpause,\n );\n if (tokenUnpause) {\n return {\n type: 'TOKENUNPAUSE',\n humanReadableType: 'Token Unpause',\n tokenUnpause,\n };\n }\n }\n if (txBody.tokenWipe) {\n const tokenWipeAccount = this.parseTokenWipeAccount(\n txBody.tokenWipe,\n );\n if (tokenWipeAccount) {\n return {\n type: 'TOKENWIPEACCOUNT',\n humanReadableType: 'Token Wipe Account',\n tokenWipeAccount,\n } as {\n type?: string;\n humanReadableType?: string;\n tokenWipeAccount?: TokenWipeAccountData;\n };\n }\n }\n if (txBody.tokenDeletion) {\n const tokenDelete = this.parseTokenDelete(txBody.tokenDeletion);\n if (tokenDelete) {\n return {\n type: 'TOKENDELETE',\n humanReadableType: 'Token Delete',\n tokenDelete,\n };\n }\n }\n if (txBody.tokenAssociate) {\n const tokenAssociate = this.parseTokenAssociate(\n txBody.tokenAssociate,\n );\n if (tokenAssociate) {\n return {\n type: 'TOKENASSOCIATE',\n humanReadableType: 'Token Associate',\n tokenAssociate,\n };\n }\n }\n if (txBody.tokenDissociate) {\n const tokenDissociate = this.parseTokenDissociate(\n txBody.tokenDissociate,\n );\n if (tokenDissociate) {\n return {\n type: 'TOKENDISSOCIATE',\n humanReadableType: 'Token Dissociate',\n tokenDissociate,\n };\n }\n }\n if (txBody.tokenFeeScheduleUpdate) {\n const tokenFeeScheduleUpdate = this.parseTokenFeeScheduleUpdate(\n txBody.tokenFeeScheduleUpdate,\n );\n if (tokenFeeScheduleUpdate) {\n return {\n type: 'TOKENFEESCHEDULEUPDATE',\n humanReadableType: 'Token Fee Schedule Update',\n tokenFeeScheduleUpdate,\n };\n }\n }\n if (txBody.tokenAirdrop) {\n const tokenAirdrop = this.parseTokenAirdropFromProto(\n txBody.tokenAirdrop,\n );\n if (tokenAirdrop) {\n return {\n type: 'TOKENAIRDROP',\n humanReadableType: 'Token Airdrop',\n tokenAirdrop,\n };\n }\n }\n }\n }\n }\n } catch (e) {}\n\n const protoResult = this.parseHTSTransaction(transaction);\n if (protoResult.type) {\n return protoResult;\n }\n\n const tokenCreation =\n this.extractTokenCreationFromTransaction(transaction);\n const tokenAirdrop = this.extractTokenAirdropFromTransaction(transaction);\n if (tokenCreation) {\n return {\n type: 'TOKENCREATE',\n humanReadableType: 'Token Creation',\n tokenCreation,\n };\n }\n if (tokenAirdrop) {\n return {\n type: 'TOKENAIRDROP',\n humanReadableType: 'Token Airdrop',\n tokenAirdrop,\n };\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n}\n"],"names":["tokenCreation","tokenAirdrop"],"mappings":";;;;AAkCO,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,OAAO,oBACL,aAC4B;AAC5B,QAAI;AACF,YAAM,kBACJ,YACA;AAEF,UAAI,CAAC,iBAAiB;AACpB,eAAO,CAAA;AAAA,MACT;AAEA,UAAI,gBAAgB,eAAe;AACjC,cAAM,gBAAgB,KAAK;AAAA,UACzB,gBAAgB;AAAA,QAAA;AAElB,YAAI,eAAe;AACjB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,WAAW;AAC7B,cAAM,YAAY,KAAK,eAAe,gBAAgB,SAAS;AAC/D,YAAI,WAAW;AACb,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,WAAW;AAC7B,cAAM,YAAY,KAAK,eAAe,gBAAgB,SAAS;AAC/D,YAAI,WAAW;AACb,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,aAAa;AAC/B,cAAM,cAAc,KAAK,iBAAiB,gBAAgB,WAAW;AACrE,YAAI,aAAa;AACf,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,aAAa;AAC/B,cAAM,cAAc,KAAK,iBAAiB,gBAAgB,WAAW;AACrE,YAAI,aAAa;AACf,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,eAAe;AACjC,cAAM,gBAAgB,KAAK;AAAA,UACzB,gBAAgB;AAAA,QAAA;AAElB,YAAI,eAAe;AACjB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,eAAe;AACjC,cAAM,gBAAgB,KAAK;AAAA,UACzB,gBAAgB;AAAA,QAAA;AAElB,YAAI,eAAe;AACjB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,gBAAgB;AAClC,cAAM,iBAAiB,KAAK;AAAA,UAC1B,gBAAgB;AAAA,QAAA;AAElB,YAAI,gBAAgB;AAClB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,YAAY;AAC9B,cAAM,aAAa,KAAK,gBAAgB,gBAAgB,UAAU;AAClE,YAAI,YAAY;AACd,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,cAAc;AAChC,cAAM,eAAe,KAAK;AAAA,UACxB,gBAAgB;AAAA,QAAA;AAElB,YAAI,cAAc;AAChB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,WAAW;AAC7B,cAAM,mBAAmB,KAAK;AAAA,UAC5B,gBAAgB;AAAA,QAAA;AAElB,YAAI,kBAAkB;AACpB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,eAAe;AACjC,cAAM,cAAc,KAAK;AAAA,UACvB,gBAAgB;AAAA,QAAA;AAElB,YAAI,aAAa;AACf,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,gBAAgB;AAClC,cAAM,iBAAiB,KAAK;AAAA,UAC1B,gBAAgB;AAAA,QAAA;AAElB,YAAI,gBAAgB;AAClB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,iBAAiB;AACnC,cAAM,kBAAkB,KAAK;AAAA,UAC3B,gBAAgB;AAAA,QAAA;AAElB,YAAI,iBAAiB;AACnB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,gBAAgB,wBAAwB;AAC1C,cAAM,yBAAyB,KAAK;AAAA,UAClC,gBAAgB;AAAA,QAAA;AAElB,YAAI,wBAAwB;AAC1B,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAEA,YAAM,UAAU,KAAK,kBAAkB,WAAW;AAClD,UAAI,SAAS;AACX,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB,cAAc;AAAA,QAAA;AAAA,MAElB;AAEA,aAAO,CAAA;AAAA,IACT,SAAS,OAAO;AACd,cAAQ,KAAK,gDAAgD,KAAK;AAClE,aAAO,CAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO,iBACL,MAC+B;AAC/B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAA0B,CAAA;AAChC,QAAI,KAAK,MAAM;AACb,WAAK,YAAY,KAAK;AAAA,IACxB;AACA,QAAI,KAAK,QAAQ;AACf,WAAK,cAAc,KAAK;AAAA,IAC1B;AACA,QAAI,KAAK,UAAU;AACjB,WAAK,oBAAoB,IAAI;AAAA,QAC3B,KAAK,SAAS,YAAY;AAAA,QAC1B,KAAK,SAAS,YAAY;AAAA,QAC1B,KAAK,SAAS,cAAc;AAAA,MAAA,EAC5B,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,eAAe;AACtB,WAAK,gBAAgB,KAAK,UAAU,KAAK,aAAa,EAAE,SAAA;AAAA,IAC1D;AACA,QAAI,KAAK,aAAa,UAAa,KAAK,aAAa,MAAM;AACzD,WAAK,WAAW,KAAK,UAAU,KAAK,QAAQ,EAAE,SAAA;AAAA,IAChD;AACA,QAAI,KAAK,WAAW;AAClB,WAAK,YAAY,KAAK,UAAU,KAAK,SAAS,EAAE,SAAA;AAAA,IAClD;AACA,QAAI,KAAK,MAAM;AACb,WAAK,OAAO,KAAK;AAAA,IACnB;AACA,QAAI,KAAK,cAAc,QAAQ,KAAK,cAAc,QAAW;AAC3D,WAAK,YAAY,MAAM,UAAU,KAAK,SAAS;AAAA,IACjD;AACA,QAAI,KAAK,eAAe,QAAQ,KAAK,eAAe,QAAW;AAC7D,WAAK,aAAa,MAAM,gBAAgB,KAAK,UAAU;AAAA,IACzD;AACA,SAAK,WAAW,SAAS,KAAK,QAAQ;AACtC,SAAK,SAAS,SAAS,KAAK,MAAM;AAClC,SAAK,YAAY,SAAS,KAAK,SAAS;AACxC,SAAK,UAAU,SAAS,KAAK,OAAO;AACpC,SAAK,YAAY,SAAS,KAAK,SAAS;AACxC,SAAK,iBAAiB,SAAS,KAAK,cAAc;AAClD,SAAK,WAAW,SAAS,KAAK,QAAQ;AACtC,QAAI,KAAK,kBAAkB;AACzB,WAAK,mBAAmB,IAAI;AAAA,QAC1B,KAAK,iBAAiB,YAAY;AAAA,QAClC,KAAK,iBAAiB,YAAY;AAAA,QAClC,KAAK,iBAAiB,cAAc;AAAA,MAAA,EACpC,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,iBAAiB,SAAS;AACjC,WAAK,kBAAkB,KAAK;AAAA,QAC1B,KAAK,gBAAgB;AAAA,MAAA,EACrB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,cAAc,KAAK,WAAW,SAAS,GAAG;AACjD,WAAK,aAAa,KAAK,WAAW,IAAI,CAAA,QAAO;AAC3C,cAAM,wBAAwB,IAAI,wBAC9B,IAAI;AAAA,UACF,IAAI,sBAAsB,YAAY;AAAA,UACtC,IAAI,sBAAsB,YAAY;AAAA,UACtC,IAAI,sBAAsB,cAAc;AAAA,QAAA,EACxC,aACF;AACJ,cAAM,gBAAgB;AAAA,UACpB;AAAA,UACA,wBAAwB,IAAI,0BAA0B;AAAA,QAAA;AAExD,YAAI,IAAI,UAAU;AAChB,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS;AAAA,YACT,UAAU;AAAA,cACR,QAAQ,KAAK,UAAU,IAAI,SAAS,UAAU,CAAC,EAAE,SAAA;AAAA,cACjD,qBAAqB,IAAI,SAAS,sBAC9B,IAAI;AAAA,gBACF,IAAI,SAAS,oBAAoB,YAAY;AAAA,gBAC7C,IAAI,SAAS,oBAAoB,YAAY;AAAA,gBAC7C,IAAI,SAAS,oBAAoB,YAAY;AAAA,cAAA,EAC7C,aACF;AAAA,YAAA;AAAA,UACN;AAAA,QAEJ,WAAW,IAAI,eAAe;AAC5B,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS;AAAA,YACT,eAAe;AAAA,cACb,WAAW,KAAK;AAAA,gBACd,IAAI,cAAc,kBAAkB,aAAa;AAAA,cAAA,EACjD,SAAA;AAAA,cACF,aAAa,KAAK;AAAA,gBAChB,IAAI,cAAc,kBAAkB,eAAe;AAAA,cAAA,EACnD,SAAA;AAAA,cACF,eAAe,KAAK;AAAA,gBAClB,IAAI,cAAc,iBAAiB;AAAA,cAAA,EACnC,SAAA;AAAA,cACF,eAAe,KAAK;AAAA,gBAClB,IAAI,cAAc,iBAAiB;AAAA,cAAA,EACnC,SAAA;AAAA,cACF,gBAAgB,IAAI,cAAc,kBAAkB;AAAA,YAAA;AAAA,UACtD;AAAA,QAEJ,WAAW,IAAI,YAAY;AACzB,cAAI,kBAA4C;AAChD,cAAI,IAAI,WAAW,aAAa;AAC9B,8BAAkB;AAAA,cAChB,QAAQ,KAAK;AAAA,gBACX,IAAI,WAAW,YAAY,UAAU;AAAA,cAAA,EACrC,SAAA;AAAA,cACF,qBAAqB,IAAI,WAAW,YACjC,sBACC,IAAI;AAAA,gBACF,IAAI,WAAW,YAAY,oBAAoB,YAC7C;AAAA,gBACF,IAAI,WAAW,YAAY,oBAAoB,YAC7C;AAAA,gBACF,IAAI,WAAW,YAAY,oBAAoB,YAC7C;AAAA,cAAA,EACF,aACF;AAAA,YAAA;AAAA,UAER;AACA,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS;AAAA,YACT,YAAY;AAAA,cACV,WAAW,KAAK;AAAA,gBACd,IAAI,WAAW,uBAAuB,aAAa;AAAA,cAAA,EACnD,SAAA;AAAA,cACF,aAAa,KAAK;AAAA,gBAChB,IAAI,WAAW,uBAAuB,eAAe;AAAA,cAAA,EACrD,SAAA;AAAA,cACF,aAAa;AAAA,YAAA;AAAA,UACf;AAAA,QAEJ;AACA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS;AAAA,UACT,UAAU,EAAE,QAAQ,IAAA;AAAA,QAAI;AAAA,MAE5B,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,eACL,MAC2B;AAC3B,QACE,CAAC,QACD,CAAC,KAAK,SACN,KAAK,WAAW,QAChB,KAAK,WAAW,QAChB;AACA,aAAO;AAAA,IACT;AACA,UAAM,OAAsB;AAAA,MAC1B,SAAS,IAAI;AAAA,QACX,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,MACF,QAAQ,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAAS;AAE/C,QAAI,KAAK,YAAY,KAAK,SAAS,SAAS,GAAG;AAC7C,WAAK,WAAW,KAAK,SAAS;AAAA,QAAI,UAChC,OAAO,KAAK,IAAI,EAAE,SAAS,QAAQ;AAAA,MAAA;AAAA,IAEvC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,eACL,MAC2B;AAC3B,QACE,CAAC,QACD,CAAC,KAAK,SACN,KAAK,WAAW,QAChB,KAAK,WAAW,QAChB;AACA,aAAO;AAAA,IACT;AACA,UAAM,OAAsB;AAAA,MAC1B,SAAS,IAAI;AAAA,QACX,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,MACF,QAAQ,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAAS;AAE/C,QAAI,KAAK,iBAAiB,KAAK,cAAc,SAAS,GAAG;AACvD,WAAK,gBAAgB,KAAK,cAAc;AAAA,QAAI,CAAA,OAC1C,KAAK,UAAU,EAAE,EAAE,SAAA;AAAA,MAAS;AAAA,IAEhC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,iBACL,MAC6B;AAC7B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAwB,CAAA;AAC9B,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,MAAM;AACb,WAAK,OAAO,KAAK;AAAA,IACnB;AACA,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,KAAK;AAAA,IACrB;AACA,QAAI,KAAK,UAAU;AACjB,WAAK,oBAAoB,IAAI;AAAA,QAC3B,KAAK,SAAS,YAAY;AAAA,QAC1B,KAAK,SAAS,YAAY;AAAA,QAC1B,KAAK,SAAS,cAAc;AAAA,MAAA,EAC5B,SAAA;AAAA,IACJ;AACA,SAAK,WAAW,SAAS,KAAK,QAAQ;AACtC,SAAK,SAAS,SAAS,KAAK,MAAM;AAClC,SAAK,YAAY,SAAS,KAAK,SAAS;AACxC,SAAK,UAAU,SAAS,KAAK,OAAO;AACpC,SAAK,YAAY,SAAS,KAAK,SAAS;AACxC,SAAK,iBAAiB,SAAS,KAAK,cAAc;AAClD,SAAK,WAAW,SAAS,KAAK,QAAQ;AACtC,QAAI,KAAK,kBAAkB;AACzB,WAAK,qBAAqB,IAAI;AAAA,QAC5B,KAAK,iBAAiB,YAAY;AAAA,QAClC,KAAK,iBAAiB,YAAY;AAAA,QAClC,KAAK,iBAAiB,cAAc;AAAA,MAAA,EACpC,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,iBAAiB,SAAS;AACjC,WAAK,kBAAkB,KAAK;AAAA,QAC1B,KAAK,gBAAgB;AAAA,MAAA,EACrB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,MAAM,UAAU,QAAW;AAClC,WAAK,OAAO,KAAK,KAAK;AAAA,IACxB;AACA,QAAI,KAAK,QAAQ,SAAS;AACxB,WAAK,SAAS,GAAG,KAAK,UAAU,KAAK,OAAO,OAAO,EAAE,SAAA,CAAU,IAC7D,KAAK,OAAO,KACd;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,4BACL,MACwC;AACxC,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAmC,CAAA;AACzC,QAAI,KAAK,SAAS;AAChB,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,MAAA,EACzB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,cAAc,KAAK,WAAW,SAAS,GAAG;AACjD,WAAK,aAAa,KAAK,WAAW,IAAI,CAAA,QAAO;AAC3C,cAAM,wBAAwB,IAAI,wBAC9B,IAAI;AAAA,UACF,IAAI,sBAAsB,YAAY;AAAA,UACtC,IAAI,sBAAsB,YAAY;AAAA,UACtC,IAAI,sBAAsB,cAAc;AAAA,QAAA,EACxC,aACF;AACJ,cAAM,gBAAgB;AAAA,UACpB;AAAA,UACA,wBAAwB,IAAI,0BAA0B;AAAA,QAAA;AAExD,YAAI,IAAI,UAAU;AAChB,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS;AAAA,YACT,UAAU;AAAA,cACR,QAAQ,KAAK,UAAU,IAAI,SAAS,UAAU,CAAC,EAAE,SAAA;AAAA,cACjD,qBAAqB,IAAI,SAAS,sBAC9B,IAAI;AAAA,gBACF,IAAI,SAAS,oBAAoB,YAAY;AAAA,gBAC7C,IAAI,SAAS,oBAAoB,YAAY;AAAA,gBAC7C,IAAI,SAAS,oBAAoB,YAAY;AAAA,cAAA,EAC7C,aACF;AAAA,YAAA;AAAA,UACN;AAAA,QAEJ,WAAW,IAAI,eAAe;AAC5B,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS;AAAA,YACT,eAAe;AAAA,cACb,WAAW,KAAK;AAAA,gBACd,IAAI,cAAc,kBAAkB,aAAa;AAAA,cAAA,EACjD,SAAA;AAAA,cACF,aAAa,KAAK;AAAA,gBAChB,IAAI,cAAc,kBAAkB,eAAe;AAAA,cAAA,EACnD,SAAA;AAAA,cACF,eAAe,KAAK;AAAA,gBAClB,IAAI,cAAc,iBAAiB;AAAA,cAAA,EACnC,SAAA;AAAA,cACF,eAAe,KAAK;AAAA,gBAClB,IAAI,cAAc,iBAAiB;AAAA,cAAA,EACnC,SAAA;AAAA,cACF,gBAAgB,IAAI,cAAc,kBAAkB;AAAA,YAAA;AAAA,UACtD;AAAA,QAEJ,WAAW,IAAI,YAAY;AACzB,cAAI,kBAA4C;AAChD,cAAI,IAAI,WAAW,aAAa;AAC9B,8BAAkB;AAAA,cAChB,QAAQ,KAAK;AAAA,gBACX,IAAI,WAAW,YAAY,UAAU;AAAA,cAAA,EACrC,SAAA;AAAA,cACF,qBAAqB,IAAI,WAAW,YACjC,sBACC,IAAI;AAAA,gBACF,IAAI,WAAW,YAAY,oBAAoB,YAC7C;AAAA,gBACF,IAAI,WAAW,YAAY,oBAAoB,YAC7C;AAAA,gBACF,IAAI,WAAW,YAAY,oBAAoB,YAC7C;AAAA,cAAA,EACF,aACF;AAAA,YAAA;AAAA,UAER;AACA,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS;AAAA,YACT,YAAY;AAAA,cACV,WAAW,KAAK;AAAA,gBACd,IAAI,WAAW,uBAAuB,aAAa;AAAA,cAAA,EACnD,SAAA;AAAA,cACF,aAAa,KAAK;AAAA,gBAChB,IAAI,WAAW,uBAAuB,eAAe;AAAA,cAAA,EACrD,SAAA;AAAA,cACF,aAAa;AAAA,YAAA;AAAA,UACf;AAAA,QAEJ;AACA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS;AAAA,UACT,UAAU,EAAE,QAAQ,IAAA;AAAA,QAAI;AAAA,MAE5B,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,iBACL,MAC6B;AAC7B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAwB,CAAA;AAC9B,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY,IAAI;AAAA,QACnB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,cAAc;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,mBACL,MAC+B;AAC/B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAA0B,CAAA;AAChC,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY,IAAI;AAAA,QACnB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,cAAc;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,mBACL,MAC+B;AAC/B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAA0B,CAAA;AAChC,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY,IAAI;AAAA,QACnB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,cAAc;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,oBACL,MACgC;AAChC,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAA2B,CAAA;AACjC,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY,IAAI;AAAA,QACnB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,cAAc;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,gBACL,MAC4B;AAC5B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAuB,CAAA;AAC7B,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,kBACL,MAC8B;AAC9B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAyB,CAAA;AAC/B,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,sBACL,MACkC;AAClC,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAA6B,CAAA;AACnC,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY,IAAI;AAAA,QACnB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,cAAc;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,iBAAiB,KAAK,cAAc,SAAS,GAAG;AACvD,WAAK,gBAAgB,KAAK,cAAc;AAAA,QAAI,CAAA,OAC1C,KAAK,UAAU,EAAE,EAAE,SAAA;AAAA,MAAS;AAAA,IAEhC;AACA,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAC5C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,iBACL,MAC6B;AAC7B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAwB,CAAA;AAC9B,QAAI,KAAK,OAAO;AACd,WAAK,UAAU,IAAI;AAAA,QACjB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,QACvB,KAAK,MAAM,YAAY;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,oBACL,MACgC;AAChC,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAA2B,CAAA;AACjC,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY,IAAI;AAAA,QACnB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,cAAc;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,UAAU,KAAK,OAAO,SAAS,GAAG;AACzC,WAAK,WAAW,KAAK,OAAO;AAAA,QAAI,OAC9B,IAAI;AAAA,UACF,EAAE,YAAY;AAAA,UACd,EAAE,YAAY;AAAA,UACd,EAAE,YAAY;AAAA,QAAA,EACd,SAAA;AAAA,MAAS;AAAA,IAEf;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,qBACL,MACiC;AACjC,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAA4B,CAAA;AAClC,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY,IAAI;AAAA,QACnB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,YAAY;AAAA,QACzB,KAAK,QAAQ,cAAc;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AACA,QAAI,KAAK,UAAU,KAAK,OAAO,SAAS,GAAG;AACzC,WAAK,WAAW,KAAK,OAAO;AAAA,QAAI,OAC9B,IAAI;AAAA,UACF,EAAE,YAAY;AAAA,UACd,EAAE,YAAY;AAAA,UACd,EAAE,YAAY;AAAA,QAAA,EACd,SAAA;AAAA,MAAS;AAAA,IAEf;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,kBAAkB,aAAmD;AAC1E,QAAI;AACF,YAAM,kBACJ,YACA;AAEF,UAAI,iBAAiB,cAAc;AACjC,cAAM,UAAU,gBAAgB;AAEhC,eAAO;AAAA,UACL,iBAAiB,QAAQ,kBAAkB,CAAA,GAAI;AAAA,YAC7C,CAAC,cAAmB;AAAA,cAClB,SAAS,SAAS,OAAO,SAAA,KAAc;AAAA,cACvC,YAAY,SAAS,aAAa,CAAA,GAAI,IAAI,CAAC,OAAY;AAAA,gBACrD,WAAW,EAAE,WAAW,SAAA,KAAc;AAAA,gBACtC,QAAQ,EAAE,QAAQ,SAAA,KAAc;AAAA,gBAChC,eAAe,EAAE,eAAe,IAAI,CAAC,OAAY,GAAG,UAAU;AAAA,cAAA,EAC9D;AAAA,YAAA;AAAA,UACJ;AAAA,QACF;AAAA,MAEJ;AAEA,UAAI,mBAAmB,aAAa,cAAc,GAAG;AACnD,cAAM,SAAS,uBAAuB,WAAW;AACjD,YAAI,QAAQ,cAAc;AACxB,iBAAO,KAAK,2BAA2B,OAAO,YAAY;AAAA,QAC5D;AAAA,MACF;AAEA,YAAM,KAAK;AAYX,YAAM,qBAAqB,GAAG,mBAAmB,CAAA;AAEjD,UAAI,mBAAmB,SAAS,GAAG;AACjC,eAAO;AAAA,UACL,gBAAgB,mBAAmB,IAAI,CAAC,cAAmB;AAAA,YACzD,SAAS,SAAS,SAAS,SAAA,KAAc;AAAA,YACzC,YAAY,SAAS,aAAa,CAAA,GAAI,IAAI,CAAC,OAAY;AAAA,cACrD,WAAW,EAAE,WAAW,SAAA,KAAc;AAAA,cACtC,QAAQ,EAAE,QAAQ,SAAA,KAAc;AAAA,cAChC,eAAe,EAAE,eAAe,IAAI,CAAC,OAAY,GAAG,UAAU;AAAA,YAAA,EAC9D;AAAA,UAAA,EACF;AAAA,QAAA;AAAA,MAEN;AAEA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,cAAQ,KAAK,8CAA8C,KAAK;AAChE,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,2BAA2B,SAAgC;AAChE,UAAM,iBAAiB,CAAA;AAEvB,QAAI,QAAQ,gBAAgB;AAC1B,iBAAW,iBAAiB,QAAQ,gBAAgB;AAClD,cAAM,QAAQ,cAAc,QACxB,IAAI;AAAA,UACF,cAAc,MAAM,YAAY;AAAA,UAChC,cAAc,MAAM,YAAY;AAAA,UAChC,cAAc,MAAM,YAAY;AAAA,QAAA,IAElC;AACJ,cAAM,YAAY,CAAA;AAElB,YAAI,cAAc,WAAW;AAC3B,qBAAW,YAAY,cAAc,WAAW;AAC9C,kBAAM,YAAY,SAAS,YACvB,IAAI;AAAA,cACF,SAAS,UAAU,YAAY;AAAA,cAC/B,SAAS,UAAU,YAAY;AAAA,cAC/B,SAAS,UAAU,cAAc;AAAA,YAAA,IAEnC;AAEJ,sBAAU,KAAK;AAAA,cACb,WAAW,WAAW,SAAA,KAAc;AAAA,cACpC,QAAQ,SAAS,SACb,KAAK,UAAU,SAAS,MAAM,EAAE,SAAA,IAChC;AAAA,cACJ,eAAe,SAAS,eAAe;AAAA,gBAAI,CAAC,OAC1C,KAAK,UAAU,EAAE,EAAE,SAAA;AAAA,cAAS;AAAA,YAC9B,CACD;AAAA,UACH;AAAA,QACF;AAEA,uBAAe,KAAK;AAAA,UAClB,SAAS,OAAO,SAAA,KAAc;AAAA,UAC9B;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IACF;AAEA,WAAO,EAAE,eAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,oCACL,aAC0B;AAC1B,QAAI;AACF,YAAM,KAAK;AAwBX,UAAI,GAAG,cAAc,GAAG,cAAc;AACpC,cAAM,SAA4B;AAAA,UAChC,WAAW,GAAG,cAAc;AAAA,UAC5B,aAAa,GAAG,gBAAgB;AAAA,UAChC,eAAe,GAAG,gBAAgB,SAAA,KAAc;AAAA,UAChD,UAAU,OAAO,GAAG,aAAa,CAAC;AAAA,UAClC,mBAAmB,GAAG,oBAAoB,cAAc;AAAA,QAAA;AAG1D,YAAI,GAAG,YAAY;AACjB,iBAAO,YAAY,GAAG,WAAW,SAAA;AAAA,QACnC;AAEA,YAAI,GAAG,YAAY;AACjB,iBAAO,YAAY,GAAG,WAAW,WAC7B,GAAG,WAAW,SAAA,IACd,OAAO,GAAG,UAAU;AAAA,QAC1B;AAEA,YAAI,GAAG,aAAa;AAClB,iBAAO,aAAa,GAAG,YAAY,WAC/B,GAAG,YAAY,SAAA,IACf,OAAO,GAAG,WAAW;AAAA,QAC3B;AAEA,YAAI,GAAG,YAAY;AACjB,iBAAO,OAAO,GAAG;AAAA,QACnB;AAEA,YAAI,GAAG,WAAW;AAChB,iBAAO,WAAW,GAAG,UAAU,SAAA;AAAA,QACjC;AAEA,YAAI,GAAG,SAAS;AACd,iBAAO,SAAS,GAAG,QAAQ,SAAA;AAAA,QAC7B;AAEA,YAAI,GAAG,YAAY;AACjB,iBAAO,YAAY,GAAG,WAAW,SAAA;AAAA,QACnC;AAEA,YAAI,GAAG,UAAU;AACf,iBAAO,UAAU,GAAG,SAAS,SAAA;AAAA,QAC/B;AAEA,YAAI,GAAG,YAAY;AACjB,iBAAO,YAAY,GAAG,WAAW,SAAA;AAAA,QACnC;AAEA,YAAI,GAAG,iBAAiB;AACtB,iBAAO,iBAAiB,GAAG,gBAAgB,SAAA;AAAA,QAC7C;AAEA,YAAI,GAAG,WAAW;AAChB,iBAAO,WAAW,GAAG,UAAU,SAAA;AAAA,QACjC;AAEA,YAAI,GAAG,cAAc;AACnB,iBAAO,cAAc,GAAG,aAAa,SAAA;AAAA,QACvC;AAEA,YAAI,GAAG,qBAAqB;AAC1B,iBAAO,mBAAmB,GAAG,oBAAoB,SAAA;AAAA,QACnD;AAEA,YAAI,GAAG,kBAAkB;AACvB,iBAAO,kBACL,GAAG,iBAAiB,SAAS,cAC7B,GAAG,iBAAiB,SAAA;AAAA,QACxB;AAEA,YAAI,GAAG,iBAAiB;AACtB,iBAAO,SACL,GAAG,gBAAgB,SAAS,cAC5B,GAAG,gBAAgB,SAAA;AAAA,QACvB;AAEA,YACE,GAAG,eACH,MAAM,QAAQ,GAAG,WAAW,KAC5B,GAAG,YAAY,SAAS,GACxB;AACA,iBAAO,aAAa,GAAG,YAAY,IAAI,CAAC,QAAa;AACnD,kBAAM,YAA2B;AAAA,cAC/B,uBACE,IAAI,uBAAuB,SAAA,KAAc;AAAA,cAC3C,SAAS;AAAA,YAAA;AAGX,gBAAI,IAAI,UAAU;AAChB,wBAAU,UAAU;AACpB,wBAAU,WAAW;AAAA,gBACnB,QAAQ,IAAI,SAAS,QAAQ,cAAc;AAAA,gBAC3C,qBACE,IAAI,SAAS,qBAAqB,SAAA;AAAA,cAAS;AAAA,YAEjD,WAAW,IAAI,eAAe;AAC5B,wBAAU,UAAU;AACpB,wBAAU,gBAAgB;AAAA,gBACxB,WAAW,IAAI,cAAc,WAAW,cAAc;AAAA,gBACtD,aAAa,IAAI,cAAc,aAAa,cAAc;AAAA,gBAC1D,eACE,IAAI,cAAc,eAAe,cAAc;AAAA,gBACjD,eACE,IAAI,cAAc,eAAe,cAAc;AAAA,gBACjD,gBAAgB,IAAI,cAAc,kBAAkB;AAAA,cAAA;AAAA,YAExD,WAAW,IAAI,YAAY;AACzB,wBAAU,UAAU;AACpB,wBAAU,aAAa;AAAA,gBACrB,WAAW,IAAI,WAAW,WAAW,cAAc;AAAA,gBACnD,aAAa,IAAI,WAAW,aAAa,cAAc;AAAA,gBACvD,aAAa,IAAI,WAAW,cACxB;AAAA,kBACE,QACE,IAAI,WAAW,YAAY,QAAQ,cAAc;AAAA,kBACnD,qBACE,IAAI,WAAW,YAAY,qBAAqB,SAAA;AAAA,gBAAS,IAE7D;AAAA,cAAA;AAAA,YAER;AAEA,sBAAU,yBACR,IAAI,0BAA0B;AAChC,mBAAO;AAAA,UACT,CAAC;AAAA,QACH;AAEA,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,mCACL,aACyB;AACzB,QAAI;AACF,YAAM,KAAK;AAWX,UAAI,GAAG,kBAAkB,MAAM,QAAQ,GAAG,cAAc,GAAG;AACzD,cAAM,iBAAiB,GAAG,eAAe,IAAI,CAAA,aAAY;AAAA,UACvD,SAAS,QAAQ,SAAS,SAAA,KAAc;AAAA,UACxC,YAAY,QAAQ,aAAa,CAAA,GAAI,IAAI,CAAA,cAAa;AAAA,YACpD,WAAW,SAAS,WAAW,SAAA,KAAc;AAAA,YAC7C,QAAQ,SAAS,QAAQ,SAAA,KAAc;AAAA,YACvC,eAAe,SAAS,eAAe,IAAI,OAAK,EAAE,SAAA,CAAU,KAAK,CAAA;AAAA,UAAC,EAClE;AAAA,QAAA,EACF;AAEF,eAAO,EAAE,eAAA;AAAA,MACX;AAEA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,2BAA2B,aAMhC;AACA,QAAI;AACF,UAAI;AACF,cAAM,QAAQ,YAAY,UAAU,YAAY,YAAY;AAC5D,YAAI,OAAO;AACT,gBAAM,UAAU,MAAM,gBAAgB,OAAO,KAAK;AAClD,cAAI,QAAQ,mBAAmB,QAAQ,gBAAgB,SAAS,GAAG;AACjE,kBAAM,KAAK,QAAQ,gBAAgB,CAAC;AACpC,gBAAI,SAAuC;AAC3C,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,kBAAI,OAAO,eAAe;AACxB,sBAAMA,iBAAgB,KAAK;AAAA,kBACzB,OAAO;AAAA,gBAAA;AAET,oBAAIA,gBAAe;AACjB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB,eAAAA;AAAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,WAAW;AACpB,sBAAM,YAAY,KAAK,eAAe,OAAO,SAAS;AACtD,oBAAI,WAAW;AACb,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,WAAW;AACpB,sBAAM,YAAY,KAAK,eAAe,OAAO,SAAS;AACtD,oBAAI,WAAW;AACb,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,aAAa;AACtB,sBAAM,cAAc,KAAK,iBAAiB,OAAO,WAAW;AAC5D,oBAAI,aAAa;AACf,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,aAAa;AACtB,sBAAM,cAAc,KAAK,iBAAiB,OAAO,WAAW;AAC5D,oBAAI,aAAa;AACf,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,eAAe;AACxB,sBAAM,gBAAgB,KAAK;AAAA,kBACzB,OAAO;AAAA,gBAAA;AAET,oBAAI,eAAe;AACjB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,eAAe;AACxB,sBAAM,gBAAgB,KAAK;AAAA,kBACzB,OAAO;AAAA,gBAAA;AAET,oBAAI,eAAe;AACjB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,gBAAgB;AACzB,sBAAM,iBAAiB,KAAK;AAAA,kBAC1B,OAAO;AAAA,gBAAA;AAET,oBAAI,gBAAgB;AAClB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,YAAY;AACrB,sBAAM,aAAa,KAAK,gBAAgB,OAAO,UAAU;AACzD,oBAAI,YAAY;AACd,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,cAAc;AACvB,sBAAM,eAAe,KAAK;AAAA,kBACxB,OAAO;AAAA,gBAAA;AAET,oBAAI,cAAc;AAChB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,WAAW;AACpB,sBAAM,mBAAmB,KAAK;AAAA,kBAC5B,OAAO;AAAA,gBAAA;AAET,oBAAI,kBAAkB;AACpB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAMJ;AAAA,cACF;AACA,kBAAI,OAAO,eAAe;AACxB,sBAAM,cAAc,KAAK,iBAAiB,OAAO,aAAa;AAC9D,oBAAI,aAAa;AACf,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,gBAAgB;AACzB,sBAAM,iBAAiB,KAAK;AAAA,kBAC1B,OAAO;AAAA,gBAAA;AAET,oBAAI,gBAAgB;AAClB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,iBAAiB;AAC1B,sBAAM,kBAAkB,KAAK;AAAA,kBAC3B,OAAO;AAAA,gBAAA;AAET,oBAAI,iBAAiB;AACnB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,wBAAwB;AACjC,sBAAM,yBAAyB,KAAK;AAAA,kBAClC,OAAO;AAAA,gBAAA;AAET,oBAAI,wBAAwB;AAC1B,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB;AAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AACA,kBAAI,OAAO,cAAc;AACvB,sBAAMC,gBAAe,KAAK;AAAA,kBACxB,OAAO;AAAA,gBAAA;AAET,oBAAIA,eAAc;AAChB,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,mBAAmB;AAAA,oBACnB,cAAAA;AAAAA,kBAAA;AAAA,gBAEJ;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,GAAG;AAAA,MAAC;AAEb,YAAM,cAAc,KAAK,oBAAoB,WAAW;AACxD,UAAI,YAAY,MAAM;AACpB,eAAO;AAAA,MACT;AAEA,YAAM,gBACJ,KAAK,oCAAoC,WAAW;AACtD,YAAM,eAAe,KAAK,mCAAmC,WAAW;AACxE,UAAI,eAAe;AACjB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AACA,UAAI,cAAc;AAChB,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;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es143.js","sources":["../../src/hcs-26/memos.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n HCS26_PROTOCOL,\n hcs26OperationEnumSchema,\n hcs26TopicTypeEnumSchema,\n type Hcs26OperationEnum,\n type Hcs26TopicTypeEnum,\n} from './types';\n\nexport type Hcs26TopicMemo = {\n protocol: typeof HCS26_PROTOCOL;\n indexed: boolean;\n ttlSeconds: number;\n topicType: Hcs26TopicTypeEnum;\n};\n\nexport const HCS26_DEFAULT_TTL_SECONDS = 86400;\n\nfunction toPositiveInt(value: number): number {\n if (!Number.isFinite(value)) {\n throw new Error('Expected a finite number');\n }\n const intValue = Math.floor(value);\n if (intValue <= 0) {\n throw new Error('Expected a positive integer');\n }\n return intValue;\n}\n\nexport function buildHcs26TopicMemo(input: {\n indexed?: boolean;\n ttlSeconds?: number;\n topicType: Hcs26TopicTypeEnum;\n}): string {\n const indexed = input.indexed ?? true;\n const ttlSeconds = toPositiveInt(\n input.ttlSeconds ?? HCS26_DEFAULT_TTL_SECONDS,\n );\n const topicType = hcs26TopicTypeEnumSchema.parse(input.topicType);\n\n // HCS-2 memo convention: indexed topics use \"0\" in the second segment.\n const indexedSegment = indexed ? '0' : '1';\n return `${HCS26_PROTOCOL}:${indexedSegment}:${ttlSeconds}:${topicType}`;\n}\n\nexport function parseHcs26TopicMemo(memoRaw: string): Hcs26TopicMemo | null {\n const memo = memoRaw.trim();\n if (!memo) {\n return null;\n }\n\n const match = memo.match(/^hcs-26:(\\d+):(\\d+):(\\d+)$/);\n if (!match) {\n return null;\n }\n\n const indexedSegment = Number(match[1]);\n const ttlSeconds = Number(match[2]);\n const topicType = Number(match[3]);\n\n if (![indexedSegment, ttlSeconds, topicType].every(Number.isFinite)) {\n return null;\n }\n\n const parsedTopicType = hcs26TopicTypeEnumSchema.safeParse(topicType);\n if (!parsedTopicType.success) {\n return null;\n }\n\n if (indexedSegment !== 0 && indexedSegment !== 1) {\n return null;\n }\n\n return {\n protocol: HCS26_PROTOCOL,\n indexed: indexedSegment === 0,\n ttlSeconds,\n topicType: parsedTopicType.data,\n };\n}\n\nexport function buildHcs26TransactionMemo(input: {\n operation: Hcs26OperationEnum;\n topicType: Hcs26TopicTypeEnum;\n}): string {\n const operation = hcs26OperationEnumSchema.parse(input.operation);\n const topicType = hcs26TopicTypeEnumSchema.parse(input.topicType);\n return `${HCS26_PROTOCOL}:op:${operation}:${topicType}`;\n}\n\nexport type Hcs26TransactionMemo = {\n protocol: typeof HCS26_PROTOCOL;\n operation: Hcs26OperationEnum;\n topicType: Hcs26TopicTypeEnum;\n};\n\nexport function parseHcs26TransactionMemo(\n memoRaw: string,\n): Hcs26TransactionMemo | null {\n const memo = memoRaw.trim();\n if (!memo) {\n return null;\n }\n\n const match = memo.match(/^hcs-26:op:(\\d+):(\\d+)$/);\n if (!match) {\n return null;\n }\n\n const operation = Number(match[1]);\n const topicType = Number(match[2]);\n if (![operation, topicType].every(Number.isFinite)) {\n return null;\n }\n\n const parsedOperation = hcs26OperationEnumSchema.safeParse(operation);\n if (!parsedOperation.success) {\n return null;\n }\n const parsedTopicType = hcs26TopicTypeEnumSchema.safeParse(topicType);\n if (!parsedTopicType.success) {\n return null;\n }\n\n return {\n protocol: HCS26_PROTOCOL,\n operation: parsedOperation.data,\n topicType: parsedTopicType.data,\n };\n}\n\nexport const hcs26TopicMemoSchema = z.string().transform(value => {\n const parsed = parseHcs26TopicMemo(value);\n if (!parsed) {\n throw new Error('Invalid HCS-26 topic memo');\n }\n return parsed;\n});\n\nexport const hcs26TransactionMemoSchema = z.string().transform(value => {\n const parsed = parseHcs26TransactionMemo(value);\n if (!parsed) {\n throw new Error('Invalid HCS-26 transaction memo');\n }\n return parsed;\n});\n"],"names":[],"mappings":";;AAgBO,MAAM,4BAA4B;AAEzC,SAAS,cAAc,OAAuB;AAC5C,MAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC3B,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AACA,QAAM,WAAW,KAAK,MAAM,KAAK;AACjC,MAAI,YAAY,GAAG;AACjB,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AACA,SAAO;AACT;AAEO,SAAS,oBAAoB,OAIzB;AACT,QAAM,UAAU,MAAM,WAAW;AACjC,QAAM,aAAa;AAAA,IACjB,MAAM,cAAc;AAAA,EAAA;AAEtB,QAAM,YAAY,yBAAyB,MAAM,MAAM,SAAS;AAGhE,QAAM,iBAAiB,UAAU,MAAM;AACvC,SAAO,GAAG,cAAc,IAAI,cAAc,IAAI,UAAU,IAAI,SAAS;AACvE;AAEO,SAAS,oBAAoB,SAAwC;AAC1E,QAAM,OAAO,QAAQ,KAAA;AACrB,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,KAAK,MAAM,4BAA4B;AACrD,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,OAAO,MAAM,CAAC,CAAC;AACtC,QAAM,aAAa,OAAO,MAAM,CAAC,CAAC;AAClC,QAAM,YAAY,OAAO,MAAM,CAAC,CAAC;AAEjC,MAAI,CAAC,CAAC,gBAAgB,YAAY,SAAS,EAAE,MAAM,OAAO,QAAQ,GAAG;AACnE,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,yBAAyB,UAAU,SAAS;AACpE,MAAI,CAAC,gBAAgB,SAAS;AAC5B,WAAO;AAAA,EACT;AAEA,MAAI,mBAAmB,KAAK,mBAAmB,GAAG;AAChD,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,SAAS,mBAAmB;AAAA,IAC5B;AAAA,IACA,WAAW,gBAAgB;AAAA,EAAA;AAE/B;AAEO,SAAS,0BAA0B,OAG/B;AACT,QAAM,YAAY,yBAAyB,MAAM,MAAM,SAAS;AAChE,QAAM,YAAY,yBAAyB,MAAM,MAAM,SAAS;AAChE,SAAO,GAAG,cAAc,OAAO,SAAS,IAAI,SAAS;AACvD;AAQO,SAAS,0BACd,SAC6B;AAC7B,QAAM,OAAO,QAAQ,KAAA;AACrB,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,KAAK,MAAM,yBAAyB;AAClD,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,MAAM,CAAC,CAAC;AACjC,QAAM,YAAY,OAAO,MAAM,CAAC,CAAC;AACjC,MAAI,CAAC,CAAC,WAAW,SAAS,EAAE,MAAM,OAAO,QAAQ,GAAG;AAClD,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,yBAAyB,UAAU,SAAS;AACpE,MAAI,CAAC,gBAAgB,SAAS;AAC5B,WAAO;AAAA,EACT;AACA,QAAM,kBAAkB,yBAAyB,UAAU,SAAS;AACpE,MAAI,CAAC,gBAAgB,SAAS;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,WAAW,gBAAgB;AAAA,IAC3B,WAAW,gBAAgB;AAAA,EAAA;AAE/B;AAEO,MAAM,uBAAuB,EAAE,OAAA,EAAS,UAAU,CAAA,UAAS;AAChE,QAAM,SAAS,oBAAoB,KAAK;AACxC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,SAAO;AACT,CAAC;AAEM,MAAM,6BAA6B,EAAE,OAAA,EAAS,UAAU,CAAA,UAAS;AACtE,QAAM,SAAS,0BAA0B,KAAK;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AACA,SAAO;AACT,CAAC;"}
@@ -1,309 +1,163 @@
1
- import { proto } from "@hashgraph/proto";
2
- import { hasTransactionType, parseKey } from "./standards-sdk.es196.js";
3
- import { AccountId, Long, ScheduleId } from "@hashgraph/sdk";
4
- class ScheduleParser {
5
- /**
6
- * Parse Schedule Service transaction using unified dual-branch approach
7
- * This handles both regular transactions and signed transaction variants
8
- */
9
- static parseScheduleTransaction(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 Schedule Transaction"
43
- };
44
- }
1
+ import { Logger } from "./standards-sdk.es147.js";
2
+ import { Hcs26SkillRegistryResolver } from "./standards-sdk.es142.js";
3
+ function getManifestTopicId(entry) {
4
+ const topicIdCandidate = entry.t_id;
5
+ if (typeof topicIdCandidate === "string" && topicIdCandidate.trim()) {
6
+ return topicIdCandidate.trim();
45
7
  }
46
- /**
47
- * Parse schedule transaction from protobuf TransactionBody
48
- * Handles all schedule operations from decoded protobuf data
49
- */
50
- static parseFromProtobufTxBody(txBody) {
51
- if (txBody.scheduleCreate) {
52
- const scheduleCreate = this.parseScheduleCreateFromProto(
53
- txBody.scheduleCreate
54
- );
55
- if (scheduleCreate) {
56
- return {
57
- type: "SCHEDULECREATE",
58
- humanReadableType: "Schedule Create",
59
- scheduleCreate
60
- };
61
- }
62
- }
63
- if (txBody.scheduleSign) {
64
- const scheduleSign = this.parseScheduleSignFromProto(txBody.scheduleSign);
65
- if (scheduleSign) {
66
- return {
67
- type: "SCHEDULESIGN",
68
- humanReadableType: "Schedule Sign",
69
- scheduleSign
70
- };
71
- }
72
- }
73
- if (txBody.scheduleDelete) {
74
- const scheduleDelete = this.parseScheduleDeleteFromProto(
75
- txBody.scheduleDelete
76
- );
77
- if (scheduleDelete) {
78
- return {
79
- type: "SCHEDULEDELETE",
80
- humanReadableType: "Schedule Delete",
81
- scheduleDelete
82
- };
83
- }
84
- }
85
- return {};
8
+ const hrlCandidate = entry.manifest_hcs1;
9
+ if (typeof hrlCandidate !== "string" || !hrlCandidate.trim()) {
10
+ throw new Error("Missing manifest reference in version register entry");
86
11
  }
87
- /**
88
- * Extract schedule data from Transaction internal fields
89
- * This handles cases where data is stored in Transaction object internals
90
- */
91
- static parseFromTransactionInternals(transaction) {
92
- try {
93
- const tx = transaction;
94
- if (hasTransactionType(transaction, "scheduleCreate")) {
95
- const scheduleCreate = {
96
- scheduledTransactionBody: Buffer.from(
97
- tx._scheduledTransaction
98
- ).toString("base64"),
99
- memo: tx._scheduleMemo,
100
- adminKey: tx._adminKey ? parseKey(tx._adminKey) : void 0,
101
- payerAccountId: tx._payerAccountId?.toString(),
102
- expirationTime: tx._expirationTime?.toString(),
103
- waitForExpiry: tx._waitForExpiry || false
104
- };
105
- return {
106
- type: "SCHEDULECREATE",
107
- humanReadableType: "Schedule Create",
108
- scheduleCreate
109
- };
110
- }
111
- if (hasTransactionType(transaction, "scheduleSign")) {
112
- const scheduleSign = {
113
- scheduleId: tx._scheduleId.toString()
114
- };
115
- return {
116
- type: "SCHEDULESIGN",
117
- humanReadableType: "Schedule Sign",
118
- scheduleSign
119
- };
120
- }
121
- if (hasTransactionType(transaction, "scheduleDelete")) {
122
- const scheduleDelete = {
123
- scheduleId: tx._scheduleId.toString()
124
- };
125
- return {
126
- type: "SCHEDULEDELETE",
127
- humanReadableType: "Schedule Delete",
128
- scheduleDelete
129
- };
130
- }
131
- return {};
132
- } catch (error) {
133
- return {};
134
- }
12
+ const hrl = hrlCandidate.trim();
13
+ const prefix = "hcs://1/";
14
+ if (!hrl.startsWith(prefix)) {
15
+ throw new Error(`Invalid manifest HRL: ${hrl}`);
135
16
  }
136
- /**
137
- * Parse Schedule Create from protobuf data
138
- */
139
- static parseScheduleCreateFromProto(body) {
140
- if (!body) return void 0;
141
- const data = {};
142
- if (body.scheduledTransactionBody) {
143
- const schedBytes = proto.SchedulableTransactionBody.encode(
144
- proto.SchedulableTransactionBody.create(body.scheduledTransactionBody)
145
- ).finish();
146
- data.scheduledTransactionBody = Buffer.from(schedBytes).toString("base64");
147
- }
148
- if (body.memo) {
149
- data.memo = body.memo;
150
- }
151
- if (body.adminKey) {
152
- data.adminKey = parseKey(body.adminKey);
153
- }
154
- if (body.payerAccountID) {
155
- data.payerAccountId = new AccountId(
156
- body.payerAccountID.shardNum ?? 0,
157
- body.payerAccountID.realmNum ?? 0,
158
- body.payerAccountID.accountNum ?? 0
159
- ).toString();
160
- }
161
- if (body.expirationTime?.seconds) {
162
- data.expirationTime = `${Long.fromValue(
163
- body.expirationTime.seconds
164
- ).toString()}.${body.expirationTime.nanos ?? 0}`;
165
- }
166
- if (body.waitForExpiry !== void 0) {
167
- data.waitForExpiry = body.waitForExpiry;
168
- }
169
- return data;
17
+ return hrl.slice(prefix.length);
18
+ }
19
+ class HCS26BaseClient {
20
+ constructor(config) {
21
+ this.network = config.network;
22
+ this.logger = config.logger ?? Logger.getInstance({
23
+ module: "HCS26Client",
24
+ level: "info"
25
+ });
26
+ this.verificationProvider = config.verificationProvider;
27
+ this.resolver = new Hcs26SkillRegistryResolver({
28
+ network: this.network,
29
+ logger: this.logger,
30
+ mirrorNode: config.mirrorNode
31
+ });
170
32
  }
171
- /**
172
- * Parse Schedule Sign from protobuf data
173
- */
174
- static parseScheduleSignFromProto(body) {
175
- if (!body) return void 0;
176
- const data = {};
177
- if (body.scheduleID) {
178
- data.scheduleId = new ScheduleId(
179
- body.scheduleID.shardNum ?? 0,
180
- body.scheduleID.realmNum ?? 0,
181
- body.scheduleID.scheduleNum ?? 0
182
- ).toString();
33
+ async resolveSkill(params) {
34
+ const discovery = await this.resolver.resolveDiscoveryRecord({
35
+ directoryTopicId: params.directoryTopicId,
36
+ skillUid: params.skillUid,
37
+ scanLimit: params.discoveryScanLimit
38
+ });
39
+ if (!discovery) {
40
+ return null;
183
41
  }
184
- return data;
185
- }
186
- /**
187
- * Parse Schedule Delete from protobuf data
188
- */
189
- static parseScheduleDeleteFromProto(body) {
190
- if (!body) return void 0;
191
- const data = {};
192
- if (body.scheduleID) {
193
- data.scheduleId = new ScheduleId(
194
- body.scheduleID.shardNum ?? 0,
195
- body.scheduleID.realmNum ?? 0,
196
- body.scheduleID.scheduleNum ?? 0
197
- ).toString();
42
+ const versionRegistryTopicId = discovery.t_id;
43
+ const latestVersion = await this.resolver.getLatestVersionRegister({
44
+ versionRegistryTopicId,
45
+ skillUid: params.skillUid
46
+ });
47
+ if (!latestVersion) {
48
+ throw new Error(
49
+ `No active version entries found for skill ${params.skillUid} in version registry ${versionRegistryTopicId}`
50
+ );
198
51
  }
199
- return data;
200
- }
201
- /**
202
- * Legacy method: Parse schedule create transaction
203
- * @deprecated Use parseScheduleTransaction instead
204
- */
205
- static parseScheduleCreate(transaction) {
206
- try {
207
- const result = this.parseScheduleTransaction(transaction);
208
- return result.scheduleCreate || null;
209
- } catch (error) {
210
- console.warn("[ScheduleParser] Failed to parse schedule create:", error);
211
- return null;
52
+ const manifestTopicId = getManifestTopicId(latestVersion);
53
+ const { manifest, sha256Hex } = await this.resolver.resolveManifest({
54
+ manifestTopicId
55
+ });
56
+ await this.resolver.verifyVersionRegisterMatchesManifest({
57
+ versionRegister: latestVersion,
58
+ manifestSha256Hex: sha256Hex
59
+ });
60
+ let verification;
61
+ const provider = this.verificationProvider;
62
+ const includeVerification = params.includeVerification === true;
63
+ const name = typeof discovery.metadata?.name === "string" ? discovery.metadata.name.trim() : "";
64
+ if (includeVerification && provider && name) {
65
+ try {
66
+ verification = await provider.getSkillVerificationStatus({ name });
67
+ } catch (error) {
68
+ const detail = error instanceof Error ? error.message : String(error);
69
+ this.logger.warn(
70
+ `Failed to resolve verification status for skill "${name}": ${detail}`
71
+ );
72
+ verification = null;
73
+ }
212
74
  }
75
+ return {
76
+ directoryTopicId: params.directoryTopicId,
77
+ skillUid: params.skillUid,
78
+ discovery,
79
+ versionRegistryTopicId,
80
+ latestVersion,
81
+ manifest,
82
+ manifestSha256Hex: sha256Hex,
83
+ ...includeVerification ? { verification } : {}
84
+ };
213
85
  }
214
- /**
215
- * Legacy method: Parse schedule sign transaction
216
- * @deprecated Use parseScheduleTransaction instead
217
- */
218
- static parseScheduleSign(transaction) {
219
- try {
220
- const result = this.parseScheduleTransaction(transaction);
221
- return result.scheduleSign || null;
222
- } catch (error) {
223
- console.warn("[ScheduleParser] Failed to parse schedule sign:", error);
224
- return null;
225
- }
86
+ async listSkillVersions(params) {
87
+ const discovery = await this.resolver.resolveDiscoveryRecord({
88
+ directoryTopicId: params.directoryTopicId,
89
+ skillUid: params.skillUid,
90
+ scanLimit: params.discoveryScanLimit
91
+ });
92
+ if (!discovery) {
93
+ return [];
94
+ }
95
+ const versionRegistryTopicId = discovery.t_id;
96
+ return this.resolver.listVersionRegisters({
97
+ versionRegistryTopicId,
98
+ skillUid: params.skillUid,
99
+ limit: params.limit
100
+ });
226
101
  }
227
- /**
228
- * Legacy method: Parse schedule delete transaction
229
- * @deprecated Use parseScheduleTransaction instead
230
- */
231
- static parseScheduleDelete(transaction) {
232
- try {
233
- const result = this.parseScheduleTransaction(transaction);
234
- return result.scheduleDelete || null;
235
- } catch (error) {
236
- console.warn("[ScheduleParser] Failed to parse schedule delete:", error);
102
+ async resolveSkillVersion(params) {
103
+ const versionRaw = params.version.trim();
104
+ if (!versionRaw) {
105
+ throw new Error("version is required");
106
+ }
107
+ const discovery = await this.resolver.resolveDiscoveryRecord({
108
+ directoryTopicId: params.directoryTopicId,
109
+ skillUid: params.skillUid,
110
+ scanLimit: params.discoveryScanLimit
111
+ });
112
+ if (!discovery) {
237
113
  return null;
238
114
  }
239
- }
240
- /**
241
- * Parse schedule info from transaction body (for scheduled transactions)
242
- */
243
- static extractScheduleInfo(transaction) {
244
- try {
245
- const transactionBody = transaction._transactionBody;
246
- if (transactionBody?.scheduleRef) {
247
- return {
248
- isScheduled: true,
249
- scheduleRef: transactionBody.scheduleRef.toString()
250
- };
251
- }
252
- const tx = transaction;
253
- if (tx._scheduleId || tx.scheduleId) {
254
- return {
255
- isScheduled: true,
256
- scheduleRef: (tx._scheduleId || tx.scheduleId)?.toString()
257
- };
258
- }
259
- return { isScheduled: false };
260
- } catch (error) {
261
- return { isScheduled: false };
115
+ const versionRegistryTopicId = discovery.t_id;
116
+ const entries = await this.resolver.listVersionRegisters({
117
+ versionRegistryTopicId,
118
+ skillUid: params.skillUid,
119
+ limit: 250
120
+ });
121
+ const target = entries.find((entry) => entry.version.trim() === versionRaw);
122
+ if (!target) {
123
+ return null;
262
124
  }
263
- }
264
- /**
265
- * Parse a scheduled transaction body to extract the inner transaction
266
- * This is used when a schedule contains another transaction to be executed
267
- */
268
- static parseScheduledTransactionBody(scheduledTxBytes) {
269
- try {
270
- let bytes;
271
- if (scheduledTxBytes.startsWith("0x")) {
272
- const hexString = scheduledTxBytes.slice(2);
273
- bytes = new Uint8Array(Buffer.from(hexString, "hex"));
274
- } else {
275
- bytes = new Uint8Array(Buffer.from(scheduledTxBytes, "base64"));
276
- }
277
- const schedulableBody = proto.SchedulableTransactionBody.decode(bytes);
278
- const txType = Object.keys(schedulableBody).find(
279
- (key) => schedulableBody[key] !== null && key !== "transactionFee" && key !== "memo"
280
- );
281
- if (txType) {
282
- return {
283
- type: txType.toUpperCase(),
284
- body: schedulableBody[txType],
285
- memo: schedulableBody.memo,
286
- transactionFee: schedulableBody.transactionFee?.toString()
287
- };
125
+ const manifestTopicId = getManifestTopicId(target);
126
+ const { manifest, sha256Hex } = await this.resolver.resolveManifest({
127
+ manifestTopicId
128
+ });
129
+ await this.resolver.verifyVersionRegisterMatchesManifest({
130
+ versionRegister: target,
131
+ manifestSha256Hex: sha256Hex
132
+ });
133
+ let verification;
134
+ const provider = this.verificationProvider;
135
+ const includeVerification = params.includeVerification === true;
136
+ const name = typeof discovery.metadata?.name === "string" ? discovery.metadata.name.trim() : "";
137
+ if (includeVerification && provider && name) {
138
+ try {
139
+ verification = await provider.getSkillVerificationStatus({ name });
140
+ } catch (error) {
141
+ const detail = error instanceof Error ? error.message : String(error);
142
+ this.logger.warn(
143
+ `Failed to resolve verification status for skill "${name}": ${detail}`
144
+ );
145
+ verification = null;
288
146
  }
289
- return null;
290
- } catch (error) {
291
- console.warn(
292
- "[ScheduleParser] Failed to parse scheduled transaction body:",
293
- error
294
- );
295
- return null;
296
147
  }
297
- }
298
- /**
299
- * Parse Schedule Service transaction from Transaction object
300
- * This is the unified entry point that delegates to the comprehensive parsing logic
301
- */
302
- static parseFromTransactionObject(transaction) {
303
- return this.parseScheduleTransaction(transaction);
148
+ return {
149
+ directoryTopicId: params.directoryTopicId,
150
+ skillUid: params.skillUid,
151
+ discovery,
152
+ versionRegistryTopicId,
153
+ versionEntry: target,
154
+ manifest,
155
+ manifestSha256Hex: sha256Hex,
156
+ ...includeVerification ? { verification } : {}
157
+ };
304
158
  }
305
159
  }
306
160
  export {
307
- ScheduleParser
161
+ HCS26BaseClient
308
162
  };
309
163
  //# sourceMappingURL=standards-sdk.es144.js.map