@hashgraphonline/standards-sdk 0.1.184 → 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 (452) 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 +24 -0
  28. package/dist/browser/hcs-25/identifiers.d.ts.map +1 -0
  29. package/dist/browser/hcs-25/index.d.ts +6 -0
  30. package/dist/browser/hcs-25/index.d.ts.map +1 -0
  31. package/dist/browser/hcs-25/scoring.d.ts +32 -0
  32. package/dist/browser/hcs-25/scoring.d.ts.map +1 -0
  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/hcs-25/types.d.ts +363 -0
  46. package/dist/browser/hcs-25/types.d.ts.map +1 -0
  47. package/dist/browser/index.d.ts +1 -0
  48. package/dist/browser/index.d.ts.map +1 -1
  49. package/dist/browser-root/hcs-25/adapters/acp.d.ts +20 -0
  50. package/dist/browser-root/hcs-25/adapters/acp.d.ts.map +1 -0
  51. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts +34 -0
  52. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -0
  53. package/dist/browser-root/hcs-25/adapters/availability.d.ts +22 -0
  54. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -0
  55. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts +25 -0
  56. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -0
  57. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  58. package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  59. package/dist/browser-root/hcs-25/adapters/ethos.d.ts +21 -0
  60. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -0
  61. package/dist/browser-root/hcs-25/adapters/index.d.ts +21 -0
  62. package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -0
  63. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts +61 -0
  64. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -0
  65. package/dist/browser-root/hcs-25/adapters/normalization.d.ts +20 -0
  66. package/dist/browser-root/hcs-25/adapters/normalization.d.ts.map +1 -0
  67. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts +22 -0
  68. package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  69. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts +27 -0
  70. package/dist/browser-root/hcs-25/adapters/output-verification.d.ts.map +1 -0
  71. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts +14 -0
  72. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  73. package/dist/browser-root/hcs-25/adapters/x402.d.ts +18 -0
  74. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -0
  75. package/dist/browser-root/hcs-25/identifiers.d.ts +24 -0
  76. package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -0
  77. package/dist/browser-root/hcs-25/index.d.ts +6 -0
  78. package/dist/browser-root/hcs-25/index.d.ts.map +1 -0
  79. package/dist/browser-root/hcs-25/scoring.d.ts +32 -0
  80. package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -0
  81. package/dist/browser-root/hcs-25/signals/index.d.ts +20 -0
  82. package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -0
  83. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +296 -0
  84. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -0
  85. package/dist/browser-root/hcs-25/signals/metadata.d.ts +40 -0
  86. package/dist/browser-root/hcs-25/signals/metadata.d.ts.map +1 -0
  87. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +127 -0
  88. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -0
  89. package/dist/browser-root/hcs-25/signals/operational.d.ts +757 -0
  90. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -0
  91. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +156 -0
  92. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -0
  93. package/dist/browser-root/hcs-25/types.d.ts +363 -0
  94. package/dist/browser-root/hcs-25/types.d.ts.map +1 -0
  95. package/dist/browser-root/index.d.ts +1 -0
  96. package/dist/browser-root/index.d.ts.map +1 -1
  97. package/dist/cjs/hcs-25/adapters/acp.d.ts +20 -0
  98. package/dist/cjs/hcs-25/adapters/acp.d.ts.map +1 -0
  99. package/dist/cjs/hcs-25/adapters/agentverse.d.ts +34 -0
  100. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -0
  101. package/dist/cjs/hcs-25/adapters/availability.d.ts +22 -0
  102. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -0
  103. package/dist/cjs/hcs-25/adapters/connectivity.d.ts +25 -0
  104. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -0
  105. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  106. package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  107. package/dist/cjs/hcs-25/adapters/ethos.d.ts +21 -0
  108. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -0
  109. package/dist/cjs/hcs-25/adapters/index.d.ts +21 -0
  110. package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -0
  111. package/dist/cjs/hcs-25/adapters/model-evals.d.ts +61 -0
  112. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -0
  113. package/dist/cjs/hcs-25/adapters/normalization.d.ts +20 -0
  114. package/dist/cjs/hcs-25/adapters/normalization.d.ts.map +1 -0
  115. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts +22 -0
  116. package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  117. package/dist/cjs/hcs-25/adapters/output-verification.d.ts +27 -0
  118. package/dist/cjs/hcs-25/adapters/output-verification.d.ts.map +1 -0
  119. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts +14 -0
  120. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  121. package/dist/cjs/hcs-25/adapters/x402.d.ts +18 -0
  122. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -0
  123. package/dist/cjs/hcs-25/identifiers.d.ts +24 -0
  124. package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -0
  125. package/dist/cjs/hcs-25/index.d.ts +6 -0
  126. package/dist/cjs/hcs-25/index.d.ts.map +1 -0
  127. package/dist/cjs/hcs-25/scoring.d.ts +32 -0
  128. package/dist/cjs/hcs-25/scoring.d.ts.map +1 -0
  129. package/dist/cjs/hcs-25/signals/index.d.ts +20 -0
  130. package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -0
  131. package/dist/cjs/hcs-25/signals/marketplace.d.ts +296 -0
  132. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -0
  133. package/dist/cjs/hcs-25/signals/metadata.d.ts +40 -0
  134. package/dist/cjs/hcs-25/signals/metadata.d.ts.map +1 -0
  135. package/dist/cjs/hcs-25/signals/model-evals.d.ts +127 -0
  136. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -0
  137. package/dist/cjs/hcs-25/signals/operational.d.ts +757 -0
  138. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -0
  139. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +156 -0
  140. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -0
  141. package/dist/cjs/hcs-25/types.d.ts +363 -0
  142. package/dist/cjs/hcs-25/types.d.ts.map +1 -0
  143. package/dist/cjs/index.d.ts +1 -0
  144. package/dist/cjs/index.d.ts.map +1 -1
  145. package/dist/cjs/standards-sdk.cjs +2 -2
  146. package/dist/cjs/standards-sdk.cjs.map +1 -1
  147. package/dist/es/hcs-25/adapters/acp.d.ts +20 -0
  148. package/dist/es/hcs-25/adapters/acp.d.ts.map +1 -0
  149. package/dist/es/hcs-25/adapters/agentverse.d.ts +34 -0
  150. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -0
  151. package/dist/es/hcs-25/adapters/availability.d.ts +22 -0
  152. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -0
  153. package/dist/es/hcs-25/adapters/connectivity.d.ts +25 -0
  154. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -0
  155. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
  156. package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
  157. package/dist/es/hcs-25/adapters/ethos.d.ts +21 -0
  158. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -0
  159. package/dist/es/hcs-25/adapters/index.d.ts +21 -0
  160. package/dist/es/hcs-25/adapters/index.d.ts.map +1 -0
  161. package/dist/es/hcs-25/adapters/model-evals.d.ts +61 -0
  162. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -0
  163. package/dist/es/hcs-25/adapters/normalization.d.ts +20 -0
  164. package/dist/es/hcs-25/adapters/normalization.d.ts.map +1 -0
  165. package/dist/es/hcs-25/adapters/oss-popularity.d.ts +22 -0
  166. package/dist/es/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
  167. package/dist/es/hcs-25/adapters/output-verification.d.ts +27 -0
  168. package/dist/es/hcs-25/adapters/output-verification.d.ts.map +1 -0
  169. package/dist/es/hcs-25/adapters/simple-evals.d.ts +14 -0
  170. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -0
  171. package/dist/es/hcs-25/adapters/x402.d.ts +18 -0
  172. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -0
  173. package/dist/es/hcs-25/identifiers.d.ts +24 -0
  174. package/dist/es/hcs-25/identifiers.d.ts.map +1 -0
  175. package/dist/es/hcs-25/index.d.ts +6 -0
  176. package/dist/es/hcs-25/index.d.ts.map +1 -0
  177. package/dist/es/hcs-25/scoring.d.ts +32 -0
  178. package/dist/es/hcs-25/scoring.d.ts.map +1 -0
  179. package/dist/es/hcs-25/signals/index.d.ts +20 -0
  180. package/dist/es/hcs-25/signals/index.d.ts.map +1 -0
  181. package/dist/es/hcs-25/signals/marketplace.d.ts +296 -0
  182. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -0
  183. package/dist/es/hcs-25/signals/metadata.d.ts +40 -0
  184. package/dist/es/hcs-25/signals/metadata.d.ts.map +1 -0
  185. package/dist/es/hcs-25/signals/model-evals.d.ts +127 -0
  186. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -0
  187. package/dist/es/hcs-25/signals/operational.d.ts +757 -0
  188. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -0
  189. package/dist/es/hcs-25/signals/simple-evals.d.ts +156 -0
  190. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -0
  191. package/dist/es/hcs-25/types.d.ts +363 -0
  192. package/dist/es/hcs-25/types.d.ts.map +1 -0
  193. package/dist/es/index.d.ts +1 -0
  194. package/dist/es/index.d.ts.map +1 -1
  195. package/dist/es/standards-sdk.es.js +131 -40
  196. package/dist/es/standards-sdk.es.js.map +1 -1
  197. package/dist/es/standards-sdk.es101.js +2 -2
  198. package/dist/es/standards-sdk.es103.js +2 -2
  199. package/dist/es/standards-sdk.es104.js +1 -1
  200. package/dist/es/standards-sdk.es106.js +1 -1
  201. package/dist/es/standards-sdk.es108.js +2 -2
  202. package/dist/es/standards-sdk.es11.js +1 -1
  203. package/dist/es/standards-sdk.es110.js +1 -1
  204. package/dist/es/standards-sdk.es111.js +2 -2
  205. package/dist/es/standards-sdk.es115.js +3 -3
  206. package/dist/es/standards-sdk.es116.js +4 -4
  207. package/dist/es/standards-sdk.es117.js +19 -251
  208. package/dist/es/standards-sdk.es117.js.map +1 -1
  209. package/dist/es/standards-sdk.es118.js +60 -475
  210. package/dist/es/standards-sdk.es118.js.map +1 -1
  211. package/dist/es/standards-sdk.es119.js +218 -86
  212. package/dist/es/standards-sdk.es119.js.map +1 -1
  213. package/dist/es/standards-sdk.es12.js +1 -1
  214. package/dist/es/standards-sdk.es120.js +225 -159
  215. package/dist/es/standards-sdk.es120.js.map +1 -1
  216. package/dist/es/standards-sdk.es121.js +50 -33
  217. package/dist/es/standards-sdk.es121.js.map +1 -1
  218. package/dist/es/standards-sdk.es122.js +250 -10
  219. package/dist/es/standards-sdk.es122.js.map +1 -1
  220. package/dist/es/standards-sdk.es123.js +448 -152
  221. package/dist/es/standards-sdk.es123.js.map +1 -1
  222. package/dist/es/standards-sdk.es124.js +101 -25
  223. package/dist/es/standards-sdk.es124.js.map +1 -1
  224. package/dist/es/standards-sdk.es125.js +155 -17
  225. package/dist/es/standards-sdk.es125.js.map +1 -1
  226. package/dist/es/standards-sdk.es126.js +29 -155
  227. package/dist/es/standards-sdk.es126.js.map +1 -1
  228. package/dist/es/standards-sdk.es127.js +9 -198
  229. package/dist/es/standards-sdk.es127.js.map +1 -1
  230. package/dist/es/standards-sdk.es128.js +146 -754
  231. package/dist/es/standards-sdk.es128.js.map +1 -1
  232. package/dist/es/standards-sdk.es129.js +27 -11
  233. package/dist/es/standards-sdk.es129.js.map +1 -1
  234. package/dist/es/standards-sdk.es13.js +1 -1
  235. package/dist/es/standards-sdk.es130.js +19 -564
  236. package/dist/es/standards-sdk.es130.js.map +1 -1
  237. package/dist/es/standards-sdk.es131.js +140 -606
  238. package/dist/es/standards-sdk.es131.js.map +1 -1
  239. package/dist/es/standards-sdk.es132.js +200 -12
  240. package/dist/es/standards-sdk.es132.js.map +1 -1
  241. package/dist/es/standards-sdk.es133.js +790 -2
  242. package/dist/es/standards-sdk.es133.js.map +1 -1
  243. package/dist/es/standards-sdk.es134.js +10 -84
  244. package/dist/es/standards-sdk.es134.js.map +1 -1
  245. package/dist/es/standards-sdk.es135.js +567 -40
  246. package/dist/es/standards-sdk.es135.js.map +1 -1
  247. package/dist/es/standards-sdk.es136.js +626 -2
  248. package/dist/es/standards-sdk.es136.js.map +1 -1
  249. package/dist/es/standards-sdk.es137.js +12 -234
  250. package/dist/es/standards-sdk.es137.js.map +1 -1
  251. package/dist/es/standards-sdk.es138.js +2 -1140
  252. package/dist/es/standards-sdk.es138.js.map +1 -1
  253. package/dist/es/standards-sdk.es139.js +73 -292
  254. package/dist/es/standards-sdk.es139.js.map +1 -1
  255. package/dist/es/standards-sdk.es14.js +1 -1
  256. package/dist/es/standards-sdk.es140.js +36 -418
  257. package/dist/es/standards-sdk.es140.js.map +1 -1
  258. package/dist/es/standards-sdk.es141.js +2 -355
  259. package/dist/es/standards-sdk.es141.js.map +1 -1
  260. package/dist/es/standards-sdk.es142.js +198 -1085
  261. package/dist/es/standards-sdk.es142.js.map +1 -1
  262. package/dist/es/standards-sdk.es143.js +1107 -175
  263. package/dist/es/standards-sdk.es143.js.map +1 -1
  264. package/dist/es/standards-sdk.es144.js +218 -1479
  265. package/dist/es/standards-sdk.es144.js.map +1 -1
  266. package/dist/es/standards-sdk.es145.js +419 -1154
  267. package/dist/es/standards-sdk.es145.js.map +1 -1
  268. package/dist/es/standards-sdk.es146.js +351 -13
  269. package/dist/es/standards-sdk.es146.js.map +1 -1
  270. package/dist/es/standards-sdk.es147.js +1077 -214
  271. package/dist/es/standards-sdk.es147.js.map +1 -1
  272. package/dist/es/standards-sdk.es148.js +208 -4
  273. package/dist/es/standards-sdk.es148.js.map +1 -1
  274. package/dist/es/standards-sdk.es149.js +1564 -78
  275. package/dist/es/standards-sdk.es149.js.map +1 -1
  276. package/dist/es/standards-sdk.es15.js +1 -1
  277. package/dist/es/standards-sdk.es150.js +1153 -83
  278. package/dist/es/standards-sdk.es150.js.map +1 -1
  279. package/dist/es/standards-sdk.es151.js +15 -58
  280. package/dist/es/standards-sdk.es151.js.map +1 -1
  281. package/dist/es/standards-sdk.es152.js +259 -2547
  282. package/dist/es/standards-sdk.es152.js.map +1 -1
  283. package/dist/es/standards-sdk.es153.js +4 -159
  284. package/dist/es/standards-sdk.es153.js.map +1 -1
  285. package/dist/es/standards-sdk.es154.js +81 -7
  286. package/dist/es/standards-sdk.es154.js.map +1 -1
  287. package/dist/es/standards-sdk.es155.js +79 -78
  288. package/dist/es/standards-sdk.es155.js.map +1 -1
  289. package/dist/es/standards-sdk.es156.js +56 -61
  290. package/dist/es/standards-sdk.es156.js.map +1 -1
  291. package/dist/es/standards-sdk.es157.js +2547 -30
  292. package/dist/es/standards-sdk.es157.js.map +1 -1
  293. package/dist/es/standards-sdk.es158.js +159 -34
  294. package/dist/es/standards-sdk.es158.js.map +1 -1
  295. package/dist/es/standards-sdk.es159.js +7 -48
  296. package/dist/es/standards-sdk.es159.js.map +1 -1
  297. package/dist/es/standards-sdk.es16.js +5 -5
  298. package/dist/es/standards-sdk.es160.js +70 -122
  299. package/dist/es/standards-sdk.es160.js.map +1 -1
  300. package/dist/es/standards-sdk.es161.js +58 -35
  301. package/dist/es/standards-sdk.es161.js.map +1 -1
  302. package/dist/es/standards-sdk.es162.js +190 -12478
  303. package/dist/es/standards-sdk.es162.js.map +1 -1
  304. package/dist/es/standards-sdk.es163.js +22 -52
  305. package/dist/es/standards-sdk.es163.js.map +1 -1
  306. package/dist/es/standards-sdk.es164.js +54 -107
  307. package/dist/es/standards-sdk.es164.js.map +1 -1
  308. package/dist/es/standards-sdk.es165.js +90 -76
  309. package/dist/es/standards-sdk.es165.js.map +1 -1
  310. package/dist/es/standards-sdk.es166.js +46 -197
  311. package/dist/es/standards-sdk.es166.js.map +1 -1
  312. package/dist/es/standards-sdk.es167.js +203 -16
  313. package/dist/es/standards-sdk.es167.js.map +1 -1
  314. package/dist/es/standards-sdk.es168.js +54 -670
  315. package/dist/es/standards-sdk.es168.js.map +1 -1
  316. package/dist/es/standards-sdk.es169.js +44 -167
  317. package/dist/es/standards-sdk.es169.js.map +1 -1
  318. package/dist/es/standards-sdk.es170.js +55 -321
  319. package/dist/es/standards-sdk.es170.js.map +1 -1
  320. package/dist/es/standards-sdk.es171.js +45 -342
  321. package/dist/es/standards-sdk.es171.js.map +1 -1
  322. package/dist/es/standards-sdk.es172.js +115 -446
  323. package/dist/es/standards-sdk.es172.js.map +1 -1
  324. package/dist/es/standards-sdk.es173.js +51 -328
  325. package/dist/es/standards-sdk.es173.js.map +1 -1
  326. package/dist/es/standards-sdk.es174.js +42 -74
  327. package/dist/es/standards-sdk.es174.js.map +1 -1
  328. package/dist/es/standards-sdk.es175.js +72 -73
  329. package/dist/es/standards-sdk.es175.js.map +1 -1
  330. package/dist/es/standards-sdk.es176.js +68 -139
  331. package/dist/es/standards-sdk.es176.js.map +1 -1
  332. package/dist/es/standards-sdk.es177.js +44 -517
  333. package/dist/es/standards-sdk.es177.js.map +1 -1
  334. package/dist/es/standards-sdk.es178.js +33 -256
  335. package/dist/es/standards-sdk.es178.js.map +1 -1
  336. package/dist/es/standards-sdk.es179.js +30 -196
  337. package/dist/es/standards-sdk.es179.js.map +1 -1
  338. package/dist/es/standards-sdk.es18.js +12 -12
  339. package/dist/es/standards-sdk.es180.js +34 -119
  340. package/dist/es/standards-sdk.es180.js.map +1 -1
  341. package/dist/es/standards-sdk.es181.js +48 -152
  342. package/dist/es/standards-sdk.es181.js.map +1 -1
  343. package/dist/es/standards-sdk.es182.js +126 -172
  344. package/dist/es/standards-sdk.es182.js.map +1 -1
  345. package/dist/es/standards-sdk.es183.js +34 -676
  346. package/dist/es/standards-sdk.es183.js.map +1 -1
  347. package/dist/es/standards-sdk.es184.js +12453 -156
  348. package/dist/es/standards-sdk.es184.js.map +1 -1
  349. package/dist/es/standards-sdk.es185.js +14 -232
  350. package/dist/es/standards-sdk.es185.js.map +1 -1
  351. package/dist/es/standards-sdk.es186.js +642 -209
  352. package/dist/es/standards-sdk.es186.js.map +1 -1
  353. package/dist/es/standards-sdk.es187.js +114 -0
  354. package/dist/es/standards-sdk.es187.js.map +1 -0
  355. package/dist/es/standards-sdk.es188.js +76 -0
  356. package/dist/es/standards-sdk.es188.js.map +1 -0
  357. package/dist/es/standards-sdk.es189.js +59 -0
  358. package/dist/es/standards-sdk.es189.js.map +1 -0
  359. package/dist/es/standards-sdk.es19.js +9 -9
  360. package/dist/es/standards-sdk.es190.js +84 -0
  361. package/dist/es/standards-sdk.es190.js.map +1 -0
  362. package/dist/es/standards-sdk.es191.js +203 -0
  363. package/dist/es/standards-sdk.es191.js.map +1 -0
  364. package/dist/es/standards-sdk.es192.js +175 -0
  365. package/dist/es/standards-sdk.es192.js.map +1 -0
  366. package/dist/es/standards-sdk.es193.js +325 -0
  367. package/dist/es/standards-sdk.es193.js.map +1 -0
  368. package/dist/es/standards-sdk.es194.js +349 -0
  369. package/dist/es/standards-sdk.es194.js.map +1 -0
  370. package/dist/es/standards-sdk.es195.js +456 -0
  371. package/dist/es/standards-sdk.es195.js.map +1 -0
  372. package/dist/es/standards-sdk.es196.js +334 -0
  373. package/dist/es/standards-sdk.es196.js.map +1 -0
  374. package/dist/es/standards-sdk.es197.js +79 -0
  375. package/dist/es/standards-sdk.es197.js.map +1 -0
  376. package/dist/es/standards-sdk.es198.js +142 -0
  377. package/dist/es/standards-sdk.es198.js.map +1 -0
  378. package/dist/es/standards-sdk.es199.js +520 -0
  379. package/dist/es/standards-sdk.es199.js.map +1 -0
  380. package/dist/es/standards-sdk.es2.js +2 -2
  381. package/dist/es/standards-sdk.es20.js +1 -1
  382. package/dist/es/standards-sdk.es200.js +262 -0
  383. package/dist/es/standards-sdk.es200.js.map +1 -0
  384. package/dist/es/standards-sdk.es201.js +199 -0
  385. package/dist/es/standards-sdk.es201.js.map +1 -0
  386. package/dist/es/standards-sdk.es202.js +122 -0
  387. package/dist/es/standards-sdk.es202.js.map +1 -0
  388. package/dist/es/standards-sdk.es203.js +155 -0
  389. package/dist/es/standards-sdk.es203.js.map +1 -0
  390. package/dist/es/standards-sdk.es204.js +187 -0
  391. package/dist/es/standards-sdk.es204.js.map +1 -0
  392. package/dist/es/standards-sdk.es205.js +687 -0
  393. package/dist/es/standards-sdk.es205.js.map +1 -0
  394. package/dist/es/standards-sdk.es206.js +188 -0
  395. package/dist/es/standards-sdk.es206.js.map +1 -0
  396. package/dist/es/standards-sdk.es207.js +238 -0
  397. package/dist/es/standards-sdk.es207.js.map +1 -0
  398. package/dist/es/standards-sdk.es208.js +242 -0
  399. package/dist/es/standards-sdk.es208.js.map +1 -0
  400. package/dist/es/standards-sdk.es21.js +1 -1
  401. package/dist/es/standards-sdk.es22.js +1 -1
  402. package/dist/es/standards-sdk.es23.js +1 -1
  403. package/dist/es/standards-sdk.es24.js +1 -1
  404. package/dist/es/standards-sdk.es25.js +1 -1
  405. package/dist/es/standards-sdk.es26.js +1 -1
  406. package/dist/es/standards-sdk.es27.js +12 -12
  407. package/dist/es/standards-sdk.es30.js +2 -2
  408. package/dist/es/standards-sdk.es31.js +4 -4
  409. package/dist/es/standards-sdk.es32.js +1 -1
  410. package/dist/es/standards-sdk.es35.js +6 -6
  411. package/dist/es/standards-sdk.es36.js +4 -4
  412. package/dist/es/standards-sdk.es37.js +2 -2
  413. package/dist/es/standards-sdk.es38.js +2 -2
  414. package/dist/es/standards-sdk.es39.js +1 -1
  415. package/dist/es/standards-sdk.es4.js +2 -2
  416. package/dist/es/standards-sdk.es40.js +1 -1
  417. package/dist/es/standards-sdk.es41.js +2 -2
  418. package/dist/es/standards-sdk.es46.js +1 -1
  419. package/dist/es/standards-sdk.es5.js +2 -2
  420. package/dist/es/standards-sdk.es51.js +1 -1
  421. package/dist/es/standards-sdk.es53.js +1 -1
  422. package/dist/es/standards-sdk.es56.js +2 -2
  423. package/dist/es/standards-sdk.es59.js +1 -1
  424. package/dist/es/standards-sdk.es6.js +2 -2
  425. package/dist/es/standards-sdk.es60.js +1 -1
  426. package/dist/es/standards-sdk.es62.js +1 -1
  427. package/dist/es/standards-sdk.es63.js +2 -2
  428. package/dist/es/standards-sdk.es64.js +1 -1
  429. package/dist/es/standards-sdk.es65.js +1 -1
  430. package/dist/es/standards-sdk.es66.js +1 -1
  431. package/dist/es/standards-sdk.es67.js +7 -7
  432. package/dist/es/standards-sdk.es69.js +1 -1
  433. package/dist/es/standards-sdk.es7.js +1 -1
  434. package/dist/es/standards-sdk.es71.js +2 -2
  435. package/dist/es/standards-sdk.es72.js +3 -3
  436. package/dist/es/standards-sdk.es75.js +5 -5
  437. package/dist/es/standards-sdk.es76.js +3 -3
  438. package/dist/es/standards-sdk.es77.js +2 -2
  439. package/dist/es/standards-sdk.es78.js +1 -1
  440. package/dist/es/standards-sdk.es81.js +2 -2
  441. package/dist/es/standards-sdk.es83.js +2 -2
  442. package/dist/es/standards-sdk.es84.js +4 -4
  443. package/dist/es/standards-sdk.es85.js +1 -1
  444. package/dist/es/standards-sdk.es88.js +1 -1
  445. package/dist/es/standards-sdk.es89.js +2 -2
  446. package/dist/es/standards-sdk.es9.js +2 -2
  447. package/dist/es/standards-sdk.es90.js +4 -4
  448. package/dist/es/standards-sdk.es94.js +3 -3
  449. package/dist/es/standards-sdk.es96.js +2 -2
  450. package/dist/es/standards-sdk.es98.js +1 -1
  451. package/dist/es/standards-sdk.es99.js +3 -3
  452. package/package.json +1 -1
@@ -1,456 +1,125 @@
1
- import { proto } from "@hashgraph/proto";
2
- import { Long, Hbar, HbarUnit, ContractId, AccountId, FileId } from "@hashgraph/sdk";
3
- import { Buffer } from "buffer";
4
- import { hasTransactionType, parseKey } from "./standards-sdk.es174.js";
5
- class SCSParser {
6
- /**
7
- * Parse Smart Contract Service transaction using unified dual-branch approach
8
- * This handles both regular transactions and signed transaction variants
9
- */
10
- static parseSCSTransaction(transaction, originalBytes) {
11
- try {
12
- if (originalBytes || transaction.toBytes) {
13
- try {
14
- const bytesToParse = originalBytes || transaction.toBytes();
15
- const decoded = proto.TransactionList.decode(bytesToParse);
16
- if (decoded.transactionList && decoded.transactionList.length > 0) {
17
- const tx = decoded.transactionList[0];
18
- let txBody = null;
19
- if (tx.bodyBytes && tx.bodyBytes.length > 0) {
20
- txBody = proto.TransactionBody.decode(tx.bodyBytes);
21
- } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
22
- const signedTx = proto.SignedTransaction.decode(
23
- tx.signedTransactionBytes
24
- );
25
- if (signedTx.bodyBytes) {
26
- txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
27
- }
28
- }
29
- if (txBody) {
30
- const protoResult = this.parseFromProtobufTxBody(txBody);
31
- if (protoResult.type && protoResult.type !== "UNKNOWN") {
32
- return protoResult;
33
- }
34
- }
35
- }
36
- } catch (protoError) {
37
- }
38
- }
39
- return this.parseFromTransactionInternals(transaction);
40
- } catch (error) {
41
- return {
42
- type: "UNKNOWN",
43
- humanReadableType: "Unknown Contract Transaction"
44
- };
45
- }
46
- }
47
- /**
48
- * Parse contract transaction from protobuf TransactionBody
49
- * Handles all contract operations from decoded protobuf data
50
- */
51
- static parseFromProtobufTxBody(txBody) {
52
- if (txBody.contractCall) {
53
- const contractCall = this.parseContractCall(txBody.contractCall);
54
- if (contractCall) {
55
- return {
56
- type: "CONTRACTCALL",
57
- humanReadableType: "Contract Call",
58
- contractCall
59
- };
60
- }
61
- }
62
- if (txBody.contractCreateInstance) {
63
- const contractCreate = this.parseContractCreate(
64
- txBody.contractCreateInstance
65
- );
66
- if (contractCreate) {
67
- return {
68
- type: "CONTRACTCREATE",
69
- humanReadableType: "Contract Create",
70
- contractCreate
71
- };
72
- }
73
- }
74
- if (txBody.contractUpdateInstance) {
75
- const contractUpdate = this.parseContractUpdate(
76
- txBody.contractUpdateInstance
77
- );
78
- if (contractUpdate) {
79
- return {
80
- type: "CONTRACTUPDATE",
81
- humanReadableType: "Contract Update",
82
- contractUpdate
83
- };
84
- }
85
- }
86
- if (txBody.contractDeleteInstance) {
87
- const contractDelete = this.parseContractDelete(
88
- txBody.contractDeleteInstance
89
- );
90
- if (contractDelete) {
91
- return {
92
- type: "CONTRACTDELETE",
93
- humanReadableType: "Contract Delete",
94
- contractDelete
95
- };
96
- }
97
- }
98
- if (txBody.ethereumTransaction) {
99
- const ethereumCall = this.parseEthereumTransaction(
100
- txBody.ethereumTransaction
101
- );
102
- if (ethereumCall) {
103
- return {
104
- type: "ETHEREUMTRANSACTION",
105
- humanReadableType: "Ethereum Transaction",
106
- ethereumTransaction: ethereumCall
107
- };
108
- }
109
- }
110
- return {};
111
- }
112
- /**
113
- * Extract contract data from Transaction internal fields
114
- * This handles cases where data is stored in Transaction object internals
115
- */
116
- static parseFromTransactionInternals(transaction) {
117
- try {
118
- const tx = transaction;
119
- if (tx._contractId && tx._gas) {
120
- const contractCall = {
121
- contractId: tx._contractId.toString(),
122
- gas: typeof tx._gas === "number" ? tx._gas : Long.fromValue(tx._gas).toNumber(),
123
- amount: tx._amount ? parseFloat(tx._amount.toString()) : 0
124
- };
125
- if (tx._functionParameters) {
126
- const funcParams = Buffer.from(tx._functionParameters).toString(
127
- "hex"
128
- );
129
- contractCall.functionParameters = funcParams;
130
- contractCall.functionName = this.extractFunctionName(funcParams);
131
- }
132
- return {
133
- type: "CONTRACTCALL",
134
- humanReadableType: "Contract Call",
135
- contractCall
136
- };
137
- }
138
- if (hasTransactionType(transaction, "contractCreateInstance")) {
139
- const contractCreate = {
140
- gas: tx._gas.toString(),
141
- initialBalance: tx._initialBalance?.toString() || "0"
142
- };
143
- if (tx._fileId) {
144
- contractCreate.initcodeSource = "fileID";
145
- contractCreate.initcode = tx._fileId.toString();
146
- } else if (tx._bytecode) {
147
- contractCreate.initcodeSource = "bytes";
148
- contractCreate.initcode = Buffer.from(tx._bytecode).toString("hex");
149
- }
150
- if (tx._constructorParameters) {
151
- contractCreate.constructorParameters = Buffer.from(
152
- tx._constructorParameters
153
- ).toString("hex");
154
- }
155
- if (tx._memo) contractCreate.memo = tx._memo;
156
- if (tx._adminKey) contractCreate.adminKey = parseKey(tx._adminKey);
157
- if (tx._maxAutomaticTokenAssociations !== void 0) {
158
- contractCreate.maxAutomaticTokenAssociations = tx._maxAutomaticTokenAssociations;
159
- }
160
- if (tx._stakedAccountId) {
161
- contractCreate.stakedAccountId = tx._stakedAccountId.toString();
162
- } else if (tx._stakedNodeId !== null && tx._stakedNodeId !== void 0) {
163
- contractCreate.stakedNodeId = Long.fromValue(
164
- tx._stakedNodeId
165
- ).toString();
166
- }
167
- if (tx._declineReward !== void 0)
168
- contractCreate.declineReward = tx._declineReward;
169
- if (tx._autoRenewPeriod)
170
- contractCreate.autoRenewPeriod = tx._autoRenewPeriod.toString();
171
- return {
172
- type: "CONTRACTCREATE",
173
- humanReadableType: "Contract Create",
174
- contractCreate
175
- };
176
- }
177
- if (hasTransactionType(transaction, "contractUpdateInstance")) {
178
- const contractUpdate = {
179
- contractIdToUpdate: tx._contractId.toString()
180
- };
181
- if (tx._memo) contractUpdate.memo = tx._memo;
182
- if (tx._adminKey) contractUpdate.adminKey = parseKey(tx._adminKey);
183
- if (tx._maxAutomaticTokenAssociations !== void 0) {
184
- contractUpdate.maxAutomaticTokenAssociations = tx._maxAutomaticTokenAssociations;
185
- }
186
- if (tx._stakedAccountId) {
187
- contractUpdate.stakedAccountId = tx._stakedAccountId.toString();
188
- } else if (tx._stakedNodeId !== null && tx._stakedNodeId !== void 0) {
189
- contractUpdate.stakedNodeId = Long.fromValue(
190
- tx._stakedNodeId
191
- ).toString();
192
- }
193
- if (tx._declineReward !== void 0)
194
- contractUpdate.declineReward = tx._declineReward;
195
- if (tx._autoRenewPeriod)
196
- contractUpdate.autoRenewPeriod = tx._autoRenewPeriod.toString();
197
- return {
198
- type: "CONTRACTUPDATE",
199
- humanReadableType: "Contract Update",
200
- contractUpdate
201
- };
202
- }
203
- if (hasTransactionType(transaction, "contractDeleteInstance")) {
204
- const contractDelete = {
205
- contractIdToDelete: tx._contractId.toString()
206
- };
207
- if (tx._transferAccountId) {
208
- contractDelete.transferAccountId = tx._transferAccountId.toString();
209
- } else if (tx._transferContractId) {
210
- contractDelete.transferContractId = tx._transferContractId.toString();
211
- }
212
- return {
213
- type: "CONTRACTDELETE",
214
- humanReadableType: "Contract Delete",
215
- contractDelete
216
- };
217
- }
218
- return {};
219
- } catch (error) {
220
- return {};
221
- }
1
+ import { clampScore } from "./standards-sdk.es119.js";
2
+ import { readMetadataRecord, readNumber, isJsonObject } from "./standards-sdk.es178.js";
3
+ import "./standards-sdk.es162.js";
4
+ import "./standards-sdk.es175.js";
5
+ import "./standards-sdk.es176.js";
6
+ import "./standards-sdk.es177.js";
7
+ import { clampUnit } from "./standards-sdk.es163.js";
8
+ const MISSING = { value: 0, status: "missing" };
9
+ const DEFAULT_STAKE_MULTIPLIERS = {
10
+ low: 0.5,
11
+ medium: 1,
12
+ high: 2,
13
+ critical: 3
14
+ };
15
+ const DISCRIMINATIVE_POWER_BLOCK_RATE = 0.05;
16
+ const STAKE_MULTIPLIER_QUALITY_CAP = 1.5;
17
+ function computeStakeMultiplier(summary, multipliers) {
18
+ const distribution = summary.stakeDistribution;
19
+ if (!isJsonObject(distribution)) {
20
+ return 1;
222
21
  }
223
- /**
224
- * Enhanced function name extraction from contract call parameters
225
- * Attempts to decode function selector and map to known function names
226
- */
227
- static extractFunctionName(functionParameters) {
228
- if (functionParameters.length < 8) return "unknown";
229
- const selector = functionParameters.substring(0, 8);
230
- const commonSelectors = {
231
- a9059cbb: "transfer",
232
- "095ea7b3": "approve",
233
- "23b872dd": "transferFrom",
234
- "70a08231": "balanceOf",
235
- dd62ed3e: "allowance",
236
- "18160ddd": "totalSupply",
237
- "06fdde03": "name",
238
- "95d89b41": "symbol",
239
- "313ce567": "decimals",
240
- "42842e0e": "safeTransferFrom",
241
- b88d4fde: "safeTransferFrom",
242
- e985e9c5: "isApprovedForAll",
243
- a22cb465: "setApprovalForAll",
244
- "6352211e": "ownerOf",
245
- c87b56dd: "tokenURI",
246
- "01ffc9a7": "supportsInterface",
247
- "40c10f19": "mint",
248
- "42966c68": "burn",
249
- f2fde38b: "transferOwnership",
250
- "715018a6": "renounceOwnership",
251
- "8da5cb5b": "owner"
252
- };
253
- return commonSelectors[selector] || selector;
22
+ let weighted = 0;
23
+ let unweighted = 0;
24
+ for (const level of Object.keys(multipliers)) {
25
+ const levelRecord = distribution[level];
26
+ if (!isJsonObject(levelRecord)) {
27
+ continue;
28
+ }
29
+ const checks = readNumber(levelRecord, "checks");
30
+ if (checks === null) {
31
+ continue;
32
+ }
33
+ weighted += checks * multipliers[level];
34
+ unweighted += checks;
254
35
  }
255
- /**
256
- * Parse Ethereum Transaction (was completely missing from original parser)
257
- */
258
- static parseEthereumTransaction(body) {
259
- if (!body) return void 0;
260
- const data = {
261
- contractId: "EVM",
262
- gas: body.maxGasAllowance ? Long.fromValue(body.maxGasAllowance).toNumber() : 0,
263
- amount: 0
264
- };
265
- if (body.ethereumData && body.ethereumData.length > 0) {
266
- const ethData = Buffer.from(body.ethereumData).toString("hex");
267
- data.functionParameters = ethData;
268
- if (ethData.length >= 8) {
269
- data.functionName = this.extractFunctionName(ethData);
270
- }
271
- }
272
- return data;
36
+ if (unweighted <= 0) {
37
+ return 1;
273
38
  }
274
- static parseContractCall(body) {
275
- if (!body) return void 0;
276
- const hbarAmount = Hbar.fromTinybars(Long.fromValue(body.amount ?? 0));
277
- const data = {
278
- contractId: new ContractId(
279
- body.contractID.shardNum ?? 0,
280
- body.contractID.realmNum ?? 0,
281
- body.contractID.contractNum ?? 0
282
- ).toString(),
283
- gas: Long.fromValue(body.gas ?? 0).toNumber(),
284
- amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar))
285
- };
286
- if (body.functionParameters) {
287
- data.functionParameters = Buffer.from(body.functionParameters).toString(
288
- "hex"
289
- );
290
- if (data.functionParameters.length >= 8) {
291
- data.functionName = this.extractFunctionName(data.functionParameters);
292
- }
293
- }
294
- return data;
295
- }
296
- static parseContractCreate(body) {
297
- if (!body) return void 0;
298
- const data = {};
299
- if (body.initialBalance) {
300
- data.initialBalance = Hbar.fromTinybars(
301
- Long.fromValue(body.initialBalance)
302
- ).toString(HbarUnit.Hbar);
303
- }
304
- if (body.gas) {
305
- data.gas = Long.fromValue(body.gas).toString();
306
- }
307
- if (body.adminKey) {
308
- data.adminKey = parseKey(body.adminKey);
309
- }
310
- if (body.constructorParameters) {
311
- data.constructorParameters = Buffer.from(
312
- body.constructorParameters
313
- ).toString("hex");
314
- }
315
- if (body.memo) {
316
- data.memo = body.memo;
317
- }
318
- if (body.autoRenewPeriod?.seconds) {
319
- data.autoRenewPeriod = Long.fromValue(
320
- body.autoRenewPeriod.seconds
321
- ).toString();
322
- }
323
- if (body.stakedAccountId) {
324
- data.stakedAccountId = new AccountId(
325
- body.stakedAccountId.shardNum ?? 0,
326
- body.stakedAccountId.realmNum ?? 0,
327
- body.stakedAccountId.accountNum ?? 0
328
- ).toString();
329
- } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0) {
330
- data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
331
- }
332
- if (body.declineReward !== void 0) {
333
- data.declineReward = body.declineReward;
334
- }
335
- if (body.maxAutomaticTokenAssociations !== void 0) {
336
- data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;
337
- }
338
- if (body.fileID) {
339
- data.initcodeSource = "fileID";
340
- data.initcode = new FileId(
341
- body.fileID.shardNum ?? 0,
342
- body.fileID.realmNum ?? 0,
343
- body.fileID.fileNum ?? 0
344
- ).toString();
345
- } else if (body.initcode && body.initcode.length > 0) {
346
- data.initcodeSource = "bytes";
347
- data.initcode = Buffer.from(body.initcode).toString("hex");
348
- }
349
- return data;
39
+ const ratio = weighted / unweighted;
40
+ return Math.min(3, Math.max(0.5, ratio));
41
+ }
42
+ function computeQuality(summary, multipliers) {
43
+ const allowRate = clampUnit(readNumber(summary, "allowRate") ?? 0);
44
+ const blockRate = clampUnit(readNumber(summary, "blockRate") ?? 0);
45
+ const avgConfidence = clampUnit(readNumber(summary, "avgConfidence") ?? 0);
46
+ const baseQuality = allowRate * avgConfidence;
47
+ const discriminativePower = clampUnit(
48
+ blockRate / DISCRIMINATIVE_POWER_BLOCK_RATE
49
+ );
50
+ const stakeMultiplier = computeStakeMultiplier(summary, multipliers);
51
+ const cappedStakeMultiplier = Math.min(
52
+ stakeMultiplier,
53
+ STAKE_MULTIPLIER_QUALITY_CAP
54
+ );
55
+ return {
56
+ value: clampScore(
57
+ baseQuality * discriminativePower * cappedStakeMultiplier * 100
58
+ ),
59
+ status: "ok"
60
+ };
61
+ }
62
+ function computeCoverage(summary, volumeCap, volumeScale) {
63
+ const totalChecks = readNumber(summary, "totalChecks");
64
+ if (totalChecks === null) {
65
+ return MISSING;
350
66
  }
351
- static parseContractUpdate(body) {
352
- if (!body) return void 0;
353
- const data = {};
354
- if (body.contractID) {
355
- data.contractIdToUpdate = new ContractId(
356
- body.contractID.shardNum ?? 0,
357
- body.contractID.realmNum ?? 0,
358
- body.contractID.contractNum ?? 0
359
- ).toString();
360
- }
361
- if (body.adminKey) {
362
- data.adminKey = parseKey(body.adminKey);
363
- }
364
- if (body.expirationTime?.seconds) {
365
- data.expirationTime = `${Long.fromValue(
366
- body.expirationTime.seconds
367
- ).toString()}.${body.expirationTime.nanos}`;
368
- }
369
- if (body.autoRenewPeriod?.seconds) {
370
- data.autoRenewPeriod = Long.fromValue(
371
- body.autoRenewPeriod.seconds
372
- ).toString();
373
- }
374
- if (body.memo) {
375
- const memoUnion = body.memo;
376
- if (memoUnion && typeof memoUnion === "object" && Object.prototype.hasOwnProperty.call(memoUnion, "value")) {
377
- const value = memoUnion.value;
378
- if (value === null || value === void 0) {
379
- data.memo = void 0;
380
- } else {
381
- data.memo = String(value);
67
+ const volumeRaw = Math.min(
68
+ volumeCap,
69
+ Math.log10(totalChecks + 1) * volumeScale
70
+ );
71
+ return {
72
+ value: clampScore(100 * clampUnit(volumeRaw / volumeCap)),
73
+ status: "ok"
74
+ };
75
+ }
76
+ function createOutputVerificationAdapter(options = {}) {
77
+ const volumeCap = options.volumeCap ?? 50;
78
+ const volumeScale = options.volumeScale ?? 20;
79
+ const minChecks = options.minChecks ?? 10;
80
+ const qualityWeight = options.qualityWeight ?? 0.7;
81
+ const coverageWeight = options.coverageWeight ?? 0.3;
82
+ const stakeMultipliers = options.stakeMultipliers ?? DEFAULT_STAKE_MULTIPLIERS;
83
+ const hasVerificationHistory = (subject) => {
84
+ const summary = readMetadataRecord(subject, "outputVerificationSummary");
85
+ if (!summary) {
86
+ return false;
87
+ }
88
+ const totalChecks = readNumber(summary, "totalChecks");
89
+ return totalChecks !== null && totalChecks >= minChecks;
90
+ };
91
+ return {
92
+ id: "output-verification",
93
+ weight: 1,
94
+ contributionMode: "scoped",
95
+ appliesTo: hasVerificationHistory,
96
+ components: [
97
+ {
98
+ name: "quality",
99
+ weight: qualityWeight,
100
+ normalize: ({ subject }) => {
101
+ const summary = readMetadataRecord(
102
+ subject,
103
+ "outputVerificationSummary"
104
+ );
105
+ return summary ? computeQuality(summary, stakeMultipliers) : MISSING;
106
+ }
107
+ },
108
+ {
109
+ name: "coverage",
110
+ weight: coverageWeight,
111
+ normalize: ({ subject }) => {
112
+ const summary = readMetadataRecord(
113
+ subject,
114
+ "outputVerificationSummary"
115
+ );
116
+ return summary ? computeCoverage(summary, volumeCap, volumeScale) : MISSING;
382
117
  }
383
- } else if (typeof memoUnion === "string") {
384
- data.memo = memoUnion;
385
- } else {
386
- data.memo = void 0;
387
118
  }
388
- } else {
389
- data.memo = void 0;
390
- }
391
- if (body.stakedAccountId) {
392
- data.stakedAccountId = new AccountId(
393
- body.stakedAccountId.shardNum ?? 0,
394
- body.stakedAccountId.realmNum ?? 0,
395
- body.stakedAccountId.accountNum ?? 0
396
- ).toString();
397
- data.stakedNodeId = void 0;
398
- } else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0 && Long.fromValue(body.stakedNodeId).notEquals(-1)) {
399
- data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
400
- data.stakedAccountId = void 0;
401
- } else {
402
- data.stakedNodeId = void 0;
403
- data.stakedAccountId = void 0;
404
- }
405
- if (body.declineReward?.value !== void 0) {
406
- data.declineReward = body.declineReward.value;
407
- }
408
- if (body.maxAutomaticTokenAssociations?.value !== void 0) {
409
- data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations.value;
410
- }
411
- if (body.autoRenewAccountId) {
412
- data.autoRenewAccountId = new AccountId(
413
- body.autoRenewAccountId.shardNum ?? 0,
414
- body.autoRenewAccountId.realmNum ?? 0,
415
- body.autoRenewAccountId.accountNum ?? 0
416
- ).toString();
417
- }
418
- return data;
419
- }
420
- static parseContractDelete(body) {
421
- if (!body) return void 0;
422
- const data = {};
423
- if (body.contractID) {
424
- data.contractIdToDelete = new ContractId(
425
- body.contractID.shardNum ?? 0,
426
- body.contractID.realmNum ?? 0,
427
- body.contractID.contractNum ?? 0
428
- ).toString();
429
- }
430
- if (body.transferAccountID) {
431
- data.transferAccountId = new AccountId(
432
- body.transferAccountID.shardNum ?? 0,
433
- body.transferAccountID.realmNum ?? 0,
434
- body.transferAccountID.accountNum ?? 0
435
- ).toString();
436
- } else if (body.transferContractID) {
437
- data.transferContractId = new ContractId(
438
- body.transferContractID.shardNum ?? 0,
439
- body.transferContractID.realmNum ?? 0,
440
- body.transferContractID.contractNum ?? 0
441
- ).toString();
442
- }
443
- return data;
444
- }
445
- /**
446
- * Parse SCS (Smart Contract Service) transaction from Transaction object
447
- * This is the unified entry point that delegates to the comprehensive parsing logic
448
- */
449
- static parseFromTransactionObject(transaction) {
450
- return this.parseSCSTransaction(transaction);
451
- }
119
+ ]
120
+ };
452
121
  }
453
122
  export {
454
- SCSParser
123
+ createOutputVerificationAdapter
455
124
  };
456
125
  //# sourceMappingURL=standards-sdk.es172.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es172.js","sources":["../../src/utils/parsers/scs-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Hbar, HbarUnit, Long, Transaction } from '@hashgraph/sdk';\nimport {\n ContractCallData,\n ContractCreateData,\n ContractUpdateData,\n ContractDeleteData,\n} from '../transaction-parser-types';\nimport { Buffer } from 'buffer';\nimport {\n parseKey,\n extractTransactionBody,\n hasTransactionType,\n} from './parser-utils';\nimport { AccountId, FileId } from '@hashgraph/sdk';\n\n/**\n * Smart Contract Service (SCS) Parser\n *\n * Handles parsing for all contract-related transaction types including:\n * - Contract calls (including EthereumTransaction)\n * - Contract creation, updates, and deletion\n * - Proper dual-branch parsing (regular vs signed transactions)\n * - Comprehensive protobuf extraction\n */\nexport class SCSParser {\n /**\n * Parse Smart Contract Service transaction using unified dual-branch approach\n * This handles both regular transactions and signed transaction variants\n */\n static parseSCSTransaction(\n transaction: Transaction,\n originalBytes?: Uint8Array,\n ): {\n type?: string;\n humanReadableType?: string;\n contractCall?: ContractCallData;\n contractCreate?: ContractCreateData;\n contractUpdate?: ContractUpdateData;\n contractDelete?: ContractDeleteData;\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 Contract Transaction',\n };\n }\n }\n\n /**\n * Parse contract transaction from protobuf TransactionBody\n * Handles all contract 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.contractCall) {\n const contractCall = this.parseContractCall(txBody.contractCall);\n if (contractCall) {\n return {\n type: 'CONTRACTCALL',\n humanReadableType: 'Contract Call',\n contractCall,\n };\n }\n }\n\n if (txBody.contractCreateInstance) {\n const contractCreate = this.parseContractCreate(\n txBody.contractCreateInstance,\n );\n if (contractCreate) {\n return {\n type: 'CONTRACTCREATE',\n humanReadableType: 'Contract Create',\n contractCreate,\n };\n }\n }\n\n if (txBody.contractUpdateInstance) {\n const contractUpdate = this.parseContractUpdate(\n txBody.contractUpdateInstance,\n );\n if (contractUpdate) {\n return {\n type: 'CONTRACTUPDATE',\n humanReadableType: 'Contract Update',\n contractUpdate,\n };\n }\n }\n\n if (txBody.contractDeleteInstance) {\n const contractDelete = this.parseContractDelete(\n txBody.contractDeleteInstance,\n );\n if (contractDelete) {\n return {\n type: 'CONTRACTDELETE',\n humanReadableType: 'Contract Delete',\n contractDelete,\n };\n }\n }\n\n if (txBody.ethereumTransaction) {\n const ethereumCall = this.parseEthereumTransaction(\n txBody.ethereumTransaction,\n );\n if (ethereumCall) {\n return {\n type: 'ETHEREUMTRANSACTION',\n humanReadableType: 'Ethereum Transaction',\n ethereumTransaction: ethereumCall,\n };\n }\n }\n\n return {};\n }\n\n /**\n * Extract contract 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 _contractId?: { toString(): string };\n _gas?: number | Long;\n _amount?: { toString(): string };\n _functionParameters?: Uint8Array;\n _initialBalance?: { toString(): string };\n _adminKey?: unknown;\n _memo?: string;\n _fileId?: { toString(): string };\n _bytecode?: Uint8Array;\n _constructorParameters?: Uint8Array;\n _maxAutomaticTokenAssociations?: number;\n _stakedAccountId?: { toString(): string };\n _stakedNodeId?: number | Long;\n _declineReward?: boolean;\n _autoRenewPeriod?: { toString(): string };\n _transferAccountId?: { toString(): string };\n _transferContractId?: { toString(): string };\n constructor?: { name?: string };\n };\n\n if (tx._contractId && tx._gas) {\n const contractCall: ContractCallData = {\n contractId: tx._contractId.toString(),\n gas:\n typeof tx._gas === 'number'\n ? tx._gas\n : Long.fromValue(tx._gas).toNumber(),\n amount: tx._amount ? parseFloat(tx._amount.toString()) : 0,\n };\n\n if (tx._functionParameters) {\n const funcParams = Buffer.from(tx._functionParameters).toString(\n 'hex',\n );\n contractCall.functionParameters = funcParams;\n contractCall.functionName = this.extractFunctionName(funcParams);\n }\n\n return {\n type: 'CONTRACTCALL',\n humanReadableType: 'Contract Call',\n contractCall,\n };\n }\n\n if (hasTransactionType(transaction, 'contractCreateInstance')) {\n const contractCreate: ContractCreateData = {\n gas: tx._gas.toString(),\n initialBalance: tx._initialBalance?.toString() || '0',\n };\n\n if (tx._fileId) {\n contractCreate.initcodeSource = 'fileID';\n contractCreate.initcode = tx._fileId.toString();\n } else if (tx._bytecode) {\n contractCreate.initcodeSource = 'bytes';\n contractCreate.initcode = Buffer.from(tx._bytecode).toString('hex');\n }\n\n if (tx._constructorParameters) {\n contractCreate.constructorParameters = Buffer.from(\n tx._constructorParameters,\n ).toString('hex');\n }\n\n if (tx._memo) contractCreate.memo = tx._memo;\n if (tx._adminKey) contractCreate.adminKey = parseKey(tx._adminKey);\n if (tx._maxAutomaticTokenAssociations !== undefined) {\n contractCreate.maxAutomaticTokenAssociations =\n tx._maxAutomaticTokenAssociations;\n }\n if (tx._stakedAccountId) {\n contractCreate.stakedAccountId = tx._stakedAccountId.toString();\n } else if (\n tx._stakedNodeId !== null &&\n tx._stakedNodeId !== undefined\n ) {\n contractCreate.stakedNodeId = Long.fromValue(\n tx._stakedNodeId,\n ).toString();\n }\n if (tx._declineReward !== undefined)\n contractCreate.declineReward = tx._declineReward;\n if (tx._autoRenewPeriod)\n contractCreate.autoRenewPeriod = tx._autoRenewPeriod.toString();\n\n return {\n type: 'CONTRACTCREATE',\n humanReadableType: 'Contract Create',\n contractCreate,\n };\n }\n\n if (hasTransactionType(transaction, 'contractUpdateInstance')) {\n const contractUpdate: ContractUpdateData = {\n contractIdToUpdate: tx._contractId.toString(),\n };\n\n if (tx._memo) contractUpdate.memo = tx._memo;\n if (tx._adminKey) contractUpdate.adminKey = parseKey(tx._adminKey);\n if (tx._maxAutomaticTokenAssociations !== undefined) {\n contractUpdate.maxAutomaticTokenAssociations =\n tx._maxAutomaticTokenAssociations;\n }\n if (tx._stakedAccountId) {\n contractUpdate.stakedAccountId = tx._stakedAccountId.toString();\n } else if (\n tx._stakedNodeId !== null &&\n tx._stakedNodeId !== undefined\n ) {\n contractUpdate.stakedNodeId = Long.fromValue(\n tx._stakedNodeId,\n ).toString();\n }\n if (tx._declineReward !== undefined)\n contractUpdate.declineReward = tx._declineReward;\n if (tx._autoRenewPeriod)\n contractUpdate.autoRenewPeriod = tx._autoRenewPeriod.toString();\n\n return {\n type: 'CONTRACTUPDATE',\n humanReadableType: 'Contract Update',\n contractUpdate,\n };\n }\n\n if (hasTransactionType(transaction, 'contractDeleteInstance')) {\n const contractDelete: ContractDeleteData = {\n contractIdToDelete: tx._contractId.toString(),\n };\n\n if (tx._transferAccountId) {\n contractDelete.transferAccountId = tx._transferAccountId.toString();\n } else if (tx._transferContractId) {\n contractDelete.transferContractId = tx._transferContractId.toString();\n }\n\n return {\n type: 'CONTRACTDELETE',\n humanReadableType: 'Contract Delete',\n contractDelete,\n };\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Enhanced function name extraction from contract call parameters\n * Attempts to decode function selector and map to known function names\n */\n private static extractFunctionName(functionParameters: string): string {\n if (functionParameters.length < 8) return 'unknown';\n\n const selector = functionParameters.substring(0, 8);\n\n const commonSelectors: Record<string, string> = {\n a9059cbb: 'transfer',\n '095ea7b3': 'approve',\n '23b872dd': 'transferFrom',\n '70a08231': 'balanceOf',\n dd62ed3e: 'allowance',\n '18160ddd': 'totalSupply',\n '06fdde03': 'name',\n '95d89b41': 'symbol',\n '313ce567': 'decimals',\n '42842e0e': 'safeTransferFrom',\n b88d4fde: 'safeTransferFrom',\n e985e9c5: 'isApprovedForAll',\n a22cb465: 'setApprovalForAll',\n '6352211e': 'ownerOf',\n c87b56dd: 'tokenURI',\n '01ffc9a7': 'supportsInterface',\n '40c10f19': 'mint',\n '42966c68': 'burn',\n f2fde38b: 'transferOwnership',\n '715018a6': 'renounceOwnership',\n '8da5cb5b': 'owner',\n };\n\n return commonSelectors[selector] || selector;\n }\n\n /**\n * Parse Ethereum Transaction (was completely missing from original parser)\n */\n static parseEthereumTransaction(\n body: proto.IEthereumTransactionBody,\n ): ContractCallData | undefined {\n if (!body) return undefined;\n\n const data: ContractCallData = {\n contractId: 'EVM',\n gas: body.maxGasAllowance\n ? Long.fromValue(body.maxGasAllowance).toNumber()\n : 0,\n amount: 0,\n };\n\n if (body.ethereumData && body.ethereumData.length > 0) {\n const ethData = Buffer.from(body.ethereumData).toString('hex');\n data.functionParameters = ethData;\n\n if (ethData.length >= 8) {\n data.functionName = this.extractFunctionName(ethData);\n }\n }\n\n return data;\n }\n\n static parseContractCall(\n body: proto.IContractCallTransactionBody,\n ): ContractCallData | undefined {\n if (!body) return undefined;\n const hbarAmount = Hbar.fromTinybars(Long.fromValue(body.amount ?? 0));\n const data: ContractCallData = {\n contractId: new ContractId(\n body.contractID!.shardNum ?? 0,\n body.contractID!.realmNum ?? 0,\n body.contractID!.contractNum ?? 0,\n ).toString(),\n gas: Long.fromValue(body.gas ?? 0).toNumber(),\n amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar)),\n };\n if (body.functionParameters) {\n data.functionParameters = Buffer.from(body.functionParameters).toString(\n 'hex',\n );\n if (data.functionParameters.length >= 8) {\n data.functionName = this.extractFunctionName(data.functionParameters);\n }\n }\n return data;\n }\n\n static parseContractCreate(\n body: proto.IContractCreateTransactionBody,\n ): ContractCreateData | undefined {\n if (!body) return undefined;\n const data: ContractCreateData = {};\n if (body.initialBalance) {\n data.initialBalance = Hbar.fromTinybars(\n Long.fromValue(body.initialBalance),\n ).toString(HbarUnit.Hbar);\n }\n if (body.gas) {\n data.gas = Long.fromValue(body.gas).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.constructorParameters) {\n data.constructorParameters = Buffer.from(\n body.constructorParameters,\n ).toString('hex');\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0,\n ).toString();\n } else if (body.stakedNodeId !== null && body.stakedNodeId !== undefined) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n }\n if (body.declineReward !== undefined) {\n data.declineReward = body.declineReward;\n }\n if (body.maxAutomaticTokenAssociations !== undefined) {\n data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;\n }\n if (body.fileID) {\n data.initcodeSource = 'fileID';\n data.initcode = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0,\n ).toString();\n } else if (body.initcode && body.initcode.length > 0) {\n data.initcodeSource = 'bytes';\n data.initcode = Buffer.from(body.initcode).toString('hex');\n }\n return data;\n }\n\n static parseContractUpdate(\n body: proto.IContractUpdateTransactionBody,\n ): ContractUpdateData | undefined {\n if (!body) return undefined;\n const data: ContractUpdateData = {};\n if (body.contractID) {\n data.contractIdToUpdate = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds,\n ).toString()}.${body.expirationTime.nanos}`;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n\n if (body.memo) {\n const memoUnion = body.memo as unknown;\n if (\n memoUnion &&\n typeof memoUnion === 'object' &&\n Object.prototype.hasOwnProperty.call(memoUnion, 'value')\n ) {\n const value = (memoUnion as { value: unknown }).value;\n if (value === null || value === undefined) {\n data.memo = undefined;\n } else {\n data.memo = String(value);\n }\n } else if (typeof memoUnion === 'string') {\n data.memo = memoUnion;\n } else {\n data.memo = undefined;\n }\n } else {\n data.memo = undefined;\n }\n\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0,\n ).toString();\n data.stakedNodeId = undefined;\n } else if (\n body.stakedNodeId !== null &&\n body.stakedNodeId !== undefined &&\n Long.fromValue(body.stakedNodeId).notEquals(-1)\n ) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n data.stakedAccountId = undefined;\n } else {\n data.stakedNodeId = undefined;\n data.stakedAccountId = undefined;\n }\n if (body.declineReward?.value !== undefined) {\n data.declineReward = body.declineReward.value;\n }\n if (body.maxAutomaticTokenAssociations?.value !== undefined) {\n data.maxAutomaticTokenAssociations =\n body.maxAutomaticTokenAssociations.value;\n }\n if (body.autoRenewAccountId) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccountId.shardNum ?? 0,\n body.autoRenewAccountId.realmNum ?? 0,\n body.autoRenewAccountId.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseContractDelete(\n body: proto.IContractDeleteTransactionBody,\n ): ContractDeleteData | undefined {\n if (!body) return undefined;\n const data: ContractDeleteData = {};\n if (body.contractID) {\n data.contractIdToDelete = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n if (body.transferAccountID) {\n data.transferAccountId = new AccountId(\n body.transferAccountID.shardNum ?? 0,\n body.transferAccountID.realmNum ?? 0,\n body.transferAccountID.accountNum ?? 0,\n ).toString();\n } else if (body.transferContractID) {\n data.transferContractId = new ContractId(\n body.transferContractID.shardNum ?? 0,\n body.transferContractID.realmNum ?? 0,\n body.transferContractID.contractNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n /**\n * Parse SCS (Smart Contract 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.parseSCSTransaction(transaction);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es172.js","sources":["../../src/hcs-25/adapters/output-verification.ts"],"sourcesContent":["import { clampScore } from '../scoring';\nimport type {\n Hcs25AdapterDefinition,\n Hcs25NormalizedValue,\n Hcs25Subject,\n} from '../types';\nimport {\n isJsonObject,\n readMetadataRecord,\n readNumber,\n type Hcs25JsonObject,\n} from '../signals';\nimport { clampUnit } from './normalization';\n\n/**\n * Options for the output verification adapter.\n */\nexport interface Hcs25OutputVerificationAdapterOptions {\n /** Volume cap for the log-scaled coverage component. Default 50. */\n volumeCap?: number;\n /** Multiplier on log10 of the check count. Default 20. */\n volumeScale?: number;\n /** Minimum total checks before the adapter applies. Default 10. */\n minChecks?: number;\n /** Within-adapter weight of the quality component. Default 0.7. */\n qualityWeight?: number;\n /** Within-adapter weight of the coverage component. Default 0.3. */\n coverageWeight?: number;\n /** Per-stake-level multipliers applied to check counts. */\n stakeMultipliers?: Readonly<Record<string, number>>;\n}\n\nconst MISSING: Hcs25NormalizedValue = { value: 0, status: 'missing' };\n\nconst DEFAULT_STAKE_MULTIPLIERS: Readonly<Record<string, number>> = {\n low: 0.5,\n medium: 1,\n high: 2,\n critical: 3,\n};\n\n/**\n * Block rate at which the verifier earns full discriminative-power credit.\n */\nconst DISCRIMINATIVE_POWER_BLOCK_RATE = 0.05;\n\n/**\n * Upper bound on the stake multiplier's influence on quality.\n */\nconst STAKE_MULTIPLIER_QUALITY_CAP = 1.5;\n\nfunction computeStakeMultiplier(\n summary: Hcs25JsonObject,\n multipliers: Readonly<Record<string, number>>,\n): number {\n const distribution = summary.stakeDistribution;\n if (!isJsonObject(distribution)) {\n return 1;\n }\n\n let weighted = 0;\n let unweighted = 0;\n for (const level of Object.keys(multipliers)) {\n const levelRecord = distribution[level];\n if (!isJsonObject(levelRecord)) {\n continue;\n }\n const checks = readNumber(levelRecord, 'checks');\n if (checks === null) {\n continue;\n }\n weighted += checks * multipliers[level];\n unweighted += checks;\n }\n\n if (unweighted <= 0) {\n return 1;\n }\n\n const ratio = weighted / unweighted;\n return Math.min(3, Math.max(0.5, ratio));\n}\n\nfunction computeQuality(\n summary: Hcs25JsonObject,\n multipliers: Readonly<Record<string, number>>,\n): Hcs25NormalizedValue {\n const allowRate = clampUnit(readNumber(summary, 'allowRate') ?? 0);\n const blockRate = clampUnit(readNumber(summary, 'blockRate') ?? 0);\n const avgConfidence = clampUnit(readNumber(summary, 'avgConfidence') ?? 0);\n\n const baseQuality = allowRate * avgConfidence;\n const discriminativePower = clampUnit(\n blockRate / DISCRIMINATIVE_POWER_BLOCK_RATE,\n );\n const stakeMultiplier = computeStakeMultiplier(summary, multipliers);\n const cappedStakeMultiplier = Math.min(\n stakeMultiplier,\n STAKE_MULTIPLIER_QUALITY_CAP,\n );\n\n return {\n value: clampScore(\n baseQuality * discriminativePower * cappedStakeMultiplier * 100,\n ),\n status: 'ok',\n };\n}\n\nfunction computeCoverage(\n summary: Hcs25JsonObject,\n volumeCap: number,\n volumeScale: number,\n): Hcs25NormalizedValue {\n const totalChecks = readNumber(summary, 'totalChecks');\n if (totalChecks === null) {\n return MISSING;\n }\n\n const volumeRaw = Math.min(\n volumeCap,\n Math.log10(totalChecks + 1) * volumeScale,\n );\n return {\n value: clampScore(100 * clampUnit(volumeRaw / volumeCap)),\n status: 'ok',\n };\n}\n\n/**\n * Creates the `output-verification` adapter: converts per-decision reasoning\n * verification summaries into a stake-weighted quality component and a\n * log-scaled coverage component. It penalizes rubber-stamp verifiers through\n * discriminative power, resists trivial-claim farming through stake\n * weighting, and excludes agents below the minimum check threshold.\n */\nexport function createOutputVerificationAdapter(\n options: Hcs25OutputVerificationAdapterOptions = {},\n): Hcs25AdapterDefinition {\n const volumeCap = options.volumeCap ?? 50;\n const volumeScale = options.volumeScale ?? 20;\n const minChecks = options.minChecks ?? 10;\n const qualityWeight = options.qualityWeight ?? 0.7;\n const coverageWeight = options.coverageWeight ?? 0.3;\n const stakeMultipliers =\n options.stakeMultipliers ?? DEFAULT_STAKE_MULTIPLIERS;\n\n const hasVerificationHistory = (subject: Hcs25Subject): boolean => {\n const summary = readMetadataRecord(subject, 'outputVerificationSummary');\n if (!summary) {\n return false;\n }\n const totalChecks = readNumber(summary, 'totalChecks');\n return totalChecks !== null && totalChecks >= minChecks;\n };\n\n return {\n id: 'output-verification',\n weight: 1,\n contributionMode: 'scoped',\n appliesTo: hasVerificationHistory,\n components: [\n {\n name: 'quality',\n weight: qualityWeight,\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const summary = readMetadataRecord(\n subject,\n 'outputVerificationSummary',\n );\n return summary ? computeQuality(summary, stakeMultipliers) : MISSING;\n },\n },\n {\n name: 'coverage',\n weight: coverageWeight,\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const summary = readMetadataRecord(\n subject,\n 'outputVerificationSummary',\n );\n return summary\n ? computeCoverage(summary, volumeCap, volumeScale)\n : MISSING;\n },\n },\n ],\n };\n}\n"],"names":[],"mappings":"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"}