@hashgraphonline/standards-sdk 0.1.185 → 0.1.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +3 -0
  2. package/dist/browser/hcs-25/adapters/acp.d.ts +20 -0
  3. package/dist/browser/hcs-25/adapters/acp.d.ts.map +1 -0
  4. package/dist/browser/hcs-25/adapters/agentverse.d.ts +34 -0
  5. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -0
  6. package/dist/browser/hcs-25/adapters/availability.d.ts +22 -0
  7. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -0
  8. package/dist/browser/hcs-25/adapters/connectivity.d.ts +25 -0
  9. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -0
  10. package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  11. package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  12. package/dist/browser/hcs-25/adapters/ethos.d.ts +21 -0
  13. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -0
  14. package/dist/browser/hcs-25/adapters/index.d.ts +21 -0
  15. package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -0
  16. package/dist/browser/hcs-25/adapters/model-evals.d.ts +61 -0
  17. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -0
  18. package/dist/browser/hcs-25/adapters/normalization.d.ts +20 -0
  19. package/dist/browser/hcs-25/adapters/normalization.d.ts.map +1 -0
  20. package/dist/browser/hcs-25/adapters/oss-popularity.d.ts +22 -0
  21. package/dist/browser/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  22. package/dist/browser/hcs-25/adapters/output-verification.d.ts +27 -0
  23. package/dist/browser/hcs-25/adapters/output-verification.d.ts.map +1 -0
  24. package/dist/browser/hcs-25/adapters/simple-evals.d.ts +14 -0
  25. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  26. package/dist/browser/hcs-25/adapters/x402.d.ts +18 -0
  27. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -0
  28. package/dist/browser/hcs-25/identifiers.d.ts +2 -2
  29. package/dist/browser/hcs-25/identifiers.d.ts.map +1 -1
  30. package/dist/browser/hcs-25/index.d.ts +2 -0
  31. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  32. package/dist/browser/hcs-25/scoring.d.ts.map +1 -1
  33. package/dist/browser/hcs-25/signals/index.d.ts +20 -0
  34. package/dist/browser/hcs-25/signals/index.d.ts.map +1 -0
  35. package/dist/browser/hcs-25/signals/marketplace.d.ts +296 -0
  36. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -0
  37. package/dist/browser/hcs-25/signals/metadata.d.ts +40 -0
  38. package/dist/browser/hcs-25/signals/metadata.d.ts.map +1 -0
  39. package/dist/browser/hcs-25/signals/model-evals.d.ts +127 -0
  40. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -0
  41. package/dist/browser/hcs-25/signals/operational.d.ts +757 -0
  42. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -0
  43. package/dist/browser/hcs-25/signals/simple-evals.d.ts +156 -0
  44. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -0
  45. package/dist/browser-root/hcs-25/adapters/acp.d.ts +20 -0
  46. package/dist/browser-root/hcs-25/adapters/acp.d.ts.map +1 -0
  47. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts +34 -0
  48. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -0
  49. package/dist/browser-root/hcs-25/adapters/availability.d.ts +22 -0
  50. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -0
  51. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts +25 -0
  52. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -0
  53. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  54. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  55. package/dist/browser-root/hcs-25/adapters/ethos.d.ts +21 -0
  56. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -0
  57. package/dist/browser-root/hcs-25/adapters/index.d.ts +21 -0
  58. package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -0
  59. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts +61 -0
  60. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -0
  61. package/dist/browser-root/hcs-25/adapters/normalization.d.ts +20 -0
  62. package/dist/browser-root/hcs-25/adapters/normalization.d.ts.map +1 -0
  63. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts +22 -0
  64. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  65. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts +27 -0
  66. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts.map +1 -0
  67. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts +14 -0
  68. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  69. package/dist/browser-root/hcs-25/adapters/x402.d.ts +18 -0
  70. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -0
  71. package/dist/browser-root/hcs-25/identifiers.d.ts +2 -2
  72. package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -1
  73. package/dist/browser-root/hcs-25/index.d.ts +2 -0
  74. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  75. package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -1
  76. package/dist/browser-root/hcs-25/signals/index.d.ts +20 -0
  77. package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -0
  78. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +296 -0
  79. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -0
  80. package/dist/browser-root/hcs-25/signals/metadata.d.ts +40 -0
  81. package/dist/browser-root/hcs-25/signals/metadata.d.ts.map +1 -0
  82. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +127 -0
  83. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -0
  84. package/dist/browser-root/hcs-25/signals/operational.d.ts +757 -0
  85. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -0
  86. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +156 -0
  87. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -0
  88. package/dist/cjs/hcs-25/adapters/acp.d.ts +20 -0
  89. package/dist/cjs/hcs-25/adapters/acp.d.ts.map +1 -0
  90. package/dist/cjs/hcs-25/adapters/agentverse.d.ts +34 -0
  91. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -0
  92. package/dist/cjs/hcs-25/adapters/availability.d.ts +22 -0
  93. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -0
  94. package/dist/cjs/hcs-25/adapters/connectivity.d.ts +25 -0
  95. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -0
  96. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  97. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  98. package/dist/cjs/hcs-25/adapters/ethos.d.ts +21 -0
  99. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -0
  100. package/dist/cjs/hcs-25/adapters/index.d.ts +21 -0
  101. package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -0
  102. package/dist/cjs/hcs-25/adapters/model-evals.d.ts +61 -0
  103. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -0
  104. package/dist/cjs/hcs-25/adapters/normalization.d.ts +20 -0
  105. package/dist/cjs/hcs-25/adapters/normalization.d.ts.map +1 -0
  106. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts +22 -0
  107. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  108. package/dist/cjs/hcs-25/adapters/output-verification.d.ts +27 -0
  109. package/dist/cjs/hcs-25/adapters/output-verification.d.ts.map +1 -0
  110. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts +14 -0
  111. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  112. package/dist/cjs/hcs-25/adapters/x402.d.ts +18 -0
  113. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -0
  114. package/dist/cjs/hcs-25/identifiers.d.ts +2 -2
  115. package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -1
  116. package/dist/cjs/hcs-25/index.d.ts +2 -0
  117. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  118. package/dist/cjs/hcs-25/scoring.d.ts.map +1 -1
  119. package/dist/cjs/hcs-25/signals/index.d.ts +20 -0
  120. package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -0
  121. package/dist/cjs/hcs-25/signals/marketplace.d.ts +296 -0
  122. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -0
  123. package/dist/cjs/hcs-25/signals/metadata.d.ts +40 -0
  124. package/dist/cjs/hcs-25/signals/metadata.d.ts.map +1 -0
  125. package/dist/cjs/hcs-25/signals/model-evals.d.ts +127 -0
  126. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -0
  127. package/dist/cjs/hcs-25/signals/operational.d.ts +757 -0
  128. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -0
  129. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +156 -0
  130. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -0
  131. package/dist/cjs/standards-sdk.cjs +2 -2
  132. package/dist/cjs/standards-sdk.cjs.map +1 -1
  133. package/dist/es/hcs-25/adapters/acp.d.ts +20 -0
  134. package/dist/es/hcs-25/adapters/acp.d.ts.map +1 -0
  135. package/dist/es/hcs-25/adapters/agentverse.d.ts +34 -0
  136. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -0
  137. package/dist/es/hcs-25/adapters/availability.d.ts +22 -0
  138. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -0
  139. package/dist/es/hcs-25/adapters/connectivity.d.ts +25 -0
  140. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -0
  141. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  142. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  143. package/dist/es/hcs-25/adapters/ethos.d.ts +21 -0
  144. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -0
  145. package/dist/es/hcs-25/adapters/index.d.ts +21 -0
  146. package/dist/es/hcs-25/adapters/index.d.ts.map +1 -0
  147. package/dist/es/hcs-25/adapters/model-evals.d.ts +61 -0
  148. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -0
  149. package/dist/es/hcs-25/adapters/normalization.d.ts +20 -0
  150. package/dist/es/hcs-25/adapters/normalization.d.ts.map +1 -0
  151. package/dist/es/hcs-25/adapters/oss-popularity.d.ts +22 -0
  152. package/dist/es/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  153. package/dist/es/hcs-25/adapters/output-verification.d.ts +27 -0
  154. package/dist/es/hcs-25/adapters/output-verification.d.ts.map +1 -0
  155. package/dist/es/hcs-25/adapters/simple-evals.d.ts +14 -0
  156. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  157. package/dist/es/hcs-25/adapters/x402.d.ts +18 -0
  158. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -0
  159. package/dist/es/hcs-25/identifiers.d.ts +2 -2
  160. package/dist/es/hcs-25/identifiers.d.ts.map +1 -1
  161. package/dist/es/hcs-25/index.d.ts +2 -0
  162. package/dist/es/hcs-25/index.d.ts.map +1 -1
  163. package/dist/es/hcs-25/scoring.d.ts.map +1 -1
  164. package/dist/es/hcs-25/signals/index.d.ts +20 -0
  165. package/dist/es/hcs-25/signals/index.d.ts.map +1 -0
  166. package/dist/es/hcs-25/signals/marketplace.d.ts +296 -0
  167. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -0
  168. package/dist/es/hcs-25/signals/metadata.d.ts +40 -0
  169. package/dist/es/hcs-25/signals/metadata.d.ts.map +1 -0
  170. package/dist/es/hcs-25/signals/model-evals.d.ts +127 -0
  171. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -0
  172. package/dist/es/hcs-25/signals/operational.d.ts +757 -0
  173. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -0
  174. package/dist/es/hcs-25/signals/simple-evals.d.ts +156 -0
  175. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -0
  176. package/dist/es/standards-sdk.es.js +109 -40
  177. package/dist/es/standards-sdk.es.js.map +1 -1
  178. package/dist/es/standards-sdk.es101.js +2 -2
  179. package/dist/es/standards-sdk.es103.js +2 -2
  180. package/dist/es/standards-sdk.es104.js +1 -1
  181. package/dist/es/standards-sdk.es106.js +1 -1
  182. package/dist/es/standards-sdk.es108.js +2 -2
  183. package/dist/es/standards-sdk.es11.js +1 -1
  184. package/dist/es/standards-sdk.es110.js +1 -1
  185. package/dist/es/standards-sdk.es111.js +2 -2
  186. package/dist/es/standards-sdk.es115.js +3 -3
  187. package/dist/es/standards-sdk.es116.js +4 -4
  188. package/dist/es/standards-sdk.es117.js +1 -1
  189. package/dist/es/standards-sdk.es117.js.map +1 -1
  190. package/dist/es/standards-sdk.es119.js +10 -9
  191. package/dist/es/standards-sdk.es119.js.map +1 -1
  192. package/dist/es/standards-sdk.es12.js +1 -1
  193. package/dist/es/standards-sdk.es120.js +225 -251
  194. package/dist/es/standards-sdk.es120.js.map +1 -1
  195. package/dist/es/standards-sdk.es121.js +50 -477
  196. package/dist/es/standards-sdk.es121.js.map +1 -1
  197. package/dist/es/standards-sdk.es122.js +244 -97
  198. package/dist/es/standards-sdk.es122.js.map +1 -1
  199. package/dist/es/standards-sdk.es123.js +451 -133
  200. package/dist/es/standards-sdk.es123.js.map +1 -1
  201. package/dist/es/standards-sdk.es124.js +98 -27
  202. package/dist/es/standards-sdk.es124.js.map +1 -1
  203. package/dist/es/standards-sdk.es125.js +156 -8
  204. package/dist/es/standards-sdk.es125.js.map +1 -1
  205. package/dist/es/standards-sdk.es126.js +29 -177
  206. package/dist/es/standards-sdk.es126.js.map +1 -1
  207. package/dist/es/standards-sdk.es127.js +10 -27
  208. package/dist/es/standards-sdk.es127.js.map +1 -1
  209. package/dist/es/standards-sdk.es128.js +179 -19
  210. package/dist/es/standards-sdk.es128.js.map +1 -1
  211. package/dist/es/standards-sdk.es129.js +27 -158
  212. package/dist/es/standards-sdk.es129.js.map +1 -1
  213. package/dist/es/standards-sdk.es13.js +1 -1
  214. package/dist/es/standards-sdk.es130.js +16 -195
  215. package/dist/es/standards-sdk.es130.js.map +1 -1
  216. package/dist/es/standards-sdk.es131.js +133 -763
  217. package/dist/es/standards-sdk.es131.js.map +1 -1
  218. package/dist/es/standards-sdk.es132.js +198 -10
  219. package/dist/es/standards-sdk.es132.js.map +1 -1
  220. package/dist/es/standards-sdk.es133.js +762 -539
  221. package/dist/es/standards-sdk.es133.js.map +1 -1
  222. package/dist/es/standards-sdk.es134.js +10 -623
  223. package/dist/es/standards-sdk.es134.js.map +1 -1
  224. package/dist/es/standards-sdk.es135.js +567 -13
  225. package/dist/es/standards-sdk.es135.js.map +1 -1
  226. package/dist/es/standards-sdk.es136.js +626 -2
  227. package/dist/es/standards-sdk.es136.js.map +1 -1
  228. package/dist/es/standards-sdk.es137.js +12 -86
  229. package/dist/es/standards-sdk.es137.js.map +1 -1
  230. package/dist/es/standards-sdk.es138.js +2 -40
  231. package/dist/es/standards-sdk.es138.js.map +1 -1
  232. package/dist/es/standards-sdk.es139.js +87 -2
  233. package/dist/es/standards-sdk.es139.js.map +1 -1
  234. package/dist/es/standards-sdk.es14.js +1 -1
  235. package/dist/es/standards-sdk.es140.js +37 -232
  236. package/dist/es/standards-sdk.es140.js.map +1 -1
  237. package/dist/es/standards-sdk.es141.js +2 -1140
  238. package/dist/es/standards-sdk.es141.js.map +1 -1
  239. package/dist/es/standards-sdk.es142.js +213 -284
  240. package/dist/es/standards-sdk.es142.js.map +1 -1
  241. package/dist/es/standards-sdk.es143.js +1138 -420
  242. package/dist/es/standards-sdk.es143.js.map +1 -1
  243. package/dist/es/standards-sdk.es144.js +301 -350
  244. package/dist/es/standards-sdk.es144.js.map +1 -1
  245. package/dist/es/standards-sdk.es145.js +417 -1117
  246. package/dist/es/standards-sdk.es145.js.map +1 -1
  247. package/dist/es/standards-sdk.es146.js +348 -201
  248. package/dist/es/standards-sdk.es146.js.map +1 -1
  249. package/dist/es/standards-sdk.es147.js +1035 -1480
  250. package/dist/es/standards-sdk.es147.js.map +1 -1
  251. package/dist/es/standards-sdk.es148.js +181 -1130
  252. package/dist/es/standards-sdk.es148.js.map +1 -1
  253. package/dist/es/standards-sdk.es149.js +1564 -14
  254. package/dist/es/standards-sdk.es149.js.map +1 -1
  255. package/dist/es/standards-sdk.es15.js +1 -1
  256. package/dist/es/standards-sdk.es150.js +1122 -224
  257. package/dist/es/standards-sdk.es150.js.map +1 -1
  258. package/dist/es/standards-sdk.es151.js +17 -4
  259. package/dist/es/standards-sdk.es151.js.map +1 -1
  260. package/dist/es/standards-sdk.es152.js +252 -74
  261. package/dist/es/standards-sdk.es152.js.map +1 -1
  262. package/dist/es/standards-sdk.es153.js +4 -87
  263. package/dist/es/standards-sdk.es153.js.map +1 -1
  264. package/dist/es/standards-sdk.es154.js +73 -52
  265. package/dist/es/standards-sdk.es154.js.map +1 -1
  266. package/dist/es/standards-sdk.es155.js +86 -2546
  267. package/dist/es/standards-sdk.es155.js.map +1 -1
  268. package/dist/es/standards-sdk.es156.js +53 -152
  269. package/dist/es/standards-sdk.es156.js.map +1 -1
  270. package/dist/es/standards-sdk.es157.js +2547 -7
  271. package/dist/es/standards-sdk.es157.js.map +1 -1
  272. package/dist/es/standards-sdk.es158.js +138 -65
  273. package/dist/es/standards-sdk.es158.js.map +1 -1
  274. package/dist/es/standards-sdk.es159.js +7 -65
  275. package/dist/es/standards-sdk.es159.js.map +1 -1
  276. package/dist/es/standards-sdk.es16.js +4 -4
  277. package/dist/es/standards-sdk.es160.js +86 -30
  278. package/dist/es/standards-sdk.es160.js.map +1 -1
  279. package/dist/es/standards-sdk.es161.js +65 -34
  280. package/dist/es/standards-sdk.es161.js.map +1 -1
  281. package/dist/es/standards-sdk.es162.js +194 -48
  282. package/dist/es/standards-sdk.es162.js.map +1 -1
  283. package/dist/es/standards-sdk.es163.js +17 -12473
  284. package/dist/es/standards-sdk.es163.js.map +1 -1
  285. package/dist/es/standards-sdk.es164.js +53 -133
  286. package/dist/es/standards-sdk.es164.js.map +1 -1
  287. package/dist/es/standards-sdk.es165.js +91 -38
  288. package/dist/es/standards-sdk.es165.js.map +1 -1
  289. package/dist/es/standards-sdk.es166.js +47 -15
  290. package/dist/es/standards-sdk.es166.js.map +1 -1
  291. package/dist/es/standards-sdk.es167.js +201 -53
  292. package/dist/es/standards-sdk.es167.js.map +1 -1
  293. package/dist/es/standards-sdk.es168.js +53 -108
  294. package/dist/es/standards-sdk.es168.js.map +1 -1
  295. package/dist/es/standards-sdk.es169.js +47 -79
  296. package/dist/es/standards-sdk.es169.js.map +1 -1
  297. package/dist/es/standards-sdk.es170.js +48 -192
  298. package/dist/es/standards-sdk.es170.js.map +1 -1
  299. package/dist/es/standards-sdk.es171.js +47 -670
  300. package/dist/es/standards-sdk.es171.js.map +1 -1
  301. package/dist/es/standards-sdk.es172.js +110 -61
  302. package/dist/es/standards-sdk.es172.js.map +1 -1
  303. package/dist/es/standards-sdk.es173.js +51 -169
  304. package/dist/es/standards-sdk.es173.js.map +1 -1
  305. package/dist/es/standards-sdk.es174.js +39 -317
  306. package/dist/es/standards-sdk.es174.js.map +1 -1
  307. package/dist/es/standards-sdk.es175.js +72 -346
  308. package/dist/es/standards-sdk.es175.js.map +1 -1
  309. package/dist/es/standards-sdk.es176.js +68 -453
  310. package/dist/es/standards-sdk.es176.js.map +1 -1
  311. package/dist/es/standards-sdk.es177.js +44 -331
  312. package/dist/es/standards-sdk.es177.js.map +1 -1
  313. package/dist/es/standards-sdk.es178.js +31 -71
  314. package/dist/es/standards-sdk.es178.js.map +1 -1
  315. package/dist/es/standards-sdk.es179.js +30 -139
  316. package/dist/es/standards-sdk.es179.js.map +1 -1
  317. package/dist/es/standards-sdk.es18.js +11 -11
  318. package/dist/es/standards-sdk.es180.js +34 -517
  319. package/dist/es/standards-sdk.es180.js.map +1 -1
  320. package/dist/es/standards-sdk.es181.js +48 -259
  321. package/dist/es/standards-sdk.es181.js.map +1 -1
  322. package/dist/es/standards-sdk.es182.js +127 -185
  323. package/dist/es/standards-sdk.es182.js.map +1 -1
  324. package/dist/es/standards-sdk.es183.js +36 -113
  325. package/dist/es/standards-sdk.es183.js.map +1 -1
  326. package/dist/es/standards-sdk.es184.js +12464 -134
  327. package/dist/es/standards-sdk.es184.js.map +1 -1
  328. package/dist/es/standards-sdk.es185.js +629 -141
  329. package/dist/es/standards-sdk.es185.js.map +1 -1
  330. package/dist/es/standards-sdk.es186.js +83 -656
  331. package/dist/es/standards-sdk.es186.js.map +1 -1
  332. package/dist/es/standards-sdk.es187.js +61 -173
  333. package/dist/es/standards-sdk.es187.js.map +1 -1
  334. package/dist/es/standards-sdk.es188.js +49 -228
  335. package/dist/es/standards-sdk.es188.js.map +1 -1
  336. package/dist/es/standards-sdk.es189.js +68 -226
  337. package/dist/es/standards-sdk.es189.js.map +1 -1
  338. package/dist/es/standards-sdk.es19.js +8 -8
  339. package/dist/es/standards-sdk.es190.js +203 -0
  340. package/dist/es/standards-sdk.es190.js.map +1 -0
  341. package/dist/es/standards-sdk.es191.js +175 -0
  342. package/dist/es/standards-sdk.es191.js.map +1 -0
  343. package/dist/es/standards-sdk.es192.js +325 -0
  344. package/dist/es/standards-sdk.es192.js.map +1 -0
  345. package/dist/es/standards-sdk.es193.js +349 -0
  346. package/dist/es/standards-sdk.es193.js.map +1 -0
  347. package/dist/es/standards-sdk.es194.js +456 -0
  348. package/dist/es/standards-sdk.es194.js.map +1 -0
  349. package/dist/es/standards-sdk.es195.js +334 -0
  350. package/dist/es/standards-sdk.es195.js.map +1 -0
  351. package/dist/es/standards-sdk.es196.js +79 -0
  352. package/dist/es/standards-sdk.es196.js.map +1 -0
  353. package/dist/es/standards-sdk.es197.js +20 -0
  354. package/dist/es/standards-sdk.es197.js.map +1 -0
  355. package/dist/es/standards-sdk.es198.js +142 -0
  356. package/dist/es/standards-sdk.es198.js.map +1 -0
  357. package/dist/es/standards-sdk.es199.js +520 -0
  358. package/dist/es/standards-sdk.es199.js.map +1 -0
  359. package/dist/es/standards-sdk.es2.js +2 -2
  360. package/dist/es/standards-sdk.es20.js +1 -1
  361. package/dist/es/standards-sdk.es200.js +262 -0
  362. package/dist/es/standards-sdk.es200.js.map +1 -0
  363. package/dist/es/standards-sdk.es201.js +199 -0
  364. package/dist/es/standards-sdk.es201.js.map +1 -0
  365. package/dist/es/standards-sdk.es202.js +122 -0
  366. package/dist/es/standards-sdk.es202.js.map +1 -0
  367. package/dist/es/standards-sdk.es203.js +155 -0
  368. package/dist/es/standards-sdk.es203.js.map +1 -0
  369. package/dist/es/standards-sdk.es204.js +187 -0
  370. package/dist/es/standards-sdk.es204.js.map +1 -0
  371. package/dist/es/standards-sdk.es205.js +687 -0
  372. package/dist/es/standards-sdk.es205.js.map +1 -0
  373. package/dist/es/standards-sdk.es206.js +188 -0
  374. package/dist/es/standards-sdk.es206.js.map +1 -0
  375. package/dist/es/standards-sdk.es207.js +238 -0
  376. package/dist/es/standards-sdk.es207.js.map +1 -0
  377. package/dist/es/standards-sdk.es208.js +242 -0
  378. package/dist/es/standards-sdk.es208.js.map +1 -0
  379. package/dist/es/standards-sdk.es21.js +1 -1
  380. package/dist/es/standards-sdk.es22.js +1 -1
  381. package/dist/es/standards-sdk.es23.js +1 -1
  382. package/dist/es/standards-sdk.es24.js +1 -1
  383. package/dist/es/standards-sdk.es25.js +1 -1
  384. package/dist/es/standards-sdk.es26.js +1 -1
  385. package/dist/es/standards-sdk.es27.js +11 -11
  386. package/dist/es/standards-sdk.es30.js +2 -2
  387. package/dist/es/standards-sdk.es31.js +4 -4
  388. package/dist/es/standards-sdk.es32.js +1 -1
  389. package/dist/es/standards-sdk.es35.js +5 -5
  390. package/dist/es/standards-sdk.es36.js +4 -4
  391. package/dist/es/standards-sdk.es37.js +2 -2
  392. package/dist/es/standards-sdk.es38.js +2 -2
  393. package/dist/es/standards-sdk.es39.js +1 -1
  394. package/dist/es/standards-sdk.es4.js +2 -2
  395. package/dist/es/standards-sdk.es40.js +1 -1
  396. package/dist/es/standards-sdk.es41.js +2 -2
  397. package/dist/es/standards-sdk.es46.js +1 -1
  398. package/dist/es/standards-sdk.es5.js +2 -2
  399. package/dist/es/standards-sdk.es51.js +1 -1
  400. package/dist/es/standards-sdk.es53.js +1 -1
  401. package/dist/es/standards-sdk.es56.js +2 -2
  402. package/dist/es/standards-sdk.es59.js +1 -1
  403. package/dist/es/standards-sdk.es6.js +2 -2
  404. package/dist/es/standards-sdk.es60.js +1 -1
  405. package/dist/es/standards-sdk.es62.js +1 -1
  406. package/dist/es/standards-sdk.es63.js +2 -2
  407. package/dist/es/standards-sdk.es64.js +1 -1
  408. package/dist/es/standards-sdk.es65.js +1 -1
  409. package/dist/es/standards-sdk.es66.js +1 -1
  410. package/dist/es/standards-sdk.es67.js +6 -6
  411. package/dist/es/standards-sdk.es69.js +1 -1
  412. package/dist/es/standards-sdk.es7.js +1 -1
  413. package/dist/es/standards-sdk.es71.js +2 -2
  414. package/dist/es/standards-sdk.es72.js +3 -3
  415. package/dist/es/standards-sdk.es75.js +5 -5
  416. package/dist/es/standards-sdk.es76.js +3 -3
  417. package/dist/es/standards-sdk.es77.js +2 -2
  418. package/dist/es/standards-sdk.es78.js +1 -1
  419. package/dist/es/standards-sdk.es81.js +2 -2
  420. package/dist/es/standards-sdk.es83.js +2 -2
  421. package/dist/es/standards-sdk.es84.js +3 -3
  422. package/dist/es/standards-sdk.es85.js +1 -1
  423. package/dist/es/standards-sdk.es88.js +1 -1
  424. package/dist/es/standards-sdk.es89.js +2 -2
  425. package/dist/es/standards-sdk.es9.js +2 -2
  426. package/dist/es/standards-sdk.es90.js +4 -4
  427. package/dist/es/standards-sdk.es94.js +3 -3
  428. package/dist/es/standards-sdk.es96.js +2 -2
  429. package/dist/es/standards-sdk.es98.js +1 -1
  430. package/dist/es/standards-sdk.es99.js +3 -3
  431. package/package.json +1 -1
@@ -1,309 +1,238 @@
1
- import { proto } from "@hashgraph/proto";
2
- import { hasTransactionType, parseKey } from "./standards-sdk.es178.js";
3
- import { AccountId, Long, ScheduleId } from "@hashgraph/sdk";
4
- class ScheduleParser {
5
- /**
6
- * Parse Schedule Service transaction using unified dual-branch approach
7
- * This handles both regular transactions and signed transaction variants
8
- */
9
- static parseScheduleTransaction(transaction, originalBytes) {
10
- try {
11
- if (originalBytes || transaction.toBytes) {
12
- try {
13
- const bytesToParse = originalBytes || transaction.toBytes();
14
- const decoded = proto.TransactionList.decode(bytesToParse);
15
- if (decoded.transactionList && decoded.transactionList.length > 0) {
16
- const tx = decoded.transactionList[0];
17
- let txBody = null;
18
- if (tx.bodyBytes && tx.bodyBytes.length > 0) {
19
- txBody = proto.TransactionBody.decode(tx.bodyBytes);
20
- } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
21
- const signedTx = proto.SignedTransaction.decode(
22
- tx.signedTransactionBytes
23
- );
24
- if (signedTx.bodyBytes) {
25
- txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
26
- }
27
- }
28
- if (txBody) {
29
- const protoResult = this.parseFromProtobufTxBody(txBody);
30
- if (protoResult.type && protoResult.type !== "UNKNOWN") {
31
- return protoResult;
32
- }
33
- }
34
- }
35
- } catch (protoError) {
36
- }
37
- }
38
- return this.parseFromTransactionInternals(transaction);
39
- } catch (error) {
40
- return {
41
- type: "UNKNOWN",
42
- humanReadableType: "Unknown Schedule Transaction"
43
- };
44
- }
1
+ import { detectCryptoEnvironment } from "./standards-sdk.es140.js";
2
+ import { FallbackHashAdapter, NodeHashAdapter, WebHashAdapter } from "./standards-sdk.es139.js";
3
+ class NodeHmacAdapter {
4
+ constructor(nodeHmac) {
5
+ this.nodeHmac = nodeHmac;
45
6
  }
46
- /**
47
- * Parse schedule transaction from protobuf TransactionBody
48
- * Handles all schedule operations from decoded protobuf data
49
- */
50
- static parseFromProtobufTxBody(txBody) {
51
- if (txBody.scheduleCreate) {
52
- const scheduleCreate = this.parseScheduleCreateFromProto(
53
- txBody.scheduleCreate
54
- );
55
- if (scheduleCreate) {
56
- return {
57
- type: "SCHEDULECREATE",
58
- humanReadableType: "Schedule Create",
59
- scheduleCreate
60
- };
61
- }
62
- }
63
- if (txBody.scheduleSign) {
64
- const scheduleSign = this.parseScheduleSignFromProto(txBody.scheduleSign);
65
- if (scheduleSign) {
66
- return {
67
- type: "SCHEDULESIGN",
68
- humanReadableType: "Schedule Sign",
69
- scheduleSign
70
- };
71
- }
72
- }
73
- if (txBody.scheduleDelete) {
74
- const scheduleDelete = this.parseScheduleDeleteFromProto(
75
- txBody.scheduleDelete
76
- );
77
- if (scheduleDelete) {
78
- return {
79
- type: "SCHEDULEDELETE",
80
- humanReadableType: "Schedule Delete",
81
- scheduleDelete
82
- };
83
- }
84
- }
85
- return {};
7
+ update(data) {
8
+ this.nodeHmac.update(data);
9
+ return this;
86
10
  }
87
- /**
88
- * Extract schedule data from Transaction internal fields
89
- * This handles cases where data is stored in Transaction object internals
90
- */
91
- static parseFromTransactionInternals(transaction) {
92
- try {
93
- const tx = transaction;
94
- if (hasTransactionType(transaction, "scheduleCreate")) {
95
- const scheduleCreate = {
96
- scheduledTransactionBody: Buffer.from(
97
- tx._scheduledTransaction
98
- ).toString("base64"),
99
- memo: tx._scheduleMemo,
100
- adminKey: tx._adminKey ? parseKey(tx._adminKey) : void 0,
101
- payerAccountId: tx._payerAccountId?.toString(),
102
- expirationTime: tx._expirationTime?.toString(),
103
- waitForExpiry: tx._waitForExpiry || false
104
- };
105
- return {
106
- type: "SCHEDULECREATE",
107
- humanReadableType: "Schedule Create",
108
- scheduleCreate
109
- };
110
- }
111
- if (hasTransactionType(transaction, "scheduleSign")) {
112
- const scheduleSign = {
113
- scheduleId: tx._scheduleId.toString()
114
- };
115
- return {
116
- type: "SCHEDULESIGN",
117
- humanReadableType: "Schedule Sign",
118
- scheduleSign
119
- };
120
- }
121
- if (hasTransactionType(transaction, "scheduleDelete")) {
122
- const scheduleDelete = {
123
- scheduleId: tx._scheduleId.toString()
124
- };
125
- return {
126
- type: "SCHEDULEDELETE",
127
- humanReadableType: "Schedule Delete",
128
- scheduleDelete
129
- };
130
- }
131
- return {};
132
- } catch (error) {
133
- return {};
134
- }
11
+ digest(encoding) {
12
+ return this.nodeHmac.digest(encoding);
135
13
  }
136
- /**
137
- * Parse Schedule Create from protobuf data
138
- */
139
- static parseScheduleCreateFromProto(body) {
140
- if (!body) return void 0;
141
- const data = {};
142
- if (body.scheduledTransactionBody) {
143
- const schedBytes = proto.SchedulableTransactionBody.encode(
144
- proto.SchedulableTransactionBody.create(body.scheduledTransactionBody)
145
- ).finish();
146
- data.scheduledTransactionBody = Buffer.from(schedBytes).toString("base64");
147
- }
148
- if (body.memo) {
149
- data.memo = body.memo;
150
- }
151
- if (body.adminKey) {
152
- data.adminKey = parseKey(body.adminKey);
153
- }
154
- if (body.payerAccountID) {
155
- data.payerAccountId = new AccountId(
156
- body.payerAccountID.shardNum ?? 0,
157
- body.payerAccountID.realmNum ?? 0,
158
- body.payerAccountID.accountNum ?? 0
159
- ).toString();
160
- }
161
- if (body.expirationTime?.seconds) {
162
- data.expirationTime = `${Long.fromValue(
163
- body.expirationTime.seconds
164
- ).toString()}.${body.expirationTime.nanos ?? 0}`;
165
- }
166
- if (body.waitForExpiry !== void 0) {
167
- data.waitForExpiry = body.waitForExpiry;
168
- }
169
- return data;
14
+ }
15
+ class WebHmacAdapter {
16
+ constructor(key, algorithm = "sha256") {
17
+ this.key = key;
18
+ this.algorithm = algorithm;
19
+ this.data = [];
170
20
  }
171
- /**
172
- * Parse Schedule Sign from protobuf data
173
- */
174
- static parseScheduleSignFromProto(body) {
175
- if (!body) return void 0;
176
- const data = {};
177
- if (body.scheduleID) {
178
- data.scheduleId = new ScheduleId(
179
- body.scheduleID.shardNum ?? 0,
180
- body.scheduleID.realmNum ?? 0,
181
- body.scheduleID.scheduleNum ?? 0
182
- ).toString();
183
- }
184
- return data;
21
+ update(data) {
22
+ this.data.push(data);
23
+ return this;
24
+ }
25
+ async digest(encoding) {
26
+ const combined = Buffer.concat(this.data);
27
+ const keyBytes = new Uint8Array(this.key);
28
+ const webCrypto = globalThis.crypto;
29
+ if (!webCrypto?.subtle) {
30
+ throw new Error("WebCrypto not available");
31
+ }
32
+ const keyBuffer = await webCrypto.subtle.importKey(
33
+ "raw",
34
+ keyBytes,
35
+ { name: "HMAC", hash: this.mapAlgorithm(this.algorithm) },
36
+ false,
37
+ ["sign"]
38
+ );
39
+ const signature = await webCrypto.subtle.sign(
40
+ "HMAC",
41
+ keyBuffer,
42
+ new Uint8Array(combined)
43
+ );
44
+ if (encoding === "hex") {
45
+ return Array.from(new Uint8Array(signature)).map((b) => b.toString(16).padStart(2, "0")).join("");
46
+ }
47
+ return Buffer.from(signature);
48
+ }
49
+ mapAlgorithm(algorithm) {
50
+ const algorithmMap = {
51
+ sha256: "SHA-256",
52
+ sha1: "SHA-1",
53
+ sha512: "SHA-512"
54
+ };
55
+ return algorithmMap[algorithm.toLowerCase()] || "SHA-256";
185
56
  }
186
- /**
187
- * Parse Schedule Delete from protobuf data
188
- */
189
- static parseScheduleDeleteFromProto(body) {
190
- if (!body) return void 0;
191
- const data = {};
192
- if (body.scheduleID) {
193
- data.scheduleId = new ScheduleId(
194
- body.scheduleID.shardNum ?? 0,
195
- body.scheduleID.realmNum ?? 0,
196
- body.scheduleID.scheduleNum ?? 0
197
- ).toString();
57
+ }
58
+ class FallbackHmacAdapter {
59
+ constructor(key, algorithm = "sha256") {
60
+ this.key = key;
61
+ this.algorithm = algorithm;
62
+ this.data = [];
63
+ }
64
+ update(data) {
65
+ this.data.push(data);
66
+ return this;
67
+ }
68
+ digest(encoding) {
69
+ const combined = Buffer.concat(this.data);
70
+ const hash2 = this.simpleHmac(combined, this.key);
71
+ if (encoding === "hex") {
72
+ return hash2.toString(16).padStart(8, "0");
198
73
  }
199
- return data;
74
+ return hash2.toString();
200
75
  }
201
- /**
202
- * Legacy method: Parse schedule create transaction
203
- * @deprecated Use parseScheduleTransaction instead
204
- */
205
- static parseScheduleCreate(transaction) {
206
- try {
207
- const result = this.parseScheduleTransaction(transaction);
208
- return result.scheduleCreate || null;
209
- } catch (error) {
210
- console.warn("[ScheduleParser] Failed to parse schedule create:", error);
211
- return null;
76
+ simpleHmac(data, key) {
77
+ let hash2 = 0;
78
+ for (let i = 0; i < data.length; i++) {
79
+ const keyByte = key[i % key.length];
80
+ hash2 = (hash2 << 5) - hash2 + data[i] + keyByte & 4294967295;
212
81
  }
82
+ return Math.abs(hash2);
213
83
  }
214
- /**
215
- * Legacy method: Parse schedule sign transaction
216
- * @deprecated Use parseScheduleTransaction instead
217
- */
218
- static parseScheduleSign(transaction) {
84
+ }
85
+ class NodeCryptoAdapter {
86
+ constructor() {
219
87
  try {
220
- const result = this.parseScheduleTransaction(transaction);
221
- return result.scheduleSign || null;
88
+ const moduleName = "crypto";
89
+ this.crypto = require(moduleName);
222
90
  } catch (error) {
223
- console.warn("[ScheduleParser] Failed to parse schedule sign:", error);
224
- return null;
91
+ throw new Error("Node.js crypto module not available");
225
92
  }
226
93
  }
227
- /**
228
- * Legacy method: Parse schedule delete transaction
229
- * @deprecated Use parseScheduleTransaction instead
230
- */
231
- static parseScheduleDelete(transaction) {
232
- try {
233
- const result = this.parseScheduleTransaction(transaction);
234
- return result.scheduleDelete || null;
235
- } catch (error) {
236
- console.warn("[ScheduleParser] Failed to parse schedule delete:", error);
237
- return null;
94
+ createHash(algorithm) {
95
+ return new NodeHashAdapter(this.crypto.createHash(algorithm));
96
+ }
97
+ createHmac(algorithm, key) {
98
+ return new NodeHmacAdapter(this.crypto.createHmac(algorithm, key));
99
+ }
100
+ async pbkdf2(password, salt, iterations, keylen, digest) {
101
+ return new Promise((resolve, reject) => {
102
+ this.crypto.pbkdf2(
103
+ password,
104
+ salt,
105
+ iterations,
106
+ keylen,
107
+ digest,
108
+ (err, derivedKey) => {
109
+ if (err) reject(err);
110
+ else resolve(derivedKey);
111
+ }
112
+ );
113
+ });
114
+ }
115
+ timingSafeEqual(a, b) {
116
+ return this.crypto.timingSafeEqual(a, b);
117
+ }
118
+ }
119
+ class WebCryptoAdapter {
120
+ createHash(algorithm) {
121
+ return new WebHashAdapter(algorithm);
122
+ }
123
+ createHmac(algorithm, key) {
124
+ return new WebHmacAdapter(key, algorithm);
125
+ }
126
+ async pbkdf2(password, salt, iterations, keylen, digest) {
127
+ const encoder = new TextEncoder();
128
+ const webCrypto = globalThis.crypto;
129
+ if (!webCrypto?.subtle) {
130
+ throw new Error("WebCrypto not available");
131
+ }
132
+ const keyMaterial = await webCrypto.subtle.importKey(
133
+ "raw",
134
+ encoder.encode(password),
135
+ { name: "PBKDF2" },
136
+ false,
137
+ ["deriveBits"]
138
+ );
139
+ const derivedBits = await webCrypto.subtle.deriveBits(
140
+ {
141
+ name: "PBKDF2",
142
+ salt: new Uint8Array(salt),
143
+ iterations,
144
+ hash: this.mapDigest(digest)
145
+ },
146
+ keyMaterial,
147
+ keylen * 8
148
+ );
149
+ return Buffer.from(derivedBits);
150
+ }
151
+ timingSafeEqual(a, b) {
152
+ if (a.length !== b.length) return false;
153
+ let result = 0;
154
+ for (let i = 0; i < a.length; i++) {
155
+ result |= a[i] ^ b[i];
238
156
  }
157
+ return result === 0;
239
158
  }
240
- /**
241
- * Parse schedule info from transaction body (for scheduled transactions)
242
- */
243
- static extractScheduleInfo(transaction) {
244
- try {
245
- const transactionBody = transaction._transactionBody;
246
- if (transactionBody?.scheduleRef) {
247
- return {
248
- isScheduled: true,
249
- scheduleRef: transactionBody.scheduleRef.toString()
250
- };
251
- }
252
- const tx = transaction;
253
- if (tx._scheduleId || tx.scheduleId) {
254
- return {
255
- isScheduled: true,
256
- scheduleRef: (tx._scheduleId || tx.scheduleId)?.toString()
257
- };
159
+ mapDigest(digest) {
160
+ const digestMap = {
161
+ sha256: "SHA-256",
162
+ sha1: "SHA-1",
163
+ sha512: "SHA-512"
164
+ };
165
+ return digestMap[digest.toLowerCase()] || "SHA-256";
166
+ }
167
+ }
168
+ class FallbackCryptoAdapter {
169
+ createHash(algorithm) {
170
+ return new FallbackHashAdapter(algorithm);
171
+ }
172
+ createHmac(algorithm, key) {
173
+ return new FallbackHmacAdapter(key, algorithm);
174
+ }
175
+ async pbkdf2(password, salt, iterations, keylen, digest) {
176
+ const encoder = new TextEncoder();
177
+ const passwordBuffer = Buffer.from(encoder.encode(password));
178
+ let result = Buffer.alloc(keylen);
179
+ for (let i = 0; i < iterations; i++) {
180
+ const combined = Buffer.concat([passwordBuffer, salt, Buffer.from([i])]);
181
+ let hash2 = 0;
182
+ for (let j = 0; j < combined.length; j++) {
183
+ hash2 = (hash2 << 5) - hash2 + combined[j] & 4294967295;
258
184
  }
259
- return { isScheduled: false };
260
- } catch (error) {
261
- return { isScheduled: false };
185
+ result[i % keylen] ^= hash2 & 255;
262
186
  }
187
+ return result;
263
188
  }
264
- /**
265
- * Parse a scheduled transaction body to extract the inner transaction
266
- * This is used when a schedule contains another transaction to be executed
267
- */
268
- static parseScheduledTransactionBody(scheduledTxBytes) {
269
- try {
270
- let bytes;
271
- if (scheduledTxBytes.startsWith("0x")) {
272
- const hexString = scheduledTxBytes.slice(2);
273
- bytes = new Uint8Array(Buffer.from(hexString, "hex"));
274
- } else {
275
- bytes = new Uint8Array(Buffer.from(scheduledTxBytes, "base64"));
276
- }
277
- const schedulableBody = proto.SchedulableTransactionBody.decode(bytes);
278
- const txType = Object.keys(schedulableBody).find(
279
- (key) => schedulableBody[key] !== null && key !== "transactionFee" && key !== "memo"
280
- );
281
- if (txType) {
282
- return {
283
- type: txType.toUpperCase(),
284
- body: schedulableBody[txType],
285
- memo: schedulableBody.memo,
286
- transactionFee: schedulableBody.transactionFee?.toString()
287
- };
288
- }
289
- return null;
290
- } catch (error) {
291
- console.warn(
292
- "[ScheduleParser] Failed to parse scheduled transaction body:",
293
- error
294
- );
295
- return null;
189
+ timingSafeEqual(a, b) {
190
+ if (a.length !== b.length) return false;
191
+ let result = 0;
192
+ for (let i = 0; i < a.length; i++) {
193
+ result |= a[i] ^ b[i];
296
194
  }
195
+ return result === 0;
196
+ }
197
+ }
198
+ function getCryptoAdapter() {
199
+ const env = detectCryptoEnvironment();
200
+ switch (env.preferredAPI) {
201
+ case "node":
202
+ try {
203
+ return new NodeCryptoAdapter();
204
+ } catch {
205
+ const globalCrypto = typeof globalThis !== "undefined" ? globalThis.crypto : void 0;
206
+ if (typeof globalCrypto?.subtle !== "undefined") {
207
+ return new WebCryptoAdapter();
208
+ }
209
+ return new FallbackCryptoAdapter();
210
+ }
211
+ case "web":
212
+ return new WebCryptoAdapter();
213
+ case "none":
214
+ default:
215
+ return new FallbackCryptoAdapter();
297
216
  }
298
- /**
299
- * Parse Schedule Service transaction from Transaction object
300
- * This is the unified entry point that delegates to the comprehensive parsing logic
301
- */
302
- static parseFromTransactionObject(transaction) {
303
- return this.parseScheduleTransaction(transaction);
217
+ }
218
+ async function hash(content, algorithm = "sha256") {
219
+ const adapter = getCryptoAdapter();
220
+ const hasher = adapter.createHash(algorithm);
221
+ const buffer = typeof content === "string" ? Buffer.from(content) : content;
222
+ const result = hasher.update(buffer).digest("hex");
223
+ if (result instanceof Promise) {
224
+ return await result;
304
225
  }
226
+ return result;
305
227
  }
306
228
  export {
307
- ScheduleParser
229
+ FallbackCryptoAdapter,
230
+ FallbackHmacAdapter,
231
+ NodeCryptoAdapter,
232
+ NodeHmacAdapter,
233
+ WebCryptoAdapter,
234
+ WebHmacAdapter,
235
+ getCryptoAdapter,
236
+ hash
308
237
  };
309
238
  //# sourceMappingURL=standards-sdk.es142.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es142.js","sources":["../../src/utils/parsers/schedule-parser.ts"],"sourcesContent":["import { Transaction } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\nimport {\n ScheduleCreateData,\n ScheduleSignData,\n ScheduleDeleteData,\n ParsedTransaction,\n} from '../transaction-parser-types';\nimport {\n parseKey,\n extractTransactionBody,\n hasTransactionType,\n} from './parser-utils';\nimport { AccountId, ScheduleId, Long } from '@hashgraph/sdk';\n\n/**\n * Schedule Operations Parser\n *\n * Specialized parser for schedule-related transaction types including:\n * - Schedule Create with inner transaction parsing\n * - Schedule Sign operations\n * - Schedule Delete operations\n * - Proper dual-branch parsing (regular vs signed transactions)\n * - Comprehensive protobuf extraction\n *\n * Scheduled transactions allow for deferred execution of transactions\n * that require multiple signatures or meet specific conditions.\n */\nexport class ScheduleParser {\n /**\n * Parse Schedule Service transaction using unified dual-branch approach\n * This handles both regular transactions and signed transaction variants\n */\n static parseScheduleTransaction(\n transaction: Transaction,\n originalBytes?: Uint8Array,\n ): {\n type?: string;\n humanReadableType?: string;\n scheduleCreate?: ScheduleCreateData;\n scheduleSign?: ScheduleSignData;\n scheduleDelete?: ScheduleDeleteData;\n [key: string]: unknown;\n } {\n try {\n if (originalBytes || transaction.toBytes) {\n try {\n const bytesToParse = originalBytes || transaction.toBytes();\n const decoded = proto.TransactionList.decode(bytesToParse);\n\n if (decoded.transactionList && decoded.transactionList.length > 0) {\n const tx = decoded.transactionList[0];\n let txBody: proto.ITransactionBody | null = null;\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n txBody = proto.TransactionBody.decode(tx.bodyBytes);\n } else if (\n tx.signedTransactionBytes &&\n tx.signedTransactionBytes.length > 0\n ) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n txBody = proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n if (txBody) {\n const protoResult = this.parseFromProtobufTxBody(txBody);\n if (protoResult.type && protoResult.type !== 'UNKNOWN') {\n return protoResult;\n }\n }\n }\n } catch (protoError) {}\n }\n\n return this.parseFromTransactionInternals(transaction);\n } catch (error) {\n return {\n type: 'UNKNOWN',\n humanReadableType: 'Unknown Schedule Transaction',\n };\n }\n }\n\n /**\n * Parse schedule transaction from protobuf TransactionBody\n * Handles all schedule operations from decoded protobuf data\n */\n private static parseFromProtobufTxBody(txBody: proto.ITransactionBody): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n if (txBody.scheduleCreate) {\n const scheduleCreate = this.parseScheduleCreateFromProto(\n txBody.scheduleCreate,\n );\n if (scheduleCreate) {\n return {\n type: 'SCHEDULECREATE',\n humanReadableType: 'Schedule Create',\n scheduleCreate,\n };\n }\n }\n\n if (txBody.scheduleSign) {\n const scheduleSign = this.parseScheduleSignFromProto(txBody.scheduleSign);\n if (scheduleSign) {\n return {\n type: 'SCHEDULESIGN',\n humanReadableType: 'Schedule Sign',\n scheduleSign,\n };\n }\n }\n\n if (txBody.scheduleDelete) {\n const scheduleDelete = this.parseScheduleDeleteFromProto(\n txBody.scheduleDelete,\n );\n if (scheduleDelete) {\n return {\n type: 'SCHEDULEDELETE',\n humanReadableType: 'Schedule Delete',\n scheduleDelete,\n };\n }\n }\n\n return {};\n }\n\n /**\n * Extract schedule data from Transaction internal fields\n * This handles cases where data is stored in Transaction object internals\n */\n private static parseFromTransactionInternals(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n try {\n const tx = transaction as unknown as {\n _scheduledTransaction?: Uint8Array;\n _scheduleMemo?: string;\n _adminKey?: unknown;\n _payerAccountId?: { toString(): string };\n _expirationTime?: { toString(): string };\n _waitForExpiry?: boolean;\n _scheduleId?: { toString(): string };\n constructor?: { name?: string };\n };\n\n if (hasTransactionType(transaction, 'scheduleCreate')) {\n const scheduleCreate: ScheduleCreateData = {\n scheduledTransactionBody: Buffer.from(\n tx._scheduledTransaction,\n ).toString('base64'),\n memo: tx._scheduleMemo,\n adminKey: tx._adminKey ? parseKey(tx._adminKey) : undefined,\n payerAccountId: tx._payerAccountId?.toString(),\n expirationTime: tx._expirationTime?.toString(),\n waitForExpiry: tx._waitForExpiry || false,\n };\n\n return {\n type: 'SCHEDULECREATE',\n humanReadableType: 'Schedule Create',\n scheduleCreate,\n };\n }\n\n if (hasTransactionType(transaction, 'scheduleSign')) {\n const scheduleSign: ScheduleSignData = {\n scheduleId: tx._scheduleId.toString(),\n };\n\n return {\n type: 'SCHEDULESIGN',\n humanReadableType: 'Schedule Sign',\n scheduleSign,\n };\n }\n\n if (hasTransactionType(transaction, 'scheduleDelete')) {\n const scheduleDelete: ScheduleDeleteData = {\n scheduleId: tx._scheduleId.toString(),\n };\n\n return {\n type: 'SCHEDULEDELETE',\n humanReadableType: 'Schedule Delete',\n scheduleDelete,\n };\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Parse Schedule Create from protobuf data\n */\n static parseScheduleCreateFromProto(\n body: proto.IScheduleCreateTransactionBody,\n ): ScheduleCreateData | undefined {\n if (!body) return undefined;\n\n const data: ScheduleCreateData = {};\n\n if (body.scheduledTransactionBody) {\n const schedBytes = proto.SchedulableTransactionBody.encode(\n proto.SchedulableTransactionBody.create(body.scheduledTransactionBody),\n ).finish();\n data.scheduledTransactionBody =\n Buffer.from(schedBytes).toString('base64');\n }\n\n if (body.memo) {\n data.memo = body.memo;\n }\n\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n\n if (body.payerAccountID) {\n data.payerAccountId = new AccountId(\n body.payerAccountID.shardNum ?? 0,\n body.payerAccountID.realmNum ?? 0,\n body.payerAccountID.accountNum ?? 0,\n ).toString();\n }\n\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds,\n ).toString()}.${body.expirationTime.nanos ?? 0}`;\n }\n\n if (body.waitForExpiry !== undefined) {\n data.waitForExpiry = body.waitForExpiry;\n }\n\n return data;\n }\n\n /**\n * Parse Schedule Sign from protobuf data\n */\n static parseScheduleSignFromProto(\n body: proto.IScheduleSignTransactionBody,\n ): ScheduleSignData | undefined {\n if (!body) return undefined;\n\n const data: ScheduleSignData = {};\n\n if (body.scheduleID) {\n data.scheduleId = new ScheduleId(\n body.scheduleID.shardNum ?? 0,\n body.scheduleID.realmNum ?? 0,\n body.scheduleID.scheduleNum ?? 0,\n ).toString();\n }\n\n return data;\n }\n\n /**\n * Parse Schedule Delete from protobuf data\n */\n static parseScheduleDeleteFromProto(\n body: proto.IScheduleDeleteTransactionBody,\n ): ScheduleDeleteData | undefined {\n if (!body) return undefined;\n\n const data: ScheduleDeleteData = {};\n\n if (body.scheduleID) {\n data.scheduleId = new ScheduleId(\n body.scheduleID.shardNum ?? 0,\n body.scheduleID.realmNum ?? 0,\n body.scheduleID.scheduleNum ?? 0,\n ).toString();\n }\n\n return data;\n }\n\n /**\n * Legacy method: Parse schedule create transaction\n * @deprecated Use parseScheduleTransaction instead\n */\n static parseScheduleCreate(\n transaction: Transaction,\n ): ScheduleCreateData | null {\n try {\n const result = this.parseScheduleTransaction(transaction);\n return result.scheduleCreate || null;\n } catch (error) {\n console.warn('[ScheduleParser] Failed to parse schedule create:', error);\n return null;\n }\n }\n\n /**\n * Legacy method: Parse schedule sign transaction\n * @deprecated Use parseScheduleTransaction instead\n */\n static parseScheduleSign(transaction: Transaction): ScheduleSignData | null {\n try {\n const result = this.parseScheduleTransaction(transaction);\n return result.scheduleSign || null;\n } catch (error) {\n console.warn('[ScheduleParser] Failed to parse schedule sign:', error);\n return null;\n }\n }\n\n /**\n * Legacy method: Parse schedule delete transaction\n * @deprecated Use parseScheduleTransaction instead\n */\n static parseScheduleDelete(\n transaction: Transaction,\n ): ScheduleDeleteData | null {\n try {\n const result = this.parseScheduleTransaction(transaction);\n return result.scheduleDelete || null;\n } catch (error) {\n console.warn('[ScheduleParser] Failed to parse schedule delete:', error);\n return null;\n }\n }\n\n /**\n * Parse schedule info from transaction body (for scheduled transactions)\n */\n static extractScheduleInfo(transaction: Transaction): {\n isScheduled: boolean;\n scheduleRef?: string;\n } {\n try {\n const transactionBody = (transaction as any)._transactionBody;\n\n if (transactionBody?.scheduleRef) {\n return {\n isScheduled: true,\n scheduleRef: transactionBody.scheduleRef.toString(),\n };\n }\n\n const tx = transaction as any;\n if (tx._scheduleId || tx.scheduleId) {\n return {\n isScheduled: true,\n scheduleRef: (tx._scheduleId || tx.scheduleId)?.toString(),\n };\n }\n\n return { isScheduled: false };\n } catch (error) {\n return { isScheduled: false };\n }\n }\n\n /**\n * Parse a scheduled transaction body to extract the inner transaction\n * This is used when a schedule contains another transaction to be executed\n */\n static parseScheduledTransactionBody(scheduledTxBytes: string): any {\n try {\n let bytes: Uint8Array;\n\n if (scheduledTxBytes.startsWith('0x')) {\n const hexString = scheduledTxBytes.slice(2);\n bytes = new Uint8Array(Buffer.from(hexString, 'hex'));\n } else {\n bytes = new Uint8Array(Buffer.from(scheduledTxBytes, 'base64'));\n }\n\n const schedulableBody = proto.SchedulableTransactionBody.decode(bytes);\n\n const txType = Object.keys(schedulableBody).find(\n key =>\n schedulableBody[key as keyof proto.ISchedulableTransactionBody] !==\n null &&\n key !== 'transactionFee' &&\n key !== 'memo',\n );\n\n if (txType) {\n return {\n type: txType.toUpperCase(),\n body: schedulableBody[\n txType as keyof proto.ISchedulableTransactionBody\n ],\n memo: schedulableBody.memo,\n transactionFee: schedulableBody.transactionFee?.toString(),\n };\n }\n\n return null;\n } catch (error) {\n console.warn(\n '[ScheduleParser] Failed to parse scheduled transaction body:',\n error,\n );\n return null;\n }\n }\n\n /**\n * Parse Schedule Service transaction from Transaction object\n * This is the unified entry point that delegates to the comprehensive parsing logic\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n return this.parseScheduleTransaction(transaction);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es142.js","sources":["../../src/utils/crypto-abstraction.ts"],"sourcesContent":["/**\n * Crypto Abstraction Layer\n *\n * Provides a unified interface for cryptographic operations that works\n * across Node.js, browser, and SSR environments.\n */\n\nimport { detectCryptoEnvironment } from './crypto-env';\nimport {\n HashAdapter,\n NodeHashAdapter,\n WebHashAdapter,\n FallbackHashAdapter,\n} from './hash-adapter';\n\n/**\n * HMAC Adapter interface\n */\nexport interface HmacAdapter {\n update(data: Buffer): HmacAdapter;\n digest(encoding?: string): string | Buffer | Promise<string | Buffer>;\n}\n\n/**\n * Node.js HMAC adapter\n */\nexport class NodeHmacAdapter implements HmacAdapter {\n constructor(private nodeHmac: any) {}\n\n update(data: Buffer): HmacAdapter {\n this.nodeHmac.update(data);\n return this;\n }\n\n digest(encoding?: string): string | Buffer {\n return this.nodeHmac.digest(encoding);\n }\n}\n\n/**\n * WebCrypto HMAC adapter\n */\nexport class WebHmacAdapter implements HmacAdapter {\n private data: Buffer[] = [];\n\n constructor(\n private key: Buffer,\n private algorithm: string = 'sha256',\n ) {}\n\n update(data: Buffer): HmacAdapter {\n this.data.push(data);\n return this;\n }\n\n async digest(encoding?: string): Promise<string | Buffer> {\n const combined = Buffer.concat(this.data);\n const keyBytes = new Uint8Array(this.key);\n const webCrypto = globalThis.crypto;\n if (!webCrypto?.subtle) {\n throw new Error('WebCrypto not available');\n }\n const keyBuffer = await webCrypto.subtle.importKey(\n 'raw',\n keyBytes,\n { name: 'HMAC', hash: this.mapAlgorithm(this.algorithm) },\n false,\n ['sign'],\n );\n\n const signature = await webCrypto.subtle.sign(\n 'HMAC',\n keyBuffer,\n new Uint8Array(combined),\n );\n\n if (encoding === 'hex') {\n return Array.from(new Uint8Array(signature))\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n\n return Buffer.from(signature);\n }\n\n private mapAlgorithm(algorithm: string): string {\n const algorithmMap: Record<string, string> = {\n sha256: 'SHA-256',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n };\n\n return algorithmMap[algorithm.toLowerCase()] || 'SHA-256';\n }\n}\n\n/**\n * Fallback HMAC adapter\n */\nexport class FallbackHmacAdapter implements HmacAdapter {\n private data: Buffer[] = [];\n\n constructor(\n private key: Buffer,\n private algorithm: string = 'sha256',\n ) {}\n\n update(data: Buffer): HmacAdapter {\n this.data.push(data);\n return this;\n }\n\n digest(encoding?: string): string {\n const combined = Buffer.concat(this.data);\n const hash = this.simpleHmac(combined, this.key);\n\n if (encoding === 'hex') {\n return hash.toString(16).padStart(8, '0');\n }\n\n return hash.toString();\n }\n\n private simpleHmac(data: Buffer, key: Buffer): number {\n let hash = 0;\n for (let i = 0; i < data.length; i++) {\n const keyByte = key[i % key.length];\n hash = ((hash << 5) - hash + data[i] + keyByte) & 0xffffffff;\n }\n return Math.abs(hash);\n }\n}\n\n/**\n * Main crypto adapter interface\n */\nexport interface CryptoAdapter {\n createHash(algorithm: string): HashAdapter;\n createHmac(algorithm: string, key: Buffer): HmacAdapter;\n pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer>;\n timingSafeEqual(a: Buffer, b: Buffer): boolean;\n}\n\ndeclare const require: any;\n\n/**\n * Node.js crypto adapter\n */\nexport class NodeCryptoAdapter implements CryptoAdapter {\n private crypto: any;\n\n constructor() {\n try {\n const moduleName = 'cry' + 'pto';\n this.crypto = require(moduleName);\n } catch (error) {\n throw new Error('Node.js crypto module not available');\n }\n }\n\n createHash(algorithm: string): HashAdapter {\n return new NodeHashAdapter(this.crypto.createHash(algorithm));\n }\n\n createHmac(algorithm: string, key: Buffer): HmacAdapter {\n return new NodeHmacAdapter(this.crypto.createHmac(algorithm, key));\n }\n\n async pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n this.crypto.pbkdf2(\n password,\n salt,\n iterations,\n keylen,\n digest,\n (err: any, derivedKey: Buffer) => {\n if (err) reject(err);\n else resolve(derivedKey);\n },\n );\n });\n }\n\n timingSafeEqual(a: Buffer, b: Buffer): boolean {\n return this.crypto.timingSafeEqual(a, b);\n }\n}\n\n/**\n * WebCrypto adapter\n */\nexport class WebCryptoAdapter implements CryptoAdapter {\n createHash(algorithm: string): HashAdapter {\n return new WebHashAdapter(algorithm);\n }\n\n createHmac(algorithm: string, key: Buffer): HmacAdapter {\n return new WebHmacAdapter(key, algorithm);\n }\n\n async pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer> {\n const encoder = new TextEncoder();\n const webCrypto = globalThis.crypto;\n if (!webCrypto?.subtle) {\n throw new Error('WebCrypto not available');\n }\n const keyMaterial = await webCrypto.subtle.importKey(\n 'raw',\n encoder.encode(password),\n { name: 'PBKDF2' },\n false,\n ['deriveBits'],\n );\n\n const derivedBits = await webCrypto.subtle.deriveBits(\n {\n name: 'PBKDF2',\n salt: new Uint8Array(salt),\n iterations: iterations,\n hash: this.mapDigest(digest),\n },\n keyMaterial,\n keylen * 8,\n );\n\n return Buffer.from(derivedBits);\n }\n\n timingSafeEqual(a: Buffer, b: Buffer): boolean {\n if (a.length !== b.length) return false;\n\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n }\n\n private mapDigest(digest: string): string {\n const digestMap: Record<string, string> = {\n sha256: 'SHA-256',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n };\n\n return digestMap[digest.toLowerCase()] || 'SHA-256';\n }\n}\n\n/**\n * Fallback crypto adapter for SSR\n */\nexport class FallbackCryptoAdapter implements CryptoAdapter {\n createHash(algorithm: string): HashAdapter {\n return new FallbackHashAdapter(algorithm);\n }\n\n createHmac(algorithm: string, key: Buffer): HmacAdapter {\n return new FallbackHmacAdapter(key, algorithm);\n }\n\n async pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer> {\n const encoder = new TextEncoder();\n const passwordBuffer = Buffer.from(encoder.encode(password));\n let result = Buffer.alloc(keylen);\n\n for (let i = 0; i < iterations; i++) {\n const combined = Buffer.concat([passwordBuffer, salt, Buffer.from([i])]);\n let hash = 0;\n for (let j = 0; j < combined.length; j++) {\n hash = ((hash << 5) - hash + combined[j]) & 0xffffffff;\n }\n result[i % keylen] ^= hash & 0xff;\n }\n\n return result;\n }\n\n timingSafeEqual(a: Buffer, b: Buffer): boolean {\n if (a.length !== b.length) return false;\n\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n }\n}\n\n/**\n * Get appropriate crypto adapter for current environment\n */\nexport function getCryptoAdapter(): CryptoAdapter {\n const env = detectCryptoEnvironment();\n\n switch (env.preferredAPI) {\n case 'node':\n try {\n return new NodeCryptoAdapter();\n } catch {\n const globalCrypto =\n typeof globalThis !== 'undefined' ? globalThis.crypto : undefined;\n if (typeof globalCrypto?.subtle !== 'undefined') {\n return new WebCryptoAdapter();\n }\n return new FallbackCryptoAdapter();\n }\n case 'web':\n return new WebCryptoAdapter();\n case 'none':\n default:\n return new FallbackCryptoAdapter();\n }\n}\n\n/**\n * Convenience function for simple hash operations\n */\nexport async function hash(\n content: Buffer | string,\n algorithm: string = 'sha256',\n): Promise<string> {\n const adapter = getCryptoAdapter();\n const hasher = adapter.createHash(algorithm);\n const buffer = typeof content === 'string' ? Buffer.from(content) : content;\n const result = hasher.update(buffer).digest('hex');\n\n if (result instanceof Promise) {\n return (await result) as string;\n }\n\n return result as string;\n}\n"],"names":["hash"],"mappings":"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"}