@hashgraphonline/standards-sdk 0.1.189 → 0.1.191

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 (576) hide show
  1. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -1
  2. package/dist/browser/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  3. package/dist/browser/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  4. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -1
  5. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -1
  6. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -1
  7. package/dist/browser/hcs-25/adapters/index.d.ts +1 -0
  8. package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -1
  9. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -1
  10. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  11. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -1
  12. package/dist/browser/hcs-25/collectors/acp.d.ts +42 -0
  13. package/dist/browser/hcs-25/collectors/acp.d.ts.map +1 -0
  14. package/dist/browser/hcs-25/collectors/agentverse.d.ts +37 -0
  15. package/dist/browser/hcs-25/collectors/agentverse.d.ts.map +1 -0
  16. package/dist/browser/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  17. package/dist/browser/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  18. package/dist/browser/hcs-25/collectors/availability.d.ts +29 -0
  19. package/dist/browser/hcs-25/collectors/availability.d.ts.map +1 -0
  20. package/dist/browser/hcs-25/collectors/catalog.d.ts +64 -0
  21. package/dist/browser/hcs-25/collectors/catalog.d.ts.map +1 -0
  22. package/dist/browser/hcs-25/collectors/connectivity.d.ts +49 -0
  23. package/dist/browser/hcs-25/collectors/connectivity.d.ts.map +1 -0
  24. package/dist/browser/hcs-25/collectors/endpoints.d.ts +9 -0
  25. package/dist/browser/hcs-25/collectors/endpoints.d.ts.map +1 -0
  26. package/dist/browser/hcs-25/collectors/erc8004.d.ts +104 -0
  27. package/dist/browser/hcs-25/collectors/erc8004.d.ts.map +1 -0
  28. package/dist/browser/hcs-25/collectors/ethos.d.ts +95 -0
  29. package/dist/browser/hcs-25/collectors/ethos.d.ts.map +1 -0
  30. package/dist/browser/hcs-25/collectors/freshness.d.ts +36 -0
  31. package/dist/browser/hcs-25/collectors/freshness.d.ts.map +1 -0
  32. package/dist/browser/hcs-25/collectors/http.d.ts +67 -0
  33. package/dist/browser/hcs-25/collectors/http.d.ts.map +1 -0
  34. package/dist/browser/hcs-25/collectors/index.d.ts +22 -0
  35. package/dist/browser/hcs-25/collectors/index.d.ts.map +1 -0
  36. package/dist/browser/hcs-25/collectors/merge.d.ts +11 -0
  37. package/dist/browser/hcs-25/collectors/merge.d.ts.map +1 -0
  38. package/dist/browser/hcs-25/collectors/model-evals.d.ts +315 -0
  39. package/dist/browser/hcs-25/collectors/model-evals.d.ts.map +1 -0
  40. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts +51 -0
  41. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  42. package/dist/browser/hcs-25/collectors/output-verification.d.ts +37 -0
  43. package/dist/browser/hcs-25/collectors/output-verification.d.ts.map +1 -0
  44. package/dist/browser/hcs-25/collectors/pipeline.d.ts +19 -0
  45. package/dist/browser/hcs-25/collectors/pipeline.d.ts.map +1 -0
  46. package/dist/browser/hcs-25/collectors/runner.d.ts +20 -0
  47. package/dist/browser/hcs-25/collectors/runner.d.ts.map +1 -0
  48. package/dist/browser/hcs-25/collectors/simple-evals.d.ts +91 -0
  49. package/dist/browser/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  50. package/dist/browser/hcs-25/collectors/types.d.ts +113 -0
  51. package/dist/browser/hcs-25/collectors/types.d.ts.map +1 -0
  52. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts +105 -0
  53. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  54. package/dist/browser/hcs-25/collectors/x402.d.ts +48 -0
  55. package/dist/browser/hcs-25/collectors/x402.d.ts.map +1 -0
  56. package/dist/browser/hcs-25/index.d.ts +1 -0
  57. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  58. package/dist/browser/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  59. package/dist/browser/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  60. package/dist/browser/hcs-25/signals/index.d.ts +1 -0
  61. package/dist/browser/hcs-25/signals/index.d.ts.map +1 -1
  62. package/dist/browser/hcs-25/signals/marketplace.d.ts +6 -6
  63. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -1
  64. package/dist/browser/hcs-25/signals/model-evals.d.ts +12 -12
  65. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -1
  66. package/dist/browser/hcs-25/signals/operational.d.ts +15 -12
  67. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -1
  68. package/dist/browser/hcs-25/signals/simple-evals.d.ts +1 -1
  69. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -1
  70. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -1
  71. package/dist/browser-root/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  72. package/dist/browser-root/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  73. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -1
  74. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -1
  75. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -1
  76. package/dist/browser-root/hcs-25/adapters/index.d.ts +1 -0
  77. package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -1
  78. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -1
  79. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  80. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -1
  81. package/dist/browser-root/hcs-25/collectors/acp.d.ts +42 -0
  82. package/dist/browser-root/hcs-25/collectors/acp.d.ts.map +1 -0
  83. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts +37 -0
  84. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts.map +1 -0
  85. package/dist/browser-root/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  86. package/dist/browser-root/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  87. package/dist/browser-root/hcs-25/collectors/availability.d.ts +29 -0
  88. package/dist/browser-root/hcs-25/collectors/availability.d.ts.map +1 -0
  89. package/dist/browser-root/hcs-25/collectors/catalog.d.ts +64 -0
  90. package/dist/browser-root/hcs-25/collectors/catalog.d.ts.map +1 -0
  91. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts +49 -0
  92. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts.map +1 -0
  93. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts +9 -0
  94. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts.map +1 -0
  95. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts +104 -0
  96. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts.map +1 -0
  97. package/dist/browser-root/hcs-25/collectors/ethos.d.ts +95 -0
  98. package/dist/browser-root/hcs-25/collectors/ethos.d.ts.map +1 -0
  99. package/dist/browser-root/hcs-25/collectors/freshness.d.ts +36 -0
  100. package/dist/browser-root/hcs-25/collectors/freshness.d.ts.map +1 -0
  101. package/dist/browser-root/hcs-25/collectors/http.d.ts +67 -0
  102. package/dist/browser-root/hcs-25/collectors/http.d.ts.map +1 -0
  103. package/dist/browser-root/hcs-25/collectors/index.d.ts +22 -0
  104. package/dist/browser-root/hcs-25/collectors/index.d.ts.map +1 -0
  105. package/dist/browser-root/hcs-25/collectors/merge.d.ts +11 -0
  106. package/dist/browser-root/hcs-25/collectors/merge.d.ts.map +1 -0
  107. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts +315 -0
  108. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts.map +1 -0
  109. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts +51 -0
  110. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  111. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts +37 -0
  112. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts.map +1 -0
  113. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts +19 -0
  114. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts.map +1 -0
  115. package/dist/browser-root/hcs-25/collectors/runner.d.ts +20 -0
  116. package/dist/browser-root/hcs-25/collectors/runner.d.ts.map +1 -0
  117. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts +91 -0
  118. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  119. package/dist/browser-root/hcs-25/collectors/types.d.ts +113 -0
  120. package/dist/browser-root/hcs-25/collectors/types.d.ts.map +1 -0
  121. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts +105 -0
  122. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  123. package/dist/browser-root/hcs-25/collectors/x402.d.ts +48 -0
  124. package/dist/browser-root/hcs-25/collectors/x402.d.ts.map +1 -0
  125. package/dist/browser-root/hcs-25/index.d.ts +1 -0
  126. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  127. package/dist/browser-root/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  128. package/dist/browser-root/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  129. package/dist/browser-root/hcs-25/signals/index.d.ts +1 -0
  130. package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -1
  131. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +6 -6
  132. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -1
  133. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +12 -12
  134. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -1
  135. package/dist/browser-root/hcs-25/signals/operational.d.ts +15 -12
  136. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -1
  137. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +1 -1
  138. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -1
  139. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -1
  140. package/dist/cjs/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  141. package/dist/cjs/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  142. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -1
  143. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -1
  144. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -1
  145. package/dist/cjs/hcs-25/adapters/index.d.ts +1 -0
  146. package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -1
  147. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -1
  148. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  149. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -1
  150. package/dist/cjs/hcs-25/collectors/acp.d.ts +42 -0
  151. package/dist/cjs/hcs-25/collectors/acp.d.ts.map +1 -0
  152. package/dist/cjs/hcs-25/collectors/agentverse.d.ts +37 -0
  153. package/dist/cjs/hcs-25/collectors/agentverse.d.ts.map +1 -0
  154. package/dist/cjs/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  155. package/dist/cjs/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  156. package/dist/cjs/hcs-25/collectors/availability.d.ts +29 -0
  157. package/dist/cjs/hcs-25/collectors/availability.d.ts.map +1 -0
  158. package/dist/cjs/hcs-25/collectors/catalog.d.ts +64 -0
  159. package/dist/cjs/hcs-25/collectors/catalog.d.ts.map +1 -0
  160. package/dist/cjs/hcs-25/collectors/connectivity.d.ts +49 -0
  161. package/dist/cjs/hcs-25/collectors/connectivity.d.ts.map +1 -0
  162. package/dist/cjs/hcs-25/collectors/endpoints.d.ts +9 -0
  163. package/dist/cjs/hcs-25/collectors/endpoints.d.ts.map +1 -0
  164. package/dist/cjs/hcs-25/collectors/erc8004.d.ts +104 -0
  165. package/dist/cjs/hcs-25/collectors/erc8004.d.ts.map +1 -0
  166. package/dist/cjs/hcs-25/collectors/ethos.d.ts +95 -0
  167. package/dist/cjs/hcs-25/collectors/ethos.d.ts.map +1 -0
  168. package/dist/cjs/hcs-25/collectors/freshness.d.ts +36 -0
  169. package/dist/cjs/hcs-25/collectors/freshness.d.ts.map +1 -0
  170. package/dist/cjs/hcs-25/collectors/http.d.ts +67 -0
  171. package/dist/cjs/hcs-25/collectors/http.d.ts.map +1 -0
  172. package/dist/cjs/hcs-25/collectors/index.d.ts +22 -0
  173. package/dist/cjs/hcs-25/collectors/index.d.ts.map +1 -0
  174. package/dist/cjs/hcs-25/collectors/merge.d.ts +11 -0
  175. package/dist/cjs/hcs-25/collectors/merge.d.ts.map +1 -0
  176. package/dist/cjs/hcs-25/collectors/model-evals.d.ts +315 -0
  177. package/dist/cjs/hcs-25/collectors/model-evals.d.ts.map +1 -0
  178. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts +51 -0
  179. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  180. package/dist/cjs/hcs-25/collectors/output-verification.d.ts +37 -0
  181. package/dist/cjs/hcs-25/collectors/output-verification.d.ts.map +1 -0
  182. package/dist/cjs/hcs-25/collectors/pipeline.d.ts +19 -0
  183. package/dist/cjs/hcs-25/collectors/pipeline.d.ts.map +1 -0
  184. package/dist/cjs/hcs-25/collectors/runner.d.ts +20 -0
  185. package/dist/cjs/hcs-25/collectors/runner.d.ts.map +1 -0
  186. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts +91 -0
  187. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  188. package/dist/cjs/hcs-25/collectors/types.d.ts +113 -0
  189. package/dist/cjs/hcs-25/collectors/types.d.ts.map +1 -0
  190. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts +105 -0
  191. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  192. package/dist/cjs/hcs-25/collectors/x402.d.ts +48 -0
  193. package/dist/cjs/hcs-25/collectors/x402.d.ts.map +1 -0
  194. package/dist/cjs/hcs-25/index.d.ts +1 -0
  195. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  196. package/dist/cjs/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  197. package/dist/cjs/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  198. package/dist/cjs/hcs-25/signals/index.d.ts +1 -0
  199. package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -1
  200. package/dist/cjs/hcs-25/signals/marketplace.d.ts +6 -6
  201. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -1
  202. package/dist/cjs/hcs-25/signals/model-evals.d.ts +12 -12
  203. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -1
  204. package/dist/cjs/hcs-25/signals/operational.d.ts +15 -12
  205. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -1
  206. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +1 -1
  207. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -1
  208. package/dist/cjs/standards-sdk.cjs +2 -2
  209. package/dist/cjs/standards-sdk.cjs.map +1 -1
  210. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -1
  211. package/dist/es/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  212. package/dist/es/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  213. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -1
  214. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -1
  215. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -1
  216. package/dist/es/hcs-25/adapters/index.d.ts +1 -0
  217. package/dist/es/hcs-25/adapters/index.d.ts.map +1 -1
  218. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -1
  219. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  220. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -1
  221. package/dist/es/hcs-25/collectors/acp.d.ts +42 -0
  222. package/dist/es/hcs-25/collectors/acp.d.ts.map +1 -0
  223. package/dist/es/hcs-25/collectors/agentverse.d.ts +37 -0
  224. package/dist/es/hcs-25/collectors/agentverse.d.ts.map +1 -0
  225. package/dist/es/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  226. package/dist/es/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  227. package/dist/es/hcs-25/collectors/availability.d.ts +29 -0
  228. package/dist/es/hcs-25/collectors/availability.d.ts.map +1 -0
  229. package/dist/es/hcs-25/collectors/catalog.d.ts +64 -0
  230. package/dist/es/hcs-25/collectors/catalog.d.ts.map +1 -0
  231. package/dist/es/hcs-25/collectors/connectivity.d.ts +49 -0
  232. package/dist/es/hcs-25/collectors/connectivity.d.ts.map +1 -0
  233. package/dist/es/hcs-25/collectors/endpoints.d.ts +9 -0
  234. package/dist/es/hcs-25/collectors/endpoints.d.ts.map +1 -0
  235. package/dist/es/hcs-25/collectors/erc8004.d.ts +104 -0
  236. package/dist/es/hcs-25/collectors/erc8004.d.ts.map +1 -0
  237. package/dist/es/hcs-25/collectors/ethos.d.ts +95 -0
  238. package/dist/es/hcs-25/collectors/ethos.d.ts.map +1 -0
  239. package/dist/es/hcs-25/collectors/freshness.d.ts +36 -0
  240. package/dist/es/hcs-25/collectors/freshness.d.ts.map +1 -0
  241. package/dist/es/hcs-25/collectors/http.d.ts +67 -0
  242. package/dist/es/hcs-25/collectors/http.d.ts.map +1 -0
  243. package/dist/es/hcs-25/collectors/index.d.ts +22 -0
  244. package/dist/es/hcs-25/collectors/index.d.ts.map +1 -0
  245. package/dist/es/hcs-25/collectors/merge.d.ts +11 -0
  246. package/dist/es/hcs-25/collectors/merge.d.ts.map +1 -0
  247. package/dist/es/hcs-25/collectors/model-evals.d.ts +315 -0
  248. package/dist/es/hcs-25/collectors/model-evals.d.ts.map +1 -0
  249. package/dist/es/hcs-25/collectors/oss-popularity.d.ts +51 -0
  250. package/dist/es/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  251. package/dist/es/hcs-25/collectors/output-verification.d.ts +37 -0
  252. package/dist/es/hcs-25/collectors/output-verification.d.ts.map +1 -0
  253. package/dist/es/hcs-25/collectors/pipeline.d.ts +19 -0
  254. package/dist/es/hcs-25/collectors/pipeline.d.ts.map +1 -0
  255. package/dist/es/hcs-25/collectors/runner.d.ts +20 -0
  256. package/dist/es/hcs-25/collectors/runner.d.ts.map +1 -0
  257. package/dist/es/hcs-25/collectors/simple-evals.d.ts +91 -0
  258. package/dist/es/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  259. package/dist/es/hcs-25/collectors/types.d.ts +113 -0
  260. package/dist/es/hcs-25/collectors/types.d.ts.map +1 -0
  261. package/dist/es/hcs-25/collectors/x402-onchain.d.ts +105 -0
  262. package/dist/es/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  263. package/dist/es/hcs-25/collectors/x402.d.ts +48 -0
  264. package/dist/es/hcs-25/collectors/x402.d.ts.map +1 -0
  265. package/dist/es/hcs-25/index.d.ts +1 -0
  266. package/dist/es/hcs-25/index.d.ts.map +1 -1
  267. package/dist/es/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  268. package/dist/es/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  269. package/dist/es/hcs-25/signals/index.d.ts +1 -0
  270. package/dist/es/hcs-25/signals/index.d.ts.map +1 -1
  271. package/dist/es/hcs-25/signals/marketplace.d.ts +6 -6
  272. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -1
  273. package/dist/es/hcs-25/signals/model-evals.d.ts +12 -12
  274. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -1
  275. package/dist/es/hcs-25/signals/operational.d.ts +15 -12
  276. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -1
  277. package/dist/es/hcs-25/signals/simple-evals.d.ts +1 -1
  278. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -1
  279. package/dist/es/standards-sdk.es.js +144 -58
  280. package/dist/es/standards-sdk.es.js.map +1 -1
  281. package/dist/es/standards-sdk.es101.js +2 -2
  282. package/dist/es/standards-sdk.es103.js +2 -2
  283. package/dist/es/standards-sdk.es104.js +1 -1
  284. package/dist/es/standards-sdk.es106.js +1 -1
  285. package/dist/es/standards-sdk.es108.js +2 -2
  286. package/dist/es/standards-sdk.es11.js +1 -1
  287. package/dist/es/standards-sdk.es110.js +1 -1
  288. package/dist/es/standards-sdk.es111.js +2 -2
  289. package/dist/es/standards-sdk.es115.js +3 -3
  290. package/dist/es/standards-sdk.es116.js +4 -4
  291. package/dist/es/standards-sdk.es12.js +1 -1
  292. package/dist/es/standards-sdk.es120.js +22 -4
  293. package/dist/es/standards-sdk.es120.js.map +1 -1
  294. package/dist/es/standards-sdk.es121.js +15 -12
  295. package/dist/es/standards-sdk.es121.js.map +1 -1
  296. package/dist/es/standards-sdk.es122.js +176 -240
  297. package/dist/es/standards-sdk.es122.js.map +1 -1
  298. package/dist/es/standards-sdk.es123.js +42 -468
  299. package/dist/es/standards-sdk.es123.js.map +1 -1
  300. package/dist/es/standards-sdk.es124.js +29 -103
  301. package/dist/es/standards-sdk.es124.js.map +1 -1
  302. package/dist/es/standards-sdk.es125.js +185 -145
  303. package/dist/es/standards-sdk.es125.js.map +1 -1
  304. package/dist/es/standards-sdk.es126.js +13 -33
  305. package/dist/es/standards-sdk.es126.js.map +1 -1
  306. package/dist/es/standards-sdk.es127.js +45 -10
  307. package/dist/es/standards-sdk.es127.js.map +1 -1
  308. package/dist/es/standards-sdk.es128.js +120 -168
  309. package/dist/es/standards-sdk.es128.js.map +1 -1
  310. package/dist/es/standards-sdk.es129.js +158 -26
  311. package/dist/es/standards-sdk.es129.js.map +1 -1
  312. package/dist/es/standards-sdk.es13.js +1 -1
  313. package/dist/es/standards-sdk.es130.js +166 -19
  314. package/dist/es/standards-sdk.es130.js.map +1 -1
  315. package/dist/es/standards-sdk.es131.js +360 -140
  316. package/dist/es/standards-sdk.es131.js.map +1 -1
  317. package/dist/es/standards-sdk.es132.js +371 -180
  318. package/dist/es/standards-sdk.es132.js.map +1 -1
  319. package/dist/es/standards-sdk.es133.js +210 -766
  320. package/dist/es/standards-sdk.es133.js.map +1 -1
  321. package/dist/es/standards-sdk.es134.js +229 -11
  322. package/dist/es/standards-sdk.es134.js.map +1 -1
  323. package/dist/es/standards-sdk.es135.js +368 -556
  324. package/dist/es/standards-sdk.es135.js.map +1 -1
  325. package/dist/es/standards-sdk.es136.js +108 -612
  326. package/dist/es/standards-sdk.es136.js.map +1 -1
  327. package/dist/es/standards-sdk.es137.js +251 -12
  328. package/dist/es/standards-sdk.es137.js.map +1 -1
  329. package/dist/es/standards-sdk.es138.js +1330 -2
  330. package/dist/es/standards-sdk.es138.js.map +1 -1
  331. package/dist/es/standards-sdk.es139.js +126 -79
  332. package/dist/es/standards-sdk.es139.js.map +1 -1
  333. package/dist/es/standards-sdk.es14.js +1 -1
  334. package/dist/es/standards-sdk.es140.js +264 -32
  335. package/dist/es/standards-sdk.es140.js.map +1 -1
  336. package/dist/es/standards-sdk.es141.js +111 -2
  337. package/dist/es/standards-sdk.es141.js.map +1 -1
  338. package/dist/es/standards-sdk.es142.js +244 -227
  339. package/dist/es/standards-sdk.es142.js.map +1 -1
  340. package/dist/es/standards-sdk.es143.js +436 -1098
  341. package/dist/es/standards-sdk.es143.js.map +1 -1
  342. package/dist/es/standards-sdk.es144.js +92 -293
  343. package/dist/es/standards-sdk.es144.js.map +1 -1
  344. package/dist/es/standards-sdk.es145.js +157 -419
  345. package/dist/es/standards-sdk.es145.js.map +1 -1
  346. package/dist/es/standards-sdk.es146.js +30 -351
  347. package/dist/es/standards-sdk.es146.js.map +1 -1
  348. package/dist/es/standards-sdk.es147.js +9 -1119
  349. package/dist/es/standards-sdk.es147.js.map +1 -1
  350. package/dist/es/standards-sdk.es148.js +160 -186
  351. package/dist/es/standards-sdk.es148.js.map +1 -1
  352. package/dist/es/standards-sdk.es149.js +27 -1565
  353. package/dist/es/standards-sdk.es149.js.map +1 -1
  354. package/dist/es/standards-sdk.es15.js +1 -1
  355. package/dist/es/standards-sdk.es150.js +16 -1160
  356. package/dist/es/standards-sdk.es150.js.map +1 -1
  357. package/dist/es/standards-sdk.es151.js +157 -14
  358. package/dist/es/standards-sdk.es151.js.map +1 -1
  359. package/dist/es/standards-sdk.es152.js +191 -440
  360. package/dist/es/standards-sdk.es152.js.map +1 -1
  361. package/dist/es/standards-sdk.es153.js +764 -233
  362. package/dist/es/standards-sdk.es153.js.map +1 -1
  363. package/dist/es/standards-sdk.es154.js +13 -4
  364. package/dist/es/standards-sdk.es154.js.map +1 -1
  365. package/dist/es/standards-sdk.es155.js +567 -81
  366. package/dist/es/standards-sdk.es155.js.map +1 -1
  367. package/dist/es/standards-sdk.es156.js +617 -78
  368. package/dist/es/standards-sdk.es156.js.map +1 -1
  369. package/dist/es/standards-sdk.es157.js +13 -60
  370. package/dist/es/standards-sdk.es157.js.map +1 -1
  371. package/dist/es/standards-sdk.es158.js +2 -2547
  372. package/dist/es/standards-sdk.es158.js.map +1 -1
  373. package/dist/es/standards-sdk.es159.js +73 -145
  374. package/dist/es/standards-sdk.es159.js.map +1 -1
  375. package/dist/es/standards-sdk.es16.js +6 -6
  376. package/dist/es/standards-sdk.es160.js +40 -7
  377. package/dist/es/standards-sdk.es160.js.map +1 -1
  378. package/dist/es/standards-sdk.es161.js +2 -86
  379. package/dist/es/standards-sdk.es161.js.map +1 -1
  380. package/dist/es/standards-sdk.es162.js +225 -55
  381. package/dist/es/standards-sdk.es162.js.map +1 -1
  382. package/dist/es/standards-sdk.es163.js +1137 -191
  383. package/dist/es/standards-sdk.es163.js.map +1 -1
  384. package/dist/es/standards-sdk.es164.js +303 -23
  385. package/dist/es/standards-sdk.es164.js.map +1 -1
  386. package/dist/es/standards-sdk.es165.js +419 -55
  387. package/dist/es/standards-sdk.es165.js.map +1 -1
  388. package/dist/es/standards-sdk.es166.js +351 -91
  389. package/dist/es/standards-sdk.es166.js.map +1 -1
  390. package/dist/es/standards-sdk.es167.js +1113 -40
  391. package/dist/es/standards-sdk.es167.js.map +1 -1
  392. package/dist/es/standards-sdk.es168.js +200 -196
  393. package/dist/es/standards-sdk.es168.js.map +1 -1
  394. package/dist/es/standards-sdk.es169.js +1561 -50
  395. package/dist/es/standards-sdk.es169.js.map +1 -1
  396. package/dist/es/standards-sdk.es170.js +1161 -44
  397. package/dist/es/standards-sdk.es170.js.map +1 -1
  398. package/dist/es/standards-sdk.es171.js +14 -53
  399. package/dist/es/standards-sdk.es171.js.map +1 -1
  400. package/dist/es/standards-sdk.es172.js +443 -41
  401. package/dist/es/standards-sdk.es172.js.map +1 -1
  402. package/dist/es/standards-sdk.es173.js +242 -105
  403. package/dist/es/standards-sdk.es173.js.map +1 -1
  404. package/dist/es/standards-sdk.es174.js +4 -54
  405. package/dist/es/standards-sdk.es174.js.map +1 -1
  406. package/dist/es/standards-sdk.es175.js +79 -42
  407. package/dist/es/standards-sdk.es175.js.map +1 -1
  408. package/dist/es/standards-sdk.es176.js +87 -72
  409. package/dist/es/standards-sdk.es176.js.map +1 -1
  410. package/dist/es/standards-sdk.es177.js +60 -68
  411. package/dist/es/standards-sdk.es177.js.map +1 -1
  412. package/dist/es/standards-sdk.es178.js +2545 -42
  413. package/dist/es/standards-sdk.es178.js.map +1 -1
  414. package/dist/es/standards-sdk.es179.js +157 -34
  415. package/dist/es/standards-sdk.es179.js.map +1 -1
  416. package/dist/es/standards-sdk.es18.js +13 -13
  417. package/dist/es/standards-sdk.es180.js +7 -30
  418. package/dist/es/standards-sdk.es180.js.map +1 -1
  419. package/dist/es/standards-sdk.es181.js +86 -34
  420. package/dist/es/standards-sdk.es181.js.map +1 -1
  421. package/dist/es/standards-sdk.es182.js +65 -48
  422. package/dist/es/standards-sdk.es182.js.map +1 -1
  423. package/dist/es/standards-sdk.es183.js +27 -138
  424. package/dist/es/standards-sdk.es183.js.map +1 -1
  425. package/dist/es/standards-sdk.es184.js +191 -37
  426. package/dist/es/standards-sdk.es184.js.map +1 -1
  427. package/dist/es/standards-sdk.es185.js +17 -12473
  428. package/dist/es/standards-sdk.es185.js.map +1 -1
  429. package/dist/es/standards-sdk.es186.js +56 -53
  430. package/dist/es/standards-sdk.es186.js.map +1 -1
  431. package/dist/es/standards-sdk.es187.js +104 -100
  432. package/dist/es/standards-sdk.es187.js.map +1 -1
  433. package/dist/es/standards-sdk.es188.js +43 -75
  434. package/dist/es/standards-sdk.es188.js.map +1 -1
  435. package/dist/es/standards-sdk.es189.js +55 -197
  436. package/dist/es/standards-sdk.es189.js.map +1 -1
  437. package/dist/es/standards-sdk.es19.js +10 -10
  438. package/dist/es/standards-sdk.es190.js +229 -669
  439. package/dist/es/standards-sdk.es190.js.map +1 -1
  440. package/dist/es/standards-sdk.es191.js +67 -166
  441. package/dist/es/standards-sdk.es191.js.map +1 -1
  442. package/dist/es/standards-sdk.es192.js +45 -317
  443. package/dist/es/standards-sdk.es192.js.map +1 -1
  444. package/dist/es/standards-sdk.es193.js +59 -342
  445. package/dist/es/standards-sdk.es193.js.map +1 -1
  446. package/dist/es/standards-sdk.es194.js +45 -448
  447. package/dist/es/standards-sdk.es194.js.map +1 -1
  448. package/dist/es/standards-sdk.es195.js +117 -325
  449. package/dist/es/standards-sdk.es195.js.map +1 -1
  450. package/dist/es/standards-sdk.es196.js +51 -69
  451. package/dist/es/standards-sdk.es196.js.map +1 -1
  452. package/dist/es/standards-sdk.es197.js +54 -67
  453. package/dist/es/standards-sdk.es197.js.map +1 -1
  454. package/dist/es/standards-sdk.es198.js +72 -17
  455. package/dist/es/standards-sdk.es198.js.map +1 -1
  456. package/dist/es/standards-sdk.es199.js +75 -139
  457. package/dist/es/standards-sdk.es199.js.map +1 -1
  458. package/dist/es/standards-sdk.es2.js +2 -2
  459. package/dist/es/standards-sdk.es20.js +1 -1
  460. package/dist/es/standards-sdk.es200.js +44 -517
  461. package/dist/es/standards-sdk.es200.js.map +1 -1
  462. package/dist/es/standards-sdk.es201.js +33 -256
  463. package/dist/es/standards-sdk.es201.js.map +1 -1
  464. package/dist/es/standards-sdk.es202.js +30 -196
  465. package/dist/es/standards-sdk.es202.js.map +1 -1
  466. package/dist/es/standards-sdk.es203.js +34 -119
  467. package/dist/es/standards-sdk.es203.js.map +1 -1
  468. package/dist/es/standards-sdk.es204.js +48 -152
  469. package/dist/es/standards-sdk.es204.js.map +1 -1
  470. package/dist/es/standards-sdk.es205.js +126 -172
  471. package/dist/es/standards-sdk.es205.js.map +1 -1
  472. package/dist/es/standards-sdk.es206.js +34 -676
  473. package/dist/es/standards-sdk.es206.js.map +1 -1
  474. package/dist/es/standards-sdk.es207.js +12453 -156
  475. package/dist/es/standards-sdk.es207.js.map +1 -1
  476. package/dist/es/standards-sdk.es208.js +14 -232
  477. package/dist/es/standards-sdk.es208.js.map +1 -1
  478. package/dist/es/standards-sdk.es209.js +49 -232
  479. package/dist/es/standards-sdk.es209.js.map +1 -1
  480. package/dist/es/standards-sdk.es21.js +1 -1
  481. package/dist/es/standards-sdk.es210.js +114 -0
  482. package/dist/es/standards-sdk.es210.js.map +1 -0
  483. package/dist/es/standards-sdk.es211.js +84 -0
  484. package/dist/es/standards-sdk.es211.js.map +1 -0
  485. package/dist/es/standards-sdk.es212.js +203 -0
  486. package/dist/es/standards-sdk.es212.js.map +1 -0
  487. package/dist/es/standards-sdk.es213.js +76 -0
  488. package/dist/es/standards-sdk.es213.js.map +1 -0
  489. package/dist/es/standards-sdk.es214.js +675 -0
  490. package/dist/es/standards-sdk.es214.js.map +1 -0
  491. package/dist/es/standards-sdk.es215.js +175 -0
  492. package/dist/es/standards-sdk.es215.js.map +1 -0
  493. package/dist/es/standards-sdk.es216.js +325 -0
  494. package/dist/es/standards-sdk.es216.js.map +1 -0
  495. package/dist/es/standards-sdk.es217.js +349 -0
  496. package/dist/es/standards-sdk.es217.js.map +1 -0
  497. package/dist/es/standards-sdk.es218.js +456 -0
  498. package/dist/es/standards-sdk.es218.js.map +1 -0
  499. package/dist/es/standards-sdk.es219.js +334 -0
  500. package/dist/es/standards-sdk.es219.js.map +1 -0
  501. package/dist/es/standards-sdk.es22.js +1 -1
  502. package/dist/es/standards-sdk.es220.js +79 -0
  503. package/dist/es/standards-sdk.es220.js.map +1 -0
  504. package/dist/es/standards-sdk.es221.js +142 -0
  505. package/dist/es/standards-sdk.es221.js.map +1 -0
  506. package/dist/es/standards-sdk.es222.js +520 -0
  507. package/dist/es/standards-sdk.es222.js.map +1 -0
  508. package/dist/es/standards-sdk.es223.js +262 -0
  509. package/dist/es/standards-sdk.es223.js.map +1 -0
  510. package/dist/es/standards-sdk.es224.js +199 -0
  511. package/dist/es/standards-sdk.es224.js.map +1 -0
  512. package/dist/es/standards-sdk.es225.js +122 -0
  513. package/dist/es/standards-sdk.es225.js.map +1 -0
  514. package/dist/es/standards-sdk.es226.js +155 -0
  515. package/dist/es/standards-sdk.es226.js.map +1 -0
  516. package/dist/es/standards-sdk.es227.js +187 -0
  517. package/dist/es/standards-sdk.es227.js.map +1 -0
  518. package/dist/es/standards-sdk.es228.js +687 -0
  519. package/dist/es/standards-sdk.es228.js.map +1 -0
  520. package/dist/es/standards-sdk.es229.js +188 -0
  521. package/dist/es/standards-sdk.es229.js.map +1 -0
  522. package/dist/es/standards-sdk.es23.js +1 -1
  523. package/dist/es/standards-sdk.es230.js +238 -0
  524. package/dist/es/standards-sdk.es230.js.map +1 -0
  525. package/dist/es/standards-sdk.es231.js +242 -0
  526. package/dist/es/standards-sdk.es231.js.map +1 -0
  527. package/dist/es/standards-sdk.es24.js +1 -1
  528. package/dist/es/standards-sdk.es25.js +1 -1
  529. package/dist/es/standards-sdk.es26.js +1 -1
  530. package/dist/es/standards-sdk.es27.js +13 -13
  531. package/dist/es/standards-sdk.es30.js +2 -2
  532. package/dist/es/standards-sdk.es31.js +4 -4
  533. package/dist/es/standards-sdk.es32.js +1 -1
  534. package/dist/es/standards-sdk.es35.js +7 -7
  535. package/dist/es/standards-sdk.es36.js +4 -4
  536. package/dist/es/standards-sdk.es37.js +2 -2
  537. package/dist/es/standards-sdk.es38.js +2 -2
  538. package/dist/es/standards-sdk.es39.js +1 -1
  539. package/dist/es/standards-sdk.es4.js +2 -2
  540. package/dist/es/standards-sdk.es40.js +1 -1
  541. package/dist/es/standards-sdk.es41.js +2 -2
  542. package/dist/es/standards-sdk.es46.js +1 -1
  543. package/dist/es/standards-sdk.es5.js +2 -2
  544. package/dist/es/standards-sdk.es51.js +1 -1
  545. package/dist/es/standards-sdk.es53.js +1 -1
  546. package/dist/es/standards-sdk.es56.js +2 -2
  547. package/dist/es/standards-sdk.es59.js +1 -1
  548. package/dist/es/standards-sdk.es6.js +2 -2
  549. package/dist/es/standards-sdk.es60.js +1 -1
  550. package/dist/es/standards-sdk.es62.js +1 -1
  551. package/dist/es/standards-sdk.es63.js +2 -2
  552. package/dist/es/standards-sdk.es64.js +1 -1
  553. package/dist/es/standards-sdk.es65.js +1 -1
  554. package/dist/es/standards-sdk.es66.js +1 -1
  555. package/dist/es/standards-sdk.es67.js +8 -8
  556. package/dist/es/standards-sdk.es69.js +1 -1
  557. package/dist/es/standards-sdk.es7.js +1 -1
  558. package/dist/es/standards-sdk.es71.js +2 -2
  559. package/dist/es/standards-sdk.es72.js +3 -3
  560. package/dist/es/standards-sdk.es75.js +5 -5
  561. package/dist/es/standards-sdk.es76.js +3 -3
  562. package/dist/es/standards-sdk.es77.js +2 -2
  563. package/dist/es/standards-sdk.es78.js +1 -1
  564. package/dist/es/standards-sdk.es81.js +2 -2
  565. package/dist/es/standards-sdk.es83.js +2 -2
  566. package/dist/es/standards-sdk.es84.js +5 -5
  567. package/dist/es/standards-sdk.es85.js +1 -1
  568. package/dist/es/standards-sdk.es88.js +1 -1
  569. package/dist/es/standards-sdk.es89.js +2 -2
  570. package/dist/es/standards-sdk.es9.js +2 -2
  571. package/dist/es/standards-sdk.es90.js +4 -4
  572. package/dist/es/standards-sdk.es94.js +3 -3
  573. package/dist/es/standards-sdk.es96.js +2 -2
  574. package/dist/es/standards-sdk.es98.js +1 -1
  575. package/dist/es/standards-sdk.es99.js +3 -3
  576. package/package.json +1 -1
@@ -1,1143 +1,481 @@
1
- import { proto } from "@hashgraph/proto";
2
- import { AccountId, Long, TokenId } from "@hashgraph/sdk";
3
- import { parseKey, hasTransactionType, extractTransactionBody } from "./standards-sdk.es196.js";
4
- import { Buffer } from "buffer";
5
- class HTSParser {
6
- /**
7
- * Main entry point for parsing HTS transactions from a Transaction object
8
- * This method bridges between the Transaction object and the protobuf parsers
9
- */
10
- static parseHTSTransaction(transaction) {
11
- try {
12
- const transactionBody = transaction._transactionBody;
13
- if (!transactionBody) {
14
- return {};
15
- }
16
- if (transactionBody.tokenCreation) {
17
- const tokenCreation = this.parseTokenCreate(
18
- transactionBody.tokenCreation
19
- );
20
- if (tokenCreation) {
21
- return {
22
- type: "TOKENCREATE",
23
- humanReadableType: "Token Creation",
24
- tokenCreation
25
- };
26
- }
27
- }
28
- if (transactionBody.tokenMint) {
29
- const tokenMint = this.parseTokenMint(transactionBody.tokenMint);
30
- if (tokenMint) {
31
- return {
32
- type: "TOKENMINT",
33
- humanReadableType: "Token Mint",
34
- tokenMint
35
- };
36
- }
37
- }
38
- if (transactionBody.tokenBurn) {
39
- const tokenBurn = this.parseTokenBurn(transactionBody.tokenBurn);
40
- if (tokenBurn) {
41
- return {
42
- type: "TOKENBURN",
43
- humanReadableType: "Token Burn",
44
- tokenBurn
45
- };
46
- }
47
- }
48
- if (transactionBody.tokenUpdate) {
49
- const tokenUpdate = this.parseTokenUpdate(transactionBody.tokenUpdate);
50
- if (tokenUpdate) {
51
- return {
52
- type: "TOKENUPDATE",
53
- humanReadableType: "Token Update",
54
- tokenUpdate
55
- };
56
- }
57
- }
58
- if (transactionBody.tokenFreeze) {
59
- const tokenFreeze = this.parseTokenFreeze(transactionBody.tokenFreeze);
60
- if (tokenFreeze) {
61
- return {
62
- type: "TOKENFREEZE",
63
- humanReadableType: "Token Freeze",
64
- tokenFreeze
65
- };
66
- }
67
- }
68
- if (transactionBody.tokenUnfreeze) {
69
- const tokenUnfreeze = this.parseTokenUnfreeze(
70
- transactionBody.tokenUnfreeze
71
- );
72
- if (tokenUnfreeze) {
73
- return {
74
- type: "TOKENUNFREEZE",
75
- humanReadableType: "Token Unfreeze",
76
- tokenUnfreeze
77
- };
78
- }
79
- }
80
- if (transactionBody.tokenGrantKyc) {
81
- const tokenGrantKyc = this.parseTokenGrantKyc(
82
- transactionBody.tokenGrantKyc
83
- );
84
- if (tokenGrantKyc) {
85
- return {
86
- type: "TOKENGRANTKYC",
87
- humanReadableType: "Token Grant KYC",
88
- tokenGrantKyc
89
- };
90
- }
91
- }
92
- if (transactionBody.tokenRevokeKyc) {
93
- const tokenRevokeKyc = this.parseTokenRevokeKyc(
94
- transactionBody.tokenRevokeKyc
95
- );
96
- if (tokenRevokeKyc) {
97
- return {
98
- type: "TOKENREVOKEKYC",
99
- humanReadableType: "Token Revoke KYC",
100
- tokenRevokeKyc
101
- };
102
- }
103
- }
104
- if (transactionBody.tokenPause) {
105
- const tokenPause = this.parseTokenPause(transactionBody.tokenPause);
106
- if (tokenPause) {
107
- return {
108
- type: "TOKENPAUSE",
109
- humanReadableType: "Token Pause",
110
- tokenPause
111
- };
112
- }
113
- }
114
- if (transactionBody.tokenUnpause) {
115
- const tokenUnpause = this.parseTokenUnpause(
116
- transactionBody.tokenUnpause
117
- );
118
- if (tokenUnpause) {
119
- return {
120
- type: "TOKENUNPAUSE",
121
- humanReadableType: "Token Unpause",
122
- tokenUnpause
123
- };
124
- }
125
- }
126
- if (transactionBody.tokenWipe) {
127
- const tokenWipeAccount = this.parseTokenWipeAccount(
128
- transactionBody.tokenWipe
129
- );
130
- if (tokenWipeAccount) {
131
- return {
132
- type: "TOKENWIPEACCOUNT",
133
- humanReadableType: "Token Wipe Account",
134
- tokenWipeAccount
135
- };
136
- }
137
- }
138
- if (transactionBody.tokenDeletion) {
139
- const tokenDelete = this.parseTokenDelete(
140
- transactionBody.tokenDeletion
141
- );
142
- if (tokenDelete) {
143
- return {
144
- type: "TOKENDELETE",
145
- humanReadableType: "Token Delete",
146
- tokenDelete
147
- };
148
- }
149
- }
150
- if (transactionBody.tokenAssociate) {
151
- const tokenAssociate = this.parseTokenAssociate(
152
- transactionBody.tokenAssociate
153
- );
154
- if (tokenAssociate) {
155
- return {
156
- type: "TOKENASSOCIATE",
157
- humanReadableType: "Token Associate",
158
- tokenAssociate
159
- };
160
- }
161
- }
162
- if (transactionBody.tokenDissociate) {
163
- const tokenDissociate = this.parseTokenDissociate(
164
- transactionBody.tokenDissociate
165
- );
166
- if (tokenDissociate) {
167
- return {
168
- type: "TOKENDISSOCIATE",
169
- humanReadableType: "Token Dissociate",
170
- tokenDissociate
171
- };
172
- }
173
- }
174
- if (transactionBody.tokenFeeScheduleUpdate) {
175
- const tokenFeeScheduleUpdate = this.parseTokenFeeScheduleUpdate(
176
- transactionBody.tokenFeeScheduleUpdate
177
- );
178
- if (tokenFeeScheduleUpdate) {
179
- return {
180
- type: "TOKENFEESCHEDULEUPDATE",
181
- humanReadableType: "Token Fee Schedule Update",
182
- tokenFeeScheduleUpdate
183
- };
184
- }
185
- }
186
- const airdrop = this.parseTokenAirdrop(transaction);
187
- if (airdrop) {
188
- return {
189
- type: "TOKENAIRDROP",
190
- humanReadableType: "Token Airdrop",
191
- tokenAirdrop: airdrop
192
- };
193
- }
194
- return {};
195
- } catch (error) {
196
- console.warn("[HTSParser] Failed to parse HTS transaction:", error);
197
- return {};
198
- }
1
+ import { Logger } from "./standards-sdk.es148.js";
2
+ import { HederaMirrorNode } from "./standards-sdk.es169.js";
3
+ import { HRLResolver } from "./standards-sdk.es152.js";
4
+ import { hash } from "./standards-sdk.es162.js";
5
+ import { hcs26DiscoveryMetadataSchema, hcs26DiscoveryMetadataPatchSchema, hcs26DiscoveryRegisterSchema, hcs26DiscoveryRegisterLegacySchema, hcs26DiscoveryDeleteSchema, hcs26DiscoveryUpdateSchema, hcs26DiscoveryUpdateLegacySchema, hcs26VersionRegisterSchema, hcs26VersionRegisterLegacySchema, hcs26VersionUpdateSchema, hcs26VersionDeleteSchema, hcs26SkillManifestSchema } from "./standards-sdk.es142.js";
6
+ function parseSemver(versionRaw) {
7
+ const trimmed = versionRaw.trim().replace(/^v/i, "");
8
+ const match = trimmed.match(
9
+ /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/
10
+ );
11
+ if (!match) {
12
+ return null;
199
13
  }
200
- static parseTokenCreate(body) {
201
- if (!body) return void 0;
202
- const data = {};
203
- if (body.name) {
204
- data.tokenName = body.name;
205
- }
206
- if (body.symbol) {
207
- data.tokenSymbol = body.symbol;
208
- }
209
- if (body.treasury) {
210
- data.treasuryAccountId = new AccountId(
211
- body.treasury.shardNum ?? 0,
212
- body.treasury.realmNum ?? 0,
213
- body.treasury.accountNum ?? 0
214
- ).toString();
215
- }
216
- if (body.initialSupply) {
217
- data.initialSupply = Long.fromValue(body.initialSupply).toString();
218
- }
219
- if (body.decimals !== void 0 && body.decimals !== null) {
220
- data.decimals = Long.fromValue(body.decimals).toNumber();
221
- }
222
- if (body.maxSupply) {
223
- data.maxSupply = Long.fromValue(body.maxSupply).toString();
224
- }
225
- if (body.memo) {
226
- data.memo = body.memo;
227
- }
228
- if (body.tokenType !== null && body.tokenType !== void 0) {
229
- data.tokenType = proto.TokenType[body.tokenType];
230
- }
231
- if (body.supplyType !== null && body.supplyType !== void 0) {
232
- data.supplyType = proto.TokenSupplyType[body.supplyType];
233
- }
234
- data.adminKey = parseKey(body.adminKey);
235
- data.kycKey = parseKey(body.kycKey);
236
- data.freezeKey = parseKey(body.freezeKey);
237
- data.wipeKey = parseKey(body.wipeKey);
238
- data.supplyKey = parseKey(body.supplyKey);
239
- data.feeScheduleKey = parseKey(body.feeScheduleKey);
240
- data.pauseKey = parseKey(body.pauseKey);
241
- if (body.autoRenewAccount) {
242
- data.autoRenewAccount = new AccountId(
243
- body.autoRenewAccount.shardNum ?? 0,
244
- body.autoRenewAccount.realmNum ?? 0,
245
- body.autoRenewAccount.accountNum ?? 0
246
- ).toString();
247
- }
248
- if (body.autoRenewPeriod?.seconds) {
249
- data.autoRenewPeriod = Long.fromValue(
250
- body.autoRenewPeriod.seconds
251
- ).toString();
252
- }
253
- if (body.customFees && body.customFees.length > 0) {
254
- data.customFees = body.customFees.map((fee) => {
255
- const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
256
- fee.feeCollectorAccountId.shardNum ?? 0,
257
- fee.feeCollectorAccountId.realmNum ?? 0,
258
- fee.feeCollectorAccountId.accountNum ?? 0
259
- ).toString() : "Not Set";
260
- const commonFeeData = {
261
- feeCollectorAccountId,
262
- allCollectorsAreExempt: fee.allCollectorsAreExempt || false
263
- };
264
- if (fee.fixedFee) {
265
- return {
266
- ...commonFeeData,
267
- feeType: "FIXED_FEE",
268
- fixedFee: {
269
- amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
270
- denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
271
- fee.fixedFee.denominatingTokenId.shardNum ?? 0,
272
- fee.fixedFee.denominatingTokenId.realmNum ?? 0,
273
- fee.fixedFee.denominatingTokenId.tokenNum ?? 0
274
- ).toString() : void 0
275
- }
276
- };
277
- } else if (fee.fractionalFee) {
278
- return {
279
- ...commonFeeData,
280
- feeType: "FRACTIONAL_FEE",
281
- fractionalFee: {
282
- numerator: Long.fromValue(
283
- fee.fractionalFee.fractionalAmount?.numerator || 0
284
- ).toString(),
285
- denominator: Long.fromValue(
286
- fee.fractionalFee.fractionalAmount?.denominator || 1
287
- ).toString(),
288
- minimumAmount: Long.fromValue(
289
- fee.fractionalFee.minimumAmount || 0
290
- ).toString(),
291
- maximumAmount: Long.fromValue(
292
- fee.fractionalFee.maximumAmount || 0
293
- ).toString(),
294
- netOfTransfers: fee.fractionalFee.netOfTransfers || false
295
- }
296
- };
297
- } else if (fee.royaltyFee) {
298
- let fallbackFeeData = void 0;
299
- if (fee.royaltyFee.fallbackFee) {
300
- fallbackFeeData = {
301
- amount: Long.fromValue(
302
- fee.royaltyFee.fallbackFee.amount || 0
303
- ).toString(),
304
- denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
305
- fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
306
- fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
307
- fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
308
- ).toString() : void 0
309
- };
310
- }
311
- return {
312
- ...commonFeeData,
313
- feeType: "ROYALTY_FEE",
314
- royaltyFee: {
315
- numerator: Long.fromValue(
316
- fee.royaltyFee.exchangeValueFraction?.numerator || 0
317
- ).toString(),
318
- denominator: Long.fromValue(
319
- fee.royaltyFee.exchangeValueFraction?.denominator || 1
320
- ).toString(),
321
- fallbackFee: fallbackFeeData
322
- }
323
- };
324
- }
325
- return {
326
- ...commonFeeData,
327
- feeType: "FIXED_FEE",
328
- fixedFee: { amount: "0" }
329
- };
330
- });
331
- }
332
- return data;
14
+ const major = Number(match[1]);
15
+ const minor = Number(match[2]);
16
+ const patch = Number(match[3]);
17
+ if (![major, minor, patch].every(Number.isFinite)) {
18
+ return null;
333
19
  }
334
- static parseTokenMint(body) {
335
- if (!body || !body.token || body.amount === null || body.amount === void 0) {
336
- return void 0;
337
- }
338
- const data = {
339
- tokenId: new TokenId(
340
- body.token.shardNum ?? 0,
341
- body.token.realmNum ?? 0,
342
- body.token.tokenNum ?? 0
343
- ).toString(),
344
- amount: Long.fromValue(body.amount).toNumber()
345
- };
346
- if (body.metadata && body.metadata.length > 0) {
347
- data.metadata = body.metadata.map(
348
- (meta) => Buffer.from(meta).toString("base64")
349
- );
20
+ const prereleaseRaw = match[4];
21
+ const prerelease = prereleaseRaw ? prereleaseRaw.split(".").map((part) => {
22
+ if (/^(0|[1-9]\d*)$/.test(part)) {
23
+ return Number(part);
24
+ }
25
+ return part;
26
+ }) : [];
27
+ return { major, minor, patch, prerelease };
28
+ }
29
+ function compareSemver(a, b) {
30
+ if (a.major !== b.major) return a.major - b.major;
31
+ if (a.minor !== b.minor) return a.minor - b.minor;
32
+ if (a.patch !== b.patch) return a.patch - b.patch;
33
+ const aHasPre = a.prerelease.length > 0;
34
+ const bHasPre = b.prerelease.length > 0;
35
+ if (!aHasPre && bHasPre) return 1;
36
+ if (aHasPre && !bHasPre) return -1;
37
+ if (!aHasPre && !bHasPre) return 0;
38
+ const len = Math.max(a.prerelease.length, b.prerelease.length);
39
+ for (let index = 0; index < len; index += 1) {
40
+ const aId = a.prerelease[index];
41
+ const bId = b.prerelease[index];
42
+ if (aId === void 0 && bId !== void 0) return -1;
43
+ if (aId !== void 0 && bId === void 0) return 1;
44
+ if (aId === bId) continue;
45
+ if (typeof aId === "number" && typeof bId === "number") {
46
+ return aId - bId;
47
+ }
48
+ if (typeof aId === "number" && typeof bId === "string") {
49
+ return -1;
50
+ }
51
+ if (typeof aId === "string" && typeof bId === "number") {
52
+ return 1;
53
+ }
54
+ if (typeof aId === "string" && typeof bId === "string") {
55
+ return aId < bId ? -1 : 1;
350
56
  }
351
- return data;
352
57
  }
353
- static parseTokenBurn(body) {
354
- if (!body || !body.token || body.amount === null || body.amount === void 0) {
355
- return void 0;
356
- }
357
- const data = {
358
- tokenId: new TokenId(
359
- body.token.shardNum ?? 0,
360
- body.token.realmNum ?? 0,
361
- body.token.tokenNum ?? 0
362
- ).toString(),
363
- amount: Long.fromValue(body.amount).toNumber()
364
- };
365
- if (body.serialNumbers && body.serialNumbers.length > 0) {
366
- data.serialNumbers = body.serialNumbers.map(
367
- (sn) => Long.fromValue(sn).toNumber()
368
- );
369
- }
370
- return data;
58
+ return 0;
59
+ }
60
+ function isActiveStatus(status) {
61
+ return !status || status === "active";
62
+ }
63
+ function normalizeUidString(value) {
64
+ if (typeof value !== "string") {
65
+ return null;
371
66
  }
372
- static parseTokenUpdate(body) {
373
- if (!body) return void 0;
374
- const data = {};
375
- if (body.token) {
376
- data.tokenId = new TokenId(
377
- body.token.shardNum ?? 0,
378
- body.token.realmNum ?? 0,
379
- body.token.tokenNum ?? 0
380
- ).toString();
381
- }
382
- if (body.name) {
383
- data.name = body.name;
384
- }
385
- if (body.symbol) {
386
- data.symbol = body.symbol;
387
- }
388
- if (body.treasury) {
389
- data.treasuryAccountId = new AccountId(
390
- body.treasury.shardNum ?? 0,
391
- body.treasury.realmNum ?? 0,
392
- body.treasury.accountNum ?? 0
393
- ).toString();
394
- }
395
- data.adminKey = parseKey(body.adminKey);
396
- data.kycKey = parseKey(body.kycKey);
397
- data.freezeKey = parseKey(body.freezeKey);
398
- data.wipeKey = parseKey(body.wipeKey);
399
- data.supplyKey = parseKey(body.supplyKey);
400
- data.feeScheduleKey = parseKey(body.feeScheduleKey);
401
- data.pauseKey = parseKey(body.pauseKey);
402
- if (body.autoRenewAccount) {
403
- data.autoRenewAccountId = new AccountId(
404
- body.autoRenewAccount.shardNum ?? 0,
405
- body.autoRenewAccount.realmNum ?? 0,
406
- body.autoRenewAccount.accountNum ?? 0
407
- ).toString();
408
- }
409
- if (body.autoRenewPeriod?.seconds) {
410
- data.autoRenewPeriod = Long.fromValue(
411
- body.autoRenewPeriod.seconds
412
- ).toString();
413
- }
414
- if (body.memo?.value !== void 0) {
415
- data.memo = body.memo.value;
416
- }
417
- if (body.expiry?.seconds) {
418
- data.expiry = `${Long.fromValue(body.expiry.seconds).toString()}.${body.expiry.nanos}`;
419
- }
420
- return data;
67
+ const trimmed = value.trim();
68
+ return trimmed.length > 0 ? trimmed : null;
69
+ }
70
+ function resolveSequenceNumber(primary, fallback) {
71
+ if (typeof primary === "number") {
72
+ return primary;
421
73
  }
422
- static parseTokenFeeScheduleUpdate(body) {
423
- if (!body) return void 0;
424
- const data = {};
425
- if (body.tokenId) {
426
- data.tokenId = new TokenId(
427
- body.tokenId.shardNum ?? 0,
428
- body.tokenId.realmNum ?? 0,
429
- body.tokenId.tokenNum ?? 0
430
- ).toString();
431
- }
432
- if (body.customFees && body.customFees.length > 0) {
433
- data.customFees = body.customFees.map((fee) => {
434
- const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
435
- fee.feeCollectorAccountId.shardNum ?? 0,
436
- fee.feeCollectorAccountId.realmNum ?? 0,
437
- fee.feeCollectorAccountId.accountNum ?? 0
438
- ).toString() : "Not Set";
439
- const commonFeeData = {
440
- feeCollectorAccountId,
441
- allCollectorsAreExempt: fee.allCollectorsAreExempt || false
442
- };
443
- if (fee.fixedFee) {
444
- return {
445
- ...commonFeeData,
446
- feeType: "FIXED_FEE",
447
- fixedFee: {
448
- amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
449
- denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
450
- fee.fixedFee.denominatingTokenId.shardNum ?? 0,
451
- fee.fixedFee.denominatingTokenId.realmNum ?? 0,
452
- fee.fixedFee.denominatingTokenId.tokenNum ?? 0
453
- ).toString() : void 0
454
- }
455
- };
456
- } else if (fee.fractionalFee) {
457
- return {
458
- ...commonFeeData,
459
- feeType: "FRACTIONAL_FEE",
460
- fractionalFee: {
461
- numerator: Long.fromValue(
462
- fee.fractionalFee.fractionalAmount?.numerator || 0
463
- ).toString(),
464
- denominator: Long.fromValue(
465
- fee.fractionalFee.fractionalAmount?.denominator || 1
466
- ).toString(),
467
- minimumAmount: Long.fromValue(
468
- fee.fractionalFee.minimumAmount || 0
469
- ).toString(),
470
- maximumAmount: Long.fromValue(
471
- fee.fractionalFee.maximumAmount || 0
472
- ).toString(),
473
- netOfTransfers: fee.fractionalFee.netOfTransfers || false
474
- }
475
- };
476
- } else if (fee.royaltyFee) {
477
- let fallbackFeeData = void 0;
478
- if (fee.royaltyFee.fallbackFee) {
479
- fallbackFeeData = {
480
- amount: Long.fromValue(
481
- fee.royaltyFee.fallbackFee.amount || 0
482
- ).toString(),
483
- denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
484
- fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
485
- fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
486
- fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
487
- ).toString() : void 0
488
- };
489
- }
490
- return {
491
- ...commonFeeData,
492
- feeType: "ROYALTY_FEE",
493
- royaltyFee: {
494
- numerator: Long.fromValue(
495
- fee.royaltyFee.exchangeValueFraction?.numerator || 0
496
- ).toString(),
497
- denominator: Long.fromValue(
498
- fee.royaltyFee.exchangeValueFraction?.denominator || 1
499
- ).toString(),
500
- fallbackFee: fallbackFeeData
501
- }
502
- };
503
- }
504
- return {
505
- ...commonFeeData,
506
- feeType: "FIXED_FEE",
507
- fixedFee: { amount: "0" }
508
- };
509
- });
510
- }
511
- return data;
74
+ if (typeof fallback === "number") {
75
+ return fallback;
512
76
  }
513
- static parseTokenFreeze(body) {
514
- if (!body) return void 0;
515
- const data = {};
516
- if (body.token) {
517
- data.tokenId = new TokenId(
518
- body.token.shardNum ?? 0,
519
- body.token.realmNum ?? 0,
520
- body.token.tokenNum ?? 0
521
- ).toString();
522
- }
523
- if (body.account) {
524
- data.accountId = new AccountId(
525
- body.account.shardNum ?? 0,
526
- body.account.realmNum ?? 0,
527
- body.account.accountNum ?? 0
528
- ).toString();
529
- }
530
- return data;
77
+ return null;
78
+ }
79
+ function parseSequenceFromUid(uid) {
80
+ if (!/^\d+$/.test(uid)) {
81
+ return null;
531
82
  }
532
- static parseTokenUnfreeze(body) {
533
- if (!body) return void 0;
534
- const data = {};
535
- if (body.token) {
536
- data.tokenId = new TokenId(
537
- body.token.shardNum ?? 0,
538
- body.token.realmNum ?? 0,
539
- body.token.tokenNum ?? 0
540
- ).toString();
541
- }
542
- if (body.account) {
543
- data.accountId = new AccountId(
544
- body.account.shardNum ?? 0,
545
- body.account.realmNum ?? 0,
546
- body.account.accountNum ?? 0
547
- ).toString();
548
- }
549
- return data;
83
+ const parsed = Number(uid);
84
+ return Number.isSafeInteger(parsed) ? parsed : null;
85
+ }
86
+ function ensureNonEmptyString(value, field) {
87
+ if (typeof value !== "string") {
88
+ throw new Error(`Expected ${field} to be a string`);
550
89
  }
551
- static parseTokenGrantKyc(body) {
552
- if (!body) return void 0;
553
- const data = {};
554
- if (body.token) {
555
- data.tokenId = new TokenId(
556
- body.token.shardNum ?? 0,
557
- body.token.realmNum ?? 0,
558
- body.token.tokenNum ?? 0
559
- ).toString();
560
- }
561
- if (body.account) {
562
- data.accountId = new AccountId(
563
- body.account.shardNum ?? 0,
564
- body.account.realmNum ?? 0,
565
- body.account.accountNum ?? 0
566
- ).toString();
567
- }
568
- return data;
90
+ const trimmed = value.trim();
91
+ if (!trimmed) {
92
+ throw new Error(`Expected ${field} to be a non-empty string`);
569
93
  }
570
- static parseTokenRevokeKyc(body) {
571
- if (!body) return void 0;
572
- const data = {};
573
- if (body.token) {
574
- data.tokenId = new TokenId(
575
- body.token.shardNum ?? 0,
576
- body.token.realmNum ?? 0,
577
- body.token.tokenNum ?? 0
578
- ).toString();
579
- }
580
- if (body.account) {
581
- data.accountId = new AccountId(
582
- body.account.shardNum ?? 0,
583
- body.account.realmNum ?? 0,
584
- body.account.accountNum ?? 0
585
- ).toString();
586
- }
587
- return data;
94
+ return trimmed;
95
+ }
96
+ function mergeDiscoveryMetadata(base, update) {
97
+ if (!update) {
98
+ return base;
588
99
  }
589
- static parseTokenPause(body) {
590
- if (!body) return void 0;
591
- const data = {};
592
- if (body.token) {
593
- data.tokenId = new TokenId(
594
- body.token.shardNum ?? 0,
595
- body.token.realmNum ?? 0,
596
- body.token.tokenNum ?? 0
597
- ).toString();
598
- }
599
- return data;
100
+ return { ...base, ...update };
101
+ }
102
+ function normalizeDiscoveryRegister(input, messageSequenceNumber) {
103
+ const seq = typeof input.sequence_number === "number" ? input.sequence_number : typeof messageSequenceNumber === "number" ? messageSequenceNumber : void 0;
104
+ if ("t_id" in input) {
105
+ return {
106
+ p: "hcs-26",
107
+ op: "register",
108
+ t_id: ensureNonEmptyString(input.t_id, "t_id"),
109
+ account_id: ensureNonEmptyString(input.account_id, "account_id"),
110
+ metadata: input.metadata,
111
+ ...input.m ? { m: input.m } : {},
112
+ ...typeof seq === "number" ? { sequence_number: seq } : {}
113
+ };
600
114
  }
601
- static parseTokenUnpause(body) {
602
- if (!body) return void 0;
603
- const data = {};
604
- if (body.token) {
605
- data.tokenId = new TokenId(
606
- body.token.shardNum ?? 0,
607
- body.token.realmNum ?? 0,
608
- body.token.tokenNum ?? 0
609
- ).toString();
610
- }
611
- return data;
115
+ return {
116
+ p: "hcs-26",
117
+ op: "register",
118
+ t_id: ensureNonEmptyString(input.version_registry, "version_registry"),
119
+ account_id: ensureNonEmptyString(input.publisher, "publisher"),
120
+ metadata: input.metadata,
121
+ ...input.m ? { m: input.m } : {},
122
+ ...typeof seq === "number" ? { sequence_number: seq } : {}
123
+ };
124
+ }
125
+ class Hcs26SkillRegistryResolver {
126
+ constructor(deps) {
127
+ this.network = deps.network;
128
+ this.logger = deps.logger ?? Logger.getInstance({
129
+ module: "HCS26Resolver",
130
+ level: "info"
131
+ });
132
+ this.mirrorNode = new HederaMirrorNode(
133
+ deps.network,
134
+ this.logger,
135
+ deps.mirrorNode
136
+ );
137
+ this.hrlResolver = new HRLResolver("warn");
612
138
  }
613
- static parseTokenWipeAccount(body) {
614
- if (!body) return void 0;
615
- const data = {};
616
- if (body.token) {
617
- data.tokenId = new TokenId(
618
- body.token.shardNum ?? 0,
619
- body.token.realmNum ?? 0,
620
- body.token.tokenNum ?? 0
621
- ).toString();
622
- }
623
- if (body.account) {
624
- data.accountId = new AccountId(
625
- body.account.shardNum ?? 0,
626
- body.account.realmNum ?? 0,
627
- body.account.accountNum ?? 0
628
- ).toString();
629
- }
630
- if (body.serialNumbers && body.serialNumbers.length > 0) {
631
- data.serialNumbers = body.serialNumbers.map(
632
- (sn) => Long.fromValue(sn).toString()
633
- );
634
- }
635
- if (body.amount) {
636
- data.amount = Long.fromValue(body.amount).toString();
637
- }
638
- return data;
139
+ async resolveDiscoveryMetadataHrl(metadataHrl, mode) {
140
+ const resolved = await this.hrlResolver.resolve(metadataHrl, {
141
+ network: this.network,
142
+ returnRaw: true
143
+ });
144
+ const bytes = resolved.content instanceof ArrayBuffer ? Buffer.from(resolved.content) : Buffer.from(String(resolved.content), "utf8");
145
+ let raw;
146
+ try {
147
+ raw = JSON.parse(bytes.toString("utf8"));
148
+ } catch {
149
+ throw new Error("Discovery metadata HRL content is not valid JSON");
150
+ }
151
+ const schema = mode === "full" ? hcs26DiscoveryMetadataSchema : hcs26DiscoveryMetadataPatchSchema;
152
+ const parsed = schema.safeParse(raw);
153
+ if (!parsed.success) {
154
+ throw new Error(`Invalid discovery metadata: ${parsed.error.message}`);
155
+ }
156
+ return this.normalizeDiscoveryMetadataObject(
157
+ parsed.data
158
+ );
639
159
  }
640
- static parseTokenDelete(body) {
641
- if (!body) return void 0;
642
- const data = {};
643
- if (body.token) {
644
- data.tokenId = new TokenId(
645
- body.token.shardNum ?? 0,
646
- body.token.realmNum ?? 0,
647
- body.token.tokenNum ?? 0
648
- ).toString();
160
+ normalizeDiscoveryMetadataObject(metadata) {
161
+ if (typeof metadata.icon !== "string" || metadata.icon.trim().length === 0) {
162
+ const iconLegacy = metadata.icon_hcs1;
163
+ if (typeof iconLegacy === "string" && iconLegacy.trim().length > 0) {
164
+ return { ...metadata, icon: iconLegacy };
165
+ }
649
166
  }
650
- return data;
167
+ return metadata;
651
168
  }
652
- static parseTokenAssociate(body) {
653
- if (!body) return void 0;
654
- const data = {};
655
- if (body.account) {
656
- data.accountId = new AccountId(
657
- body.account.shardNum ?? 0,
658
- body.account.realmNum ?? 0,
659
- body.account.accountNum ?? 0
660
- ).toString();
169
+ async resolveDiscoveryMetadataUri(metadataUri, mode) {
170
+ const trimmed = metadataUri.trim();
171
+ if (trimmed.startsWith("hcs://1/")) {
172
+ return this.resolveDiscoveryMetadataHrl(trimmed, mode);
661
173
  }
662
- if (body.tokens && body.tokens.length > 0) {
663
- data.tokenIds = body.tokens.map(
664
- (t) => new TokenId(
665
- t.shardNum ?? 0,
666
- t.realmNum ?? 0,
667
- t.tokenNum ?? 0
668
- ).toString()
174
+ throw new Error(`Unsupported discovery metadata URI: ${trimmed}`);
175
+ }
176
+ resolveDiscoveryMetadataObject(params) {
177
+ if (typeof params.metadata === "string") {
178
+ return this.resolveDiscoveryMetadataUri(params.metadata, params.mode);
179
+ }
180
+ const schema = params.mode === "full" ? hcs26DiscoveryMetadataSchema : hcs26DiscoveryMetadataPatchSchema;
181
+ const parsed = schema.safeParse(params.metadata);
182
+ if (!parsed.success) {
183
+ throw new Error(`Invalid discovery metadata: ${parsed.error.message}`);
184
+ }
185
+ return Promise.resolve(
186
+ this.normalizeDiscoveryMetadataObject(
187
+ parsed.data
188
+ )
189
+ );
190
+ }
191
+ async getDiscoveryRegister(params) {
192
+ const messages = await this.mirrorNode.getTopicMessages(
193
+ params.directoryTopicId,
194
+ {
195
+ sequenceNumber: `eq:${params.skillUid}`,
196
+ limit: 5,
197
+ order: "asc"
198
+ }
199
+ );
200
+ for (const message of messages) {
201
+ const parsedNew = hcs26DiscoveryRegisterSchema.safeParse(message);
202
+ const parsedLegacy = parsedNew.success ? null : hcs26DiscoveryRegisterLegacySchema.safeParse(message);
203
+ const parsed = parsedNew.success ? parsedNew : parsedLegacy && parsedLegacy.success ? parsedLegacy : null;
204
+ if (!parsed) {
205
+ continue;
206
+ }
207
+ const normalized = normalizeDiscoveryRegister(
208
+ parsed.data,
209
+ message.sequence_number
669
210
  );
211
+ const seq = normalized.sequence_number;
212
+ if (typeof seq === "number" && seq === params.skillUid) {
213
+ const metadata = await this.resolveDiscoveryMetadataObject({
214
+ metadata: normalized.metadata,
215
+ mode: "full"
216
+ });
217
+ return { ...normalized, metadata };
218
+ }
670
219
  }
671
- return data;
220
+ return null;
672
221
  }
673
- static parseTokenDissociate(body) {
674
- if (!body) return void 0;
675
- const data = {};
676
- if (body.account) {
677
- data.accountId = new AccountId(
678
- body.account.shardNum ?? 0,
679
- body.account.realmNum ?? 0,
680
- body.account.accountNum ?? 0
681
- ).toString();
222
+ async resolveDiscoveryRecord(params) {
223
+ const register = await this.getDiscoveryRegister({
224
+ directoryTopicId: params.directoryTopicId,
225
+ skillUid: params.skillUid
226
+ });
227
+ if (!register) {
228
+ return null;
682
229
  }
683
- if (body.tokens && body.tokens.length > 0) {
684
- data.tokenIds = body.tokens.map(
685
- (t) => new TokenId(
686
- t.shardNum ?? 0,
687
- t.realmNum ?? 0,
688
- t.tokenNum ?? 0
689
- ).toString()
230
+ const scanLimit = typeof params.scanLimit === "number" && params.scanLimit > 0 ? Math.min(5e3, Math.floor(params.scanLimit)) : 1e3;
231
+ const messages = await this.mirrorNode.getTopicMessages(
232
+ params.directoryTopicId,
233
+ {
234
+ limit: scanLimit,
235
+ order: "asc"
236
+ }
237
+ );
238
+ const uid = String(params.skillUid);
239
+ const registerSequence = resolveSequenceNumber(
240
+ register.sequence_number,
241
+ params.skillUid
242
+ );
243
+ let current = register;
244
+ for (const message of messages) {
245
+ const messageSequence = resolveSequenceNumber(
246
+ void 0,
247
+ message.sequence_number
690
248
  );
691
- }
692
- return data;
249
+ const deleteParsed = hcs26DiscoveryDeleteSchema.safeParse(message);
250
+ if (deleteParsed.success && deleteParsed.data.uid === uid) {
251
+ const deleteSequence = resolveSequenceNumber(
252
+ deleteParsed.data.sequence_number,
253
+ messageSequence
254
+ );
255
+ if (registerSequence !== null && deleteSequence !== null && deleteSequence <= registerSequence) {
256
+ continue;
257
+ }
258
+ return null;
259
+ }
260
+ const updateParsedNew = hcs26DiscoveryUpdateSchema.safeParse(message);
261
+ const updateParsedLegacy = updateParsedNew.success ? null : hcs26DiscoveryUpdateLegacySchema.safeParse(message);
262
+ const updateParsed = updateParsedNew.success ? updateParsedNew : updateParsedLegacy && updateParsedLegacy.success ? updateParsedLegacy : null;
263
+ if (!updateParsed || updateParsed.data.uid !== uid) {
264
+ continue;
265
+ }
266
+ const updateSequence = resolveSequenceNumber(
267
+ updateParsed.data.sequence_number,
268
+ messageSequence
269
+ );
270
+ if (registerSequence !== null && updateSequence !== null && updateSequence <= registerSequence) {
271
+ continue;
272
+ }
273
+ const nextAccountId = "account_id" in updateParsed.data ? normalizeUidString(updateParsed.data.account_id) : normalizeUidString(updateParsed.data.publisher);
274
+ const nextMetadataRaw = updateParsed.data.metadata;
275
+ const nextMetadata = nextMetadataRaw !== void 0 ? await this.resolveDiscoveryMetadataObject({
276
+ metadata: nextMetadataRaw,
277
+ mode: "patch"
278
+ }) : void 0;
279
+ current = {
280
+ ...current,
281
+ ...nextAccountId ? { account_id: nextAccountId } : {},
282
+ metadata: mergeDiscoveryMetadata(current.metadata, nextMetadata)
283
+ };
284
+ }
285
+ return current;
693
286
  }
694
- /**
695
- * Parse token airdrop transaction for both fungible tokens and NFTs
696
- * Extracts airdrop transfers from transaction protobuf data
697
- */
698
- static parseTokenAirdrop(transaction) {
699
- try {
700
- const transactionBody = transaction._transactionBody;
701
- if (transactionBody?.tokenAirdrop) {
702
- const airdrop = transactionBody.tokenAirdrop;
703
- return {
704
- tokenTransfers: (airdrop.tokenTransfers || []).map(
705
- (transfer) => ({
706
- tokenId: transfer.token?.toString() || "Unknown",
707
- transfers: (transfer.transfers || []).map((t) => ({
708
- accountId: t.accountID?.toString() || "Unknown",
709
- amount: t.amount?.toString() || "0",
710
- serialNumbers: t.serialNumbers?.map((sn) => sn.toString())
711
- }))
712
- })
287
+ async listVersionRegisters(params) {
288
+ const limit = typeof params.limit === "number" && params.limit > 0 ? Math.min(1e3, params.limit) : 500;
289
+ const messages = await this.mirrorNode.getTopicMessages(
290
+ params.versionRegistryTopicId,
291
+ {
292
+ limit,
293
+ order: "desc"
294
+ }
295
+ );
296
+ const registersByUid = /* @__PURE__ */ new Map();
297
+ const updatesByUid = /* @__PURE__ */ new Map();
298
+ const deletedByUid = /* @__PURE__ */ new Map();
299
+ for (const message of messages) {
300
+ const parsedNew = hcs26VersionRegisterSchema.safeParse(message);
301
+ const parsedLegacy = parsedNew.success ? null : hcs26VersionRegisterLegacySchema.safeParse(message);
302
+ const registerParsed = parsedNew.success ? parsedNew : parsedLegacy && parsedLegacy.success ? parsedLegacy : null;
303
+ if (registerParsed) {
304
+ if (registerParsed.data.skill_uid !== params.skillUid) {
305
+ continue;
306
+ }
307
+ const uid = typeof registerParsed.data.sequence_number === "number" ? String(registerParsed.data.sequence_number) : typeof message.sequence_number === "number" ? String(message.sequence_number) : null;
308
+ if (uid) {
309
+ const registerSequence = resolveSequenceNumber(
310
+ registerParsed.data.sequence_number,
311
+ message.sequence_number
312
+ );
313
+ registersByUid.set(uid, {
314
+ register: registerParsed.data,
315
+ sequenceNumber: registerSequence
316
+ });
317
+ }
318
+ continue;
319
+ }
320
+ const updateParsed = hcs26VersionUpdateSchema.safeParse(message);
321
+ if (updateParsed.success) {
322
+ const uid = updateParsed.data.uid.trim();
323
+ const list = updatesByUid.get(uid) ?? [];
324
+ list.push({
325
+ update: updateParsed.data,
326
+ sequenceNumber: resolveSequenceNumber(
327
+ updateParsed.data.sequence_number,
328
+ message.sequence_number
713
329
  )
714
- };
330
+ });
331
+ updatesByUid.set(uid, list);
332
+ continue;
715
333
  }
716
- if (hasTransactionType(transaction, "tokenAirdrop")) {
717
- const txBody = extractTransactionBody(transaction);
718
- if (txBody?.tokenAirdrop) {
719
- return this.parseTokenAirdropFromProto(txBody.tokenAirdrop);
334
+ const deleteParsed = hcs26VersionDeleteSchema.safeParse(message);
335
+ if (deleteParsed.success) {
336
+ const uid = deleteParsed.data.uid.trim();
337
+ const list = deletedByUid.get(uid) ?? [];
338
+ const sequenceNumber = resolveSequenceNumber(
339
+ deleteParsed.data.sequence_number,
340
+ message.sequence_number
341
+ );
342
+ if (sequenceNumber !== null) {
343
+ list.push(sequenceNumber);
344
+ deletedByUid.set(uid, list);
720
345
  }
721
346
  }
722
- const tx = transaction;
723
- const tokenTransfersList = tx._tokenTransfers || [];
724
- if (tokenTransfersList.length > 0) {
725
- return {
726
- tokenTransfers: tokenTransfersList.map((transfer) => ({
727
- tokenId: transfer.tokenId?.toString() || "Unknown",
728
- transfers: (transfer.transfers || []).map((t) => ({
729
- accountId: t.accountId?.toString() || "Unknown",
730
- amount: t.amount?.toString() || "0",
731
- serialNumbers: t.serialNumbers?.map((sn) => sn.toString())
732
- }))
733
- }))
734
- };
347
+ }
348
+ const entries = [];
349
+ for (const [uid, registerState] of registersByUid.entries()) {
350
+ const registerSequence = registerState.sequenceNumber ?? parseSequenceFromUid(uid);
351
+ const deleteSequences = deletedByUid.get(uid) ?? [];
352
+ const hasDeleteAfterRegister = deleteSequences.some(
353
+ (sequence) => registerSequence === null ? true : sequence > registerSequence
354
+ );
355
+ if (hasDeleteAfterRegister) {
356
+ continue;
735
357
  }
736
- return null;
737
- } catch (error) {
738
- console.warn("[HTSParser] Failed to parse token airdrop:", error);
739
- return null;
358
+ const updates = updatesByUid.get(uid);
359
+ if (!updates || updates.length === 0) {
360
+ entries.push(registerState.register);
361
+ continue;
362
+ }
363
+ const sorted = [...updates].filter(
364
+ (update) => registerSequence === null ? true : update.sequenceNumber !== null && update.sequenceNumber > registerSequence
365
+ ).sort((a, b) => {
366
+ const aSeq = a.sequenceNumber ?? 0;
367
+ const bSeq = b.sequenceNumber ?? 0;
368
+ return aSeq - bSeq;
369
+ });
370
+ if (sorted.length === 0) {
371
+ entries.push(registerState.register);
372
+ continue;
373
+ }
374
+ const final = sorted.reduce((acc, updateState) => {
375
+ if (updateState.update.status) {
376
+ return { ...acc, status: updateState.update.status };
377
+ }
378
+ return acc;
379
+ }, registerState.register);
380
+ entries.push(final);
740
381
  }
382
+ return entries;
741
383
  }
742
- /**
743
- * Parse token airdrop from protobuf data for scheduled transactions
744
- */
745
- static parseTokenAirdropFromProto(airdrop) {
746
- const tokenTransfers = [];
747
- if (airdrop.tokenTransfers) {
748
- for (const tokenTransfer of airdrop.tokenTransfers) {
749
- const token = tokenTransfer.token ? new TokenId(
750
- tokenTransfer.token.shardNum ?? 0,
751
- tokenTransfer.token.realmNum ?? 0,
752
- tokenTransfer.token.tokenNum ?? 0
753
- ) : null;
754
- const transfers = [];
755
- if (tokenTransfer.transfers) {
756
- for (const transfer of tokenTransfer.transfers) {
757
- const accountId = transfer.accountID ? new AccountId(
758
- transfer.accountID.shardNum ?? 0,
759
- transfer.accountID.realmNum ?? 0,
760
- transfer.accountID.accountNum ?? 0
761
- ) : null;
762
- transfers.push({
763
- accountId: accountId?.toString() || "Unknown",
764
- amount: transfer.amount ? Long.fromValue(transfer.amount).toString() : "0",
765
- serialNumbers: transfer.serialNumbers?.map(
766
- (sn) => Long.fromValue(sn).toString()
767
- )
768
- });
384
+ async getLatestVersionRegister(params) {
385
+ const entries = await this.listVersionRegisters({
386
+ versionRegistryTopicId: params.versionRegistryTopicId,
387
+ skillUid: params.skillUid,
388
+ limit: 100
389
+ });
390
+ const active = entries.filter((entry) => isActiveStatus(entry.status));
391
+ if (active.length === 0) {
392
+ return null;
393
+ }
394
+ let best = active[0];
395
+ let bestParsed = parseSemver(best.version);
396
+ for (let index = 1; index < active.length; index += 1) {
397
+ const candidate = active[index];
398
+ const candidateParsed = parseSemver(candidate.version);
399
+ if (!bestParsed && candidateParsed) {
400
+ best = candidate;
401
+ bestParsed = candidateParsed;
402
+ continue;
403
+ }
404
+ if (bestParsed && candidateParsed) {
405
+ const cmp = compareSemver(candidateParsed, bestParsed);
406
+ if (cmp > 0) {
407
+ best = candidate;
408
+ bestParsed = candidateParsed;
409
+ continue;
410
+ }
411
+ if (cmp === 0) {
412
+ const bestSeq = typeof best.sequence_number === "number" ? best.sequence_number : 0;
413
+ const candSeq = typeof candidate.sequence_number === "number" ? candidate.sequence_number : 0;
414
+ if (candSeq > bestSeq) {
415
+ best = candidate;
416
+ bestParsed = candidateParsed;
769
417
  }
770
418
  }
771
- tokenTransfers.push({
772
- tokenId: token?.toString() || "Unknown",
773
- transfers
774
- });
775
419
  }
776
420
  }
777
- return { tokenTransfers };
421
+ return best;
778
422
  }
779
- /**
780
- * Extract token creation data from Transaction object internal fields
781
- * This handles the case where token creation data is stored in Transaction internals
782
- */
783
- static extractTokenCreationFromTransaction(transaction) {
784
- try {
785
- const tx = transaction;
786
- if (tx._tokenName || tx._tokenSymbol) {
787
- const result = {
788
- tokenName: tx._tokenName || "Unknown Token",
789
- tokenSymbol: tx._tokenSymbol || "UNKNOWN",
790
- initialSupply: tx._initialSupply?.toString() || "0",
791
- decimals: Number(tx._decimals || 0),
792
- treasuryAccountId: tx._treasuryAccountId?.toString() || "Unknown"
793
- };
794
- if (tx._maxSupply) {
795
- result.maxSupply = tx._maxSupply.toString();
796
- }
797
- if (tx._tokenType) {
798
- result.tokenType = tx._tokenType.toString ? tx._tokenType.toString() : String(tx._tokenType);
799
- }
800
- if (tx._supplyType) {
801
- result.supplyType = tx._supplyType.toString ? tx._supplyType.toString() : String(tx._supplyType);
802
- }
803
- if (tx._tokenMemo) {
804
- result.memo = tx._tokenMemo;
805
- }
806
- if (tx._adminKey) {
807
- result.adminKey = tx._adminKey.toString();
808
- }
809
- if (tx._kycKey) {
810
- result.kycKey = tx._kycKey.toString();
811
- }
812
- if (tx._freezeKey) {
813
- result.freezeKey = tx._freezeKey.toString();
814
- }
815
- if (tx._wipeKey) {
816
- result.wipeKey = tx._wipeKey.toString();
817
- }
818
- if (tx._supplyKey) {
819
- result.supplyKey = tx._supplyKey.toString();
820
- }
821
- if (tx._feeScheduleKey) {
822
- result.feeScheduleKey = tx._feeScheduleKey.toString();
823
- }
824
- if (tx._pauseKey) {
825
- result.pauseKey = tx._pauseKey.toString();
826
- }
827
- if (tx._metadataKey) {
828
- result.metadataKey = tx._metadataKey.toString();
829
- }
830
- if (tx._autoRenewAccountId) {
831
- result.autoRenewAccount = tx._autoRenewAccountId.toString();
832
- }
833
- if (tx._autoRenewPeriod) {
834
- result.autoRenewPeriod = tx._autoRenewPeriod.seconds?.toString() || tx._autoRenewPeriod.toString();
835
- }
836
- if (tx._expirationTime) {
837
- result.expiry = tx._expirationTime.seconds?.toString() || tx._expirationTime.toString();
838
- }
839
- if (tx._customFees && Array.isArray(tx._customFees) && tx._customFees.length > 0) {
840
- result.customFees = tx._customFees.map((fee) => {
841
- const customFee = {
842
- feeCollectorAccountId: fee.feeCollectorAccountId?.toString() || "",
843
- feeType: "FIXED_FEE"
844
- };
845
- if (fee.fixedFee) {
846
- customFee.feeType = "FIXED_FEE";
847
- customFee.fixedFee = {
848
- amount: fee.fixedFee.amount?.toString() || "0",
849
- denominatingTokenId: fee.fixedFee.denominatingTokenId?.toString()
850
- };
851
- } else if (fee.fractionalFee) {
852
- customFee.feeType = "FRACTIONAL_FEE";
853
- customFee.fractionalFee = {
854
- numerator: fee.fractionalFee.numerator?.toString() || "0",
855
- denominator: fee.fractionalFee.denominator?.toString() || "1",
856
- minimumAmount: fee.fractionalFee.minimumAmount?.toString() || "0",
857
- maximumAmount: fee.fractionalFee.maximumAmount?.toString() || "0",
858
- netOfTransfers: fee.fractionalFee.netOfTransfers || false
859
- };
860
- } else if (fee.royaltyFee) {
861
- customFee.feeType = "ROYALTY_FEE";
862
- customFee.royaltyFee = {
863
- numerator: fee.royaltyFee.numerator?.toString() || "0",
864
- denominator: fee.royaltyFee.denominator?.toString() || "1",
865
- fallbackFee: fee.royaltyFee.fallbackFee ? {
866
- amount: fee.royaltyFee.fallbackFee.amount?.toString() || "0",
867
- denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId?.toString()
868
- } : void 0
869
- };
870
- }
871
- customFee.allCollectorsAreExempt = fee.allCollectorsAreExempt || false;
872
- return customFee;
873
- });
874
- }
875
- return result;
876
- }
877
- return null;
878
- } catch (error) {
879
- return null;
423
+ async resolveManifest(params) {
424
+ const manifestHrl = typeof params.manifestHrl === "string" && params.manifestHrl.trim().length > 0 ? params.manifestHrl.trim() : typeof params.manifestTopicId === "string" && params.manifestTopicId.trim().length > 0 ? `hcs://1/${params.manifestTopicId.trim()}` : null;
425
+ if (!manifestHrl) {
426
+ throw new Error("Manifest HRL or topic id is required");
427
+ }
428
+ const resolved = await this.hrlResolver.resolve(manifestHrl, {
429
+ network: this.network,
430
+ returnRaw: true
431
+ });
432
+ const contentType = resolved.contentType ?? "";
433
+ if (!contentType.toLowerCase().startsWith("application/json")) {
434
+ throw new Error(
435
+ `Expected application/json for manifest, got ${resolved.contentType ?? "unknown"}`
436
+ );
880
437
  }
881
- }
882
- /**
883
- * Extract token airdrop data from Transaction object internal fields
884
- * This handles the case where airdrop data is stored in Transaction internals
885
- */
886
- static extractTokenAirdropFromTransaction(transaction) {
438
+ const bytes = resolved.content instanceof ArrayBuffer ? Buffer.from(resolved.content) : Buffer.from(String(resolved.content), "utf8");
439
+ const sha256Hex = await hash(bytes, "sha256");
440
+ let raw;
887
441
  try {
888
- const tx = transaction;
889
- if (tx._tokenAirdrops && Array.isArray(tx._tokenAirdrops)) {
890
- const tokenTransfers = tx._tokenAirdrops.map((airdrop) => ({
891
- tokenId: airdrop.tokenId?.toString() || "Unknown",
892
- transfers: (airdrop.transfers || []).map((transfer) => ({
893
- accountId: transfer.accountId?.toString() || "Unknown",
894
- amount: transfer.amount?.toString() || "0",
895
- serialNumbers: transfer.serialNumbers?.map((s) => s.toString()) || []
896
- }))
897
- }));
898
- return { tokenTransfers };
899
- }
900
- return null;
901
- } catch (error) {
902
- return null;
442
+ raw = JSON.parse(bytes.toString("utf8"));
443
+ } catch {
444
+ throw new Error("Manifest content is not valid JSON");
445
+ }
446
+ const parsed = hcs26SkillManifestSchema.safeParse(raw);
447
+ if (!parsed.success) {
448
+ throw new Error(`Invalid HCS-26 manifest: ${parsed.error.message}`);
449
+ }
450
+ const hasSkillMd = parsed.data.files.some((file) => file.path === "SKILL.md");
451
+ if (!hasSkillMd) {
452
+ throw new Error(
453
+ 'HCS-26 manifest must include SKILL.md at path "SKILL.md"'
454
+ );
903
455
  }
456
+ return { manifest: parsed.data, raw, sha256Hex };
904
457
  }
905
- /**
906
- * Parse HTS transaction from Transaction object with comprehensive extraction
907
- * This is the unified entry point that handles both protobuf and internal field extraction
908
- */
909
- static parseFromTransactionObject(transaction) {
910
- try {
911
- try {
912
- const bytes = transaction.toBytes ? transaction.toBytes() : void 0;
913
- if (bytes) {
914
- const decoded = proto.TransactionList.decode(bytes);
915
- if (decoded.transactionList && decoded.transactionList.length > 0) {
916
- const tx = decoded.transactionList[0];
917
- let txBody = null;
918
- if (tx.bodyBytes && tx.bodyBytes.length > 0) {
919
- txBody = proto.TransactionBody.decode(tx.bodyBytes);
920
- } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
921
- const signedTx = proto.SignedTransaction.decode(
922
- tx.signedTransactionBytes
923
- );
924
- if (signedTx.bodyBytes) {
925
- txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
926
- }
927
- }
928
- if (txBody) {
929
- if (txBody.tokenCreation) {
930
- const tokenCreation2 = this.parseTokenCreate(
931
- txBody.tokenCreation
932
- );
933
- if (tokenCreation2) {
934
- return {
935
- type: "TOKENCREATE",
936
- humanReadableType: "Token Creation",
937
- tokenCreation: tokenCreation2
938
- };
939
- }
940
- }
941
- if (txBody.tokenMint) {
942
- const tokenMint = this.parseTokenMint(txBody.tokenMint);
943
- if (tokenMint) {
944
- return {
945
- type: "TOKENMINT",
946
- humanReadableType: "Token Mint",
947
- tokenMint
948
- };
949
- }
950
- }
951
- if (txBody.tokenBurn) {
952
- const tokenBurn = this.parseTokenBurn(txBody.tokenBurn);
953
- if (tokenBurn) {
954
- return {
955
- type: "TOKENBURN",
956
- humanReadableType: "Token Burn",
957
- tokenBurn
958
- };
959
- }
960
- }
961
- if (txBody.tokenUpdate) {
962
- const tokenUpdate = this.parseTokenUpdate(txBody.tokenUpdate);
963
- if (tokenUpdate) {
964
- return {
965
- type: "TOKENUPDATE",
966
- humanReadableType: "Token Update",
967
- tokenUpdate
968
- };
969
- }
970
- }
971
- if (txBody.tokenFreeze) {
972
- const tokenFreeze = this.parseTokenFreeze(txBody.tokenFreeze);
973
- if (tokenFreeze) {
974
- return {
975
- type: "TOKENFREEZE",
976
- humanReadableType: "Token Freeze",
977
- tokenFreeze
978
- };
979
- }
980
- }
981
- if (txBody.tokenUnfreeze) {
982
- const tokenUnfreeze = this.parseTokenUnfreeze(
983
- txBody.tokenUnfreeze
984
- );
985
- if (tokenUnfreeze) {
986
- return {
987
- type: "TOKENUNFREEZE",
988
- humanReadableType: "Token Unfreeze",
989
- tokenUnfreeze
990
- };
991
- }
992
- }
993
- if (txBody.tokenGrantKyc) {
994
- const tokenGrantKyc = this.parseTokenGrantKyc(
995
- txBody.tokenGrantKyc
996
- );
997
- if (tokenGrantKyc) {
998
- return {
999
- type: "TOKENGRANTKYC",
1000
- humanReadableType: "Token Grant KYC",
1001
- tokenGrantKyc
1002
- };
1003
- }
1004
- }
1005
- if (txBody.tokenRevokeKyc) {
1006
- const tokenRevokeKyc = this.parseTokenRevokeKyc(
1007
- txBody.tokenRevokeKyc
1008
- );
1009
- if (tokenRevokeKyc) {
1010
- return {
1011
- type: "TOKENREVOKEKYC",
1012
- humanReadableType: "Token Revoke KYC",
1013
- tokenRevokeKyc
1014
- };
1015
- }
1016
- }
1017
- if (txBody.tokenPause) {
1018
- const tokenPause = this.parseTokenPause(txBody.tokenPause);
1019
- if (tokenPause) {
1020
- return {
1021
- type: "TOKENPAUSE",
1022
- humanReadableType: "Token Pause",
1023
- tokenPause
1024
- };
1025
- }
1026
- }
1027
- if (txBody.tokenUnpause) {
1028
- const tokenUnpause = this.parseTokenUnpause(
1029
- txBody.tokenUnpause
1030
- );
1031
- if (tokenUnpause) {
1032
- return {
1033
- type: "TOKENUNPAUSE",
1034
- humanReadableType: "Token Unpause",
1035
- tokenUnpause
1036
- };
1037
- }
1038
- }
1039
- if (txBody.tokenWipe) {
1040
- const tokenWipeAccount = this.parseTokenWipeAccount(
1041
- txBody.tokenWipe
1042
- );
1043
- if (tokenWipeAccount) {
1044
- return {
1045
- type: "TOKENWIPEACCOUNT",
1046
- humanReadableType: "Token Wipe Account",
1047
- tokenWipeAccount
1048
- };
1049
- }
1050
- }
1051
- if (txBody.tokenDeletion) {
1052
- const tokenDelete = this.parseTokenDelete(txBody.tokenDeletion);
1053
- if (tokenDelete) {
1054
- return {
1055
- type: "TOKENDELETE",
1056
- humanReadableType: "Token Delete",
1057
- tokenDelete
1058
- };
1059
- }
1060
- }
1061
- if (txBody.tokenAssociate) {
1062
- const tokenAssociate = this.parseTokenAssociate(
1063
- txBody.tokenAssociate
1064
- );
1065
- if (tokenAssociate) {
1066
- return {
1067
- type: "TOKENASSOCIATE",
1068
- humanReadableType: "Token Associate",
1069
- tokenAssociate
1070
- };
1071
- }
1072
- }
1073
- if (txBody.tokenDissociate) {
1074
- const tokenDissociate = this.parseTokenDissociate(
1075
- txBody.tokenDissociate
1076
- );
1077
- if (tokenDissociate) {
1078
- return {
1079
- type: "TOKENDISSOCIATE",
1080
- humanReadableType: "Token Dissociate",
1081
- tokenDissociate
1082
- };
1083
- }
1084
- }
1085
- if (txBody.tokenFeeScheduleUpdate) {
1086
- const tokenFeeScheduleUpdate = this.parseTokenFeeScheduleUpdate(
1087
- txBody.tokenFeeScheduleUpdate
1088
- );
1089
- if (tokenFeeScheduleUpdate) {
1090
- return {
1091
- type: "TOKENFEESCHEDULEUPDATE",
1092
- humanReadableType: "Token Fee Schedule Update",
1093
- tokenFeeScheduleUpdate
1094
- };
1095
- }
1096
- }
1097
- if (txBody.tokenAirdrop) {
1098
- const tokenAirdrop2 = this.parseTokenAirdropFromProto(
1099
- txBody.tokenAirdrop
1100
- );
1101
- if (tokenAirdrop2) {
1102
- return {
1103
- type: "TOKENAIRDROP",
1104
- humanReadableType: "Token Airdrop",
1105
- tokenAirdrop: tokenAirdrop2
1106
- };
1107
- }
1108
- }
1109
- }
1110
- }
1111
- }
1112
- } catch (e) {
1113
- }
1114
- const protoResult = this.parseHTSTransaction(transaction);
1115
- if (protoResult.type) {
1116
- return protoResult;
1117
- }
1118
- const tokenCreation = this.extractTokenCreationFromTransaction(transaction);
1119
- const tokenAirdrop = this.extractTokenAirdropFromTransaction(transaction);
1120
- if (tokenCreation) {
1121
- return {
1122
- type: "TOKENCREATE",
1123
- humanReadableType: "Token Creation",
1124
- tokenCreation
1125
- };
1126
- }
1127
- if (tokenAirdrop) {
1128
- return {
1129
- type: "TOKENAIRDROP",
1130
- humanReadableType: "Token Airdrop",
1131
- tokenAirdrop
1132
- };
1133
- }
1134
- return {};
1135
- } catch (error) {
1136
- return {};
458
+ async verifyVersionRegisterMatchesManifest(params) {
459
+ const checksumRaw = params.versionRegister.checksum;
460
+ if (!checksumRaw) {
461
+ this.logger.warn(
462
+ "HCS-26 version register is missing checksum; skipping manifest verification."
463
+ );
464
+ return;
465
+ }
466
+ const checksum = checksumRaw.trim();
467
+ if (!checksum.startsWith("sha256:")) {
468
+ throw new Error(`Unsupported checksum: ${checksum}`);
469
+ }
470
+ const expectedHex = checksum.slice("sha256:".length);
471
+ if (params.manifestSha256Hex !== expectedHex) {
472
+ throw new Error(
473
+ `Manifest checksum mismatch (expected ${expectedHex}, got ${params.manifestSha256Hex})`
474
+ );
1137
475
  }
1138
476
  }
1139
477
  }
1140
478
  export {
1141
- HTSParser
479
+ Hcs26SkillRegistryResolver
1142
480
  };
1143
481
  //# sourceMappingURL=standards-sdk.es143.js.map