@hashgraphonline/standards-sdk 0.1.185 → 0.1.186

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 (430) hide show
  1. package/dist/browser/hcs-25/adapters/acp.d.ts +20 -0
  2. package/dist/browser/hcs-25/adapters/acp.d.ts.map +1 -0
  3. package/dist/browser/hcs-25/adapters/agentverse.d.ts +34 -0
  4. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -0
  5. package/dist/browser/hcs-25/adapters/availability.d.ts +22 -0
  6. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -0
  7. package/dist/browser/hcs-25/adapters/connectivity.d.ts +25 -0
  8. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -0
  9. package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  10. package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  11. package/dist/browser/hcs-25/adapters/ethos.d.ts +21 -0
  12. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -0
  13. package/dist/browser/hcs-25/adapters/index.d.ts +21 -0
  14. package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -0
  15. package/dist/browser/hcs-25/adapters/model-evals.d.ts +61 -0
  16. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -0
  17. package/dist/browser/hcs-25/adapters/normalization.d.ts +20 -0
  18. package/dist/browser/hcs-25/adapters/normalization.d.ts.map +1 -0
  19. package/dist/browser/hcs-25/adapters/oss-popularity.d.ts +22 -0
  20. package/dist/browser/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  21. package/dist/browser/hcs-25/adapters/output-verification.d.ts +27 -0
  22. package/dist/browser/hcs-25/adapters/output-verification.d.ts.map +1 -0
  23. package/dist/browser/hcs-25/adapters/simple-evals.d.ts +14 -0
  24. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  25. package/dist/browser/hcs-25/adapters/x402.d.ts +18 -0
  26. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -0
  27. package/dist/browser/hcs-25/identifiers.d.ts +2 -2
  28. package/dist/browser/hcs-25/identifiers.d.ts.map +1 -1
  29. package/dist/browser/hcs-25/index.d.ts +2 -0
  30. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  31. package/dist/browser/hcs-25/scoring.d.ts.map +1 -1
  32. package/dist/browser/hcs-25/signals/index.d.ts +20 -0
  33. package/dist/browser/hcs-25/signals/index.d.ts.map +1 -0
  34. package/dist/browser/hcs-25/signals/marketplace.d.ts +296 -0
  35. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -0
  36. package/dist/browser/hcs-25/signals/metadata.d.ts +40 -0
  37. package/dist/browser/hcs-25/signals/metadata.d.ts.map +1 -0
  38. package/dist/browser/hcs-25/signals/model-evals.d.ts +127 -0
  39. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -0
  40. package/dist/browser/hcs-25/signals/operational.d.ts +757 -0
  41. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -0
  42. package/dist/browser/hcs-25/signals/simple-evals.d.ts +156 -0
  43. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -0
  44. package/dist/browser-root/hcs-25/adapters/acp.d.ts +20 -0
  45. package/dist/browser-root/hcs-25/adapters/acp.d.ts.map +1 -0
  46. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts +34 -0
  47. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -0
  48. package/dist/browser-root/hcs-25/adapters/availability.d.ts +22 -0
  49. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -0
  50. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts +25 -0
  51. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -0
  52. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  53. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  54. package/dist/browser-root/hcs-25/adapters/ethos.d.ts +21 -0
  55. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -0
  56. package/dist/browser-root/hcs-25/adapters/index.d.ts +21 -0
  57. package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -0
  58. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts +61 -0
  59. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -0
  60. package/dist/browser-root/hcs-25/adapters/normalization.d.ts +20 -0
  61. package/dist/browser-root/hcs-25/adapters/normalization.d.ts.map +1 -0
  62. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts +22 -0
  63. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  64. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts +27 -0
  65. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts.map +1 -0
  66. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts +14 -0
  67. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  68. package/dist/browser-root/hcs-25/adapters/x402.d.ts +18 -0
  69. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -0
  70. package/dist/browser-root/hcs-25/identifiers.d.ts +2 -2
  71. package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -1
  72. package/dist/browser-root/hcs-25/index.d.ts +2 -0
  73. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  74. package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -1
  75. package/dist/browser-root/hcs-25/signals/index.d.ts +20 -0
  76. package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -0
  77. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +296 -0
  78. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -0
  79. package/dist/browser-root/hcs-25/signals/metadata.d.ts +40 -0
  80. package/dist/browser-root/hcs-25/signals/metadata.d.ts.map +1 -0
  81. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +127 -0
  82. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -0
  83. package/dist/browser-root/hcs-25/signals/operational.d.ts +757 -0
  84. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -0
  85. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +156 -0
  86. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -0
  87. package/dist/cjs/hcs-25/adapters/acp.d.ts +20 -0
  88. package/dist/cjs/hcs-25/adapters/acp.d.ts.map +1 -0
  89. package/dist/cjs/hcs-25/adapters/agentverse.d.ts +34 -0
  90. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -0
  91. package/dist/cjs/hcs-25/adapters/availability.d.ts +22 -0
  92. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -0
  93. package/dist/cjs/hcs-25/adapters/connectivity.d.ts +25 -0
  94. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -0
  95. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  96. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  97. package/dist/cjs/hcs-25/adapters/ethos.d.ts +21 -0
  98. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -0
  99. package/dist/cjs/hcs-25/adapters/index.d.ts +21 -0
  100. package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -0
  101. package/dist/cjs/hcs-25/adapters/model-evals.d.ts +61 -0
  102. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -0
  103. package/dist/cjs/hcs-25/adapters/normalization.d.ts +20 -0
  104. package/dist/cjs/hcs-25/adapters/normalization.d.ts.map +1 -0
  105. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts +22 -0
  106. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  107. package/dist/cjs/hcs-25/adapters/output-verification.d.ts +27 -0
  108. package/dist/cjs/hcs-25/adapters/output-verification.d.ts.map +1 -0
  109. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts +14 -0
  110. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  111. package/dist/cjs/hcs-25/adapters/x402.d.ts +18 -0
  112. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -0
  113. package/dist/cjs/hcs-25/identifiers.d.ts +2 -2
  114. package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -1
  115. package/dist/cjs/hcs-25/index.d.ts +2 -0
  116. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  117. package/dist/cjs/hcs-25/scoring.d.ts.map +1 -1
  118. package/dist/cjs/hcs-25/signals/index.d.ts +20 -0
  119. package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -0
  120. package/dist/cjs/hcs-25/signals/marketplace.d.ts +296 -0
  121. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -0
  122. package/dist/cjs/hcs-25/signals/metadata.d.ts +40 -0
  123. package/dist/cjs/hcs-25/signals/metadata.d.ts.map +1 -0
  124. package/dist/cjs/hcs-25/signals/model-evals.d.ts +127 -0
  125. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -0
  126. package/dist/cjs/hcs-25/signals/operational.d.ts +757 -0
  127. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -0
  128. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +156 -0
  129. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -0
  130. package/dist/cjs/standards-sdk.cjs +2 -2
  131. package/dist/cjs/standards-sdk.cjs.map +1 -1
  132. package/dist/es/hcs-25/adapters/acp.d.ts +20 -0
  133. package/dist/es/hcs-25/adapters/acp.d.ts.map +1 -0
  134. package/dist/es/hcs-25/adapters/agentverse.d.ts +34 -0
  135. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -0
  136. package/dist/es/hcs-25/adapters/availability.d.ts +22 -0
  137. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -0
  138. package/dist/es/hcs-25/adapters/connectivity.d.ts +25 -0
  139. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -0
  140. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  141. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  142. package/dist/es/hcs-25/adapters/ethos.d.ts +21 -0
  143. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -0
  144. package/dist/es/hcs-25/adapters/index.d.ts +21 -0
  145. package/dist/es/hcs-25/adapters/index.d.ts.map +1 -0
  146. package/dist/es/hcs-25/adapters/model-evals.d.ts +61 -0
  147. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -0
  148. package/dist/es/hcs-25/adapters/normalization.d.ts +20 -0
  149. package/dist/es/hcs-25/adapters/normalization.d.ts.map +1 -0
  150. package/dist/es/hcs-25/adapters/oss-popularity.d.ts +22 -0
  151. package/dist/es/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  152. package/dist/es/hcs-25/adapters/output-verification.d.ts +27 -0
  153. package/dist/es/hcs-25/adapters/output-verification.d.ts.map +1 -0
  154. package/dist/es/hcs-25/adapters/simple-evals.d.ts +14 -0
  155. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  156. package/dist/es/hcs-25/adapters/x402.d.ts +18 -0
  157. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -0
  158. package/dist/es/hcs-25/identifiers.d.ts +2 -2
  159. package/dist/es/hcs-25/identifiers.d.ts.map +1 -1
  160. package/dist/es/hcs-25/index.d.ts +2 -0
  161. package/dist/es/hcs-25/index.d.ts.map +1 -1
  162. package/dist/es/hcs-25/scoring.d.ts.map +1 -1
  163. package/dist/es/hcs-25/signals/index.d.ts +20 -0
  164. package/dist/es/hcs-25/signals/index.d.ts.map +1 -0
  165. package/dist/es/hcs-25/signals/marketplace.d.ts +296 -0
  166. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -0
  167. package/dist/es/hcs-25/signals/metadata.d.ts +40 -0
  168. package/dist/es/hcs-25/signals/metadata.d.ts.map +1 -0
  169. package/dist/es/hcs-25/signals/model-evals.d.ts +127 -0
  170. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -0
  171. package/dist/es/hcs-25/signals/operational.d.ts +757 -0
  172. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -0
  173. package/dist/es/hcs-25/signals/simple-evals.d.ts +156 -0
  174. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -0
  175. package/dist/es/standards-sdk.es.js +109 -40
  176. package/dist/es/standards-sdk.es.js.map +1 -1
  177. package/dist/es/standards-sdk.es101.js +2 -2
  178. package/dist/es/standards-sdk.es103.js +2 -2
  179. package/dist/es/standards-sdk.es104.js +1 -1
  180. package/dist/es/standards-sdk.es106.js +1 -1
  181. package/dist/es/standards-sdk.es108.js +2 -2
  182. package/dist/es/standards-sdk.es11.js +1 -1
  183. package/dist/es/standards-sdk.es110.js +1 -1
  184. package/dist/es/standards-sdk.es111.js +2 -2
  185. package/dist/es/standards-sdk.es115.js +3 -3
  186. package/dist/es/standards-sdk.es116.js +4 -4
  187. package/dist/es/standards-sdk.es117.js +1 -1
  188. package/dist/es/standards-sdk.es117.js.map +1 -1
  189. package/dist/es/standards-sdk.es119.js +10 -9
  190. package/dist/es/standards-sdk.es119.js.map +1 -1
  191. package/dist/es/standards-sdk.es12.js +1 -1
  192. package/dist/es/standards-sdk.es120.js +225 -251
  193. package/dist/es/standards-sdk.es120.js.map +1 -1
  194. package/dist/es/standards-sdk.es121.js +50 -477
  195. package/dist/es/standards-sdk.es121.js.map +1 -1
  196. package/dist/es/standards-sdk.es122.js +244 -97
  197. package/dist/es/standards-sdk.es122.js.map +1 -1
  198. package/dist/es/standards-sdk.es123.js +451 -133
  199. package/dist/es/standards-sdk.es123.js.map +1 -1
  200. package/dist/es/standards-sdk.es124.js +98 -27
  201. package/dist/es/standards-sdk.es124.js.map +1 -1
  202. package/dist/es/standards-sdk.es125.js +156 -8
  203. package/dist/es/standards-sdk.es125.js.map +1 -1
  204. package/dist/es/standards-sdk.es126.js +29 -177
  205. package/dist/es/standards-sdk.es126.js.map +1 -1
  206. package/dist/es/standards-sdk.es127.js +10 -27
  207. package/dist/es/standards-sdk.es127.js.map +1 -1
  208. package/dist/es/standards-sdk.es128.js +179 -19
  209. package/dist/es/standards-sdk.es128.js.map +1 -1
  210. package/dist/es/standards-sdk.es129.js +27 -158
  211. package/dist/es/standards-sdk.es129.js.map +1 -1
  212. package/dist/es/standards-sdk.es13.js +1 -1
  213. package/dist/es/standards-sdk.es130.js +16 -195
  214. package/dist/es/standards-sdk.es130.js.map +1 -1
  215. package/dist/es/standards-sdk.es131.js +133 -763
  216. package/dist/es/standards-sdk.es131.js.map +1 -1
  217. package/dist/es/standards-sdk.es132.js +198 -10
  218. package/dist/es/standards-sdk.es132.js.map +1 -1
  219. package/dist/es/standards-sdk.es133.js +762 -539
  220. package/dist/es/standards-sdk.es133.js.map +1 -1
  221. package/dist/es/standards-sdk.es134.js +10 -623
  222. package/dist/es/standards-sdk.es134.js.map +1 -1
  223. package/dist/es/standards-sdk.es135.js +567 -13
  224. package/dist/es/standards-sdk.es135.js.map +1 -1
  225. package/dist/es/standards-sdk.es136.js +626 -2
  226. package/dist/es/standards-sdk.es136.js.map +1 -1
  227. package/dist/es/standards-sdk.es137.js +12 -86
  228. package/dist/es/standards-sdk.es137.js.map +1 -1
  229. package/dist/es/standards-sdk.es138.js +2 -40
  230. package/dist/es/standards-sdk.es138.js.map +1 -1
  231. package/dist/es/standards-sdk.es139.js +87 -2
  232. package/dist/es/standards-sdk.es139.js.map +1 -1
  233. package/dist/es/standards-sdk.es14.js +1 -1
  234. package/dist/es/standards-sdk.es140.js +37 -232
  235. package/dist/es/standards-sdk.es140.js.map +1 -1
  236. package/dist/es/standards-sdk.es141.js +2 -1140
  237. package/dist/es/standards-sdk.es141.js.map +1 -1
  238. package/dist/es/standards-sdk.es142.js +213 -284
  239. package/dist/es/standards-sdk.es142.js.map +1 -1
  240. package/dist/es/standards-sdk.es143.js +1138 -420
  241. package/dist/es/standards-sdk.es143.js.map +1 -1
  242. package/dist/es/standards-sdk.es144.js +301 -350
  243. package/dist/es/standards-sdk.es144.js.map +1 -1
  244. package/dist/es/standards-sdk.es145.js +417 -1117
  245. package/dist/es/standards-sdk.es145.js.map +1 -1
  246. package/dist/es/standards-sdk.es146.js +348 -201
  247. package/dist/es/standards-sdk.es146.js.map +1 -1
  248. package/dist/es/standards-sdk.es147.js +1035 -1480
  249. package/dist/es/standards-sdk.es147.js.map +1 -1
  250. package/dist/es/standards-sdk.es148.js +181 -1130
  251. package/dist/es/standards-sdk.es148.js.map +1 -1
  252. package/dist/es/standards-sdk.es149.js +1564 -14
  253. package/dist/es/standards-sdk.es149.js.map +1 -1
  254. package/dist/es/standards-sdk.es15.js +1 -1
  255. package/dist/es/standards-sdk.es150.js +1122 -224
  256. package/dist/es/standards-sdk.es150.js.map +1 -1
  257. package/dist/es/standards-sdk.es151.js +17 -4
  258. package/dist/es/standards-sdk.es151.js.map +1 -1
  259. package/dist/es/standards-sdk.es152.js +252 -74
  260. package/dist/es/standards-sdk.es152.js.map +1 -1
  261. package/dist/es/standards-sdk.es153.js +4 -87
  262. package/dist/es/standards-sdk.es153.js.map +1 -1
  263. package/dist/es/standards-sdk.es154.js +73 -52
  264. package/dist/es/standards-sdk.es154.js.map +1 -1
  265. package/dist/es/standards-sdk.es155.js +86 -2546
  266. package/dist/es/standards-sdk.es155.js.map +1 -1
  267. package/dist/es/standards-sdk.es156.js +53 -152
  268. package/dist/es/standards-sdk.es156.js.map +1 -1
  269. package/dist/es/standards-sdk.es157.js +2547 -7
  270. package/dist/es/standards-sdk.es157.js.map +1 -1
  271. package/dist/es/standards-sdk.es158.js +138 -65
  272. package/dist/es/standards-sdk.es158.js.map +1 -1
  273. package/dist/es/standards-sdk.es159.js +7 -65
  274. package/dist/es/standards-sdk.es159.js.map +1 -1
  275. package/dist/es/standards-sdk.es16.js +4 -4
  276. package/dist/es/standards-sdk.es160.js +86 -30
  277. package/dist/es/standards-sdk.es160.js.map +1 -1
  278. package/dist/es/standards-sdk.es161.js +65 -34
  279. package/dist/es/standards-sdk.es161.js.map +1 -1
  280. package/dist/es/standards-sdk.es162.js +194 -48
  281. package/dist/es/standards-sdk.es162.js.map +1 -1
  282. package/dist/es/standards-sdk.es163.js +17 -12473
  283. package/dist/es/standards-sdk.es163.js.map +1 -1
  284. package/dist/es/standards-sdk.es164.js +53 -133
  285. package/dist/es/standards-sdk.es164.js.map +1 -1
  286. package/dist/es/standards-sdk.es165.js +91 -38
  287. package/dist/es/standards-sdk.es165.js.map +1 -1
  288. package/dist/es/standards-sdk.es166.js +47 -15
  289. package/dist/es/standards-sdk.es166.js.map +1 -1
  290. package/dist/es/standards-sdk.es167.js +201 -53
  291. package/dist/es/standards-sdk.es167.js.map +1 -1
  292. package/dist/es/standards-sdk.es168.js +53 -108
  293. package/dist/es/standards-sdk.es168.js.map +1 -1
  294. package/dist/es/standards-sdk.es169.js +47 -79
  295. package/dist/es/standards-sdk.es169.js.map +1 -1
  296. package/dist/es/standards-sdk.es170.js +48 -192
  297. package/dist/es/standards-sdk.es170.js.map +1 -1
  298. package/dist/es/standards-sdk.es171.js +47 -670
  299. package/dist/es/standards-sdk.es171.js.map +1 -1
  300. package/dist/es/standards-sdk.es172.js +110 -61
  301. package/dist/es/standards-sdk.es172.js.map +1 -1
  302. package/dist/es/standards-sdk.es173.js +51 -169
  303. package/dist/es/standards-sdk.es173.js.map +1 -1
  304. package/dist/es/standards-sdk.es174.js +39 -317
  305. package/dist/es/standards-sdk.es174.js.map +1 -1
  306. package/dist/es/standards-sdk.es175.js +72 -346
  307. package/dist/es/standards-sdk.es175.js.map +1 -1
  308. package/dist/es/standards-sdk.es176.js +68 -453
  309. package/dist/es/standards-sdk.es176.js.map +1 -1
  310. package/dist/es/standards-sdk.es177.js +44 -331
  311. package/dist/es/standards-sdk.es177.js.map +1 -1
  312. package/dist/es/standards-sdk.es178.js +31 -71
  313. package/dist/es/standards-sdk.es178.js.map +1 -1
  314. package/dist/es/standards-sdk.es179.js +30 -139
  315. package/dist/es/standards-sdk.es179.js.map +1 -1
  316. package/dist/es/standards-sdk.es18.js +11 -11
  317. package/dist/es/standards-sdk.es180.js +34 -517
  318. package/dist/es/standards-sdk.es180.js.map +1 -1
  319. package/dist/es/standards-sdk.es181.js +48 -259
  320. package/dist/es/standards-sdk.es181.js.map +1 -1
  321. package/dist/es/standards-sdk.es182.js +127 -185
  322. package/dist/es/standards-sdk.es182.js.map +1 -1
  323. package/dist/es/standards-sdk.es183.js +36 -113
  324. package/dist/es/standards-sdk.es183.js.map +1 -1
  325. package/dist/es/standards-sdk.es184.js +12464 -134
  326. package/dist/es/standards-sdk.es184.js.map +1 -1
  327. package/dist/es/standards-sdk.es185.js +14 -181
  328. package/dist/es/standards-sdk.es185.js.map +1 -1
  329. package/dist/es/standards-sdk.es186.js +479 -491
  330. package/dist/es/standards-sdk.es186.js.map +1 -1
  331. package/dist/es/standards-sdk.es187.js +93 -167
  332. package/dist/es/standards-sdk.es187.js.map +1 -1
  333. package/dist/es/standards-sdk.es188.js +61 -223
  334. package/dist/es/standards-sdk.es188.js.map +1 -1
  335. package/dist/es/standards-sdk.es189.js +49 -232
  336. package/dist/es/standards-sdk.es189.js.map +1 -1
  337. package/dist/es/standards-sdk.es19.js +8 -8
  338. package/dist/es/standards-sdk.es190.js +84 -0
  339. package/dist/es/standards-sdk.es190.js.map +1 -0
  340. package/dist/es/standards-sdk.es191.js +203 -0
  341. package/dist/es/standards-sdk.es191.js.map +1 -0
  342. package/dist/es/standards-sdk.es192.js +175 -0
  343. package/dist/es/standards-sdk.es192.js.map +1 -0
  344. package/dist/es/standards-sdk.es193.js +325 -0
  345. package/dist/es/standards-sdk.es193.js.map +1 -0
  346. package/dist/es/standards-sdk.es194.js +349 -0
  347. package/dist/es/standards-sdk.es194.js.map +1 -0
  348. package/dist/es/standards-sdk.es195.js +456 -0
  349. package/dist/es/standards-sdk.es195.js.map +1 -0
  350. package/dist/es/standards-sdk.es196.js +334 -0
  351. package/dist/es/standards-sdk.es196.js.map +1 -0
  352. package/dist/es/standards-sdk.es197.js +79 -0
  353. package/dist/es/standards-sdk.es197.js.map +1 -0
  354. package/dist/es/standards-sdk.es198.js +142 -0
  355. package/dist/es/standards-sdk.es198.js.map +1 -0
  356. package/dist/es/standards-sdk.es199.js +520 -0
  357. package/dist/es/standards-sdk.es199.js.map +1 -0
  358. package/dist/es/standards-sdk.es2.js +2 -2
  359. package/dist/es/standards-sdk.es20.js +1 -1
  360. package/dist/es/standards-sdk.es200.js +262 -0
  361. package/dist/es/standards-sdk.es200.js.map +1 -0
  362. package/dist/es/standards-sdk.es201.js +199 -0
  363. package/dist/es/standards-sdk.es201.js.map +1 -0
  364. package/dist/es/standards-sdk.es202.js +122 -0
  365. package/dist/es/standards-sdk.es202.js.map +1 -0
  366. package/dist/es/standards-sdk.es203.js +155 -0
  367. package/dist/es/standards-sdk.es203.js.map +1 -0
  368. package/dist/es/standards-sdk.es204.js +187 -0
  369. package/dist/es/standards-sdk.es204.js.map +1 -0
  370. package/dist/es/standards-sdk.es205.js +687 -0
  371. package/dist/es/standards-sdk.es205.js.map +1 -0
  372. package/dist/es/standards-sdk.es206.js +188 -0
  373. package/dist/es/standards-sdk.es206.js.map +1 -0
  374. package/dist/es/standards-sdk.es207.js +238 -0
  375. package/dist/es/standards-sdk.es207.js.map +1 -0
  376. package/dist/es/standards-sdk.es208.js +242 -0
  377. package/dist/es/standards-sdk.es208.js.map +1 -0
  378. package/dist/es/standards-sdk.es21.js +1 -1
  379. package/dist/es/standards-sdk.es22.js +1 -1
  380. package/dist/es/standards-sdk.es23.js +1 -1
  381. package/dist/es/standards-sdk.es24.js +1 -1
  382. package/dist/es/standards-sdk.es25.js +1 -1
  383. package/dist/es/standards-sdk.es26.js +1 -1
  384. package/dist/es/standards-sdk.es27.js +11 -11
  385. package/dist/es/standards-sdk.es30.js +2 -2
  386. package/dist/es/standards-sdk.es31.js +4 -4
  387. package/dist/es/standards-sdk.es32.js +1 -1
  388. package/dist/es/standards-sdk.es35.js +5 -5
  389. package/dist/es/standards-sdk.es36.js +4 -4
  390. package/dist/es/standards-sdk.es37.js +2 -2
  391. package/dist/es/standards-sdk.es38.js +2 -2
  392. package/dist/es/standards-sdk.es39.js +1 -1
  393. package/dist/es/standards-sdk.es4.js +2 -2
  394. package/dist/es/standards-sdk.es40.js +1 -1
  395. package/dist/es/standards-sdk.es41.js +2 -2
  396. package/dist/es/standards-sdk.es46.js +1 -1
  397. package/dist/es/standards-sdk.es5.js +2 -2
  398. package/dist/es/standards-sdk.es51.js +1 -1
  399. package/dist/es/standards-sdk.es53.js +1 -1
  400. package/dist/es/standards-sdk.es56.js +2 -2
  401. package/dist/es/standards-sdk.es59.js +1 -1
  402. package/dist/es/standards-sdk.es6.js +2 -2
  403. package/dist/es/standards-sdk.es60.js +1 -1
  404. package/dist/es/standards-sdk.es62.js +1 -1
  405. package/dist/es/standards-sdk.es63.js +2 -2
  406. package/dist/es/standards-sdk.es64.js +1 -1
  407. package/dist/es/standards-sdk.es65.js +1 -1
  408. package/dist/es/standards-sdk.es66.js +1 -1
  409. package/dist/es/standards-sdk.es67.js +6 -6
  410. package/dist/es/standards-sdk.es69.js +1 -1
  411. package/dist/es/standards-sdk.es7.js +1 -1
  412. package/dist/es/standards-sdk.es71.js +2 -2
  413. package/dist/es/standards-sdk.es72.js +3 -3
  414. package/dist/es/standards-sdk.es75.js +5 -5
  415. package/dist/es/standards-sdk.es76.js +3 -3
  416. package/dist/es/standards-sdk.es77.js +2 -2
  417. package/dist/es/standards-sdk.es78.js +1 -1
  418. package/dist/es/standards-sdk.es81.js +2 -2
  419. package/dist/es/standards-sdk.es83.js +2 -2
  420. package/dist/es/standards-sdk.es84.js +3 -3
  421. package/dist/es/standards-sdk.es85.js +1 -1
  422. package/dist/es/standards-sdk.es88.js +1 -1
  423. package/dist/es/standards-sdk.es89.js +2 -2
  424. package/dist/es/standards-sdk.es9.js +2 -2
  425. package/dist/es/standards-sdk.es90.js +4 -4
  426. package/dist/es/standards-sdk.es94.js +3 -3
  427. package/dist/es/standards-sdk.es96.js +2 -2
  428. package/dist/es/standards-sdk.es98.js +1 -1
  429. package/dist/es/standards-sdk.es99.js +3 -3
  430. 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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"}