@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 +1 @@
1
- {"version":3,"file":"standards-sdk.es135.js","sources":["../../src/utils/transaction-summary-registry.ts"],"sourcesContent":["import type {\n ParsedTransaction,\n TokenAmount,\n} from './transaction-parser-types';\n\nexport type TransactionSummaryFn = (tx: ParsedTransaction) => string;\nexport type TransactionSummarySpec = {\n template?: string;\n fn?: TransactionSummaryFn;\n};\n\nconst getNested = (tx: ParsedTransaction, path: string): unknown => {\n const parts = path.split('.');\n let current: any = tx as any;\n for (const p of parts) {\n if (current == null) {\n return undefined;\n }\n current = current[p];\n }\n return current;\n};\n\nconst renderTemplate = (template: string, tx: ParsedTransaction): string => {\n return template.replace(/\\{([^}]+)\\}/g, (_m, path) => {\n const value = getNested(tx, String(path).trim());\n if (value === null || value === undefined) {\n return '(Unknown)';\n }\n return String(value);\n });\n};\n\nconst summarizeCryptoTransfer = (tx: ParsedTransaction): string => {\n const senders: string[] = [];\n const receivers: string[] = [];\n\n if (Array.isArray(tx.transfers)) {\n for (const transfer of tx.transfers) {\n const originalAmountFloat = parseFloat(transfer.amount);\n let displayStr = transfer.amount;\n if (displayStr.startsWith('-')) {\n displayStr = displayStr.substring(1);\n }\n displayStr = displayStr.replace(/\\s*ℏ$/, '');\n if (originalAmountFloat < 0) {\n senders.push(`${transfer.accountId} (${displayStr} ℏ)`);\n } else if (originalAmountFloat > 0) {\n receivers.push(`${transfer.accountId} (${displayStr} ℏ)`);\n }\n }\n }\n\n if (senders.length > 0 && receivers.length > 0) {\n return `Transfer of HBAR from ${senders.join(', ')} to ${receivers.join(', ')}`;\n }\n return tx.humanReadableType;\n};\n\nconst groupTokenTransfers = (\n tokenTransfers: TokenAmount[],\n): Record<string, TokenAmount[]> => {\n const groups: Record<string, TokenAmount[]> = {};\n for (const t of tokenTransfers) {\n if (!groups[t.tokenId]) {\n groups[t.tokenId] = [];\n }\n groups[t.tokenId].push(t);\n }\n return groups;\n};\n\nconst summarizeTokenTransfers = (tx: ParsedTransaction): string => {\n const tokenSummaries: string[] = [];\n const groups = groupTokenTransfers(tx.tokenTransfers || []);\n for (const [tokenId, transfers] of Object.entries(groups)) {\n const tokenSenders: string[] = [];\n const tokenReceivers: string[] = [];\n for (const t of transfers) {\n const amt = parseFloat(String(t.amount));\n if (amt < 0) {\n tokenSenders.push(`${t.accountId} (${Math.abs(amt)})`);\n } else if (amt > 0) {\n tokenReceivers.push(`${t.accountId} (${amt})`);\n }\n }\n if (tokenSenders.length > 0 && tokenReceivers.length > 0) {\n tokenSummaries.push(\n `Transfer of token ${tokenId} from ${tokenSenders.join(', ')} to ${tokenReceivers.join(', ')}`,\n );\n }\n }\n if (tokenSummaries.length > 0) {\n return tokenSummaries.join('; ');\n }\n return tx.humanReadableType;\n};\n\nconst summarizeContractCall = (tx: ParsedTransaction): string => {\n if (!tx.contractCall) {\n return tx.humanReadableType;\n }\n let summary = `Contract call to ${tx.contractCall.contractId} with ${tx.contractCall.gas} gas`;\n if (tx.contractCall.amount > 0) {\n summary += ` and ${tx.contractCall.amount} HBAR`;\n }\n if (tx.contractCall.functionName) {\n summary += ` calling function ${tx.contractCall.functionName}`;\n }\n return summary;\n};\n\nconst summarizeTokenMint = (tx: ParsedTransaction): string => {\n if (tx.tokenMint) {\n return `Mint ${tx.tokenMint.amount} tokens for token ${tx.tokenMint.tokenId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenBurn = (tx: ParsedTransaction): string => {\n if (tx.tokenBurn) {\n return `Burn ${tx.tokenBurn.amount} tokens for token ${tx.tokenBurn.tokenId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenCreate = (tx: ParsedTransaction): string => {\n if (!tx.tokenCreation) {\n return tx.humanReadableType;\n }\n let summary = `Create token ${tx.tokenCreation.tokenName || '(No Name)'} (${tx.tokenCreation.tokenSymbol || '(No Symbol)'})`;\n if (tx.tokenCreation.initialSupply) {\n summary += ` with initial supply ${tx.tokenCreation.initialSupply}`;\n }\n if (tx.tokenCreation.customFees && tx.tokenCreation.customFees.length > 0) {\n summary += ` including ${tx.tokenCreation.customFees.length} custom fee(s)`;\n }\n return summary;\n};\n\nconst summarizeConsensusCreateTopic = (tx: ParsedTransaction): string => {\n if (!tx.consensusCreateTopic) {\n return tx.humanReadableType;\n }\n let summary = 'Create new topic';\n if (tx.consensusCreateTopic.memo) {\n summary += ` with memo \"${tx.consensusCreateTopic.memo}\"`;\n }\n if (tx.consensusCreateTopic.autoRenewAccountId) {\n summary += `, auto-renew by ${tx.consensusCreateTopic.autoRenewAccountId}`;\n }\n return summary;\n};\n\nconst summarizeConsensusSubmitMessage = (tx: ParsedTransaction): string => {\n if (!tx.consensusSubmitMessage) {\n return tx.humanReadableType;\n }\n let summary = 'Submit message';\n if (tx.consensusSubmitMessage.topicId) {\n summary += ` to topic ${tx.consensusSubmitMessage.topicId}`;\n }\n if (tx.consensusSubmitMessage.message) {\n if (tx.consensusSubmitMessage.messageEncoding === 'utf8') {\n const preview = tx.consensusSubmitMessage.message.substring(0, 70);\n const needsEllipsis = tx.consensusSubmitMessage.message.length > 70;\n summary += `: \"${preview}${needsEllipsis ? '...' : ''}\"`;\n } else {\n const byteLength = Buffer.from(\n tx.consensusSubmitMessage.message,\n 'base64',\n ).length;\n summary += ` (binary message data, length: ${byteLength} bytes)`;\n }\n }\n if (\n tx.consensusSubmitMessage.chunkInfoNumber &&\n tx.consensusSubmitMessage.chunkInfoTotal\n ) {\n summary += ` (chunk ${tx.consensusSubmitMessage.chunkInfoNumber}/${tx.consensusSubmitMessage.chunkInfoTotal})`;\n }\n return summary;\n};\n\nconst summarizeFileCreate = (tx: ParsedTransaction): string => {\n if (!tx.fileCreate) {\n return tx.humanReadableType;\n }\n let summary = 'Create File';\n if (tx.fileCreate.memo) {\n summary += ` with memo \"${tx.fileCreate.memo}\"`;\n }\n if (tx.fileCreate.contents) {\n summary += ' (includes content)';\n }\n return summary;\n};\n\nconst summarizeFileAppend = (tx: ParsedTransaction): string => {\n if (tx.fileAppend) {\n return `Append to File ${tx.fileAppend.fileId || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeFileUpdate = (tx: ParsedTransaction): string => {\n if (tx.fileUpdate) {\n return `Update File ${tx.fileUpdate.fileId || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeFileDelete = (tx: ParsedTransaction): string => {\n if (tx.fileDelete) {\n return `Delete File ${tx.fileDelete.fileId || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeConsensusUpdateTopic = (tx: ParsedTransaction): string => {\n if (tx.consensusUpdateTopic) {\n return `Update Topic ${tx.consensusUpdateTopic.topicId || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeConsensusDeleteTopic = (tx: ParsedTransaction): string => {\n if (tx.consensusDeleteTopic) {\n return `Delete Topic ${tx.consensusDeleteTopic.topicId || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenFreeze = (tx: ParsedTransaction): string => {\n if (tx.tokenFreeze) {\n return `Freeze Token ${tx.tokenFreeze.tokenId} for Account ${tx.tokenFreeze.accountId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenUnfreeze = (tx: ParsedTransaction): string => {\n if (tx.tokenUnfreeze) {\n return `Unfreeze Token ${tx.tokenUnfreeze.tokenId} for Account ${tx.tokenUnfreeze.accountId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenGrantKyc = (tx: ParsedTransaction): string => {\n if (tx.tokenGrantKyc) {\n return `Grant KYC for Token ${tx.tokenGrantKyc.tokenId} to Account ${tx.tokenGrantKyc.accountId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenRevokeKyc = (tx: ParsedTransaction): string => {\n if (tx.tokenRevokeKyc) {\n return `Revoke KYC for Token ${tx.tokenRevokeKyc.tokenId} from Account ${tx.tokenRevokeKyc.accountId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenPause = (tx: ParsedTransaction): string => {\n if (tx.tokenPause) {\n return `Pause Token ${tx.tokenPause.tokenId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenUnpause = (tx: ParsedTransaction): string => {\n if (tx.tokenUnpause) {\n return `Unpause Token ${tx.tokenUnpause.tokenId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenWipe = (tx: ParsedTransaction): string => {\n if (tx.tokenWipeAccount) {\n let summary = `Wipe Token ${tx.tokenWipeAccount.tokenId} from Account ${tx.tokenWipeAccount.accountId}`;\n if (\n tx.tokenWipeAccount.serialNumbers &&\n tx.tokenWipeAccount.serialNumbers.length > 0\n ) {\n summary += ` (Serials: ${tx.tokenWipeAccount.serialNumbers.join(', ')})`;\n }\n if (tx.tokenWipeAccount.amount) {\n summary += ` (Amount: ${tx.tokenWipeAccount.amount})`;\n }\n return summary;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenDelete = (tx: ParsedTransaction): string => {\n if (tx.tokenDelete) {\n return `Delete Token ${tx.tokenDelete.tokenId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenAssociate = (tx: ParsedTransaction): string => {\n if (tx.tokenAssociate) {\n return `Associate Account ${tx.tokenAssociate.accountId} with Tokens: ${(tx.tokenAssociate.tokenIds || []).join(', ')}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenDissociate = (tx: ParsedTransaction): string => {\n if (tx.tokenDissociate) {\n return `Dissociate Account ${tx.tokenDissociate.accountId} from Tokens: ${(tx.tokenDissociate.tokenIds || []).join(', ')}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeAccountDelete = (tx: ParsedTransaction): string => {\n if (tx.cryptoDelete) {\n return `Delete Account ${tx.cryptoDelete.deleteAccountId}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeAccountCreate = (tx: ParsedTransaction): string => {\n if (!tx.cryptoCreateAccount) {\n return tx.humanReadableType;\n }\n let summary = 'Create Account';\n if (\n tx.cryptoCreateAccount.initialBalance &&\n tx.cryptoCreateAccount.initialBalance !== '0'\n ) {\n summary += ` with balance ${tx.cryptoCreateAccount.initialBalance}`;\n }\n if (tx.cryptoCreateAccount.alias) {\n summary += ` (Alias: ${tx.cryptoCreateAccount.alias})`;\n }\n return summary;\n};\n\nconst summarizeAccountUpdate = (tx: ParsedTransaction): string => {\n if (tx.cryptoUpdateAccount) {\n return `Update Account ${tx.cryptoUpdateAccount.accountIdToUpdate || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeApproveAllowance = (tx: ParsedTransaction): string => {\n if (tx.cryptoApproveAllowance) {\n let count = 0;\n if (tx.cryptoApproveAllowance.hbarAllowances) {\n count += tx.cryptoApproveAllowance.hbarAllowances.length;\n }\n if (tx.cryptoApproveAllowance.tokenAllowances) {\n count += tx.cryptoApproveAllowance.tokenAllowances.length;\n }\n if (tx.cryptoApproveAllowance.nftAllowances) {\n count += tx.cryptoApproveAllowance.nftAllowances.length;\n }\n return `Approve ${count} Crypto Allowance(s)`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeDeleteAllowance = (tx: ParsedTransaction): string => {\n if (tx.cryptoDeleteAllowance) {\n const count = (tx.cryptoDeleteAllowance.nftAllowancesToRemove || []).length;\n return `Delete ${count} NFT Crypto Allowance(s)`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeContractCreate = (tx: ParsedTransaction): string => {\n if (tx.contractCreate) {\n let summary = 'Create Contract';\n if (tx.contractCreate.memo) {\n summary += ` (Memo: ${tx.contractCreate.memo})`;\n }\n return summary;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeContractUpdate = (tx: ParsedTransaction): string => {\n if (tx.contractUpdate) {\n return `Update Contract ${tx.contractUpdate.contractIdToUpdate || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeContractDelete = (tx: ParsedTransaction): string => {\n if (tx.contractDelete) {\n let summary = `Delete Contract ${tx.contractDelete.contractIdToDelete || '(Unknown ID)'}`;\n if (tx.contractDelete.transferAccountId) {\n summary += ` (Transfer to Account: ${tx.contractDelete.transferAccountId})`;\n } else if (tx.contractDelete.transferContractId) {\n summary += ` (Transfer to Contract: ${tx.contractDelete.transferContractId})`;\n }\n return summary;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenUpdate = (tx: ParsedTransaction): string => {\n if (tx.tokenUpdate) {\n return `Update Token ${tx.tokenUpdate.tokenId || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizeTokenFeeScheduleUpdate = (tx: ParsedTransaction): string => {\n if (tx.tokenFeeScheduleUpdate) {\n return `Update Fee Schedule for Token ${tx.tokenFeeScheduleUpdate.tokenId || '(Unknown ID)'}`;\n }\n return tx.humanReadableType;\n};\n\nconst summarizePrng = (tx: ParsedTransaction): string => {\n let summary = 'Generate Random Number';\n if (tx.utilPrng && tx.utilPrng.range && tx.utilPrng.range > 0) {\n summary += ` (range up to ${tx.utilPrng.range - 1})`;\n }\n return summary;\n};\n\nconst summarizeTokenAirdrop = (tx: ParsedTransaction): string => {\n if (!tx.tokenAirdrop || !tx.tokenAirdrop.tokenTransfers) {\n return tx.humanReadableType;\n }\n let tokenTypes = 0;\n let totalTransfers = 0;\n for (const t of tx.tokenAirdrop.tokenTransfers) {\n tokenTypes += 1;\n totalTransfers += Array.isArray(t.transfers) ? t.transfers.length : 0;\n }\n return `Token Airdrop across ${tokenTypes} token(s), ${totalTransfers} transfer(s)`;\n};\n\nconst summarizeScheduleCreate = (tx: ParsedTransaction): string => {\n if (!tx.scheduleCreate) {\n return tx.humanReadableType;\n }\n let summary = 'Create Schedule';\n if (tx.scheduleCreate.memo) {\n summary += ` (Memo: ${tx.scheduleCreate.memo})`;\n }\n return summary;\n};\n\nconst summarizeScheduleSign = (tx: ParsedTransaction): string => {\n if (tx.scheduleSign) {\n return 'Sign Schedule';\n }\n return tx.humanReadableType;\n};\n\nconst summarizeScheduleDelete = (tx: ParsedTransaction): string => {\n if (tx.scheduleDelete) {\n return 'Delete Schedule';\n }\n return tx.humanReadableType;\n};\n\nconst summarizeSystemDelete = (tx: ParsedTransaction): string => {\n if (!tx.systemDelete) {\n return tx.humanReadableType;\n }\n if (tx.systemDelete.fileId) {\n return `System Delete File ${tx.systemDelete.fileId}`;\n }\n if (tx.systemDelete.contractId) {\n return `System Delete Contract ${tx.systemDelete.contractId}`;\n }\n return 'System Delete';\n};\n\nconst summarizeSystemUndelete = (tx: ParsedTransaction): string => {\n if (!tx.systemUndelete) {\n return tx.humanReadableType;\n }\n if (tx.systemUndelete.fileId) {\n return `System Undelete File ${tx.systemUndelete.fileId}`;\n }\n if (tx.systemUndelete.contractId) {\n return `System Undelete Contract ${tx.systemUndelete.contractId}`;\n }\n return 'System Undelete';\n};\n\nconst summarizeFreeze = (tx: ParsedTransaction): string => {\n return 'Network Freeze';\n};\n\nconst summarizeEthereumTransaction = (tx: ParsedTransaction): string => {\n return 'Ethereum Transaction';\n};\n\nconst summarizeUncheckedSubmit = (tx: ParsedTransaction): string => {\n if (tx.uncheckedSubmit && tx.uncheckedSubmit.topicId) {\n return `Unchecked Submit to topic ${tx.uncheckedSubmit.topicId}`;\n }\n return 'Unchecked Submit';\n};\n\nconst summarizeNodeCreate = (tx: ParsedTransaction): string => {\n return 'Create Node';\n};\n\nconst summarizeNodeUpdate = (tx: ParsedTransaction): string => {\n return 'Update Node';\n};\n\nconst summarizeNodeDelete = (tx: ParsedTransaction): string => {\n return 'Delete Node';\n};\n\nconst summarizeAtomicBatch = (tx: ParsedTransaction): string => {\n const count = Array.isArray(tx.atomicBatch?.transactions)\n ? tx.atomicBatch!.transactions!.length\n : 0;\n return `Atomic Batch (${count} transaction(s))`;\n};\n\nexport const transactionSummaryRegistry: Record<\n string,\n TransactionSummarySpec\n> = {\n CRYPTOTRANSFER: { fn: summarizeCryptoTransfer },\n cryptoTransfer: { fn: summarizeCryptoTransfer },\n CONTRACTCALL: { fn: summarizeContractCall },\n contractCall: { fn: summarizeContractCall },\n TOKENMINT: { fn: summarizeTokenMint },\n tokenMint: { fn: summarizeTokenMint },\n TOKENBURN: { fn: summarizeTokenBurn },\n tokenBurn: { fn: summarizeTokenBurn },\n TOKENCREATE: { fn: summarizeTokenCreate },\n tokenCreation: { fn: summarizeTokenCreate },\n TOPICCREATE: { fn: summarizeConsensusCreateTopic },\n consensusCreateTopic: { fn: summarizeConsensusCreateTopic },\n CONSENSUSSUBMITMESSAGE: { fn: summarizeConsensusSubmitMessage },\n consensusSubmitMessage: { fn: summarizeConsensusSubmitMessage },\n TOPICUPDATE: { fn: summarizeConsensusUpdateTopic },\n consensusUpdateTopic: { fn: summarizeConsensusUpdateTopic },\n TOPICDELETE: { fn: summarizeConsensusDeleteTopic },\n consensusDeleteTopic: { fn: summarizeConsensusDeleteTopic },\n FILECREATE: { fn: summarizeFileCreate },\n fileCreate: { fn: summarizeFileCreate },\n FILEAPPEND: { fn: summarizeFileAppend },\n fileAppend: { fn: summarizeFileAppend },\n FILEUPDATE: { fn: summarizeFileUpdate },\n fileUpdate: { fn: summarizeFileUpdate },\n FILEDELETE: { fn: summarizeFileDelete },\n fileDelete: { fn: summarizeFileDelete },\n TOKENUPDATE: { fn: summarizeTokenUpdate },\n tokenUpdate: { fn: summarizeTokenUpdate },\n TOKENFEESCHEDULEUPDATE: { fn: summarizeTokenFeeScheduleUpdate },\n tokenFeeScheduleUpdate: { fn: summarizeTokenFeeScheduleUpdate },\n TOKENFREEZE: { fn: summarizeTokenFreeze },\n tokenFreeze: { fn: summarizeTokenFreeze },\n TOKENUNFREEZE: { fn: summarizeTokenUnfreeze },\n tokenUnfreeze: { fn: summarizeTokenUnfreeze },\n TOKENGRANTKYC: { fn: summarizeTokenGrantKyc },\n tokenGrantKyc: { fn: summarizeTokenGrantKyc },\n TOKENREVOKEKYC: { fn: summarizeTokenRevokeKyc },\n tokenRevokeKyc: { fn: summarizeTokenRevokeKyc },\n TOKENPAUSE: { fn: summarizeTokenPause },\n tokenPause: { fn: summarizeTokenPause },\n TOKENUNPAUSE: { fn: summarizeTokenUnpause },\n tokenUnpause: { fn: summarizeTokenUnpause },\n TOKENWIPE: { fn: summarizeTokenWipe },\n TOKENWIPEACCOUNT: { fn: summarizeTokenWipe },\n tokenWipe: { fn: summarizeTokenWipe },\n tokenWipeAccount: { fn: summarizeTokenWipe },\n TOKENDELETE: { fn: summarizeTokenDelete },\n tokenDelete: { fn: summarizeTokenDelete },\n TOKENASSOCIATE: { fn: summarizeTokenAssociate },\n tokenAssociate: { fn: summarizeTokenAssociate },\n TOKENDISSOCIATE: { fn: summarizeTokenDissociate },\n tokenDissociate: { fn: summarizeTokenDissociate },\n ACCOUNTDELETE: { fn: summarizeAccountDelete },\n cryptoDelete: { fn: summarizeAccountDelete },\n ACCOUNTCREATE: { fn: summarizeAccountCreate },\n cryptoCreateAccount: { fn: summarizeAccountCreate },\n ACCOUNTUPDATE: { fn: summarizeAccountUpdate },\n cryptoUpdateAccount: { fn: summarizeAccountUpdate },\n APPROVEALLOWANCE: { fn: summarizeApproveAllowance },\n cryptoApproveAllowance: { fn: summarizeApproveAllowance },\n DELETEALLOWANCE: { fn: summarizeDeleteAllowance },\n cryptoDeleteAllowance: { fn: summarizeDeleteAllowance },\n CONTRACTCREATE: { fn: summarizeContractCreate },\n contractCreate: { fn: summarizeContractCreate },\n CONTRACTUPDATE: { fn: summarizeContractUpdate },\n contractUpdate: { fn: summarizeContractUpdate },\n CONTRACTDELETE: { fn: summarizeContractDelete },\n contractDelete: { fn: summarizeContractDelete },\n TOKENAIRDROP: { fn: summarizeTokenAirdrop },\n tokenAirdrop: { fn: summarizeTokenAirdrop },\n SCHEDULECREATE: { fn: summarizeScheduleCreate },\n scheduleCreate: { fn: summarizeScheduleCreate },\n SCHEDULESIGN: { fn: summarizeScheduleSign },\n scheduleSign: { fn: summarizeScheduleSign },\n SCHEDULEDELETE: { fn: summarizeScheduleDelete },\n scheduleDelete: { fn: summarizeScheduleDelete },\n SYSTEMDELETE: { fn: summarizeSystemDelete },\n systemDelete: { fn: summarizeSystemDelete },\n SYSTEMUNDELETE: { fn: summarizeSystemUndelete },\n systemUndelete: { fn: summarizeSystemUndelete },\n FREEZE: { fn: summarizeFreeze },\n freeze: { fn: summarizeFreeze },\n ETHEREUMTRANSACTION: { fn: summarizeEthereumTransaction },\n ethereumTransaction: { fn: summarizeEthereumTransaction },\n UNCHECKEDSUBMIT: { fn: summarizeUncheckedSubmit },\n uncheckedSubmit: { fn: summarizeUncheckedSubmit },\n NODECREATE: { fn: summarizeNodeCreate },\n nodeCreate: { fn: summarizeNodeCreate },\n NODEUPDATE: { fn: summarizeNodeUpdate },\n nodeUpdate: { fn: summarizeNodeUpdate },\n NODEDELETE: { fn: summarizeNodeDelete },\n nodeDelete: { fn: summarizeNodeDelete },\n ATOMICBATCH: { fn: summarizeAtomicBatch },\n atomicBatch: { fn: summarizeAtomicBatch },\n};\n\n/**\n * Resolve a human-readable summary string for a parsed transaction using the summary registry.\n */\nexport const resolveTransactionSummary = (tx: ParsedTransaction): string => {\n const spec = transactionSummaryRegistry[tx.type];\n if (spec) {\n if (spec.fn) {\n return spec.fn(tx);\n }\n if (spec.template) {\n return renderTemplate(spec.template, tx);\n }\n }\n const hrSpec = transactionSummaryRegistry[tx.humanReadableType];\n if (hrSpec) {\n if (hrSpec.fn) {\n return hrSpec.fn(tx);\n }\n if (hrSpec.template) {\n return renderTemplate(hrSpec.template, tx);\n }\n }\n if (tx.type === 'cryptoTransfer' || tx.type === 'CRYPTOTRANSFER') {\n return summarizeCryptoTransfer(tx);\n }\n if (tx.contractCall) {\n return summarizeContractCall(tx);\n }\n if (Array.isArray(tx.tokenTransfers) && tx.tokenTransfers.length > 0) {\n return summarizeTokenTransfers(tx);\n }\n if (tx.humanReadableType && tx.humanReadableType !== 'Unknown Transaction') {\n return tx.humanReadableType;\n }\n return 'Unknown Transaction';\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es135.js","sources":["../../src/hcs-25/collectors/x402-onchain.ts"],"sourcesContent":["import {\n createPublicClient,\n fallback,\n formatUnits,\n getAddress,\n http as httpTransport,\n type Address,\n type Chain,\n} from 'viem';\nimport { base, baseSepolia } from 'viem/chains';\n\n/**\n * Aggregated on-chain x402 payment usage for a `payTo` address.\n */\nexport interface Hcs25X402UsageSummary {\n volume7dUsd: number;\n volume24hUsd: number;\n inboundTrades7d: number;\n outboundTrades7d: number;\n}\n\n/**\n * One UTC day of scanned payment activity.\n */\nexport interface Hcs25X402UsageDailyBucket {\n /** UTC day, `YYYY-MM-DD`. */\n day: string;\n inboundTrades: number;\n outboundTrades: number;\n volumeUsd: number;\n}\n\n/**\n * Incremental scan checkpoint. Stored on the subject record\n * (`metadata.x402UsageCursor`) so subsequent refreshes only scan blocks\n * produced since the last run.\n */\nexport interface Hcs25X402UsageCursor {\n network: string;\n asset: string;\n payTo: string;\n lastScannedBlock: number;\n daily: Hcs25X402UsageDailyBucket[];\n}\n\nexport interface Hcs25X402UsageStateParams {\n /** x402 network identifier (`base` or `base-sepolia`). */\n network: unknown;\n /** Payment asset contract address (e.g. USDC). */\n asset: unknown;\n /** Recipient address whose inbound/outbound transfers are scanned. */\n payTo: unknown;\n /** Previously stored `x402UsageCursor` for incremental refresh. */\n cursor?: unknown;\n}\n\nexport interface Hcs25X402OnchainUsageOptions {\n /** Rolling window in days (1–14). Default 7. */\n days?: number;\n /** Cache TTL applied to per-block/per-contract lookups. Default 30 min. */\n ttlMs?: number;\n /** Retries per RPC call with exponential backoff. Default 2. */\n maxRetries?: number;\n /** getLogs range chunk size in blocks. Default 50000. */\n chunkSizeBlocks?: number;\n /** RPC endpoint overrides per network (replaces the built-in lists). */\n rpcUrls?: Partial<Record<string, readonly string[]>>;\n}\n\nexport interface Hcs25X402UsageStateResult {\n summary: Hcs25X402UsageSummary | null;\n cursor: Hcs25X402UsageCursor | null;\n}\n\ntype X402Network = 'base' | 'base-sepolia';\n\ninterface NetworkConfig {\n chain: Chain;\n rpcUrls: string[];\n usdcAddresses: Set<string>;\n}\n\nconst TRANSFER_EVENT_ABI = [\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: true, name: 'to', type: 'address' },\n { indexed: false, name: 'value', type: 'uint256' },\n ],\n anonymous: false,\n },\n] as const;\n\nconst DECIMALS_ABI = [\n {\n type: 'function',\n name: 'decimals',\n inputs: [],\n outputs: [{ name: '', type: 'uint8' }],\n stateMutability: 'view',\n },\n] as const;\n\nconst NETWORK_CONFIG: Record<X402Network, NetworkConfig> = {\n base: {\n chain: base,\n rpcUrls: [\n 'https://mainnet.base.org',\n 'https://1rpc.io/base',\n 'https://base.llamarpc.com',\n 'https://base-rpc.publicnode.com',\n ],\n usdcAddresses: new Set(['0x833589fcd6edb6e08f4c7c32d4f71b54bda02913']),\n },\n 'base-sepolia': {\n chain: baseSepolia,\n rpcUrls: [\n 'https://sepolia.base.org',\n 'https://1rpc.io/base-sepolia',\n 'https://base-sepolia-rpc.publicnode.com',\n ],\n usdcAddresses: new Set(['0x036cbd53842c5426634e7929541ec2318f3dcf7e']),\n },\n};\n\nconst toNetwork = (value: unknown): X402Network | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const normalized = value.trim().toLowerCase();\n if (normalized === 'base') {\n return 'base';\n }\n if (normalized === 'base-sepolia' || normalized === 'basesepolia') {\n return 'base-sepolia';\n }\n return null;\n};\n\nconst sleep = (ms: number): Promise<void> =>\n new Promise(resolve => setTimeout(resolve, ms));\n\nconst round6 = (value: number): number => Math.round(value * 1e6) / 1e6;\n\nconst toDayStringUtc = (timestampMs: number): string => {\n const date = new Date(timestampMs);\n return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, '0')}-${String(\n date.getUTCDate(),\n ).padStart(2, '0')}`;\n};\n\ninterface CachedValue<T> {\n value: T;\n expiresAt: number;\n}\n\nconst decimalsCache = new Map<string, CachedValue<number>>();\nconst fromBlockCache = new Map<string, CachedValue<bigint>>();\nconst blockDayCache = new Map<string, CachedValue<string>>();\n\n/**\n * Minimal structural view of a viem `PublicClient` — keeps the scanner's\n * type surface shallow (viem's full client type is too deep for tsc) and\n * makes the client mockable in tests.\n */\nexport interface X402PublicClient {\n chain?: { id?: number } | undefined;\n getBlockNumber(): Promise<bigint>;\n getBlock(params: { blockNumber: bigint }): Promise<{ timestamp: bigint }>;\n getLogs(params: {\n address: Address;\n event: unknown;\n args?: { from?: Address; to?: Address };\n fromBlock: bigint;\n toBlock: bigint;\n }): Promise<\n readonly { blockNumber: bigint | null; args: { value?: bigint } }[]\n >;\n readContract(params: {\n address: Address;\n abi: readonly unknown[];\n functionName: string;\n }): Promise<unknown>;\n}\n\ntype PublicClient = X402PublicClient;\n\nasync function withRetries<T>(\n operation: () => Promise<T>,\n maxRetries: number,\n baseDelayMs: number,\n): Promise<T> {\n let lastError: unknown;\n for (let attempt = 0; attempt <= maxRetries; attempt += 1) {\n try {\n return await operation();\n } catch (error) {\n lastError = error;\n if (attempt >= maxRetries) {\n throw error;\n }\n await sleep(baseDelayMs * 2 ** attempt);\n }\n }\n throw lastError;\n}\n\nconst keepRollingDays = (\n buckets: Hcs25X402UsageDailyBucket[],\n keepDays: number,\n): Hcs25X402UsageDailyBucket[] => {\n const keep = new Set<string>();\n const today = toDayStringUtc(Date.now());\n const [year, month, day] = today.split('-').map(v => Number.parseInt(v, 10));\n const baseUtc = Date.UTC(year, month - 1, day);\n for (let offset = 0; offset < keepDays; offset += 1) {\n keep.add(toDayStringUtc(baseUtc - offset * 24 * 60 * 60 * 1000));\n }\n return buckets\n .filter(bucket => keep.has(bucket.day))\n .sort((a, b) => (a.day < b.day ? -1 : a.day > b.day ? 1 : 0))\n .slice(-keepDays);\n};\n\nfunction parseCursor(value: unknown): Hcs25X402UsageCursor | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return null;\n }\n const cursor = value as Partial<Hcs25X402UsageCursor>;\n if (\n typeof cursor.asset !== 'string' ||\n typeof cursor.payTo !== 'string' ||\n typeof cursor.lastScannedBlock !== 'number' ||\n !Number.isFinite(cursor.lastScannedBlock) ||\n cursor.lastScannedBlock < 0 ||\n !Array.isArray(cursor.daily)\n ) {\n return null;\n }\n const network = toNetwork(cursor.network);\n if (!network) {\n return null;\n }\n const daily = cursor.daily\n .filter(\n (entry): entry is Hcs25X402UsageDailyBucket =>\n !!entry &&\n typeof entry === 'object' &&\n typeof entry.day === 'string' &&\n typeof entry.inboundTrades === 'number' &&\n Number.isFinite(entry.inboundTrades) &&\n typeof entry.outboundTrades === 'number' &&\n Number.isFinite(entry.outboundTrades) &&\n typeof entry.volumeUsd === 'number' &&\n Number.isFinite(entry.volumeUsd),\n )\n .map(entry => ({\n day: entry.day,\n inboundTrades: Math.max(0, Math.floor(entry.inboundTrades)),\n outboundTrades: Math.max(0, Math.floor(entry.outboundTrades)),\n volumeUsd: round6(Math.max(0, entry.volumeUsd)),\n }));\n return {\n network,\n asset: cursor.asset,\n payTo: cursor.payTo,\n lastScannedBlock: Math.floor(cursor.lastScannedBlock),\n daily,\n };\n}\n\nasync function resolveDecimals(params: {\n client: PublicClient;\n asset: Address;\n isUsdc: boolean;\n cacheTtlMs: number;\n maxRetries: number;\n}): Promise<number> {\n if (params.isUsdc) {\n return 6;\n }\n const cacheKey = `${params.client.chain?.id ?? 'unknown'}:${params.asset}:decimals`;\n const cached = decimalsCache.get(cacheKey);\n if (cached && cached.expiresAt > Date.now()) {\n return cached.value;\n }\n const decimals = await withRetries(\n async () => {\n const value = await params.client.readContract({\n address: params.asset,\n abi: DECIMALS_ABI,\n functionName: 'decimals',\n });\n return Number(value);\n },\n params.maxRetries,\n 200,\n );\n const normalized = Number.isFinite(decimals)\n ? Math.max(0, Math.min(255, Math.floor(decimals)))\n : 18;\n decimalsCache.set(cacheKey, {\n value: normalized,\n expiresAt: Date.now() + params.cacheTtlMs,\n });\n return normalized;\n}\n\nasync function estimateFromBlockByTimestamp(params: {\n client: PublicClient;\n targetTimestampSec: bigint;\n cacheKey: string;\n cacheTtlMs: number;\n maxRetries: number;\n}): Promise<bigint> {\n const cached = fromBlockCache.get(params.cacheKey);\n if (cached && cached.expiresAt > Date.now()) {\n return cached.value;\n }\n\n const latestBlockNumber = await withRetries(\n () => params.client.getBlockNumber(),\n params.maxRetries,\n 200,\n );\n const latest = await withRetries(\n () => params.client.getBlock({ blockNumber: latestBlockNumber }),\n params.maxRetries,\n 200,\n );\n\n const probeDelta = 5000n;\n const probeBlockNumber =\n latestBlockNumber > probeDelta ? latestBlockNumber - probeDelta : 0n;\n const probe = await withRetries(\n () => params.client.getBlock({ blockNumber: probeBlockNumber }),\n params.maxRetries,\n 200,\n );\n\n const latestTs = BigInt(latest.timestamp);\n const probeTs = BigInt(probe.timestamp);\n const deltaSeconds = latestTs > probeTs ? latestTs - probeTs : 0n;\n const secondsPerBlock =\n deltaSeconds > 0n\n ? Number(deltaSeconds) /\n Number(latestBlockNumber - probeBlockNumber || 1n)\n : 2;\n\n const secondsAgo =\n latestTs > params.targetTimestampSec\n ? latestTs - params.targetTimestampSec\n : 0n;\n const approxBlocksAgo =\n secondsPerBlock > 0\n ? BigInt(Math.ceil(Number(secondsAgo) / secondsPerBlock))\n : 0n;\n const margin = 1000n;\n let low =\n latestBlockNumber > approxBlocksAgo + margin\n ? latestBlockNumber - approxBlocksAgo - margin\n : 0n;\n let high = latestBlockNumber;\n while (low < high) {\n const mid = (low + high) / 2n;\n const block = await withRetries(\n () => params.client.getBlock({ blockNumber: mid }),\n params.maxRetries,\n 200,\n );\n if (BigInt(block.timestamp) >= params.targetTimestampSec) {\n high = mid;\n } else {\n low = mid + 1n;\n }\n }\n\n fromBlockCache.set(params.cacheKey, {\n value: low,\n expiresAt: Date.now() + params.cacheTtlMs,\n });\n return low;\n}\n\nasync function resolveBlockDay(params: {\n client: PublicClient;\n blockNumber: bigint;\n cacheTtlMs: number;\n maxRetries: number;\n}): Promise<string> {\n const cacheKey = `${params.client.chain?.id ?? 'unknown'}:${params.blockNumber.toString()}:day`;\n const cached = blockDayCache.get(cacheKey);\n if (cached && cached.expiresAt > Date.now()) {\n return cached.value;\n }\n const block = await withRetries(\n () => params.client.getBlock({ blockNumber: params.blockNumber }),\n params.maxRetries,\n 200,\n );\n const day = toDayStringUtc(Number(block.timestamp) * 1000);\n blockDayCache.set(cacheKey, {\n value: day,\n expiresAt: Date.now() + params.cacheTtlMs,\n });\n return day;\n}\n\n/**\n * Scans ERC-20 `Transfer` events to/from `payTo` on the configured x402\n * network and aggregates daily inbound/outbound trade counts and USD\n * volume, resuming from a stored cursor when possible.\n *\n * Ported from Registry Broker's `fetchX402OnchainUsageState`: chunked\n * `getLogs` ranges, per-block day resolution caching, binary-search window\n * estimation, and retry/backoff on RPC failures.\n */\nexport async function fetchX402OnchainUsageState(\n params: Hcs25X402UsageStateParams,\n options: Hcs25X402OnchainUsageOptions = {},\n): Promise<Hcs25X402UsageStateResult> {\n const network = toNetwork(params.network);\n if (!network) {\n return { summary: null, cursor: null };\n }\n const config = NETWORK_CONFIG[network];\n\n if (typeof params.asset !== 'string' || typeof params.payTo !== 'string') {\n return { summary: null, cursor: null };\n }\n let asset: Address;\n let payTo: Address;\n try {\n asset = getAddress(params.asset.trim());\n payTo = getAddress(params.payTo.trim());\n } catch {\n return { summary: null, cursor: null };\n }\n\n const now = Date.now();\n const ttlMs =\n typeof options.ttlMs === 'number' &&\n Number.isFinite(options.ttlMs) &&\n options.ttlMs > 0\n ? options.ttlMs\n : 30 * 60 * 1000;\n const maxRetries =\n typeof options.maxRetries === 'number' &&\n Number.isFinite(options.maxRetries) &&\n options.maxRetries >= 0\n ? Math.floor(options.maxRetries)\n : 2;\n const chunkSizeBlocks =\n typeof options.chunkSizeBlocks === 'number' &&\n Number.isFinite(options.chunkSizeBlocks) &&\n options.chunkSizeBlocks > 0\n ? BigInt(Math.floor(options.chunkSizeBlocks))\n : 50_000n;\n\n const rpcUrls = options.rpcUrls?.[network]?.length\n ? [...options.rpcUrls[network]!]\n : config.rpcUrls;\n const transports = rpcUrls.map(url => httpTransport(url));\n if (transports.length === 0) {\n return { summary: null, cursor: null };\n }\n const client = createPublicClient({\n chain: config.chain,\n transport: transports.length > 1 ? fallback(transports) : transports[0],\n }) as unknown as PublicClient;\n\n const assetLower = asset.toLowerCase();\n const payToLower = payTo.toLowerCase();\n const decimals = await resolveDecimals({\n client,\n asset,\n isUsdc: config.usdcAddresses.has(assetLower),\n cacheTtlMs: ttlMs,\n maxRetries,\n });\n\n const days =\n typeof options.days === 'number' &&\n Number.isFinite(options.days) &&\n options.days > 0\n ? Math.min(14, Math.max(1, Math.floor(options.days)))\n : 7;\n\n const targetTimestampSec = BigInt(\n Math.floor((now - days * 24 * 60 * 60 * 1000) / 1000),\n );\n const windowFromBlock = await estimateFromBlockByTimestamp({\n client,\n targetTimestampSec,\n cacheKey: `${network}:${assetLower}:${payToLower}:fromBlock:${days}`,\n cacheTtlMs: ttlMs,\n maxRetries,\n });\n const toBlock = await client.getBlockNumber();\n\n const parsedCursor = parseCursor(params.cursor);\n const hasMatchingCursor =\n parsedCursor !== null &&\n parsedCursor.network === network &&\n parsedCursor.asset.toLowerCase() === assetLower &&\n parsedCursor.payTo.toLowerCase() === payToLower;\n\n const cursorFromBlock =\n hasMatchingCursor && parsedCursor\n ? BigInt(Math.max(0, parsedCursor.lastScannedBlock + 1))\n : windowFromBlock;\n const fromBlock =\n cursorFromBlock < windowFromBlock ? windowFromBlock : cursorFromBlock;\n const shouldResync = !hasMatchingCursor || cursorFromBlock < windowFromBlock;\n\n const bucketsByDay = new Map<string, Hcs25X402UsageDailyBucket>();\n if (!shouldResync && parsedCursor) {\n for (const bucket of keepRollingDays(parsedCursor.daily, days)) {\n bucketsByDay.set(bucket.day, { ...bucket });\n }\n }\n const ensureBucket = (day: string): Hcs25X402UsageDailyBucket => {\n const existing = bucketsByDay.get(day);\n if (existing) {\n return existing;\n }\n const created: Hcs25X402UsageDailyBucket = {\n day,\n inboundTrades: 0,\n outboundTrades: 0,\n volumeUsd: 0,\n };\n bucketsByDay.set(day, created);\n return created;\n };\n\n const aggregateLogs = async (\n direction: 'inbound' | 'outbound',\n ): Promise<void> => {\n if (toBlock < fromBlock) {\n return;\n }\n for (let start = fromBlock; start <= toBlock; ) {\n const end =\n start + chunkSizeBlocks - 1n <= toBlock\n ? start + chunkSizeBlocks - 1n\n : toBlock;\n const args =\n direction === 'inbound'\n ? ({ to: payTo } as const)\n : ({ from: payTo } as const);\n const logs = await withRetries(\n () =>\n client.getLogs({\n address: asset,\n event: TRANSFER_EVENT_ABI[0],\n args,\n fromBlock: start,\n toBlock: end,\n }),\n maxRetries,\n 200,\n );\n for (const log of logs) {\n const blockNumber = log.blockNumber ?? null;\n if (!blockNumber) {\n continue;\n }\n const value = (log.args as { value?: bigint }).value ?? 0n;\n if (value <= 0n) {\n continue;\n }\n const day = await resolveBlockDay({\n client,\n blockNumber,\n cacheTtlMs: ttlMs,\n maxRetries,\n });\n const bucket = ensureBucket(day);\n if (direction === 'inbound') {\n bucket.inboundTrades += 1;\n } else {\n bucket.outboundTrades += 1;\n }\n const amount = Number.parseFloat(formatUnits(value, decimals));\n if (Number.isFinite(amount) && amount > 0) {\n bucket.volumeUsd = round6(bucket.volumeUsd + amount);\n }\n }\n start = end + 1n;\n }\n };\n\n await aggregateLogs('inbound');\n await aggregateLogs('outbound');\n\n const mergedDaily = keepRollingDays(Array.from(bucketsByDay.values()), days);\n const inboundTrades7d = mergedDaily.reduce(\n (sum, bucket) => sum + bucket.inboundTrades,\n 0,\n );\n const outboundTrades7d = mergedDaily.reduce(\n (sum, bucket) => sum + bucket.outboundTrades,\n 0,\n );\n const volume7dUsd = round6(\n mergedDaily.reduce((sum, bucket) => sum + bucket.volumeUsd, 0),\n );\n const today = toDayStringUtc(now);\n const volume24hUsd = round6(\n mergedDaily\n .filter(bucket => bucket.day === today)\n .reduce((sum, bucket) => sum + bucket.volumeUsd, 0),\n );\n\n const cursor: Hcs25X402UsageCursor = {\n network,\n asset: assetLower,\n payTo: payToLower,\n lastScannedBlock: Number(toBlock),\n daily: mergedDaily,\n };\n\n if (inboundTrades7d + outboundTrades7d <= 0) {\n return { summary: null, cursor };\n }\n\n return {\n summary: {\n volume7dUsd,\n volume24hUsd,\n inboundTrades7d,\n outboundTrades7d,\n },\n cursor,\n };\n}\n"],"names":["httpTransport"],"mappings":";;AAkFA,MAAM,qBAAqB;AAAA,EACzB;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,EAAE,SAAS,MAAM,MAAM,QAAQ,MAAM,UAAA;AAAA,MACrC,EAAE,SAAS,MAAM,MAAM,MAAM,MAAM,UAAA;AAAA,MACnC,EAAE,SAAS,OAAO,MAAM,SAAS,MAAM,UAAA;AAAA,IAAU;AAAA,IAEnD,WAAW;AAAA,EAAA;AAEf;AAEA,MAAM,eAAe;AAAA,EACnB;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ,CAAA;AAAA,IACR,SAAS,CAAC,EAAE,MAAM,IAAI,MAAM,SAAS;AAAA,IACrC,iBAAiB;AAAA,EAAA;AAErB;AAEA,MAAM,iBAAqD;AAAA,EACzD,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,eAAe,oBAAI,IAAI,CAAC,4CAA4C,CAAC;AAAA,EAAA;AAAA,EAEvE,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,eAAe,oBAAI,IAAI,CAAC,4CAA4C,CAAC;AAAA,EAAA;AAEzE;AAEA,MAAM,YAAY,CAAC,UAAuC;AACxD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,QAAM,aAAa,MAAM,KAAA,EAAO,YAAA;AAChC,MAAI,eAAe,QAAQ;AACzB,WAAO;AAAA,EACT;AACA,MAAI,eAAe,kBAAkB,eAAe,eAAe;AACjE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,QAAQ,CAAC,OACb,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,EAAE,CAAC;AAEhD,MAAM,SAAS,CAAC,UAA0B,KAAK,MAAM,QAAQ,GAAG,IAAI;AAEpE,MAAM,iBAAiB,CAAC,gBAAgC;AACtD,QAAM,OAAO,IAAI,KAAK,WAAW;AACjC,SAAO,GAAG,KAAK,eAAA,CAAgB,IAAI,OAAO,KAAK,YAAA,IAAgB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI;AAAA,IACpF,KAAK,WAAA;AAAA,EAAW,EAChB,SAAS,GAAG,GAAG,CAAC;AACpB;AAOA,MAAM,oCAAoB,IAAA;AAC1B,MAAM,qCAAqB,IAAA;AAC3B,MAAM,oCAAoB,IAAA;AA6B1B,eAAe,YACb,WACA,YACA,aACY;AACZ,MAAI;AACJ,WAAS,UAAU,GAAG,WAAW,YAAY,WAAW,GAAG;AACzD,QAAI;AACF,aAAO,MAAM,UAAA;AAAA,IACf,SAAS,OAAO;AACd,kBAAY;AACZ,UAAI,WAAW,YAAY;AACzB,cAAM;AAAA,MACR;AACA,YAAM,MAAM,cAAc,KAAK,OAAO;AAAA,IACxC;AAAA,EACF;AACA,QAAM;AACR;AAEA,MAAM,kBAAkB,CACtB,SACA,aACgC;AAChC,QAAM,2BAAW,IAAA;AACjB,QAAM,QAAQ,eAAe,KAAK,IAAA,CAAK;AACvC,QAAM,CAAC,MAAM,OAAO,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,CAAA,MAAK,OAAO,SAAS,GAAG,EAAE,CAAC;AAC3E,QAAM,UAAU,KAAK,IAAI,MAAM,QAAQ,GAAG,GAAG;AAC7C,WAAS,SAAS,GAAG,SAAS,UAAU,UAAU,GAAG;AACnD,SAAK,IAAI,eAAe,UAAU,SAAS,KAAK,KAAK,KAAK,GAAI,CAAC;AAAA,EACjE;AACA,SAAO,QACJ,OAAO,CAAA,WAAU,KAAK,IAAI,OAAO,GAAG,CAAC,EACrC,KAAK,CAAC,GAAG,MAAO,EAAE,MAAM,EAAE,MAAM,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,CAAE,EAC3D,MAAM,CAAC,QAAQ;AACpB;AAEA,SAAS,YAAY,OAA6C;AAChE,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AAC/D,WAAO;AAAA,EACT;AACA,QAAM,SAAS;AACf,MACE,OAAO,OAAO,UAAU,YACxB,OAAO,OAAO,UAAU,YACxB,OAAO,OAAO,qBAAqB,YACnC,CAAC,OAAO,SAAS,OAAO,gBAAgB,KACxC,OAAO,mBAAmB,KAC1B,CAAC,MAAM,QAAQ,OAAO,KAAK,GAC3B;AACA,WAAO;AAAA,EACT;AACA,QAAM,UAAU,UAAU,OAAO,OAAO;AACxC,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,OAAO,MAClB;AAAA,IACC,CAAC,UACC,CAAC,CAAC,SACF,OAAO,UAAU,YACjB,OAAO,MAAM,QAAQ,YACrB,OAAO,MAAM,kBAAkB,YAC/B,OAAO,SAAS,MAAM,aAAa,KACnC,OAAO,MAAM,mBAAmB,YAChC,OAAO,SAAS,MAAM,cAAc,KACpC,OAAO,MAAM,cAAc,YAC3B,OAAO,SAAS,MAAM,SAAS;AAAA,EAAA,EAElC,IAAI,CAAA,WAAU;AAAA,IACb,KAAK,MAAM;AAAA,IACX,eAAe,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,aAAa,CAAC;AAAA,IAC1D,gBAAgB,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,cAAc,CAAC;AAAA,IAC5D,WAAW,OAAO,KAAK,IAAI,GAAG,MAAM,SAAS,CAAC;AAAA,EAAA,EAC9C;AACJ,SAAO;AAAA,IACL;AAAA,IACA,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,IACd,kBAAkB,KAAK,MAAM,OAAO,gBAAgB;AAAA,IACpD;AAAA,EAAA;AAEJ;AAEA,eAAe,gBAAgB,QAMX;AAClB,MAAI,OAAO,QAAQ;AACjB,WAAO;AAAA,EACT;AACA,QAAM,WAAW,GAAG,OAAO,OAAO,OAAO,MAAM,SAAS,IAAI,OAAO,KAAK;AACxE,QAAM,SAAS,cAAc,IAAI,QAAQ;AACzC,MAAI,UAAU,OAAO,YAAY,KAAK,OAAO;AAC3C,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,WAAW,MAAM;AAAA,IACrB,YAAY;AACV,YAAM,QAAQ,MAAM,OAAO,OAAO,aAAa;AAAA,QAC7C,SAAS,OAAO;AAAA,QAChB,KAAK;AAAA,QACL,cAAc;AAAA,MAAA,CACf;AACD,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EAAA;AAEF,QAAM,aAAa,OAAO,SAAS,QAAQ,IACvC,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,QAAQ,CAAC,CAAC,IAC/C;AACJ,gBAAc,IAAI,UAAU;AAAA,IAC1B,OAAO;AAAA,IACP,WAAW,KAAK,IAAA,IAAQ,OAAO;AAAA,EAAA,CAChC;AACD,SAAO;AACT;AAEA,eAAe,6BAA6B,QAMxB;AAClB,QAAM,SAAS,eAAe,IAAI,OAAO,QAAQ;AACjD,MAAI,UAAU,OAAO,YAAY,KAAK,OAAO;AAC3C,WAAO,OAAO;AAAA,EAChB;AAEA,QAAM,oBAAoB,MAAM;AAAA,IAC9B,MAAM,OAAO,OAAO,eAAA;AAAA,IACpB,OAAO;AAAA,IACP;AAAA,EAAA;AAEF,QAAM,SAAS,MAAM;AAAA,IACnB,MAAM,OAAO,OAAO,SAAS,EAAE,aAAa,mBAAmB;AAAA,IAC/D,OAAO;AAAA,IACP;AAAA,EAAA;AAGF,QAAM,aAAa;AACnB,QAAM,mBACJ,oBAAoB,aAAa,oBAAoB,aAAa;AACpE,QAAM,QAAQ,MAAM;AAAA,IAClB,MAAM,OAAO,OAAO,SAAS,EAAE,aAAa,kBAAkB;AAAA,IAC9D,OAAO;AAAA,IACP;AAAA,EAAA;AAGF,QAAM,WAAW,OAAO,OAAO,SAAS;AACxC,QAAM,UAAU,OAAO,MAAM,SAAS;AACtC,QAAM,eAAe,WAAW,UAAU,WAAW,UAAU;AAC/D,QAAM,kBACJ,eAAe,KACX,OAAO,YAAY,IACnB,OAAO,oBAAoB,oBAAoB,EAAE,IACjD;AAEN,QAAM,aACJ,WAAW,OAAO,qBACd,WAAW,OAAO,qBAClB;AACN,QAAM,kBACJ,kBAAkB,IACd,OAAO,KAAK,KAAK,OAAO,UAAU,IAAI,eAAe,CAAC,IACtD;AACN,QAAM,SAAS;AACf,MAAI,MACF,oBAAoB,kBAAkB,SAClC,oBAAoB,kBAAkB,SACtC;AACN,MAAI,OAAO;AACX,SAAO,MAAM,MAAM;AACjB,UAAM,OAAO,MAAM,QAAQ;AAC3B,UAAM,QAAQ,MAAM;AAAA,MAClB,MAAM,OAAO,OAAO,SAAS,EAAE,aAAa,KAAK;AAAA,MACjD,OAAO;AAAA,MACP;AAAA,IAAA;AAEF,QAAI,OAAO,MAAM,SAAS,KAAK,OAAO,oBAAoB;AACxD,aAAO;AAAA,IACT,OAAO;AACL,YAAM,MAAM;AAAA,IACd;AAAA,EACF;AAEA,iBAAe,IAAI,OAAO,UAAU;AAAA,IAClC,OAAO;AAAA,IACP,WAAW,KAAK,IAAA,IAAQ,OAAO;AAAA,EAAA,CAChC;AACD,SAAO;AACT;AAEA,eAAe,gBAAgB,QAKX;AAClB,QAAM,WAAW,GAAG,OAAO,OAAO,OAAO,MAAM,SAAS,IAAI,OAAO,YAAY,SAAA,CAAU;AACzF,QAAM,SAAS,cAAc,IAAI,QAAQ;AACzC,MAAI,UAAU,OAAO,YAAY,KAAK,OAAO;AAC3C,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,QAAQ,MAAM;AAAA,IAClB,MAAM,OAAO,OAAO,SAAS,EAAE,aAAa,OAAO,aAAa;AAAA,IAChE,OAAO;AAAA,IACP;AAAA,EAAA;AAEF,QAAM,MAAM,eAAe,OAAO,MAAM,SAAS,IAAI,GAAI;AACzD,gBAAc,IAAI,UAAU;AAAA,IAC1B,OAAO;AAAA,IACP,WAAW,KAAK,IAAA,IAAQ,OAAO;AAAA,EAAA,CAChC;AACD,SAAO;AACT;AAWA,eAAsB,2BACpB,QACA,UAAwC,IACJ;AACpC,QAAM,UAAU,UAAU,OAAO,OAAO;AACxC,MAAI,CAAC,SAAS;AACZ,WAAO,EAAE,SAAS,MAAM,QAAQ,KAAA;AAAA,EAClC;AACA,QAAM,SAAS,eAAe,OAAO;AAErC,MAAI,OAAO,OAAO,UAAU,YAAY,OAAO,OAAO,UAAU,UAAU;AACxE,WAAO,EAAE,SAAS,MAAM,QAAQ,KAAA;AAAA,EAClC;AACA,MAAI;AACJ,MAAI;AACJ,MAAI;AACF,YAAQ,WAAW,OAAO,MAAM,KAAA,CAAM;AACtC,YAAQ,WAAW,OAAO,MAAM,KAAA,CAAM;AAAA,EACxC,QAAQ;AACN,WAAO,EAAE,SAAS,MAAM,QAAQ,KAAA;AAAA,EAClC;AAEA,QAAM,MAAM,KAAK,IAAA;AACjB,QAAM,QACJ,OAAO,QAAQ,UAAU,YACzB,OAAO,SAAS,QAAQ,KAAK,KAC7B,QAAQ,QAAQ,IACZ,QAAQ,QACR,KAAK,KAAK;AAChB,QAAM,aACJ,OAAO,QAAQ,eAAe,YAC9B,OAAO,SAAS,QAAQ,UAAU,KAClC,QAAQ,cAAc,IAClB,KAAK,MAAM,QAAQ,UAAU,IAC7B;AACN,QAAM,kBACJ,OAAO,QAAQ,oBAAoB,YACnC,OAAO,SAAS,QAAQ,eAAe,KACvC,QAAQ,kBAAkB,IACtB,OAAO,KAAK,MAAM,QAAQ,eAAe,CAAC,IAC1C;AAEN,QAAM,UAAU,QAAQ,UAAU,OAAO,GAAG,SACxC,CAAC,GAAG,QAAQ,QAAQ,OAAO,CAAE,IAC7B,OAAO;AACX,QAAM,aAAa,QAAQ,IAAI,CAAA,QAAOA,KAAc,GAAG,CAAC;AACxD,MAAI,WAAW,WAAW,GAAG;AAC3B,WAAO,EAAE,SAAS,MAAM,QAAQ,KAAA;AAAA,EAClC;AACA,QAAM,SAAS,mBAAmB;AAAA,IAChC,OAAO,OAAO;AAAA,IACd,WAAW,WAAW,SAAS,IAAI,SAAS,UAAU,IAAI,WAAW,CAAC;AAAA,EAAA,CACvE;AAED,QAAM,aAAa,MAAM,YAAA;AACzB,QAAM,aAAa,MAAM,YAAA;AACzB,QAAM,WAAW,MAAM,gBAAgB;AAAA,IACrC;AAAA,IACA;AAAA,IACA,QAAQ,OAAO,cAAc,IAAI,UAAU;AAAA,IAC3C,YAAY;AAAA,IACZ;AAAA,EAAA,CACD;AAED,QAAM,OACJ,OAAO,QAAQ,SAAS,YACxB,OAAO,SAAS,QAAQ,IAAI,KAC5B,QAAQ,OAAO,IACX,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,IAClD;AAEN,QAAM,qBAAqB;AAAA,IACzB,KAAK,OAAO,MAAM,OAAO,KAAK,KAAK,KAAK,OAAQ,GAAI;AAAA,EAAA;AAEtD,QAAM,kBAAkB,MAAM,6BAA6B;AAAA,IACzD;AAAA,IACA;AAAA,IACA,UAAU,GAAG,OAAO,IAAI,UAAU,IAAI,UAAU,cAAc,IAAI;AAAA,IAClE,YAAY;AAAA,IACZ;AAAA,EAAA,CACD;AACD,QAAM,UAAU,MAAM,OAAO,eAAA;AAE7B,QAAM,eAAe,YAAY,OAAO,MAAM;AAC9C,QAAM,oBACJ,iBAAiB,QACjB,aAAa,YAAY,WACzB,aAAa,MAAM,YAAA,MAAkB,cACrC,aAAa,MAAM,kBAAkB;AAEvC,QAAM,kBACJ,qBAAqB,eACjB,OAAO,KAAK,IAAI,GAAG,aAAa,mBAAmB,CAAC,CAAC,IACrD;AACN,QAAM,YACJ,kBAAkB,kBAAkB,kBAAkB;AACxD,QAAM,eAAe,CAAC,qBAAqB,kBAAkB;AAE7D,QAAM,mCAAmB,IAAA;AACzB,MAAI,CAAC,gBAAgB,cAAc;AACjC,eAAW,UAAU,gBAAgB,aAAa,OAAO,IAAI,GAAG;AAC9D,mBAAa,IAAI,OAAO,KAAK,EAAE,GAAG,QAAQ;AAAA,IAC5C;AAAA,EACF;AACA,QAAM,eAAe,CAAC,QAA2C;AAC/D,UAAM,WAAW,aAAa,IAAI,GAAG;AACrC,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AACA,UAAM,UAAqC;AAAA,MACzC;AAAA,MACA,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,WAAW;AAAA,IAAA;AAEb,iBAAa,IAAI,KAAK,OAAO;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,OACpB,cACkB;AAClB,QAAI,UAAU,WAAW;AACvB;AAAA,IACF;AACA,aAAS,QAAQ,WAAW,SAAS,WAAW;AAC9C,YAAM,MACJ,QAAQ,kBAAkB,MAAM,UAC5B,QAAQ,kBAAkB,KAC1B;AACN,YAAM,OACJ,cAAc,YACT,EAAE,IAAI,MAAA,IACN,EAAE,MAAM,MAAA;AACf,YAAM,OAAO,MAAM;AAAA,QACjB,MACE,OAAO,QAAQ;AAAA,UACb,SAAS;AAAA,UACT,OAAO,mBAAmB,CAAC;AAAA,UAC3B;AAAA,UACA,WAAW;AAAA,UACX,SAAS;AAAA,QAAA,CACV;AAAA,QACH;AAAA,QACA;AAAA,MAAA;AAEF,iBAAW,OAAO,MAAM;AACtB,cAAM,cAAc,IAAI,eAAe;AACvC,YAAI,CAAC,aAAa;AAChB;AAAA,QACF;AACA,cAAM,QAAS,IAAI,KAA4B,SAAS;AACxD,YAAI,SAAS,IAAI;AACf;AAAA,QACF;AACA,cAAM,MAAM,MAAM,gBAAgB;AAAA,UAChC;AAAA,UACA;AAAA,UACA,YAAY;AAAA,UACZ;AAAA,QAAA,CACD;AACD,cAAM,SAAS,aAAa,GAAG;AAC/B,YAAI,cAAc,WAAW;AAC3B,iBAAO,iBAAiB;AAAA,QAC1B,OAAO;AACL,iBAAO,kBAAkB;AAAA,QAC3B;AACA,cAAM,SAAS,OAAO,WAAW,YAAY,OAAO,QAAQ,CAAC;AAC7D,YAAI,OAAO,SAAS,MAAM,KAAK,SAAS,GAAG;AACzC,iBAAO,YAAY,OAAO,OAAO,YAAY,MAAM;AAAA,QACrD;AAAA,MACF;AACA,cAAQ,MAAM;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,cAAc,SAAS;AAC7B,QAAM,cAAc,UAAU;AAE9B,QAAM,cAAc,gBAAgB,MAAM,KAAK,aAAa,OAAA,CAAQ,GAAG,IAAI;AAC3E,QAAM,kBAAkB,YAAY;AAAA,IAClC,CAAC,KAAK,WAAW,MAAM,OAAO;AAAA,IAC9B;AAAA,EAAA;AAEF,QAAM,mBAAmB,YAAY;AAAA,IACnC,CAAC,KAAK,WAAW,MAAM,OAAO;AAAA,IAC9B;AAAA,EAAA;AAEF,QAAM,cAAc;AAAA,IAClB,YAAY,OAAO,CAAC,KAAK,WAAW,MAAM,OAAO,WAAW,CAAC;AAAA,EAAA;AAE/D,QAAM,QAAQ,eAAe,GAAG;AAChC,QAAM,eAAe;AAAA,IACnB,YACG,OAAO,CAAA,WAAU,OAAO,QAAQ,KAAK,EACrC,OAAO,CAAC,KAAK,WAAW,MAAM,OAAO,WAAW,CAAC;AAAA,EAAA;AAGtD,QAAM,SAA+B;AAAA,IACnC;AAAA,IACA,OAAO;AAAA,IACP,OAAO;AAAA,IACP,kBAAkB,OAAO,OAAO;AAAA,IAChC,OAAO;AAAA,EAAA;AAGT,MAAI,kBAAkB,oBAAoB,GAAG;AAC3C,WAAO,EAAE,SAAS,MAAM,OAAA;AAAA,EAC1B;AAEA,SAAO;AAAA,IACL,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,EAAA;AAEJ;"}