@hashgraphonline/standards-sdk 0.1.143-feat-solana-register.canary.1c6f446.78 → 0.1.144-feat-solana-register.canary.d5edcec.80

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 (340) hide show
  1. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  2. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/services/registry-broker/schemas.d.ts +153 -153
  5. package/dist/cjs/standards-sdk.cjs +2 -2
  6. package/dist/cjs/standards-sdk.cjs.map +1 -1
  7. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  8. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  9. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  10. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  11. package/dist/es/index.d.ts.map +1 -1
  12. package/dist/es/services/registry-broker/schemas.d.ts +153 -153
  13. package/dist/es/standards-sdk.es.js +134 -135
  14. package/dist/es/standards-sdk.es.js.map +1 -1
  15. package/dist/es/standards-sdk.es10.js +70 -90
  16. package/dist/es/standards-sdk.es10.js.map +1 -1
  17. package/dist/es/standards-sdk.es100.js +229 -27
  18. package/dist/es/standards-sdk.es100.js.map +1 -1
  19. package/dist/es/standards-sdk.es101.js +109 -228
  20. package/dist/es/standards-sdk.es101.js.map +1 -1
  21. package/dist/es/standards-sdk.es102.js +15 -94
  22. package/dist/es/standards-sdk.es102.js.map +1 -1
  23. package/dist/es/standards-sdk.es103.js +80 -30
  24. package/dist/es/standards-sdk.es103.js.map +1 -1
  25. package/dist/es/standards-sdk.es104.js +27 -80
  26. package/dist/es/standards-sdk.es104.js.map +1 -1
  27. package/dist/es/standards-sdk.es105.js +136 -25
  28. package/dist/es/standards-sdk.es105.js.map +1 -1
  29. package/dist/es/standards-sdk.es106.js +27 -140
  30. package/dist/es/standards-sdk.es106.js.map +1 -1
  31. package/dist/es/standards-sdk.es107.js +20 -27
  32. package/dist/es/standards-sdk.es107.js.map +1 -1
  33. package/dist/es/standards-sdk.es108.js +156 -18
  34. package/dist/es/standards-sdk.es108.js.map +1 -1
  35. package/dist/es/standards-sdk.es109.js +198 -148
  36. package/dist/es/standards-sdk.es109.js.map +1 -1
  37. package/dist/es/standards-sdk.es11.js +121 -45
  38. package/dist/es/standards-sdk.es11.js.map +1 -1
  39. package/dist/es/standards-sdk.es110.js +747 -167
  40. package/dist/es/standards-sdk.es110.js.map +1 -1
  41. package/dist/es/standards-sdk.es111.js +9 -786
  42. package/dist/es/standards-sdk.es111.js.map +1 -1
  43. package/dist/es/standards-sdk.es112.js +567 -13
  44. package/dist/es/standards-sdk.es112.js.map +1 -1
  45. package/dist/es/standards-sdk.es113.js +576 -541
  46. package/dist/es/standards-sdk.es113.js.map +1 -1
  47. package/dist/es/standards-sdk.es114.js +12 -601
  48. package/dist/es/standards-sdk.es114.js.map +1 -1
  49. package/dist/es/standards-sdk.es115.js +2 -13
  50. package/dist/es/standards-sdk.es115.js.map +1 -1
  51. package/dist/es/standards-sdk.es116.js +87 -2
  52. package/dist/es/standards-sdk.es116.js.map +1 -1
  53. package/dist/es/standards-sdk.es117.js +37 -84
  54. package/dist/es/standards-sdk.es117.js.map +1 -1
  55. package/dist/es/standards-sdk.es118.js +2 -40
  56. package/dist/es/standards-sdk.es118.js.map +1 -1
  57. package/dist/es/standards-sdk.es119.js +231 -2
  58. package/dist/es/standards-sdk.es119.js.map +1 -1
  59. package/dist/es/standards-sdk.es12.js +60 -159
  60. package/dist/es/standards-sdk.es12.js.map +1 -1
  61. package/dist/es/standards-sdk.es120.js +1110 -201
  62. package/dist/es/standards-sdk.es120.js.map +1 -1
  63. package/dist/es/standards-sdk.es121.js +225 -1059
  64. package/dist/es/standards-sdk.es121.js.map +1 -1
  65. package/dist/es/standards-sdk.es122.js +419 -303
  66. package/dist/es/standards-sdk.es122.js.map +1 -1
  67. package/dist/es/standards-sdk.es123.js +351 -418
  68. package/dist/es/standards-sdk.es123.js.map +1 -1
  69. package/dist/es/standards-sdk.es124.js +872 -347
  70. package/dist/es/standards-sdk.es124.js.map +1 -1
  71. package/dist/es/standards-sdk.es125.js +182 -854
  72. package/dist/es/standards-sdk.es125.js.map +1 -1
  73. package/dist/es/standards-sdk.es126.js +1512 -153
  74. package/dist/es/standards-sdk.es126.js.map +1 -1
  75. package/dist/es/standards-sdk.es127.js +157 -1547
  76. package/dist/es/standards-sdk.es127.js.map +1 -1
  77. package/dist/es/standards-sdk.es128.js +192 -162
  78. package/dist/es/standards-sdk.es128.js.map +1 -1
  79. package/dist/es/standards-sdk.es129.js +61 -164
  80. package/dist/es/standards-sdk.es129.js.map +1 -1
  81. package/dist/es/standards-sdk.es13.js +200 -60
  82. package/dist/es/standards-sdk.es13.js.map +1 -1
  83. package/dist/es/standards-sdk.es130.js +102 -85
  84. package/dist/es/standards-sdk.es130.js.map +1 -1
  85. package/dist/es/standards-sdk.es131.js +222 -96
  86. package/dist/es/standards-sdk.es131.js.map +1 -1
  87. package/dist/es/standards-sdk.es132.js +153 -220
  88. package/dist/es/standards-sdk.es132.js.map +1 -1
  89. package/dist/es/standards-sdk.es133.js +104 -162
  90. package/dist/es/standards-sdk.es133.js.map +1 -1
  91. package/dist/es/standards-sdk.es134.js +296 -92
  92. package/dist/es/standards-sdk.es134.js.map +1 -1
  93. package/dist/es/standards-sdk.es135.js +432 -294
  94. package/dist/es/standards-sdk.es135.js.map +1 -1
  95. package/dist/es/standards-sdk.es136.js +14 -461
  96. package/dist/es/standards-sdk.es136.js.map +1 -1
  97. package/dist/es/standards-sdk.es137.js +79 -15
  98. package/dist/es/standards-sdk.es137.js.map +1 -1
  99. package/dist/es/standards-sdk.es138.js +77 -71
  100. package/dist/es/standards-sdk.es138.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +152 -80
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +149 -178
  104. package/dist/es/standards-sdk.es14.js.map +1 -1
  105. package/dist/es/standards-sdk.es140.js +7 -159
  106. package/dist/es/standards-sdk.es140.js.map +1 -1
  107. package/dist/es/standards-sdk.es141.js +86 -7
  108. package/dist/es/standards-sdk.es141.js.map +1 -1
  109. package/dist/es/standards-sdk.es142.js +44 -65
  110. package/dist/es/standards-sdk.es142.js.map +1 -1
  111. package/dist/es/standards-sdk.es143.js +30 -65
  112. package/dist/es/standards-sdk.es143.js.map +1 -1
  113. package/dist/es/standards-sdk.es144.js +34 -30
  114. package/dist/es/standards-sdk.es144.js.map +1 -1
  115. package/dist/es/standards-sdk.es145.js +28 -34
  116. package/dist/es/standards-sdk.es145.js.map +1 -1
  117. package/dist/es/standards-sdk.es146.js +138 -28
  118. package/dist/es/standards-sdk.es146.js.map +1 -1
  119. package/dist/es/standards-sdk.es147.js +37 -133
  120. package/dist/es/standards-sdk.es147.js.map +1 -1
  121. package/dist/es/standards-sdk.es148.js +12280 -33
  122. package/dist/es/standards-sdk.es148.js.map +1 -1
  123. package/dist/es/standards-sdk.es149.js +1 -1
  124. package/dist/es/standards-sdk.es15.js +152 -151
  125. package/dist/es/standards-sdk.es15.js.map +1 -1
  126. package/dist/es/standards-sdk.es150.js +12 -12284
  127. package/dist/es/standards-sdk.es150.js.map +1 -1
  128. package/dist/es/standards-sdk.es151.js +54 -15
  129. package/dist/es/standards-sdk.es151.js.map +1 -1
  130. package/dist/es/standards-sdk.es152.js +72 -160
  131. package/dist/es/standards-sdk.es152.js.map +1 -1
  132. package/dist/es/standards-sdk.es153.js +139 -289
  133. package/dist/es/standards-sdk.es153.js.map +1 -1
  134. package/dist/es/standards-sdk.es154.js +274 -298
  135. package/dist/es/standards-sdk.es154.js.map +1 -1
  136. package/dist/es/standards-sdk.es155.js +262 -369
  137. package/dist/es/standards-sdk.es155.js.map +1 -1
  138. package/dist/es/standards-sdk.es156.js +316 -194
  139. package/dist/es/standards-sdk.es156.js.map +1 -1
  140. package/dist/es/standards-sdk.es157.js +319 -64
  141. package/dist/es/standards-sdk.es157.js.map +1 -1
  142. package/dist/es/standards-sdk.es158.js +69 -49
  143. package/dist/es/standards-sdk.es158.js.map +1 -1
  144. package/dist/es/standards-sdk.es159.js +222 -65
  145. package/dist/es/standards-sdk.es159.js.map +1 -1
  146. package/dist/es/standards-sdk.es16.js +917 -136
  147. package/dist/es/standards-sdk.es16.js.map +1 -1
  148. package/dist/es/standards-sdk.es160.js +223 -218
  149. package/dist/es/standards-sdk.es160.js.map +1 -1
  150. package/dist/es/standards-sdk.es17.js +23 -948
  151. package/dist/es/standards-sdk.es17.js.map +1 -1
  152. package/dist/es/standards-sdk.es18.js +2422 -24
  153. package/dist/es/standards-sdk.es18.js.map +1 -1
  154. package/dist/es/standards-sdk.es19.js +818 -2092
  155. package/dist/es/standards-sdk.es19.js.map +1 -1
  156. package/dist/es/standards-sdk.es2.js +654 -189
  157. package/dist/es/standards-sdk.es2.js.map +1 -1
  158. package/dist/es/standards-sdk.es20.js +205 -1092
  159. package/dist/es/standards-sdk.es20.js.map +1 -1
  160. package/dist/es/standards-sdk.es21.js +858 -221
  161. package/dist/es/standards-sdk.es21.js.map +1 -1
  162. package/dist/es/standards-sdk.es22.js +179 -903
  163. package/dist/es/standards-sdk.es22.js.map +1 -1
  164. package/dist/es/standards-sdk.es23.js +164 -179
  165. package/dist/es/standards-sdk.es23.js.map +1 -1
  166. package/dist/es/standards-sdk.es24.js +62 -118
  167. package/dist/es/standards-sdk.es24.js.map +1 -1
  168. package/dist/es/standards-sdk.es25.js +377 -57
  169. package/dist/es/standards-sdk.es25.js.map +1 -1
  170. package/dist/es/standards-sdk.es26.js +36 -394
  171. package/dist/es/standards-sdk.es26.js.map +1 -1
  172. package/dist/es/standards-sdk.es27.js +901 -50
  173. package/dist/es/standards-sdk.es27.js.map +1 -1
  174. package/dist/es/standards-sdk.es28.js +134 -922
  175. package/dist/es/standards-sdk.es28.js.map +1 -1
  176. package/dist/es/standards-sdk.es29.js +7 -134
  177. package/dist/es/standards-sdk.es29.js.map +1 -1
  178. package/dist/es/standards-sdk.es3.js +63 -680
  179. package/dist/es/standards-sdk.es3.js.map +1 -1
  180. package/dist/es/standards-sdk.es30.js +344 -7
  181. package/dist/es/standards-sdk.es30.js.map +1 -1
  182. package/dist/es/standards-sdk.es31.js +302 -287
  183. package/dist/es/standards-sdk.es31.js.map +1 -1
  184. package/dist/es/standards-sdk.es32.js +94 -322
  185. package/dist/es/standards-sdk.es32.js.map +1 -1
  186. package/dist/es/standards-sdk.es33.js +458 -101
  187. package/dist/es/standards-sdk.es33.js.map +1 -1
  188. package/dist/es/standards-sdk.es34.js +132 -451
  189. package/dist/es/standards-sdk.es34.js.map +1 -1
  190. package/dist/es/standards-sdk.es35.js +216 -130
  191. package/dist/es/standards-sdk.es35.js.map +1 -1
  192. package/dist/es/standards-sdk.es36.js +273 -196
  193. package/dist/es/standards-sdk.es36.js.map +1 -1
  194. package/dist/es/standards-sdk.es37.js +148 -87
  195. package/dist/es/standards-sdk.es37.js.map +1 -1
  196. package/dist/es/standards-sdk.es38.js +183 -320
  197. package/dist/es/standards-sdk.es38.js.map +1 -1
  198. package/dist/es/standards-sdk.es39.js +238 -161
  199. package/dist/es/standards-sdk.es39.js.map +1 -1
  200. package/dist/es/standards-sdk.es4.js +425 -63
  201. package/dist/es/standards-sdk.es4.js.map +1 -1
  202. package/dist/es/standards-sdk.es40.js +136 -254
  203. package/dist/es/standards-sdk.es40.js.map +1 -1
  204. package/dist/es/standards-sdk.es41.js +225 -176
  205. package/dist/es/standards-sdk.es41.js.map +1 -1
  206. package/dist/es/standards-sdk.es42.js +199 -261
  207. package/dist/es/standards-sdk.es42.js.map +1 -1
  208. package/dist/es/standards-sdk.es43.js +237 -199
  209. package/dist/es/standards-sdk.es43.js.map +1 -1
  210. package/dist/es/standards-sdk.es44.js +209 -201
  211. package/dist/es/standards-sdk.es44.js.map +1 -1
  212. package/dist/es/standards-sdk.es45.js +305 -201
  213. package/dist/es/standards-sdk.es45.js.map +1 -1
  214. package/dist/es/standards-sdk.es46.js +371 -261
  215. package/dist/es/standards-sdk.es46.js.map +1 -1
  216. package/dist/es/standards-sdk.es47.js +316 -372
  217. package/dist/es/standards-sdk.es47.js.map +1 -1
  218. package/dist/es/standards-sdk.es48.js +404 -336
  219. package/dist/es/standards-sdk.es48.js.map +1 -1
  220. package/dist/es/standards-sdk.es49.js +83 -449
  221. package/dist/es/standards-sdk.es49.js.map +1 -1
  222. package/dist/es/standards-sdk.es5.js +232 -354
  223. package/dist/es/standards-sdk.es5.js.map +1 -1
  224. package/dist/es/standards-sdk.es50.js +179 -89
  225. package/dist/es/standards-sdk.es50.js.map +1 -1
  226. package/dist/es/standards-sdk.es51.js +231 -165
  227. package/dist/es/standards-sdk.es51.js.map +1 -1
  228. package/dist/es/standards-sdk.es52.js +25 -262
  229. package/dist/es/standards-sdk.es52.js.map +1 -1
  230. package/dist/es/standards-sdk.es53.js +56 -26
  231. package/dist/es/standards-sdk.es53.js.map +1 -1
  232. package/dist/es/standards-sdk.es54.js +12 -57
  233. package/dist/es/standards-sdk.es54.js.map +1 -1
  234. package/dist/es/standards-sdk.es55.js +49 -12
  235. package/dist/es/standards-sdk.es55.js.map +1 -1
  236. package/dist/es/standards-sdk.es56.js +115 -43
  237. package/dist/es/standards-sdk.es56.js.map +1 -1
  238. package/dist/es/standards-sdk.es57.js +42 -115
  239. package/dist/es/standards-sdk.es57.js.map +1 -1
  240. package/dist/es/standards-sdk.es58.js +52 -43
  241. package/dist/es/standards-sdk.es58.js.map +1 -1
  242. package/dist/es/standards-sdk.es59.js +36 -50
  243. package/dist/es/standards-sdk.es59.js.map +1 -1
  244. package/dist/es/standards-sdk.es6.js +125 -246
  245. package/dist/es/standards-sdk.es6.js.map +1 -1
  246. package/dist/es/standards-sdk.es60.js +207 -39
  247. package/dist/es/standards-sdk.es60.js.map +1 -1
  248. package/dist/es/standards-sdk.es61.js +24 -201
  249. package/dist/es/standards-sdk.es61.js.map +1 -1
  250. package/dist/es/standards-sdk.es62.js +87 -25
  251. package/dist/es/standards-sdk.es62.js.map +1 -1
  252. package/dist/es/standards-sdk.es63.js +3 -51
  253. package/dist/es/standards-sdk.es63.js.map +1 -1
  254. package/dist/es/standards-sdk.es64.js +100 -3
  255. package/dist/es/standards-sdk.es64.js.map +1 -1
  256. package/dist/es/standards-sdk.es65.js +61 -62
  257. package/dist/es/standards-sdk.es65.js.map +1 -1
  258. package/dist/es/standards-sdk.es66.js +17 -98
  259. package/dist/es/standards-sdk.es66.js.map +1 -1
  260. package/dist/es/standards-sdk.es67.js +77 -19
  261. package/dist/es/standards-sdk.es67.js.map +1 -1
  262. package/dist/es/standards-sdk.es68.js +458 -77
  263. package/dist/es/standards-sdk.es68.js.map +1 -1
  264. package/dist/es/standards-sdk.es69.js +106 -240
  265. package/dist/es/standards-sdk.es69.js.map +1 -1
  266. package/dist/es/standards-sdk.es7.js +28 -183
  267. package/dist/es/standards-sdk.es7.js.map +1 -1
  268. package/dist/es/standards-sdk.es70.js +170 -286
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +71 -207
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +71 -72
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +143 -71
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +62 -136
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +380 -45
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +222 -130
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +320 -444
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +88 -371
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +125 -89
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es8.js +80 -29
  289. package/dist/es/standards-sdk.es8.js.map +1 -1
  290. package/dist/es/standards-sdk.es80.js +8 -125
  291. package/dist/es/standards-sdk.es80.js.map +1 -1
  292. package/dist/es/standards-sdk.es81.js +45 -6
  293. package/dist/es/standards-sdk.es81.js.map +1 -1
  294. package/dist/es/standards-sdk.es82.js +98 -44
  295. package/dist/es/standards-sdk.es82.js.map +1 -1
  296. package/dist/es/standards-sdk.es83.js +331 -84
  297. package/dist/es/standards-sdk.es83.js.map +1 -1
  298. package/dist/es/standards-sdk.es84.js +93 -160
  299. package/dist/es/standards-sdk.es84.js.map +1 -1
  300. package/dist/es/standards-sdk.es85.js +55 -275
  301. package/dist/es/standards-sdk.es85.js.map +1 -1
  302. package/dist/es/standards-sdk.es86.js +43 -55
  303. package/dist/es/standards-sdk.es86.js.map +1 -1
  304. package/dist/es/standards-sdk.es87.js +145 -44
  305. package/dist/es/standards-sdk.es87.js.map +1 -1
  306. package/dist/es/standards-sdk.es88.js +30 -113
  307. package/dist/es/standards-sdk.es88.js.map +1 -1
  308. package/dist/es/standards-sdk.es89.js +22 -59
  309. package/dist/es/standards-sdk.es89.js.map +1 -1
  310. package/dist/es/standards-sdk.es9.js +104 -80
  311. package/dist/es/standards-sdk.es9.js.map +1 -1
  312. package/dist/es/standards-sdk.es90.js +23 -28
  313. package/dist/es/standards-sdk.es90.js.map +1 -1
  314. package/dist/es/standards-sdk.es91.js +238 -23
  315. package/dist/es/standards-sdk.es91.js.map +1 -1
  316. package/dist/es/standards-sdk.es92.js +267 -225
  317. package/dist/es/standards-sdk.es92.js.map +1 -1
  318. package/dist/es/standards-sdk.es93.js +95 -220
  319. package/dist/es/standards-sdk.es93.js.map +1 -1
  320. package/dist/es/standards-sdk.es94.js +124 -136
  321. package/dist/es/standards-sdk.es94.js.map +1 -1
  322. package/dist/es/standards-sdk.es95.js +42 -138
  323. package/dist/es/standards-sdk.es95.js.map +1 -1
  324. package/dist/es/standards-sdk.es96.js +259 -43
  325. package/dist/es/standards-sdk.es96.js.map +1 -1
  326. package/dist/es/standards-sdk.es97.js +82 -245
  327. package/dist/es/standards-sdk.es97.js.map +1 -1
  328. package/dist/es/standards-sdk.es98.js +49 -50
  329. package/dist/es/standards-sdk.es98.js.map +1 -1
  330. package/dist/es/standards-sdk.es99.js +29 -100
  331. package/dist/es/standards-sdk.es99.js.map +1 -1
  332. package/dist/es/utils/dynamic-import.d.ts +5 -1
  333. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  334. package/package.json +4 -4
  335. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  336. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  337. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  338. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
  339. package/dist/es/standards-sdk.es161.js +0 -247
  340. package/dist/es/standards-sdk.es161.js.map +0 -1
@@ -1,90 +1,162 @@
1
- const normalise = (value) => value.trim().toLowerCase();
2
- const HEDERA_NETWORK_ALIASES = /* @__PURE__ */ new Map([
3
- ["hedera:mainnet", { canonical: "hedera:mainnet", hederaNetwork: "mainnet" }],
4
- ["mainnet", { canonical: "hedera:mainnet", hederaNetwork: "mainnet" }],
5
- ["hedera-mainnet", { canonical: "hedera:mainnet", hederaNetwork: "mainnet" }],
6
- ["hedera_mainnet", { canonical: "hedera:mainnet", hederaNetwork: "mainnet" }],
7
- ["hedera:testnet", { canonical: "hedera:testnet", hederaNetwork: "testnet" }],
8
- ["testnet", { canonical: "hedera:testnet", hederaNetwork: "testnet" }],
9
- ["hedera-testnet", { canonical: "hedera:testnet", hederaNetwork: "testnet" }],
10
- ["hedera_testnet", { canonical: "hedera:testnet", hederaNetwork: "testnet" }]
11
- ]);
12
- const EVM_NETWORK_CHAIN_IDS = {
13
- abstract: 2741,
14
- "abstract-testnet": 11124,
15
- base: 8453,
16
- "base-sepolia": 84532,
17
- avalanche: 43114,
18
- "avalanche-fuji": 43113,
19
- iotex: 4689,
20
- sei: 1329,
21
- "sei-testnet": 1328,
22
- polygon: 137,
23
- "polygon-amoy": 80002,
24
- peaq: 3338
25
- };
26
- const CHAIN_ID_TO_ALIAS = new Map(
27
- Object.entries(EVM_NETWORK_CHAIN_IDS).map(([alias, id]) => [id, alias])
28
- );
29
- const parseChainId = (value) => {
30
- if (/^eip155:\d+$/i.test(value)) {
31
- return Number.parseInt(value.split(":")[1], 10);
32
- }
33
- if (/^\d+$/.test(value)) {
34
- return Number.parseInt(value, 10);
1
+ import { CustomFeeType } from "./standards-sdk.es140.js";
2
+ import { HederaMirrorNode } from "./standards-sdk.es126.js";
3
+ class FeeConfigBuilder {
4
+ constructor(options) {
5
+ this.customFees = [];
6
+ this.logger = options.logger;
7
+ this.mirrorNode = new HederaMirrorNode(options.network, options.logger);
8
+ this.defaultCollectorAccountId = options.defaultCollectorAccountId || "";
35
9
  }
36
- return void 0;
37
- };
38
- const normaliseEvmNetwork = (value) => {
39
- const trimmed = normalise(value);
40
- let chainId = parseChainId(trimmed);
41
- let alias;
42
- if (chainId === void 0) {
43
- const mapped = EVM_NETWORK_CHAIN_IDS[trimmed];
44
- if (mapped !== void 0) {
45
- chainId = mapped;
46
- alias = trimmed;
47
- }
48
- } else if (CHAIN_ID_TO_ALIAS.has(chainId)) {
49
- alias = CHAIN_ID_TO_ALIAS.get(chainId);
10
+ /**
11
+ * Static factory method to create a FeeConfigBuilder with a single HBAR fee.
12
+ * @param hbarAmount Amount in HBAR.
13
+ * @param collectorAccountId Optional account ID to collect the fee. If omitted or undefined, defaults to the agent's own account ID during topic creation.
14
+ * @param network Network type ('mainnet' or 'testnet').
15
+ * @param logger Logger instance.
16
+ * @param exemptAccounts Optional array of account IDs exempt from this fee.
17
+ * @returns A configured FeeConfigBuilder instance.
18
+ */
19
+ static forHbar(hbarAmount, collectorAccountId, network, logger, exemptAccounts = []) {
20
+ const builder = new FeeConfigBuilder({
21
+ network,
22
+ logger,
23
+ defaultCollectorAccountId: collectorAccountId
24
+ });
25
+ return builder.addHbarFee(hbarAmount, collectorAccountId, exemptAccounts);
50
26
  }
51
- if (chainId === void 0) {
52
- throw new Error(
53
- 'Unsupported EVM ledger network. Provide an alias like "base-sepolia" or a canonical eip155:<chainId> string.'
27
+ /**
28
+ * Static factory method to create a FeeConfigBuilder with a single token fee.
29
+ * Automatically fetches token decimals if not provided.
30
+ * @param tokenAmount Amount of tokens.
31
+ * @param feeTokenId Token ID for the fee.
32
+ * @param collectorAccountId Optional account ID to collect the fee. If omitted or undefined, defaults to the agent's own account ID during topic creation.
33
+ * @param network Network type ('mainnet' or 'testnet').
34
+ * @param logger Logger instance.
35
+ * @param exemptAccounts Optional array of account IDs exempt from this fee.
36
+ * @param decimals Optional decimals for the token (fetched if omitted).
37
+ * @returns A Promise resolving to a configured FeeConfigBuilder instance.
38
+ */
39
+ static async forToken(tokenAmount, feeTokenId, collectorAccountId, network, logger, exemptAccounts = [], decimals) {
40
+ const builder = new FeeConfigBuilder({
41
+ network,
42
+ logger,
43
+ defaultCollectorAccountId: collectorAccountId
44
+ });
45
+ await builder.addTokenFee(
46
+ tokenAmount,
47
+ feeTokenId,
48
+ collectorAccountId,
49
+ decimals,
50
+ exemptAccounts
54
51
  );
52
+ return builder;
55
53
  }
56
- return {
57
- canonical: `eip155:${chainId}`,
58
- kind: "evm",
59
- chainId,
60
- legacyName: alias
61
- };
62
- };
63
- const normaliseHederaNetwork = (value) => {
64
- const trimmed = normalise(value);
65
- const mapping = HEDERA_NETWORK_ALIASES.get(trimmed);
66
- if (!mapping) {
67
- throw new Error(
68
- 'Unsupported Hedera network. Use hedera:mainnet or hedera:testnet (legacy "mainnet"/"testnet" also accepted).'
69
- );
54
+ /**
55
+ * Adds an HBAR fee configuration to the builder.
56
+ * Allows chaining multiple fee additions.
57
+ * @param hbarAmount The amount in HBAR (e.g., 0.5).
58
+ * @param collectorAccountId Optional. The account ID to collect this fee. If omitted, defaults to the agent's own account ID during topic creation.
59
+ * @param exemptAccountIds Optional. Accounts specifically exempt from *this* HBAR fee.
60
+ * @returns This FeeConfigBuilder instance for chaining.
61
+ */
62
+ addHbarFee(hbarAmount, collectorAccountId, exemptAccountIds = []) {
63
+ if (hbarAmount <= 0) {
64
+ throw new Error("HBAR amount must be greater than zero");
65
+ }
66
+ this.customFees.push({
67
+ feeAmount: {
68
+ amount: hbarAmount * 1e8,
69
+ decimals: 0
70
+ },
71
+ feeCollectorAccountId: collectorAccountId || this.defaultCollectorAccountId,
72
+ feeTokenId: void 0,
73
+ exemptAccounts: [...exemptAccountIds],
74
+ type: CustomFeeType.FIXED_FEE
75
+ });
76
+ return this;
70
77
  }
71
- return {
72
- canonical: mapping.canonical,
73
- kind: "hedera",
74
- hederaNetwork: mapping.hederaNetwork
75
- };
76
- };
77
- const canonicalizeLedgerNetwork = (network) => {
78
- if (typeof network !== "string" || network.trim().length === 0) {
79
- throw new Error("Ledger network is required.");
78
+ /**
79
+ * Adds a token fee configuration to the builder.
80
+ * Allows chaining multiple fee additions.
81
+ * Fetches token decimals automatically if not provided.
82
+ * @param tokenAmount The amount of the specified token.
83
+ * @param feeTokenId The ID of the token to charge the fee in.
84
+ * @param collectorAccountId Optional. The account ID to collect this fee. If omitted, defaults to the agent's own account ID during topic creation.
85
+ * @param decimals Optional. The number of decimals for the token. If omitted, it will be fetched from the mirror node.
86
+ * @param exemptAccountIds Optional. Accounts specifically exempt from *this* token fee.
87
+ * @returns A Promise resolving to this FeeConfigBuilder instance for chaining.
88
+ */
89
+ async addTokenFee(tokenAmount, feeTokenId, collectorAccountId, decimals, exemptAccountIds = []) {
90
+ if (tokenAmount <= 0) {
91
+ throw new Error("Token amount must be greater than zero");
92
+ }
93
+ if (!feeTokenId) {
94
+ throw new Error("Fee token ID is required when adding a token fee");
95
+ }
96
+ let finalDecimals = decimals;
97
+ if (finalDecimals === void 0) {
98
+ try {
99
+ const tokenInfo = await this.mirrorNode.getTokenInfo(feeTokenId);
100
+ if (tokenInfo?.decimals) {
101
+ finalDecimals = parseInt(tokenInfo.decimals, 10);
102
+ this.logger.info(
103
+ `Fetched decimals for ${feeTokenId}: ${finalDecimals}`
104
+ );
105
+ } else {
106
+ this.logger.warn(
107
+ `Could not fetch decimals for ${feeTokenId}, defaulting to 0.`
108
+ );
109
+ finalDecimals = 0;
110
+ }
111
+ } catch (error) {
112
+ this.logger.error(
113
+ `Error fetching decimals for ${feeTokenId}, defaulting to 0: ${error}`
114
+ );
115
+ finalDecimals = 0;
116
+ }
117
+ }
118
+ this.customFees.push({
119
+ feeAmount: {
120
+ amount: tokenAmount * 10 ** finalDecimals,
121
+ decimals: finalDecimals
122
+ },
123
+ feeCollectorAccountId: collectorAccountId || this.defaultCollectorAccountId,
124
+ feeTokenId,
125
+ exemptAccounts: [...exemptAccountIds],
126
+ type: CustomFeeType.FIXED_FEE
127
+ });
128
+ return this;
80
129
  }
81
- const trimmed = normalise(network);
82
- if (trimmed.startsWith("hedera:") || trimmed.includes("hedera-") || trimmed.includes("hedera_") || trimmed === "mainnet" || trimmed === "testnet") {
83
- return normaliseHederaNetwork(trimmed);
130
+ /**
131
+ * Builds the final TopicFeeConfig object.
132
+ * @returns The TopicFeeConfig containing all added custom fees and a consolidated list of unique exempt accounts.
133
+ * @throws Error if no fees have been added.
134
+ * @throws Error if more than 10 fees have been added.
135
+ */
136
+ build() {
137
+ if (this.customFees.length === 0) {
138
+ throw new Error(
139
+ "At least one fee must be added using addHbarFee/addTokenFee or created using forHbar/forToken"
140
+ );
141
+ }
142
+ if (this.customFees.length > 10) {
143
+ throw new Error("Maximum of 10 custom fees per topic allowed");
144
+ }
145
+ const allExemptAccounts = /* @__PURE__ */ new Set();
146
+ this.customFees.forEach((fee) => {
147
+ fee.exemptAccounts.forEach((account) => allExemptAccounts.add(account));
148
+ });
149
+ const resolvedCustomFees = this.customFees.map((fee) => ({
150
+ ...fee,
151
+ feeCollectorAccountId: fee.feeCollectorAccountId || this.defaultCollectorAccountId
152
+ }));
153
+ return {
154
+ customFees: resolvedCustomFees,
155
+ exemptAccounts: Array.from(allExemptAccounts)
156
+ };
84
157
  }
85
- return normaliseEvmNetwork(trimmed);
86
- };
158
+ }
87
159
  export {
88
- canonicalizeLedgerNetwork
160
+ FeeConfigBuilder
89
161
  };
90
162
  //# sourceMappingURL=standards-sdk.es139.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es139.js","sources":["../../src/services/registry-broker/ledger-network.ts"],"sourcesContent":["type HederaNetwork = 'mainnet' | 'testnet';\ntype LedgerNetworkKind = 'hedera' | 'evm';\n\nexport interface CanonicalLedgerNetwork {\n canonical: string;\n kind: LedgerNetworkKind;\n hederaNetwork?: HederaNetwork;\n chainId?: number;\n legacyName?: string;\n}\n\nconst normalise = (value: string): string => value.trim().toLowerCase();\n\nconst HEDERA_NETWORK_ALIASES = new Map<\n string,\n { canonical: `hedera:${HederaNetwork}`; hederaNetwork: HederaNetwork }\n>([\n ['hedera:mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['hedera-mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['hedera_mainnet', { canonical: 'hedera:mainnet', hederaNetwork: 'mainnet' }],\n ['hedera:testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n ['testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n ['hedera-testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n ['hedera_testnet', { canonical: 'hedera:testnet', hederaNetwork: 'testnet' }],\n]);\n\nconst EVM_NETWORK_CHAIN_IDS: Record<string, number> = {\n abstract: 2741,\n 'abstract-testnet': 11124,\n base: 8453,\n 'base-sepolia': 84532,\n avalanche: 43114,\n 'avalanche-fuji': 43113,\n iotex: 4689,\n sei: 1329,\n 'sei-testnet': 1328,\n polygon: 137,\n 'polygon-amoy': 80002,\n peaq: 3338,\n};\n\nconst CHAIN_ID_TO_ALIAS = new Map<number, string>(\n Object.entries(EVM_NETWORK_CHAIN_IDS).map(([alias, id]) => [id, alias]),\n);\n\nconst parseChainId = (value: string): number | undefined => {\n if (/^eip155:\\d+$/i.test(value)) {\n return Number.parseInt(value.split(':')[1]!, 10);\n }\n if (/^\\d+$/.test(value)) {\n return Number.parseInt(value, 10);\n }\n return undefined;\n};\n\nconst normaliseEvmNetwork = (value: string): CanonicalLedgerNetwork => {\n const trimmed = normalise(value);\n let chainId = parseChainId(trimmed);\n let alias: string | undefined;\n\n if (chainId === undefined) {\n const mapped = EVM_NETWORK_CHAIN_IDS[trimmed];\n if (mapped !== undefined) {\n chainId = mapped;\n alias = trimmed;\n }\n } else if (CHAIN_ID_TO_ALIAS.has(chainId)) {\n alias = CHAIN_ID_TO_ALIAS.get(chainId);\n }\n\n if (chainId === undefined) {\n throw new Error(\n 'Unsupported EVM ledger network. Provide an alias like \"base-sepolia\" or a canonical eip155:<chainId> string.',\n );\n }\n\n return {\n canonical: `eip155:${chainId}`,\n kind: 'evm',\n chainId,\n legacyName: alias,\n };\n};\n\nconst normaliseHederaNetwork = (value: string): CanonicalLedgerNetwork => {\n const trimmed = normalise(value);\n const mapping = HEDERA_NETWORK_ALIASES.get(trimmed);\n if (!mapping) {\n throw new Error(\n 'Unsupported Hedera network. Use hedera:mainnet or hedera:testnet (legacy \"mainnet\"/\"testnet\" also accepted).',\n );\n }\n return {\n canonical: mapping.canonical,\n kind: 'hedera',\n hederaNetwork: mapping.hederaNetwork,\n };\n};\n\nexport const canonicalizeLedgerNetwork = (\n network: string,\n): CanonicalLedgerNetwork => {\n if (typeof network !== 'string' || network.trim().length === 0) {\n throw new Error('Ledger network is required.');\n }\n const trimmed = normalise(network);\n if (\n trimmed.startsWith('hedera:') ||\n trimmed.includes('hedera-') ||\n trimmed.includes('hedera_') ||\n trimmed === 'mainnet' ||\n trimmed === 'testnet'\n ) {\n return normaliseHederaNetwork(trimmed);\n }\n return normaliseEvmNetwork(trimmed);\n};\n"],"names":[],"mappings":"AAWA,MAAM,YAAY,CAAC,UAA0B,MAAM,KAAA,EAAO,YAAA;AAE1D,MAAM,6CAA6B,IAGjC;AAAA,EACA,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,WAAW,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EACrE,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,WAAW,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EACrE,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAAA,EAC5E,CAAC,kBAAkB,EAAE,WAAW,kBAAkB,eAAe,WAAW;AAC9E,CAAC;AAED,MAAM,wBAAgD;AAAA,EACpD,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,KAAK;AAAA,EACL,eAAe;AAAA,EACf,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,MAAM;AACR;AAEA,MAAM,oBAAoB,IAAI;AAAA,EAC5B,OAAO,QAAQ,qBAAqB,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC;AACxE;AAEA,MAAM,eAAe,CAAC,UAAsC;AAC1D,MAAI,gBAAgB,KAAK,KAAK,GAAG;AAC/B,WAAO,OAAO,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,GAAI,EAAE;AAAA,EACjD;AACA,MAAI,QAAQ,KAAK,KAAK,GAAG;AACvB,WAAO,OAAO,SAAS,OAAO,EAAE;AAAA,EAClC;AACA,SAAO;AACT;AAEA,MAAM,sBAAsB,CAAC,UAA0C;AACrE,QAAM,UAAU,UAAU,KAAK;AAC/B,MAAI,UAAU,aAAa,OAAO;AAClC,MAAI;AAEJ,MAAI,YAAY,QAAW;AACzB,UAAM,SAAS,sBAAsB,OAAO;AAC5C,QAAI,WAAW,QAAW;AACxB,gBAAU;AACV,cAAQ;AAAA,IACV;AAAA,EACF,WAAW,kBAAkB,IAAI,OAAO,GAAG;AACzC,YAAQ,kBAAkB,IAAI,OAAO;AAAA,EACvC;AAEA,MAAI,YAAY,QAAW;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL,WAAW,UAAU,OAAO;AAAA,IAC5B,MAAM;AAAA,IACN;AAAA,IACA,YAAY;AAAA,EAAA;AAEhB;AAEA,MAAM,yBAAyB,CAAC,UAA0C;AACxE,QAAM,UAAU,UAAU,KAAK;AAC/B,QAAM,UAAU,uBAAuB,IAAI,OAAO;AAClD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACA,SAAO;AAAA,IACL,WAAW,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,eAAe,QAAQ;AAAA,EAAA;AAE3B;AAEO,MAAM,4BAA4B,CACvC,YAC2B;AAC3B,MAAI,OAAO,YAAY,YAAY,QAAQ,KAAA,EAAO,WAAW,GAAG;AAC9D,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AACA,QAAM,UAAU,UAAU,OAAO;AACjC,MACE,QAAQ,WAAW,SAAS,KAC5B,QAAQ,SAAS,SAAS,KAC1B,QAAQ,SAAS,SAAS,KAC1B,YAAY,aACZ,YAAY,WACZ;AACA,WAAO,uBAAuB,OAAO;AAAA,EACvC;AACA,SAAO,oBAAoB,OAAO;AACpC;"}
1
+ {"version":3,"file":"standards-sdk.es139.js","sources":["../../src/fees/fee-config-builder.ts"],"sourcesContent":["import {\n FeeConfigBuilderInterface,\n TokenFeeConfig,\n TopicFeeConfig,\n CustomFeeType,\n} from './types';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport { Logger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\n\n/**\n * FeeConfigBuilder provides a fluent interface for creating fee configurations\n * for HCS-10 topics. This makes it easy to configure fees without dealing with\n * the complexity of the underlying fee structure.\n *\n * Example usage:\n *\n * // Super simple one-liner with the factory method\n * const simpleFeeConfig = FeeConfigBuilder.forHbar(5, '0.0.12345', NetworkType.TESTNET, new Logger(), ['0.0.67890']);\n *\n * // With multiple fees:\n * const multipleFeeConfig = new FeeConfigBuilder({\n * network: NetworkType.TESTNET,\n * logger: new Logger(),\n * defaultCollectorAccountId: '0.0.12345',\n * defaultExemptAccountIds: ['0.0.67890']\n * })\n * .withHbarFee(1) // 1 HBAR fee\n * .withTokenFee(10, '0.0.54321') // 10 units of token 0.0.54321\n * .build();\n *\n * With Agent Builder\n * const agent = new AgentBuilder()\n * .setName('Fee Collector Agent')\n * .setDescription('An agent that collects fees')\n * .setInboundTopicType(InboundTopicType.FEE_BASED)\n * .setFeeConfig(FeeConfigBuilder.forHbar(1, '0.0.12345', NetworkType.TESTNET, new Logger(), ['0.0.67890']))\n * .setNetwork('testnet')\n .build();\n\n * Directly with client\n * const client = new HCS10Client(config);\n * const connectionFeeConfig = new FeeConfigBuilder({\n * network: NetworkType.TESTNET,\n * logger: new Logger(),\n * defaultCollectorAccountId: client.getAccountAndSigner().accountId,\n * defaultExemptAccountIds: ['0.0.67890']\n * })\n * .withHbarFee(0.5) // 0.5 HBAR (simple!)\n * .build();\n\n * const result = await client.handleConnectionRequest(\n * inboundTopicId,\n * requestingAccountId,\n * connectionRequestId,\n * connectionFeeConfig\n * );\n*/\nexport interface FeeConfigBuilderOptions {\n network: NetworkType;\n logger: Logger;\n defaultCollectorAccountId?: string;\n}\n\nexport class FeeConfigBuilder implements FeeConfigBuilderInterface {\n private customFees: TokenFeeConfig[] = [];\n private mirrorNode: HederaMirrorNode;\n private logger: Logger;\n private defaultCollectorAccountId: string;\n\n constructor(options: FeeConfigBuilderOptions) {\n this.logger = options.logger;\n this.mirrorNode = new HederaMirrorNode(options.network, options.logger);\n this.defaultCollectorAccountId = options.defaultCollectorAccountId || '';\n }\n\n /**\n * Static factory method to create a FeeConfigBuilder with a single HBAR fee.\n * @param hbarAmount Amount in HBAR.\n * @param collectorAccountId Optional account ID to collect the fee. If omitted or undefined, defaults to the agent's own account ID during topic creation.\n * @param network Network type ('mainnet' or 'testnet').\n * @param logger Logger instance.\n * @param exemptAccounts Optional array of account IDs exempt from this fee.\n * @returns A configured FeeConfigBuilder instance.\n */\n static forHbar(\n hbarAmount: number,\n collectorAccountId: string | undefined,\n network: NetworkType,\n logger: Logger,\n exemptAccounts: string[] = [],\n ): FeeConfigBuilder {\n const builder = new FeeConfigBuilder({\n network,\n logger,\n defaultCollectorAccountId: collectorAccountId,\n });\n return builder.addHbarFee(hbarAmount, collectorAccountId, exemptAccounts);\n }\n\n /**\n * Static factory method to create a FeeConfigBuilder with a single token fee.\n * Automatically fetches token decimals if not provided.\n * @param tokenAmount Amount of tokens.\n * @param feeTokenId Token ID for the fee.\n * @param collectorAccountId Optional account ID to collect the fee. If omitted or undefined, defaults to the agent's own account ID during topic creation.\n * @param network Network type ('mainnet' or 'testnet').\n * @param logger Logger instance.\n * @param exemptAccounts Optional array of account IDs exempt from this fee.\n * @param decimals Optional decimals for the token (fetched if omitted).\n * @returns A Promise resolving to a configured FeeConfigBuilder instance.\n */\n static async forToken(\n tokenAmount: number,\n feeTokenId: string,\n collectorAccountId: string | undefined,\n network: NetworkType,\n logger: Logger,\n exemptAccounts: string[] = [],\n decimals?: number,\n ): Promise<FeeConfigBuilder> {\n const builder = new FeeConfigBuilder({\n network,\n logger,\n defaultCollectorAccountId: collectorAccountId,\n });\n await builder.addTokenFee(\n tokenAmount,\n feeTokenId,\n collectorAccountId,\n decimals,\n exemptAccounts,\n );\n return builder;\n }\n\n /**\n * Adds an HBAR fee configuration to the builder.\n * Allows chaining multiple fee additions.\n * @param hbarAmount The amount in HBAR (e.g., 0.5).\n * @param collectorAccountId Optional. The account ID to collect this fee. If omitted, defaults to the agent's own account ID during topic creation.\n * @param exemptAccountIds Optional. Accounts specifically exempt from *this* HBAR fee.\n * @returns This FeeConfigBuilder instance for chaining.\n */\n addHbarFee(\n hbarAmount: number,\n collectorAccountId?: string,\n exemptAccountIds: string[] = [],\n ): FeeConfigBuilder {\n if (hbarAmount <= 0) {\n throw new Error('HBAR amount must be greater than zero');\n }\n\n this.customFees.push({\n feeAmount: {\n amount: hbarAmount * 100_000_000,\n decimals: 0,\n },\n feeCollectorAccountId:\n collectorAccountId || this.defaultCollectorAccountId,\n feeTokenId: undefined,\n exemptAccounts: [...exemptAccountIds],\n type: CustomFeeType.FIXED_FEE,\n });\n\n return this;\n }\n\n /**\n * Adds a token fee configuration to the builder.\n * Allows chaining multiple fee additions.\n * Fetches token decimals automatically if not provided.\n * @param tokenAmount The amount of the specified token.\n * @param feeTokenId The ID of the token to charge the fee in.\n * @param collectorAccountId Optional. The account ID to collect this fee. If omitted, defaults to the agent's own account ID during topic creation.\n * @param decimals Optional. The number of decimals for the token. If omitted, it will be fetched from the mirror node.\n * @param exemptAccountIds Optional. Accounts specifically exempt from *this* token fee.\n * @returns A Promise resolving to this FeeConfigBuilder instance for chaining.\n */\n async addTokenFee(\n tokenAmount: number,\n feeTokenId: string,\n collectorAccountId?: string,\n decimals?: number,\n exemptAccountIds: string[] = [],\n ): Promise<FeeConfigBuilder> {\n if (tokenAmount <= 0) {\n throw new Error('Token amount must be greater than zero');\n }\n if (!feeTokenId) {\n throw new Error('Fee token ID is required when adding a token fee');\n }\n\n let finalDecimals = decimals;\n if (finalDecimals === undefined) {\n try {\n const tokenInfo = await this.mirrorNode.getTokenInfo(feeTokenId);\n if (tokenInfo?.decimals) {\n finalDecimals = parseInt(tokenInfo.decimals, 10);\n this.logger.info(\n `Fetched decimals for ${feeTokenId}: ${finalDecimals}`,\n );\n } else {\n this.logger.warn(\n `Could not fetch decimals for ${feeTokenId}, defaulting to 0.`,\n );\n finalDecimals = 0;\n }\n } catch (error) {\n this.logger.error(\n `Error fetching decimals for ${feeTokenId}, defaulting to 0: ${error}`,\n );\n finalDecimals = 0;\n }\n }\n\n this.customFees.push({\n feeAmount: {\n amount: tokenAmount * 10 ** finalDecimals,\n decimals: finalDecimals,\n },\n feeCollectorAccountId:\n collectorAccountId || this.defaultCollectorAccountId,\n feeTokenId: feeTokenId,\n exemptAccounts: [...exemptAccountIds],\n type: CustomFeeType.FIXED_FEE,\n });\n\n return this;\n }\n\n /**\n * Builds the final TopicFeeConfig object.\n * @returns The TopicFeeConfig containing all added custom fees and a consolidated list of unique exempt accounts.\n * @throws Error if no fees have been added.\n * @throws Error if more than 10 fees have been added.\n */\n build(): TopicFeeConfig {\n if (this.customFees.length === 0) {\n throw new Error(\n 'At least one fee must be added using addHbarFee/addTokenFee or created using forHbar/forToken',\n );\n }\n\n if (this.customFees.length > 10) {\n throw new Error('Maximum of 10 custom fees per topic allowed');\n }\n\n const allExemptAccounts = new Set<string>();\n this.customFees.forEach(fee => {\n fee.exemptAccounts.forEach(account => allExemptAccounts.add(account));\n });\n\n const resolvedCustomFees = this.customFees.map(fee => ({\n ...fee,\n feeCollectorAccountId:\n fee.feeCollectorAccountId || this.defaultCollectorAccountId,\n }));\n\n return {\n customFees: resolvedCustomFees,\n exemptAccounts: Array.from(allExemptAccounts),\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,204 +1,175 @@
1
- import { Logger } from "./standards-sdk.es106.js";
2
- class WasmBridge {
1
+ import { ContractId, AccountId } from "@hashgraph/sdk";
2
+ import { ethers } from "ethers";
3
+ import { Logger } from "./standards-sdk.es105.js";
4
+ class MapCache {
3
5
  constructor() {
4
- this.wasm = null;
5
- this.WASM_VECTOR_LEN = 0;
6
- this.cachedUint8Memory = null;
7
- this.cachedDataViewMemory = null;
8
- this.textEncoder = new TextEncoder();
9
- this.textDecoder = new TextDecoder("utf-8", {
10
- ignoreBOM: true,
11
- fatal: true
12
- });
13
- this.textDecoder.decode();
14
- this.logger = Logger.getInstance({ module: "WasmBridge" });
6
+ this.cache = /* @__PURE__ */ new Map();
15
7
  }
16
- setLogLevel(level) {
17
- this.logger.setLogLevel(level);
8
+ get(key) {
9
+ return this.cache.get(key);
18
10
  }
19
- get wasmInstance() {
20
- if (!this.wasm) {
21
- throw new Error("WASM not initialized");
22
- }
23
- return this.wasm;
11
+ set(key, value) {
12
+ this.cache.set(key, value);
24
13
  }
25
- getUint8Memory() {
26
- if (!this.wasm) {
27
- throw new Error("WASM not initialized");
28
- }
29
- if (this.cachedUint8Memory === null || this.cachedUint8Memory.byteLength === 0) {
30
- this.cachedUint8Memory = new Uint8Array(this.wasm.memory.buffer);
31
- }
32
- return this.cachedUint8Memory;
14
+ delete(key) {
15
+ this.cache.delete(key);
33
16
  }
34
- getDataViewMemory() {
35
- if (!this.wasm) {
36
- throw new Error("WASM not initialized");
37
- }
38
- if (this.cachedDataViewMemory === null || this.cachedDataViewMemory.buffer !== this.wasm.memory.buffer) {
39
- this.cachedDataViewMemory = new DataView(this.wasm.memory.buffer);
40
- }
41
- return this.cachedDataViewMemory;
17
+ clear() {
18
+ this.cache.clear();
42
19
  }
43
- encodeString(arg, view) {
44
- if (arg.length === 0) {
45
- return { read: 0, written: 0 };
46
- }
47
- const buf = this.textEncoder.encode(arg);
48
- view.set(buf);
49
- return { read: arg.length, written: buf.length };
20
+ }
21
+ class EVMBridge {
22
+ constructor(network = "mainnet-public", mirrorNodeUrl = `mirrornode.hedera.com/api/v1/contracts/call`, cache) {
23
+ this.network = network;
24
+ this.mirrorNodeUrl = mirrorNodeUrl;
25
+ this.cache = cache || new MapCache();
26
+ this.logger = Logger.getInstance({ module: "EVMBridge" });
50
27
  }
51
- passStringToWasm(arg, malloc, realloc) {
52
- if (realloc === void 0) {
53
- const buf = this.textEncoder.encode(arg);
54
- const ptr2 = malloc(buf.length, 1);
55
- const view = this.getUint8Memory();
56
- view.set(buf, ptr2);
57
- this.WASM_VECTOR_LEN = buf.length;
58
- return ptr2;
59
- }
60
- let len = this.textEncoder.encode(arg).length;
61
- let ptr = malloc(len, 1);
62
- const mem = this.getUint8Memory();
63
- let offset = 0;
64
- for (; offset < len; offset++) {
65
- const code = arg.charCodeAt(offset);
66
- if (code > 127) break;
67
- mem[ptr + offset] = code;
68
- }
69
- if (offset !== len) {
70
- if (offset !== 0) {
71
- arg = arg.slice(offset);
28
+ async executeCommands(evmConfigs, initialState = {}) {
29
+ let stateData = { ...initialState };
30
+ const results = {};
31
+ for (const config of evmConfigs) {
32
+ const cacheKey = `${config.c.contractAddress}-${config.c.abi.name}`;
33
+ const cachedResult = await this.cache.get(cacheKey);
34
+ if (cachedResult) {
35
+ results[config.c.abi.name] = JSON.parse(cachedResult);
36
+ Object.assign(stateData, results[config.c.abi.name]);
37
+ continue;
72
38
  }
73
- ptr = realloc(
74
- ptr,
75
- len,
76
- len = offset + this.textEncoder.encode(arg).length * 3,
77
- 1
78
- );
79
- const view = this.getUint8Memory().subarray(ptr + offset, ptr + len);
80
- const ret = this.encodeString(arg, view);
81
- offset += ret.written;
82
- }
83
- this.WASM_VECTOR_LEN = offset;
84
- return ptr;
85
- }
86
- getStringFromWasm(ptr, len) {
87
- ptr = ptr >>> 0;
88
- return this.textDecoder.decode(
89
- this.getUint8Memory().subarray(ptr, ptr + len)
90
- );
91
- }
92
- createWasmFunction(wasmFn) {
93
- if (!this.wasm) {
94
- throw new Error("WASM not initialized");
95
- }
96
- return (...args) => {
97
- const retptr = this.wasm.__wbindgen_add_to_stack_pointer(-16);
98
- let deferred = [0, 0];
99
39
  try {
100
- const ptrLenPairs = args.map((arg) => {
101
- const ptr = this.passStringToWasm(
102
- arg,
103
- this.wasm.__wbindgen_malloc,
104
- this.wasm.__wbindgen_realloc
40
+ const iface = new ethers.Interface([
41
+ {
42
+ ...config.c.abi
43
+ }
44
+ ]);
45
+ const command = iface.encodeFunctionData(config.c.abi.name);
46
+ const contractId = ContractId.fromSolidityAddress(
47
+ config.c.contractAddress
48
+ );
49
+ const result = await this.readFromMirrorNode(
50
+ command,
51
+ AccountId.fromString("0.0.800"),
52
+ contractId
53
+ );
54
+ this.logger.info(
55
+ `Result for ${config.c.contractAddress}:`,
56
+ result?.result
57
+ );
58
+ if (!result?.result) {
59
+ this.logger.warn(
60
+ `Failed to get result from mirror node for ${config.c.contractAddress}`
105
61
  );
106
- return [ptr, this.WASM_VECTOR_LEN];
107
- });
108
- const wasmArgs = [retptr, ...ptrLenPairs.flat()];
109
- wasmFn.apply(this.wasm, wasmArgs);
110
- const r0 = this.getDataViewMemory().getInt32(retptr + 4 * 0, true);
111
- const r1 = this.getDataViewMemory().getInt32(retptr + 4 * 1, true);
112
- deferred = [r0, r1];
113
- return this.getStringFromWasm(r0, r1);
114
- } finally {
115
- this.wasm.__wbindgen_add_to_stack_pointer(16);
116
- this.wasm.__wbindgen_free(deferred[0], deferred[1], 1);
117
- }
118
- };
119
- }
120
- async initWasm(wasmBytes) {
121
- const bridge = this;
122
- const imports = {
123
- __wbindgen_placeholder__: {
124
- __wbindgen_throw: function(ptr, len) {
125
- const message = bridge.getStringFromWasm(ptr, len);
126
- bridge.logger.error(`WASM error: ${message}`);
127
- throw new Error(message);
62
+ results[config.c.abi.name] = "0";
63
+ Object.assign(stateData, results[config.c.abi.name]);
64
+ continue;
128
65
  }
129
- }
130
- };
131
- try {
132
- this.logger.debug("Compiling WASM module");
133
- const wasmModule = await WebAssembly.compile(wasmBytes);
134
- this.logger.debug("Instantiating WASM module");
135
- const wasmInstance = await WebAssembly.instantiate(wasmModule, imports);
136
- this.wasm = wasmInstance.exports;
137
- this.logger.info("WASM module initialized successfully");
138
- return this.wasm;
139
- } catch (error) {
140
- this.logger.error("Failed to initialize WASM module", error);
141
- throw error;
142
- }
143
- }
144
- createStateData(wasmConfig, stateData = {}) {
145
- let dynamicStateData = {};
146
- if (wasmConfig?.c?.inputType?.stateData) {
147
- if (stateData.latestRoundData && Object.keys(wasmConfig.c.inputType.stateData).every(
148
- (key) => key in stateData.latestRoundData
149
- )) {
150
- dynamicStateData.latestRoundData = {};
151
- Object.entries(wasmConfig.c.inputType.stateData).forEach(([key, _]) => {
152
- dynamicStateData.latestRoundData[key] = String(
153
- stateData.latestRoundData[key]
154
- );
155
- });
156
- } else {
157
- Object.entries(wasmConfig.c.inputType.stateData).forEach(
158
- ([key, type]) => {
159
- const result = stateData[key];
160
- if (result && typeof result === "object" && "values" in result && result.values.length > 0) {
161
- dynamicStateData[key] = String(result.values[0]);
162
- } else {
163
- dynamicStateData[key] = this.getDefaultValueForType(
164
- type
165
- );
66
+ const decodedResult = iface?.decodeFunctionResult(
67
+ config.c.abi.name,
68
+ result.result
69
+ );
70
+ let processedResult = {
71
+ values: []
72
+ // Initialize array for values
73
+ };
74
+ if (decodedResult) {
75
+ config.c.abi.outputs?.forEach((output, idx) => {
76
+ const value = decodedResult[idx];
77
+ const formattedValue = formatValue(value, output.type);
78
+ processedResult.values.push(formattedValue);
79
+ if (output.name) {
80
+ processedResult[output.name] = formattedValue;
166
81
  }
167
- }
82
+ });
83
+ }
84
+ await this.cache.set(cacheKey, JSON.stringify(processedResult));
85
+ results[config.c.abi.name] = processedResult;
86
+ stateData[config.c.abi.name] = processedResult;
87
+ } catch (error) {
88
+ this.logger.error(
89
+ `Error executing command for ${config.c.contractAddress}:`,
90
+ error
168
91
  );
92
+ results[config.c.abi.name] = "0";
93
+ Object.assign(stateData, results[config.c.abi.name]);
169
94
  }
170
95
  }
171
- return dynamicStateData;
96
+ return { results, stateData };
172
97
  }
173
- getDefaultValueForType(type) {
174
- if (type.startsWith("uint") || type.startsWith("int") || type === "number") {
175
- return "0";
176
- } else if (type === "bool") {
177
- return "false";
178
- } else {
179
- return "";
180
- }
98
+ async executeCommand(evmConfig, stateData = {}) {
99
+ const { results, stateData: newStateData } = await this.executeCommands(
100
+ [evmConfig],
101
+ stateData
102
+ );
103
+ return {
104
+ result: results[evmConfig.c.abi.name],
105
+ stateData: newStateData
106
+ };
181
107
  }
182
- executeWasm(stateData, messages) {
183
- if (!this.wasm) {
184
- this.logger.error("WASM not initialized");
185
- throw new Error("WASM not initialized");
186
- }
108
+ async readFromMirrorNode(command, from, to) {
187
109
  try {
188
- this.logger.debug("Executing WASM with stateData", stateData);
189
- const fn = this.createWasmFunction(this.wasmInstance.process_state);
190
- return fn(JSON.stringify(stateData), JSON.stringify(messages));
110
+ const toAddress = to.toSolidityAddress();
111
+ const fromAddress = from.toSolidityAddress();
112
+ const response = await fetch(
113
+ `https://${this.network}.${this.mirrorNodeUrl}`,
114
+ {
115
+ method: "POST",
116
+ headers: {
117
+ "Content-Type": "application/json"
118
+ },
119
+ body: JSON.stringify({
120
+ block: "latest",
121
+ data: command,
122
+ estimate: false,
123
+ gas: 3e5,
124
+ gasPrice: 1e8,
125
+ from: fromAddress.startsWith("0x") ? fromAddress : `0x${fromAddress}`,
126
+ to: toAddress?.startsWith("0x") ? toAddress : `0x${toAddress}`,
127
+ value: 0
128
+ })
129
+ }
130
+ );
131
+ if (!response.ok) {
132
+ throw new Error(`HTTP error! status: ${response.status}`);
133
+ }
134
+ return await response.json();
191
135
  } catch (error) {
192
- this.logger.error("Error executing WASM", error);
193
- throw error;
136
+ this.logger.error("Error reading from mirror node:", error);
137
+ return null;
194
138
  }
195
139
  }
196
- getParams() {
197
- const fn = this.createWasmFunction(this.wasmInstance.get_params);
198
- return fn();
140
+ async clearCache() {
141
+ await this.cache.clear();
142
+ }
143
+ async clearCacheForContract(contractAddress, functionName) {
144
+ await this.cache.delete(`${contractAddress}-${functionName}`);
145
+ }
146
+ setLogLevel(level) {
147
+ this.logger.setLogLevel(level);
148
+ }
149
+ }
150
+ function formatValue(value, type) {
151
+ if (value === null || value === void 0) {
152
+ return "0";
153
+ }
154
+ if (value._isBigNumber) {
155
+ return value.toString();
156
+ }
157
+ if (type.startsWith("uint") || type.startsWith("int")) {
158
+ return String(value);
159
+ } else if (type === "bool") {
160
+ return value ? "true" : "false";
161
+ } else if (type === "string") {
162
+ return value;
163
+ } else if (type === "address") {
164
+ return String(value).toLowerCase();
165
+ } else if (type.endsWith("[]")) {
166
+ return Array.isArray(value) ? value.map((v) => String(v)).join(",") : "";
167
+ } else {
168
+ return String(value);
199
169
  }
200
170
  }
201
171
  export {
202
- WasmBridge
172
+ EVMBridge,
173
+ MapCache
203
174
  };
204
175
  //# sourceMappingURL=standards-sdk.es14.js.map