@hashgraphonline/standards-sdk 0.0.63 → 0.0.65

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 (295) hide show
  1. package/dist/es/fees/fee-config-builder.d.ts.map +1 -0
  2. package/dist/es/fees/index.d.ts +3 -0
  3. package/dist/es/fees/index.d.ts.map +1 -0
  4. package/dist/es/fees/types.d.ts +24 -0
  5. package/dist/es/fees/types.d.ts.map +1 -0
  6. package/dist/es/hcs-10/base-client.d.ts +1 -1
  7. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  8. package/dist/es/hcs-10/browser.d.ts +20 -35
  9. package/dist/es/hcs-10/browser.d.ts.map +1 -1
  10. package/dist/es/hcs-10/index.d.ts +4 -6
  11. package/dist/es/hcs-10/index.d.ts.map +1 -1
  12. package/dist/es/hcs-10/registrations.d.ts.map +1 -1
  13. package/dist/es/hcs-10/sdk.d.ts +16 -8
  14. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  15. package/dist/es/hcs-10/types.d.ts +2 -62
  16. package/dist/es/hcs-10/types.d.ts.map +1 -1
  17. package/dist/es/hcs-11/agent-builder.d.ts +53 -0
  18. package/dist/es/hcs-11/agent-builder.d.ts.map +1 -0
  19. package/dist/es/hcs-11/client.d.ts +82 -0
  20. package/dist/es/hcs-11/client.d.ts.map +1 -0
  21. package/dist/es/hcs-11/index.d.ts +4 -190
  22. package/dist/es/hcs-11/index.d.ts.map +1 -1
  23. package/dist/es/hcs-11/person-builder.d.ts +29 -0
  24. package/dist/es/hcs-11/person-builder.d.ts.map +1 -0
  25. package/dist/es/hcs-11/types.d.ts +165 -0
  26. package/dist/es/hcs-11/types.d.ts.map +1 -0
  27. package/dist/es/index.d.ts +1 -0
  28. package/dist/es/index.d.ts.map +1 -1
  29. package/dist/es/services/mirror-node.d.ts +2 -1
  30. package/dist/es/services/mirror-node.d.ts.map +1 -1
  31. package/dist/es/services/types.d.ts +0 -1
  32. package/dist/es/services/types.d.ts.map +1 -1
  33. package/dist/es/standards-sdk.es.js +9 -7
  34. package/dist/es/standards-sdk.es.js.map +1 -1
  35. package/dist/es/standards-sdk.es10.js +114 -1046
  36. package/dist/es/standards-sdk.es10.js.map +1 -1
  37. package/dist/es/standards-sdk.es100.js +13 -36
  38. package/dist/es/standards-sdk.es100.js.map +1 -1
  39. package/dist/es/standards-sdk.es101.js +36 -10
  40. package/dist/es/standards-sdk.es101.js.map +1 -1
  41. package/dist/es/standards-sdk.es102.js +10 -53
  42. package/dist/es/standards-sdk.es102.js.map +1 -1
  43. package/dist/es/standards-sdk.es103.js +47 -1275
  44. package/dist/es/standards-sdk.es103.js.map +1 -1
  45. package/dist/es/standards-sdk.es104.js +1282 -25
  46. package/dist/es/standards-sdk.es104.js.map +1 -1
  47. package/dist/es/standards-sdk.es105.js +31 -5
  48. package/dist/es/standards-sdk.es105.js.map +1 -1
  49. package/dist/es/standards-sdk.es106.js +5 -158
  50. package/dist/es/standards-sdk.es106.js.map +1 -1
  51. package/dist/es/standards-sdk.es107.js +147 -781
  52. package/dist/es/standards-sdk.es107.js.map +1 -1
  53. package/dist/es/standards-sdk.es108.js +785 -166
  54. package/dist/es/standards-sdk.es108.js.map +1 -1
  55. package/dist/es/standards-sdk.es109.js +2 -2
  56. package/dist/es/standards-sdk.es11.js +80 -71
  57. package/dist/es/standards-sdk.es11.js.map +1 -1
  58. package/dist/es/standards-sdk.es110.js +169 -16
  59. package/dist/es/standards-sdk.es110.js.map +1 -1
  60. package/dist/es/standards-sdk.es111.js +19 -25
  61. package/dist/es/standards-sdk.es111.js.map +1 -1
  62. package/dist/es/standards-sdk.es112.js +24 -23
  63. package/dist/es/standards-sdk.es112.js.map +1 -1
  64. package/dist/es/standards-sdk.es113.js +23 -35
  65. package/dist/es/standards-sdk.es113.js.map +1 -1
  66. package/dist/es/standards-sdk.es114.js +41 -0
  67. package/dist/es/standards-sdk.es114.js.map +1 -0
  68. package/dist/es/standards-sdk.es12.js +650 -7
  69. package/dist/es/standards-sdk.es12.js.map +1 -1
  70. package/dist/es/standards-sdk.es13.js +10 -664
  71. package/dist/es/standards-sdk.es13.js.map +1 -1
  72. package/dist/es/standards-sdk.es14.js +4 -1
  73. package/dist/es/standards-sdk.es14.js.map +1 -1
  74. package/dist/es/standards-sdk.es17.js +1 -1
  75. package/dist/es/standards-sdk.es18.js +3 -3
  76. package/dist/es/standards-sdk.es18.js.map +1 -1
  77. package/dist/es/standards-sdk.es19.js +82 -1754
  78. package/dist/es/standards-sdk.es19.js.map +1 -1
  79. package/dist/es/standards-sdk.es20.js +5 -3
  80. package/dist/es/standards-sdk.es20.js.map +1 -1
  81. package/dist/es/standards-sdk.es21.js +1703 -4103
  82. package/dist/es/standards-sdk.es21.js.map +1 -1
  83. package/dist/es/standards-sdk.es22.js +3 -36
  84. package/dist/es/standards-sdk.es22.js.map +1 -1
  85. package/dist/es/standards-sdk.es23.js +4167 -48
  86. package/dist/es/standards-sdk.es23.js.map +1 -1
  87. package/dist/es/standards-sdk.es24.js +2 -2
  88. package/dist/es/standards-sdk.es25.js +36 -2
  89. package/dist/es/standards-sdk.es25.js.map +1 -1
  90. package/dist/es/standards-sdk.es26.js +46 -1039
  91. package/dist/es/standards-sdk.es26.js.map +1 -1
  92. package/dist/es/standards-sdk.es27.js +2 -5
  93. package/dist/es/standards-sdk.es27.js.map +1 -1
  94. package/dist/es/standards-sdk.es28.js +1034 -94
  95. package/dist/es/standards-sdk.es28.js.map +1 -1
  96. package/dist/es/standards-sdk.es29.js +419 -2
  97. package/dist/es/standards-sdk.es29.js.map +1 -1
  98. package/dist/es/standards-sdk.es30.js +2 -16
  99. package/dist/es/standards-sdk.es30.js.map +1 -1
  100. package/dist/es/standards-sdk.es31.js +106 -395
  101. package/dist/es/standards-sdk.es31.js.map +1 -1
  102. package/dist/es/standards-sdk.es32.js +3 -2282
  103. package/dist/es/standards-sdk.es32.js.map +1 -1
  104. package/dist/es/standards-sdk.es34.js +3 -363
  105. package/dist/es/standards-sdk.es34.js.map +1 -1
  106. package/dist/es/standards-sdk.es35.js +100 -5
  107. package/dist/es/standards-sdk.es35.js.map +1 -1
  108. package/dist/es/standards-sdk.es36.js +2 -179
  109. package/dist/es/standards-sdk.es36.js.map +1 -1
  110. package/dist/es/standards-sdk.es37.js +15 -80
  111. package/dist/es/standards-sdk.es37.js.map +1 -1
  112. package/dist/es/standards-sdk.es38.js +400 -105
  113. package/dist/es/standards-sdk.es38.js.map +1 -1
  114. package/dist/es/standards-sdk.es39.js +2282 -52
  115. package/dist/es/standards-sdk.es39.js.map +1 -1
  116. package/dist/es/standards-sdk.es4.js +1 -1
  117. package/dist/es/standards-sdk.es40.js +364 -10
  118. package/dist/es/standards-sdk.es40.js.map +1 -1
  119. package/dist/es/standards-sdk.es41.js +5 -96
  120. package/dist/es/standards-sdk.es41.js.map +1 -1
  121. package/dist/es/standards-sdk.es42.js +178 -3
  122. package/dist/es/standards-sdk.es42.js.map +1 -1
  123. package/dist/es/standards-sdk.es43.js +81 -2
  124. package/dist/es/standards-sdk.es43.js.map +1 -1
  125. package/dist/es/standards-sdk.es44.js +104 -103
  126. package/dist/es/standards-sdk.es44.js.map +1 -1
  127. package/dist/es/standards-sdk.es45.js +49 -71
  128. package/dist/es/standards-sdk.es45.js.map +1 -1
  129. package/dist/es/standards-sdk.es46.js +9 -5
  130. package/dist/es/standards-sdk.es46.js.map +1 -1
  131. package/dist/es/standards-sdk.es47.js +96 -4
  132. package/dist/es/standards-sdk.es47.js.map +1 -1
  133. package/dist/es/standards-sdk.es48.js +3 -220
  134. package/dist/es/standards-sdk.es48.js.map +1 -1
  135. package/dist/es/standards-sdk.es49.js +2 -58
  136. package/dist/es/standards-sdk.es49.js.map +1 -1
  137. package/dist/es/standards-sdk.es5.js +393 -891
  138. package/dist/es/standards-sdk.es5.js.map +1 -1
  139. package/dist/es/standards-sdk.es50.js +112 -68
  140. package/dist/es/standards-sdk.es50.js.map +1 -1
  141. package/dist/es/standards-sdk.es51.js +74 -3
  142. package/dist/es/standards-sdk.es51.js.map +1 -1
  143. package/dist/es/standards-sdk.es52.js +5 -31
  144. package/dist/es/standards-sdk.es52.js.map +1 -1
  145. package/dist/es/standards-sdk.es53.js +4 -62
  146. package/dist/es/standards-sdk.es53.js.map +1 -1
  147. package/dist/es/standards-sdk.es54.js +217 -46
  148. package/dist/es/standards-sdk.es54.js.map +1 -1
  149. package/dist/es/standards-sdk.es55.js +57 -9
  150. package/dist/es/standards-sdk.es55.js.map +1 -1
  151. package/dist/es/standards-sdk.es56.js +68 -64
  152. package/dist/es/standards-sdk.es56.js.map +1 -1
  153. package/dist/es/standards-sdk.es57.js +32 -6
  154. package/dist/es/standards-sdk.es57.js.map +1 -1
  155. package/dist/es/standards-sdk.es58.js +61 -13
  156. package/dist/es/standards-sdk.es58.js.map +1 -1
  157. package/dist/es/standards-sdk.es59.js +50 -7
  158. package/dist/es/standards-sdk.es59.js.map +1 -1
  159. package/dist/es/standards-sdk.es60.js +10 -45
  160. package/dist/es/standards-sdk.es60.js.map +1 -1
  161. package/dist/es/standards-sdk.es61.js +65 -2
  162. package/dist/es/standards-sdk.es61.js.map +1 -1
  163. package/dist/es/standards-sdk.es62.js +5 -135
  164. package/dist/es/standards-sdk.es62.js.map +1 -1
  165. package/dist/es/standards-sdk.es63.js +13 -170
  166. package/dist/es/standards-sdk.es63.js.map +1 -1
  167. package/dist/es/standards-sdk.es64.js +4 -10
  168. package/dist/es/standards-sdk.es64.js.map +1 -1
  169. package/dist/es/standards-sdk.es65.js +45 -13
  170. package/dist/es/standards-sdk.es65.js.map +1 -1
  171. package/dist/es/standards-sdk.es66.js +2 -4
  172. package/dist/es/standards-sdk.es66.js.map +1 -1
  173. package/dist/es/standards-sdk.es67.js +134 -30
  174. package/dist/es/standards-sdk.es67.js.map +1 -1
  175. package/dist/es/standards-sdk.es68.js +171 -14
  176. package/dist/es/standards-sdk.es68.js.map +1 -1
  177. package/dist/es/standards-sdk.es69.js +13 -4
  178. package/dist/es/standards-sdk.es69.js.map +1 -1
  179. package/dist/es/standards-sdk.es7.js +959 -94
  180. package/dist/es/standards-sdk.es7.js.map +1 -1
  181. package/dist/es/standards-sdk.es70.js +13 -4
  182. package/dist/es/standards-sdk.es70.js.map +1 -1
  183. package/dist/es/standards-sdk.es71.js +31 -15
  184. package/dist/es/standards-sdk.es71.js.map +1 -1
  185. package/dist/es/standards-sdk.es72.js +14 -4
  186. package/dist/es/standards-sdk.es72.js.map +1 -1
  187. package/dist/es/standards-sdk.es73.js +4 -39
  188. package/dist/es/standards-sdk.es73.js.map +1 -1
  189. package/dist/es/standards-sdk.es74.js +4 -40
  190. package/dist/es/standards-sdk.es74.js.map +1 -1
  191. package/dist/es/standards-sdk.es75.js +15 -36
  192. package/dist/es/standards-sdk.es75.js.map +1 -1
  193. package/dist/es/standards-sdk.es76.js +5 -78
  194. package/dist/es/standards-sdk.es76.js.map +1 -1
  195. package/dist/es/standards-sdk.es77.js +39 -3
  196. package/dist/es/standards-sdk.es77.js.map +1 -1
  197. package/dist/es/standards-sdk.es78.js +40 -2
  198. package/dist/es/standards-sdk.es78.js.map +1 -1
  199. package/dist/es/standards-sdk.es79.js +37 -2
  200. package/dist/es/standards-sdk.es79.js.map +1 -1
  201. package/dist/es/standards-sdk.es8.js +1049 -393
  202. package/dist/es/standards-sdk.es8.js.map +1 -1
  203. package/dist/es/standards-sdk.es80.js +67 -408
  204. package/dist/es/standards-sdk.es80.js.map +1 -1
  205. package/dist/es/standards-sdk.es81.js +3 -2
  206. package/dist/es/standards-sdk.es81.js.map +1 -1
  207. package/dist/es/standards-sdk.es82.js +2 -120
  208. package/dist/es/standards-sdk.es82.js.map +1 -1
  209. package/dist/es/standards-sdk.es83.js +2 -34
  210. package/dist/es/standards-sdk.es83.js.map +1 -1
  211. package/dist/es/standards-sdk.es84.js +30 -29
  212. package/dist/es/standards-sdk.es84.js.map +1 -1
  213. package/dist/es/standards-sdk.es85.js +33 -9
  214. package/dist/es/standards-sdk.es85.js.map +1 -1
  215. package/dist/es/standards-sdk.es86.js +9 -34
  216. package/dist/es/standards-sdk.es86.js.map +1 -1
  217. package/dist/es/standards-sdk.es87.js +34 -2
  218. package/dist/es/standards-sdk.es87.js.map +1 -1
  219. package/dist/es/standards-sdk.es88.js +2 -84
  220. package/dist/es/standards-sdk.es88.js.map +1 -1
  221. package/dist/es/standards-sdk.es89.js +82 -21
  222. package/dist/es/standards-sdk.es89.js.map +1 -1
  223. package/dist/es/standards-sdk.es9.js +2 -2
  224. package/dist/es/standards-sdk.es9.js.map +1 -1
  225. package/dist/es/standards-sdk.es90.js +21 -146
  226. package/dist/es/standards-sdk.es90.js.map +1 -1
  227. package/dist/es/standards-sdk.es91.js +130 -73
  228. package/dist/es/standards-sdk.es91.js.map +1 -1
  229. package/dist/es/standards-sdk.es92.js +81 -185
  230. package/dist/es/standards-sdk.es92.js.map +1 -1
  231. package/dist/es/standards-sdk.es93.js +163 -406
  232. package/dist/es/standards-sdk.es93.js.map +1 -1
  233. package/dist/es/standards-sdk.es94.js +432 -19
  234. package/dist/es/standards-sdk.es94.js.map +1 -1
  235. package/dist/es/standards-sdk.es95.js +16 -130
  236. package/dist/es/standards-sdk.es95.js.map +1 -1
  237. package/dist/es/standards-sdk.es96.js +131 -10
  238. package/dist/es/standards-sdk.es96.js.map +1 -1
  239. package/dist/es/standards-sdk.es97.js +11 -22
  240. package/dist/es/standards-sdk.es97.js.map +1 -1
  241. package/dist/es/standards-sdk.es98.js +22 -22
  242. package/dist/es/standards-sdk.es98.js.map +1 -1
  243. package/dist/es/standards-sdk.es99.js +21 -13
  244. package/dist/es/standards-sdk.es99.js.map +1 -1
  245. package/dist/es/utils/logger.d.ts +1 -0
  246. package/dist/es/utils/logger.d.ts.map +1 -1
  247. package/dist/es/utils/types.d.ts +2 -0
  248. package/dist/es/utils/types.d.ts.map +1 -0
  249. package/dist/umd/fees/fee-config-builder.d.ts.map +1 -0
  250. package/dist/umd/fees/index.d.ts +3 -0
  251. package/dist/umd/fees/index.d.ts.map +1 -0
  252. package/dist/umd/fees/types.d.ts +24 -0
  253. package/dist/umd/fees/types.d.ts.map +1 -0
  254. package/dist/umd/hcs-10/base-client.d.ts +1 -1
  255. package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
  256. package/dist/umd/hcs-10/browser.d.ts +20 -35
  257. package/dist/umd/hcs-10/browser.d.ts.map +1 -1
  258. package/dist/umd/hcs-10/index.d.ts +4 -6
  259. package/dist/umd/hcs-10/index.d.ts.map +1 -1
  260. package/dist/umd/hcs-10/registrations.d.ts.map +1 -1
  261. package/dist/umd/hcs-10/sdk.d.ts +16 -8
  262. package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
  263. package/dist/umd/hcs-10/types.d.ts +2 -62
  264. package/dist/umd/hcs-10/types.d.ts.map +1 -1
  265. package/dist/umd/hcs-11/agent-builder.d.ts +53 -0
  266. package/dist/umd/hcs-11/agent-builder.d.ts.map +1 -0
  267. package/dist/umd/hcs-11/client.d.ts +82 -0
  268. package/dist/umd/hcs-11/client.d.ts.map +1 -0
  269. package/dist/umd/hcs-11/index.d.ts +4 -190
  270. package/dist/umd/hcs-11/index.d.ts.map +1 -1
  271. package/dist/umd/hcs-11/person-builder.d.ts +29 -0
  272. package/dist/umd/hcs-11/person-builder.d.ts.map +1 -0
  273. package/dist/umd/hcs-11/types.d.ts +165 -0
  274. package/dist/umd/hcs-11/types.d.ts.map +1 -0
  275. package/dist/umd/index.d.ts +1 -0
  276. package/dist/umd/index.d.ts.map +1 -1
  277. package/dist/umd/services/mirror-node.d.ts +2 -1
  278. package/dist/umd/services/mirror-node.d.ts.map +1 -1
  279. package/dist/umd/services/types.d.ts +0 -1
  280. package/dist/umd/services/types.d.ts.map +1 -1
  281. package/dist/umd/standards-sdk.umd.js +7 -7
  282. package/dist/umd/standards-sdk.umd.js.map +1 -1
  283. package/dist/umd/utils/logger.d.ts +1 -0
  284. package/dist/umd/utils/logger.d.ts.map +1 -1
  285. package/dist/umd/utils/types.d.ts +2 -0
  286. package/dist/umd/utils/types.d.ts.map +1 -0
  287. package/package.json +6 -4
  288. package/dist/es/hcs-10/agent-builder.d.ts +0 -45
  289. package/dist/es/hcs-10/agent-builder.d.ts.map +0 -1
  290. package/dist/es/hcs-10/fee-config-builder.d.ts.map +0 -1
  291. package/dist/umd/hcs-10/agent-builder.d.ts +0 -45
  292. package/dist/umd/hcs-10/agent-builder.d.ts.map +0 -1
  293. package/dist/umd/hcs-10/fee-config-builder.d.ts.map +0 -1
  294. /package/dist/es/{hcs-10 → fees}/fee-config-builder.d.ts +0 -0
  295. /package/dist/umd/{hcs-10 → fees}/fee-config-builder.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es13.js","sources":["../../src/hcs-11/index.ts"],"sourcesContent":["import {\n AccountId,\n AccountInfoQuery,\n AccountUpdateTransaction,\n Client,\n PrivateKey,\n Status,\n Transaction,\n} from '@hashgraph/sdk';\nimport {\n inscribe,\n inscribeWithSigner,\n InscriptionInput,\n InscriptionOptions,\n} from '../inscribe';\nimport { Logger, LogLevel } from '../utils/logger';\nimport * as mime from 'mime-types';\nimport { z } from 'zod';\nimport type { Signer } from '@hashgraph/sdk';\nimport type { DAppSigner } from '@hashgraph/hedera-wallet-connect';\nimport { RegistrationProgressCallback } from '../hcs-10/types';\nimport * as fileType from 'file-type';\nimport { ProgressReporter } from '../utils/progress-reporter';\nimport { HederaMirrorNode } from '../services';\nimport { TopicInfo } from '../services/types';\n\nexport enum ProfileType {\n PERSONAL = 0,\n AI_AGENT = 1,\n}\n\nexport enum AIAgentType {\n MANUAL = 0,\n AUTONOMOUS = 1,\n}\n\nexport enum EndpointType {\n REST = 0,\n WEBSOCKET = 1,\n GRPC = 2,\n}\n\nexport enum AIAgentCapability {\n TEXT_GENERATION = 0,\n IMAGE_GENERATION = 1,\n AUDIO_GENERATION = 2,\n VIDEO_GENERATION = 3,\n CODE_GENERATION = 4,\n LANGUAGE_TRANSLATION = 5,\n SUMMARIZATION_EXTRACTION = 6,\n KNOWLEDGE_RETRIEVAL = 7,\n DATA_INTEGRATION = 8,\n MARKET_INTELLIGENCE = 9,\n TRANSACTION_ANALYTICS = 10,\n SMART_CONTRACT_AUDIT = 11,\n GOVERNANCE_FACILITATION = 12,\n SECURITY_MONITORING = 13,\n COMPLIANCE_ANALYSIS = 14,\n FRAUD_DETECTION = 15,\n MULTI_AGENT_COORDINATION = 16,\n API_INTEGRATION = 17,\n WORKFLOW_AUTOMATION = 18,\n}\n\nexport const SUPPORTED_SOCIAL_PLATFORMS = [\n 'twitter',\n 'github',\n 'discord',\n 'telegram',\n 'linkedin',\n 'youtube',\n];\n\nexport interface SocialLink {\n platform: string;\n handle: string;\n}\n\nexport interface AIAgentDetails {\n type: AIAgentType;\n capabilities: AIAgentCapability[];\n model: string;\n creator?: string;\n}\n\nexport interface BaseProfile {\n version: string;\n type: ProfileType;\n display_name: string;\n alias?: string;\n bio?: string;\n socials?: SocialLink[];\n profileImage?: string;\n properties?: Record<string, any>;\n inboundTopicId?: string;\n outboundTopicId?: string;\n}\n\nexport interface PersonalProfile extends BaseProfile {\n type: ProfileType.PERSONAL;\n language?: string;\n timezone?: string;\n}\n\nexport interface AIAgentProfile extends BaseProfile {\n type: ProfileType.AI_AGENT;\n aiAgent: AIAgentDetails;\n}\n\nexport type HCS11Profile = PersonalProfile | AIAgentProfile;\n\nexport interface HCS11Auth {\n operatorId: string;\n privateKey?: string;\n signer?: DAppSigner | Signer;\n}\n\nexport interface HCS11ClientConfig {\n network: 'mainnet' | 'testnet';\n auth: HCS11Auth;\n logLevel?: LogLevel;\n}\n\nexport interface TransactionResult<T = unknown> {\n success: boolean;\n error?: string;\n result?: T;\n}\n\nexport interface InscribeProfileResponse {\n profileTopicId: string;\n transactionId: string;\n success: boolean;\n error?: string;\n}\n\nexport interface InscribeImageResponse {\n imageTopicId: string;\n transactionId: string;\n success: boolean;\n error?: string;\n}\n\nexport interface AIAgentMetadata {\n type: 'autonomous' | 'manual';\n}\n\nexport interface ProgressOptions {\n progressCallback?: RegistrationProgressCallback;\n}\n\nexport interface InscribeImageOptions extends ProgressOptions {\n waitForConfirmation?: boolean;\n}\n\nexport interface InscribeProfileOptions extends ProgressOptions {\n waitForConfirmation?: boolean;\n}\n\nconst SocialLinkSchema = z.object({\n platform: z.string().min(1),\n handle: z.string().min(1),\n});\n\nconst AIAgentDetailsSchema = z.object({\n type: z.nativeEnum(AIAgentType),\n capabilities: z.array(z.nativeEnum(AIAgentCapability)).min(1),\n model: z.string().min(1),\n creator: z.string().optional(),\n});\n\nconst BaseProfileSchema = z.object({\n version: z.string().min(1),\n type: z.nativeEnum(ProfileType),\n display_name: z.string().min(1),\n alias: z.string().optional(),\n bio: z.string().optional(),\n socials: z.array(SocialLinkSchema).optional(),\n profileImage: z.string().optional(),\n properties: z.record(z.any()).optional(),\n inboundTopicId: z.string().optional(),\n outboundTopicId: z.string().optional(),\n});\n\nconst PersonalProfileSchema = BaseProfileSchema.extend({\n type: z.literal(ProfileType.PERSONAL),\n language: z.string().optional(),\n timezone: z.string().optional(),\n});\n\nconst AIAgentProfileSchema = BaseProfileSchema.extend({\n type: z.literal(ProfileType.AI_AGENT),\n aiAgent: AIAgentDetailsSchema,\n});\n\nconst HCS11ProfileSchema = z.union([\n PersonalProfileSchema,\n AIAgentProfileSchema,\n]);\n\nexport const capabilityNameToCapabilityMap: Record<string, AIAgentCapability> =\n {\n text_generation: AIAgentCapability.TEXT_GENERATION,\n image_generation: AIAgentCapability.IMAGE_GENERATION,\n audio_generation: AIAgentCapability.AUDIO_GENERATION,\n video_generation: AIAgentCapability.VIDEO_GENERATION,\n code_generation: AIAgentCapability.CODE_GENERATION,\n language_translation: AIAgentCapability.LANGUAGE_TRANSLATION,\n summarization: AIAgentCapability.SUMMARIZATION_EXTRACTION,\n extraction: AIAgentCapability.SUMMARIZATION_EXTRACTION,\n knowledge_retrieval: AIAgentCapability.KNOWLEDGE_RETRIEVAL,\n data_integration: AIAgentCapability.DATA_INTEGRATION,\n data_visualization: AIAgentCapability.DATA_INTEGRATION,\n market_intelligence: AIAgentCapability.MARKET_INTELLIGENCE,\n transaction_analytics: AIAgentCapability.TRANSACTION_ANALYTICS,\n smart_contract_audit: AIAgentCapability.SMART_CONTRACT_AUDIT,\n governance: AIAgentCapability.GOVERNANCE_FACILITATION,\n security_monitoring: AIAgentCapability.SECURITY_MONITORING,\n compliance_analysis: AIAgentCapability.COMPLIANCE_ANALYSIS,\n fraud_detection: AIAgentCapability.FRAUD_DETECTION,\n multi_agent: AIAgentCapability.MULTI_AGENT_COORDINATION,\n api_integration: AIAgentCapability.API_INTEGRATION,\n workflow_automation: AIAgentCapability.WORKFLOW_AUTOMATION,\n };\n\nexport class HCS11Client {\n private client: Client;\n private auth: HCS11Auth;\n private network: string;\n private logger: Logger;\n private mirrorNode: HederaMirrorNode;\n\n constructor(config: HCS11ClientConfig) {\n this.client =\n config.network === 'mainnet' ? Client.forMainnet() : Client.forTestnet();\n this.auth = config.auth;\n this.network = config.network;\n this.mirrorNode = new HederaMirrorNode(\n this.network as 'mainnet' | 'testnet',\n this.logger\n );\n\n if (this.auth.privateKey) {\n const privateKey = PrivateKey.fromString(this.auth.privateKey);\n this.client.setOperator(this.auth.operatorId, privateKey);\n }\n\n this.logger = Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS-11',\n });\n }\n\n public getClient(): Client {\n return this.client;\n }\n\n public getOperatorId(): string {\n return this.auth.operatorId;\n }\n\n public createPersonalProfile(\n displayName: string,\n options?: {\n alias?: string;\n bio?: string;\n socials?: SocialLink[];\n profileImage?: string;\n language?: string;\n timezone?: string;\n properties?: Record<string, any>;\n inboundTopicId?: string;\n outboundTopicId?: string;\n }\n ): PersonalProfile {\n return {\n version: '1.0',\n type: ProfileType.PERSONAL,\n display_name: displayName,\n alias: options?.alias,\n bio: options?.bio,\n socials: options?.socials,\n profileImage: options?.profileImage,\n language: options?.language,\n timezone: options?.timezone,\n properties: options?.properties,\n inboundTopicId: options?.inboundTopicId,\n outboundTopicId: options?.outboundTopicId,\n };\n }\n\n public createAIAgentProfile(\n displayName: string,\n agentType: AIAgentType,\n capabilities: AIAgentCapability[],\n model: string,\n options?: {\n alias?: string;\n bio?: string;\n socials?: SocialLink[];\n profileImage?: string;\n properties?: Record<string, any>;\n inboundTopicId?: string;\n outboundTopicId?: string;\n creator?: string;\n }\n ): AIAgentProfile {\n const validation = this.validateProfile({\n version: '1.0',\n type: ProfileType.AI_AGENT,\n display_name: displayName,\n alias: options?.alias,\n bio: options?.bio,\n socials: options?.socials,\n profileImage: options?.profileImage,\n properties: options?.properties,\n inboundTopicId: options?.inboundTopicId,\n outboundTopicId: options?.outboundTopicId,\n aiAgent: {\n type: agentType,\n capabilities,\n model,\n creator: options?.creator,\n },\n });\n\n if (!validation.valid) {\n throw new Error(\n `Invalid AI Agent Profile: ${validation.errors.join(', ')}`\n );\n }\n\n return {\n version: '1.0',\n type: ProfileType.AI_AGENT,\n display_name: displayName,\n alias: options?.alias,\n bio: options?.bio,\n socials: options?.socials,\n profileImage: options?.profileImage,\n properties: options?.properties,\n inboundTopicId: options?.inboundTopicId,\n outboundTopicId: options?.outboundTopicId,\n aiAgent: {\n type: agentType,\n capabilities,\n model,\n creator: options?.creator,\n },\n };\n }\n\n public validateProfile(profile: unknown): {\n valid: boolean;\n errors: string[];\n } {\n const result = HCS11ProfileSchema.safeParse(profile);\n\n if (result.success) {\n return { valid: true, errors: [] };\n }\n\n const formattedErrors = result.error.errors.map((err) => {\n const path = err.path.join('.');\n let message = err.message;\n\n if (err.code === 'invalid_type') {\n message = `Expected ${err.expected}, got ${err.received}`;\n } else if (err.code === 'invalid_enum_value') {\n const validOptions = (err as any).options?.join(', ');\n message = `Invalid value. Valid options are: ${validOptions}`;\n } else if (err.code === 'too_small' && err.type === 'string') {\n message = 'Cannot be empty';\n }\n\n return `${path}: ${message}`;\n });\n\n return { valid: false, errors: formattedErrors };\n }\n\n public profileToJSONString(profile: HCS11Profile): string {\n return JSON.stringify(profile);\n }\n\n public parseProfileFromString(profileStr: string): HCS11Profile | null {\n try {\n const parsedProfile = JSON.parse(profileStr);\n const validation = this.validateProfile(parsedProfile);\n if (!validation.valid) {\n this.logger.error('Invalid profile format:', validation.errors);\n return null;\n }\n return parsedProfile as HCS11Profile;\n } catch (error) {\n this.logger.error('Error parsing profile:');\n return null;\n }\n }\n\n public setProfileForAccountMemo(\n topicId: string,\n topicStandard: 1 | 2 | 7 = 1\n ): string {\n return `hcs-11:hcs://${topicStandard}/${topicId}`;\n }\n\n private async executeTransaction<T>(\n transaction: Transaction\n ): Promise<TransactionResult<T>> {\n try {\n if (this.auth.privateKey) {\n const signedTx = await transaction.signWithOperator(this.client);\n const response = await signedTx.execute(this.client);\n const receipt = await response.getReceipt(this.client);\n\n if (receipt.status !== Status.Success) {\n return {\n success: false,\n error: `Transaction failed: ${receipt.status.toString()}`,\n };\n }\n\n return {\n success: true,\n result: receipt as T,\n };\n }\n\n if (!this.auth.signer) {\n throw new Error('No valid authentication method provided');\n }\n\n const signer = this.auth.signer;\n const frozenTransaction = await transaction.freezeWithSigner(signer);\n const response = await frozenTransaction.executeWithSigner(signer);\n const receipt = await response.getReceiptWithSigner(signer);\n\n if (receipt.status !== Status.Success) {\n return {\n success: false,\n error: `Transaction failed: ${receipt.status.toString()}`,\n };\n }\n\n return {\n success: true,\n result: receipt as T,\n };\n } catch (error) {\n return {\n success: false,\n error:\n error instanceof Error\n ? error.message\n : 'Unknown error during transaction execution',\n };\n }\n }\n\n public async inscribeImage(\n buffer: Buffer,\n fileName: string,\n options?: InscribeImageOptions\n ): Promise<InscribeImageResponse> {\n try {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'HCS11-Image',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n progressReporter.preparing('Preparing to inscribe image', 0);\n\n const mimeType = mime.lookup(fileName) || 'application/octet-stream';\n\n const waitForConfirmation = options?.waitForConfirmation ?? true;\n\n let inscriptionResponse;\n if (this.auth.signer) {\n if ('accountId' in this.auth.signer) {\n progressReporter.preparing('Using signer for inscription', 10);\n\n inscriptionResponse = await inscribeWithSigner(\n {\n type: 'buffer',\n buffer,\n fileName,\n mimeType,\n },\n this.auth.signer as DAppSigner,\n {\n network: this.network as 'mainnet' | 'testnet',\n waitForConfirmation,\n waitMaxAttempts: 150,\n waitIntervalMs: 4000,\n logging: {\n level: 'debug',\n },\n progressCallback: (data: any) => {\n const adjustedPercent = 10 + (data.progressPercent || 0) * 0.8;\n progressReporter.report({\n stage: data.stage,\n message: data.message,\n progressPercent: adjustedPercent,\n details: data.details,\n });\n },\n }\n );\n } else {\n progressReporter.failed(\n 'Signer must be a DAppSigner for inscription'\n );\n throw new Error('Signer must be a DAppSigner for inscription');\n }\n } else {\n if (!this.auth.privateKey) {\n progressReporter.failed('Private key is required for inscription');\n this.logger.error('Private key is required for inscription');\n throw new Error('Private key is required for inscription');\n }\n\n progressReporter.preparing('Using private key for inscription', 10);\n\n inscriptionResponse = await inscribe(\n {\n type: 'buffer',\n buffer,\n fileName,\n mimeType,\n },\n {\n accountId: this.auth.operatorId,\n privateKey: this.auth.privateKey,\n network: this.network as 'mainnet' | 'testnet',\n },\n {\n waitForConfirmation,\n waitMaxAttempts: 150,\n waitIntervalMs: 2000,\n logging: {\n level: 'debug',\n },\n progressCallback: (data: any) => {\n const adjustedPercent = 10 + (data.progressPercent || 0) * 0.8;\n progressReporter.report({\n stage: data.stage,\n message: data.message,\n progressPercent: adjustedPercent,\n details: data.details,\n });\n },\n }\n );\n }\n\n if (inscriptionResponse.confirmed) {\n progressReporter.completed('Image inscription completed', {\n topic_id: inscriptionResponse.inscription.topic_id,\n });\n return {\n imageTopicId: inscriptionResponse.inscription.topic_id || '',\n transactionId: inscriptionResponse.result.jobId,\n success: true,\n };\n } else {\n progressReporter.verifying('Waiting for inscription confirmation', 50, {\n jobId: inscriptionResponse.result.jobId,\n });\n return {\n imageTopicId: '',\n transactionId: inscriptionResponse.result.jobId,\n success: false,\n error: 'Inscription not confirmed',\n };\n }\n } catch (error: any) {\n this.logger.error('Error inscribing image:', error);\n return {\n imageTopicId: '',\n transactionId: '',\n success: false,\n error: error.message || 'Error inscribing image',\n };\n }\n }\n\n public async inscribeProfile(\n profile: HCS11Profile,\n options?: InscribeProfileOptions\n ): Promise<InscribeProfileResponse> {\n this.logger.info('Inscribing HCS-11 profile');\n\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'HCS11-Profile',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n progressReporter.preparing('Validating profile data', 5);\n\n const validation = this.validateProfile(profile);\n if (!validation.valid) {\n progressReporter.failed(\n `Invalid profile: ${validation.errors.join(', ')}`\n );\n return {\n profileTopicId: '',\n transactionId: '',\n success: false,\n error: `Invalid profile: ${validation.errors.join(', ')}`,\n };\n }\n\n progressReporter.preparing('Formatting profile for inscription', 15);\n\n const profileJson = this.profileToJSONString(profile);\n const fileName = `profile-${profile.display_name\n .toLowerCase()\n .replace(/\\s+/g, '-')}.json`;\n\n try {\n const contentBuffer = Buffer.from(profileJson, 'utf-8');\n const contentType = 'application/json';\n\n progressReporter.preparing('Preparing profile for inscription', 20);\n\n const input: InscriptionInput = {\n type: 'buffer',\n buffer: contentBuffer,\n fileName,\n mimeType: contentType,\n };\n\n const inscriptionOptions: InscriptionOptions = {\n waitForConfirmation: true,\n mode: 'file',\n network: this.network as 'mainnet' | 'testnet',\n waitMaxAttempts: 100,\n waitIntervalMs: 2000,\n progressCallback: (data: any) => {\n const adjustedPercent = 20 + Number(data?.progressPercent || 0) * 0.75;\n progressReporter?.report({\n stage: data.stage,\n message: data.message,\n progressPercent: adjustedPercent,\n details: data.details,\n });\n },\n };\n\n progressReporter.submitting('Submitting profile to Hedera network', 30);\n\n const inscriptionResponse = this.auth.privateKey\n ? await inscribe(\n input,\n {\n accountId: this.auth.operatorId,\n privateKey: this.auth.privateKey,\n network: this.network as 'mainnet' | 'testnet',\n },\n inscriptionOptions,\n )\n : await inscribeWithSigner(\n input,\n this.auth.signer as DAppSigner,\n inscriptionOptions\n );\n\n if (\n !inscriptionResponse.confirmed ||\n !inscriptionResponse.inscription.topic_id\n ) {\n progressReporter.failed('Failed to inscribe profile content');\n return {\n profileTopicId: '',\n transactionId: '',\n success: false,\n error: 'Failed to inscribe profile content',\n };\n }\n\n const topicId = inscriptionResponse.inscription.topic_id;\n\n progressReporter.completed('Profile inscription completed', {\n topicId,\n transactionId: inscriptionResponse.result.transactionId,\n });\n\n return {\n profileTopicId: topicId,\n transactionId: inscriptionResponse.result.transactionId,\n success: true,\n };\n } catch (error: any) {\n progressReporter.failed(\n `Error inscribing profile: ${error.message || 'Unknown error'}`\n );\n return {\n profileTopicId: '',\n transactionId: '',\n success: false,\n error: error.message || 'Unknown error during inscription',\n };\n }\n }\n\n public async updateAccountMemoWithProfile(\n accountId: string | AccountId,\n profileTopicId: string\n ): Promise<TransactionResult> {\n try {\n this.logger.info(\n `Updating account memo for ${accountId} with profile ${profileTopicId}`\n );\n const memo = this.setProfileForAccountMemo(profileTopicId);\n\n const transaction = new AccountUpdateTransaction()\n .setAccountMemo(memo)\n .setAccountId(accountId);\n\n return this.executeTransaction(transaction);\n } catch (error) {\n this.logger.error(\n `Error updating account memo: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`\n );\n return {\n success: false,\n error:\n error instanceof Error\n ? error.message\n : 'Unknown error updating account memo',\n };\n }\n }\n\n /**\n * Creates and inscribes a profile.\n *\n * @param profile - The profile to create and inscribe.\n * @param updateAccountMemo - Whether to update the account memo with the profile.\n * @param options - Optional configuration options.\n * @returns A promise that resolves to the inscription result.\n */\n public async createAndInscribeProfile(\n profile: HCS11Profile,\n updateAccountMemo = true,\n options?: InscribeProfileOptions\n ): Promise<InscribeProfileResponse> {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'HCS11-ProfileCreation',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n progressReporter.preparing('Starting profile creation process', 0);\n\n const inscriptionProgress = progressReporter.createSubProgress({\n minPercent: 0,\n maxPercent: 80,\n logPrefix: 'Inscription',\n });\n\n const inscriptionResult = await this.inscribeProfile(profile, {\n ...options,\n progressCallback: (data: any) => {\n inscriptionProgress.report({\n stage: data.stage,\n message: data.message,\n progressPercent: data.progressPercent,\n details: data.details,\n });\n },\n });\n\n if (!inscriptionResult?.success) {\n progressReporter.failed('Profile inscription failed', {\n error: inscriptionResult?.error,\n });\n return inscriptionResult;\n }\n\n progressReporter.confirming('Profile inscribed, updating account memo', 85);\n\n if (updateAccountMemo) {\n const memoResult = await this.updateAccountMemoWithProfile(\n this.auth.operatorId,\n inscriptionResult.profileTopicId\n );\n\n if (!memoResult.success) {\n progressReporter.failed('Failed to update account memo', {\n error: memoResult?.error,\n });\n return {\n ...inscriptionResult,\n success: false,\n error: memoResult?.error,\n };\n }\n }\n\n progressReporter.completed('Profile creation completed successfully', {\n profileTopicId: inscriptionResult.profileTopicId,\n transactionId: inscriptionResult.transactionId,\n });\n\n return inscriptionResult;\n }\n\n /**\n * Gets the capabilities from the capability names.\n *\n * @param capabilityNames - The capability names to get the capabilities for.\n * @returns The capabilities.\n */\n public async getCapabilitiesFromTags(\n capabilityNames: string[]\n ): Promise<number[]> {\n const capabilities: number[] = [];\n\n if (capabilityNames.length === 0) {\n return [AIAgentCapability.TEXT_GENERATION];\n }\n\n for (const capabilityName of capabilityNames) {\n const capability =\n capabilityNameToCapabilityMap[capabilityName.toLowerCase()];\n if (capability !== undefined && !capabilities.includes(capability)) {\n capabilities.push(capability);\n }\n }\n\n if (capabilities.length === 0) {\n capabilities.push(AIAgentCapability.TEXT_GENERATION);\n }\n\n return capabilities;\n }\n\n /**\n * Gets the agent type from the metadata.\n *\n * @param metadata - The metadata of the agent.\n * @returns The agent type.\n */\n public getAgentTypeFromMetadata(metadata: AIAgentMetadata): AIAgentType {\n if (metadata.type === 'autonomous') {\n return AIAgentType.AUTONOMOUS;\n } else {\n return AIAgentType.MANUAL;\n }\n }\n\n /**\n * Fetches a profile from the account memo.\n *\n * @param accountId - The account ID of the agent to fetch the profile for.\n * @param network - The network to use for the fetch.\n * @returns A promise that resolves to the profile.\n */\n public async fetchProfileByAccountId(\n accountId: string | AccountId,\n network?: string\n ): Promise<{\n success: boolean;\n profile?: HCS11Profile;\n error?: string;\n topicInfo?: TopicInfo;\n }> {\n try {\n this.logger.info(\n `Fetching profile for account ${accountId.toString()} on ${\n this.network\n }`\n );\n\n const memo = await this.mirrorNode.getAccountMemo(accountId.toString());\n\n this.logger.info(`Got account memo: ${memo}`);\n\n if (!memo?.startsWith('hcs-11:')) {\n return {\n success: false,\n error: `Account ${accountId.toString()} does not have a valid HCS-11 memo`,\n };\n }\n\n this.logger.info(`Found HCS-11 memo: ${memo}`);\n\n const protocolReference = memo.substring(7);\n\n if (protocolReference?.startsWith('hcs://')) {\n const hcsFormat = protocolReference.match(/hcs:\\/\\/(\\d+)\\/(.+)/);\n\n if (!hcsFormat) {\n return {\n success: false,\n error: `Invalid HCS protocol reference format: ${protocolReference}`,\n };\n }\n\n const [_, protocolId, profileTopicId] = hcsFormat;\n const networkParam = network || this.network || 'mainnet';\n\n this.logger.info(\n `Retrieving profile from Kiloscribe CDN: ${profileTopicId}`\n );\n const cdnUrl = `https://kiloscribe.com/api/inscription-cdn/${profileTopicId}?network=${networkParam}`;\n\n try {\n const response = await fetch(cdnUrl);\n\n if (!response.ok) {\n return {\n success: false,\n error: `Failed to fetch profile from Kiloscribe CDN: ${response.statusText}`,\n };\n }\n\n const profileData = await response.json();\n\n if (!profileData) {\n return {\n success: false,\n error: `No profile data found for topic ${profileTopicId}`,\n };\n }\n\n return {\n success: true,\n profile: profileData,\n topicInfo: {\n inboundTopic: profileData.inboundTopicId,\n outboundTopic: profileData.outboundTopicId,\n profileTopicId,\n },\n };\n } catch (cdnError: any) {\n this.logger.error(\n `Error retrieving from Kiloscribe CDN: ${cdnError.message}`\n );\n return {\n success: false,\n error: `Error retrieving from Kiloscribe CDN: ${cdnError.message}`,\n };\n }\n } else if (protocolReference.startsWith('ipfs://')) {\n this.logger.warn('IPFS protocol references are not fully supported');\n const response = await fetch(\n `https://ipfs.io/ipfs/${protocolReference.replace('ipfs://', '')}`\n );\n const profileData = await response.json();\n return {\n success: true,\n profile: profileData,\n topicInfo: {\n inboundTopic: profileData.inboundTopicId,\n outboundTopic: profileData.outboundTopicId,\n profileTopicId: profileData.profileTopicId,\n },\n };\n } else if (protocolReference.startsWith('ar://')) {\n const arTxId = protocolReference.replace('ar://', '');\n const response = await fetch(`https://arweave.net/${arTxId}`);\n\n if (!response.ok) {\n return {\n success: false,\n error: `Failed to fetch profile from Arweave ${arTxId}: ${response.statusText}`,\n };\n }\n\n const profileData = await response.json();\n\n return {\n success: true,\n profile: profileData,\n topicInfo: {\n inboundTopic: profileData.inboundTopicId,\n outboundTopic: profileData.outboundTopicId,\n profileTopicId: profileData.profileTopicId,\n },\n };\n } else {\n return {\n success: false,\n error: `Invalid protocol reference format: ${protocolReference}`,\n };\n }\n } catch (error: any) {\n this.logger.error(`Error fetching profile: ${error.message}`);\n return {\n success: false,\n error: `Error fetching profile: ${error.message}`,\n };\n }\n }\n}\n"],"names":["ProfileType","AIAgentType","EndpointType","AIAgentCapability","response","receipt","mime.lookup"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es13.js","sources":["../../src/hcs-11/types.ts"],"sourcesContent":["import type { Signer } from '@hashgraph/sdk';\nimport type { DAppSigner } from '@hashgraph/hedera-wallet-connect';\nimport { RegistrationProgressCallback } from '../hcs-10/types';\nimport { LogLevel } from '../utils/logger';\nimport { FeeConfigBuilderInterface } from '../fees';\nimport { NetworkType } from '../utils/types';\n\nexport enum ProfileType {\n PERSONAL = 0,\n AI_AGENT = 1,\n}\n\nexport enum AIAgentType {\n MANUAL = 0,\n AUTONOMOUS = 1,\n}\n\nexport enum EndpointType {\n REST = 0,\n WEBSOCKET = 1,\n GRPC = 2,\n}\n\nexport enum AIAgentCapability {\n TEXT_GENERATION = 0,\n IMAGE_GENERATION = 1,\n AUDIO_GENERATION = 2,\n VIDEO_GENERATION = 3,\n CODE_GENERATION = 4,\n LANGUAGE_TRANSLATION = 5,\n SUMMARIZATION_EXTRACTION = 6,\n KNOWLEDGE_RETRIEVAL = 7,\n DATA_INTEGRATION = 8,\n MARKET_INTELLIGENCE = 9,\n TRANSACTION_ANALYTICS = 10,\n SMART_CONTRACT_AUDIT = 11,\n GOVERNANCE_FACILITATION = 12,\n SECURITY_MONITORING = 13,\n COMPLIANCE_ANALYSIS = 14,\n FRAUD_DETECTION = 15,\n MULTI_AGENT_COORDINATION = 16,\n API_INTEGRATION = 17,\n WORKFLOW_AUTOMATION = 18,\n}\n\nexport type SocialPlatform =\n | 'twitter'\n | 'github'\n | 'discord'\n | 'telegram'\n | 'linkedin'\n | 'youtube'\n | 'website'\n | 'x';\n\nexport interface SocialLink {\n platform: SocialPlatform;\n handle: string;\n}\n\nexport interface AIAgentDetails {\n type: AIAgentType;\n capabilities: AIAgentCapability[];\n model: string;\n creator?: string;\n}\n\nexport interface BaseProfile {\n version: string;\n type: ProfileType;\n display_name: string;\n alias?: string;\n bio?: string;\n socials?: SocialLink[];\n profileImage?: string;\n properties?: Record<string, any>;\n inboundTopicId?: string;\n outboundTopicId?: string;\n}\n\nexport interface PersonalProfile extends BaseProfile {\n type: ProfileType.PERSONAL;\n}\n\nexport interface AIAgentProfile extends BaseProfile {\n type: ProfileType.AI_AGENT;\n aiAgent: AIAgentDetails;\n}\n\nexport type HCS11Profile = PersonalProfile | AIAgentProfile;\n\nexport enum InboundTopicType {\n PUBLIC = 'PUBLIC',\n CONTROLLED = 'CONTROLLED',\n FEE_BASED = 'FEE_BASED',\n}\n\nexport interface HCS11Auth {\n operatorId: string;\n privateKey?: string;\n signer?: DAppSigner | Signer;\n}\n\nexport interface HCS11ClientConfig {\n network: NetworkType;\n auth: HCS11Auth;\n logLevel?: LogLevel;\n}\n\nexport interface TransactionResult<T = unknown> {\n success: boolean;\n error?: string;\n result?: T;\n}\n\nexport interface InscribeProfileResponse {\n profileTopicId: string;\n transactionId: string;\n success: boolean;\n error?: string;\n inboundTopicId?: string;\n outboundTopicId?: string;\n}\n\nexport interface InscribeImageResponse {\n imageTopicId: string;\n transactionId: string;\n success: boolean;\n error?: string;\n}\n\nexport interface AgentMetadata {\n type: 'autonomous' | 'manual';\n model?: string;\n socials?: { [key in SocialPlatform]?: string };\n creator?: string;\n properties?: Record<string, any>;\n}\n\nexport interface ProgressOptions {\n progressCallback?: RegistrationProgressCallback;\n}\n\nexport interface InscribeImageOptions extends ProgressOptions {\n waitForConfirmation?: boolean;\n}\n\nexport interface InscribeProfileOptions extends ProgressOptions {\n waitForConfirmation?: boolean;\n}\n\nexport interface AgentConfiguration {\n name: string;\n alias: string;\n bio: string;\n capabilities: number[];\n metadata: AgentMetadata;\n pfpBuffer?: Buffer;\n pfpFileName?: string;\n network: NetworkType;\n inboundTopicType: InboundTopicType;\n feeConfig?: FeeConfigBuilderInterface;\n connectionFeeConfig?: FeeConfigBuilderInterface;\n existingAccount?: {\n accountId: string;\n privateKey: string;\n };\n existingPfpTopicId?: string;\n}\n\nexport interface PersonConfig extends BaseProfile {\n type: ProfileType.PERSONAL;\n pfpBuffer?: Buffer;\n pfpFileName?: string;\n}\n\nexport const SUPPORTED_SOCIAL_PLATFORMS: SocialPlatform[] = [\n 'twitter',\n 'github',\n 'discord',\n 'telegram',\n 'linkedin',\n 'youtube',\n 'website',\n 'x',\n];\n\nexport const capabilityNameToCapabilityMap: Record<string, AIAgentCapability> =\n {\n text_generation: AIAgentCapability.TEXT_GENERATION,\n image_generation: AIAgentCapability.IMAGE_GENERATION,\n audio_generation: AIAgentCapability.AUDIO_GENERATION,\n video_generation: AIAgentCapability.VIDEO_GENERATION,\n code_generation: AIAgentCapability.CODE_GENERATION,\n language_translation: AIAgentCapability.LANGUAGE_TRANSLATION,\n summarization: AIAgentCapability.SUMMARIZATION_EXTRACTION,\n extraction: AIAgentCapability.SUMMARIZATION_EXTRACTION,\n knowledge_retrieval: AIAgentCapability.KNOWLEDGE_RETRIEVAL,\n data_integration: AIAgentCapability.DATA_INTEGRATION,\n data_visualization: AIAgentCapability.DATA_INTEGRATION,\n market_intelligence: AIAgentCapability.MARKET_INTELLIGENCE,\n transaction_analytics: AIAgentCapability.TRANSACTION_ANALYTICS,\n smart_contract_audit: AIAgentCapability.SMART_CONTRACT_AUDIT,\n governance: AIAgentCapability.GOVERNANCE_FACILITATION,\n security_monitoring: AIAgentCapability.SECURITY_MONITORING,\n compliance_analysis: AIAgentCapability.COMPLIANCE_ANALYSIS,\n fraud_detection: AIAgentCapability.FRAUD_DETECTION,\n multi_agent: AIAgentCapability.MULTI_AGENT_COORDINATION,\n api_integration: AIAgentCapability.API_INTEGRATION,\n workflow_automation: AIAgentCapability.WORKFLOW_AUTOMATION,\n };\n\nexport interface AgentMetadata {\n type: 'autonomous' | 'manual';\n model?: string;\n socials?: {\n twitter?: string;\n discord?: string;\n github?: string;\n website?: string;\n x?: string;\n linkedin?: string;\n youtube?: string;\n telegram?: string;\n };\n creator?: string;\n properties?: Record<string, any>;\n}\n"],"names":["ProfileType","AIAgentType","EndpointType","AIAgentCapability","InboundTopicType"],"mappings":"AAOY,IAAA,gCAAAA,iBAAL;AACLA,eAAAA,aAAA,cAAW,CAAX,IAAA;AACAA,eAAAA,aAAA,cAAW,CAAX,IAAA;AAFUA,SAAAA;AAAA,GAAA,eAAA,CAAA,CAAA;AAKA,IAAA,gCAAAC,iBAAL;AACLA,eAAAA,aAAA,YAAS,CAAT,IAAA;AACAA,eAAAA,aAAA,gBAAa,CAAb,IAAA;AAFUA,SAAAA;AAAA,GAAA,eAAA,CAAA,CAAA;AAKA,IAAA,iCAAAC,kBAAL;AACLA,gBAAAA,cAAA,UAAO,CAAP,IAAA;AACAA,gBAAAA,cAAA,eAAY,CAAZ,IAAA;AACAA,gBAAAA,cAAA,UAAO,CAAP,IAAA;AAHUA,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;AAMA,IAAA,sCAAAC,uBAAL;AACLA,qBAAAA,mBAAA,qBAAkB,CAAlB,IAAA;AACAA,qBAAAA,mBAAA,sBAAmB,CAAnB,IAAA;AACAA,qBAAAA,mBAAA,sBAAmB,CAAnB,IAAA;AACAA,qBAAAA,mBAAA,sBAAmB,CAAnB,IAAA;AACAA,qBAAAA,mBAAA,qBAAkB,CAAlB,IAAA;AACAA,qBAAAA,mBAAA,0BAAuB,CAAvB,IAAA;AACAA,qBAAAA,mBAAA,8BAA2B,CAA3B,IAAA;AACAA,qBAAAA,mBAAA,yBAAsB,CAAtB,IAAA;AACAA,qBAAAA,mBAAA,sBAAmB,CAAnB,IAAA;AACAA,qBAAAA,mBAAA,yBAAsB,CAAtB,IAAA;AACAA,qBAAAA,mBAAA,2BAAwB,EAAxB,IAAA;AACAA,qBAAAA,mBAAA,0BAAuB,EAAvB,IAAA;AACAA,qBAAAA,mBAAA,6BAA0B,EAA1B,IAAA;AACAA,qBAAAA,mBAAA,yBAAsB,EAAtB,IAAA;AACAA,qBAAAA,mBAAA,yBAAsB,EAAtB,IAAA;AACAA,qBAAAA,mBAAA,qBAAkB,EAAlB,IAAA;AACAA,qBAAAA,mBAAA,8BAA2B,EAA3B,IAAA;AACAA,qBAAAA,mBAAA,qBAAkB,EAAlB,IAAA;AACAA,qBAAAA,mBAAA,yBAAsB,EAAtB,IAAA;AAnBUA,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAoEA,IAAA,qCAAAC,sBAAL;AACLA,oBAAA,QAAS,IAAA;AACTA,oBAAA,YAAa,IAAA;AACbA,oBAAA,WAAY,IAAA;AAHFA,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAqFL,MAAM,6BAA+C;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,gCACX;AAAA,EACE,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,qBAAqB;AAAA;AACvB;"}
@@ -1,4 +1,4 @@
1
- import pino from "./standards-sdk.es27.js";
1
+ import pino from "./standards-sdk.es20.js";
2
2
  const _Logger = class _Logger {
3
3
  constructor(options = {}) {
4
4
  const level = options.level || "info";
@@ -27,6 +27,9 @@ const _Logger = class _Logger {
27
27
  setLogLevel(level) {
28
28
  this.logger.level = level;
29
29
  }
30
+ getLevel() {
31
+ return this.logger.level;
32
+ }
30
33
  setSilent(silent) {
31
34
  if (silent) {
32
35
  this.logger.level = "silent";
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es14.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["import pino from 'pino';\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport interface LoggerOptions {\n level?: LogLevel;\n module?: string;\n prettyPrint?: boolean;\n silent?: boolean;\n}\n\nexport class Logger {\n private static instances: Map<string, Logger> = new Map();\n private logger: pino.Logger;\n private moduleContext: string;\n\n constructor(options: LoggerOptions = {}) {\n const level = options.level || 'info';\n this.moduleContext = options.module || 'app';\n\n const pinoOptions: pino.LoggerOptions = {\n level,\n enabled: !options.silent,\n transport:\n options.prettyPrint !== false\n ? {\n target: 'pino-pretty',\n options: {\n colorize: true,\n translateTime: 'SYS:standard',\n ignore: 'pid,hostname',\n },\n }\n : undefined,\n };\n\n this.logger = pino(pinoOptions);\n }\n\n static getInstance(options: LoggerOptions = {}): Logger {\n const moduleKey = options.module || 'default';\n\n if (!Logger.instances.has(moduleKey)) {\n Logger.instances.set(moduleKey, new Logger(options));\n }\n\n return Logger.instances.get(moduleKey)!;\n }\n\n setLogLevel(level: LogLevel): void {\n this.logger.level = level;\n }\n\n setSilent(silent: boolean): void {\n if (silent) {\n this.logger.level = 'silent';\n }\n }\n\n setModule(module: string): void {\n this.moduleContext = module;\n }\n\n debug(...args: any[]): void {\n this.logger.debug({ module: this.moduleContext }, ...args);\n }\n\n info(...args: any[]): void {\n this.logger.info({ module: this.moduleContext }, ...args);\n }\n\n warn(...args: any[]): void {\n this.logger.warn({ module: this.moduleContext }, ...args);\n }\n\n error(...args: any[]): void {\n this.logger.error({ module: this.moduleContext }, ...args);\n }\n\n trace(...args: any[]): void {\n this.logger.trace({ module: this.moduleContext }, ...args);\n }\n}\n"],"names":[],"mappings":";AAWO,MAAM,UAAN,MAAM,QAAO;AAAA,EAKlB,YAAY,UAAyB,IAAI;AACjC,UAAA,QAAQ,QAAQ,SAAS;AAC1B,SAAA,gBAAgB,QAAQ,UAAU;AAEvC,UAAM,cAAkC;AAAA,MACtC;AAAA,MACA,SAAS,CAAC,QAAQ;AAAA,MAClB,WACE,QAAQ,gBAAgB,QACpB;AAAA,QACE,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,UAAU;AAAA,UACV,eAAe;AAAA,UACf,QAAQ;AAAA,QAAA;AAAA,MACV,IAEF;AAAA,IACR;AAEK,SAAA,SAAS,KAAK,WAAW;AAAA,EAAA;AAAA,EAGhC,OAAO,YAAY,UAAyB,IAAY;AAChD,UAAA,YAAY,QAAQ,UAAU;AAEpC,QAAI,CAAC,QAAO,UAAU,IAAI,SAAS,GAAG;AACpC,cAAO,UAAU,IAAI,WAAW,IAAI,QAAO,OAAO,CAAC;AAAA,IAAA;AAG9C,WAAA,QAAO,UAAU,IAAI,SAAS;AAAA,EAAA;AAAA,EAGvC,YAAY,OAAuB;AACjC,SAAK,OAAO,QAAQ;AAAA,EAAA;AAAA,EAGtB,UAAU,QAAuB;AAC/B,QAAI,QAAQ;AACV,WAAK,OAAO,QAAQ;AAAA,IAAA;AAAA,EACtB;AAAA,EAGF,UAAU,QAAsB;AAC9B,SAAK,gBAAgB;AAAA,EAAA;AAAA,EAGvB,SAAS,MAAmB;AACrB,SAAA,OAAO,MAAM,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG3D,QAAQ,MAAmB;AACpB,SAAA,OAAO,KAAK,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG1D,QAAQ,MAAmB;AACpB,SAAA,OAAO,KAAK,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG1D,SAAS,MAAmB;AACrB,SAAA,OAAO,MAAM,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG3D,SAAS,MAAmB;AACrB,SAAA,OAAO,MAAM,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAE7D;AAtEiB,QAAA,gCAAqC,IAAI;AADnD,IAAM,SAAN;"}
1
+ {"version":3,"file":"standards-sdk.es14.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["import pino from 'pino';\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport interface LoggerOptions {\n level?: LogLevel;\n module?: string;\n prettyPrint?: boolean;\n silent?: boolean;\n}\n\nexport class Logger {\n private static instances: Map<string, Logger> = new Map();\n private logger: pino.Logger;\n private moduleContext: string;\n\n constructor(options: LoggerOptions = {}) {\n const level = options.level || 'info';\n this.moduleContext = options.module || 'app';\n\n const pinoOptions: pino.LoggerOptions = {\n level,\n enabled: !options.silent,\n transport:\n options.prettyPrint !== false\n ? {\n target: 'pino-pretty',\n options: {\n colorize: true,\n translateTime: 'SYS:standard',\n ignore: 'pid,hostname',\n },\n }\n : undefined,\n };\n\n this.logger = pino(pinoOptions);\n }\n\n static getInstance(options: LoggerOptions = {}): Logger {\n const moduleKey = options.module || 'default';\n\n if (!Logger.instances.has(moduleKey)) {\n Logger.instances.set(moduleKey, new Logger(options));\n }\n\n return Logger.instances.get(moduleKey)!;\n }\n\n setLogLevel(level: LogLevel): void {\n this.logger.level = level;\n }\n\n getLevel(): LogLevel {\n return this.logger.level as LogLevel;\n }\n\n setSilent(silent: boolean): void {\n if (silent) {\n this.logger.level = 'silent';\n }\n }\n\n setModule(module: string): void {\n this.moduleContext = module;\n }\n\n debug(...args: any[]): void {\n this.logger.debug({ module: this.moduleContext }, ...args);\n }\n\n info(...args: any[]): void {\n this.logger.info({ module: this.moduleContext }, ...args);\n }\n\n warn(...args: any[]): void {\n this.logger.warn({ module: this.moduleContext }, ...args);\n }\n\n error(...args: any[]): void {\n this.logger.error({ module: this.moduleContext }, ...args);\n }\n\n trace(...args: any[]): void {\n this.logger.trace({ module: this.moduleContext }, ...args);\n }\n}\n"],"names":[],"mappings":";AAWO,MAAM,UAAN,MAAM,QAAO;AAAA,EAKlB,YAAY,UAAyB,IAAI;AACjC,UAAA,QAAQ,QAAQ,SAAS;AAC1B,SAAA,gBAAgB,QAAQ,UAAU;AAEvC,UAAM,cAAkC;AAAA,MACtC;AAAA,MACA,SAAS,CAAC,QAAQ;AAAA,MAClB,WACE,QAAQ,gBAAgB,QACpB;AAAA,QACE,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,UAAU;AAAA,UACV,eAAe;AAAA,UACf,QAAQ;AAAA,QAAA;AAAA,MACV,IAEF;AAAA,IACR;AAEK,SAAA,SAAS,KAAK,WAAW;AAAA,EAAA;AAAA,EAGhC,OAAO,YAAY,UAAyB,IAAY;AAChD,UAAA,YAAY,QAAQ,UAAU;AAEpC,QAAI,CAAC,QAAO,UAAU,IAAI,SAAS,GAAG;AACpC,cAAO,UAAU,IAAI,WAAW,IAAI,QAAO,OAAO,CAAC;AAAA,IAAA;AAG9C,WAAA,QAAO,UAAU,IAAI,SAAS;AAAA,EAAA;AAAA,EAGvC,YAAY,OAAuB;AACjC,SAAK,OAAO,QAAQ;AAAA,EAAA;AAAA,EAGtB,WAAqB;AACnB,WAAO,KAAK,OAAO;AAAA,EAAA;AAAA,EAGrB,UAAU,QAAuB;AAC/B,QAAI,QAAQ;AACV,WAAK,OAAO,QAAQ;AAAA,IAAA;AAAA,EACtB;AAAA,EAGF,UAAU,QAAsB;AAC9B,SAAK,gBAAgB;AAAA,EAAA;AAAA,EAGvB,SAAS,MAAmB;AACrB,SAAA,OAAO,MAAM,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG3D,QAAQ,MAAmB;AACpB,SAAA,OAAO,KAAK,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG1D,QAAQ,MAAmB;AACpB,SAAA,OAAO,KAAK,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG1D,SAAS,MAAmB;AACrB,SAAA,OAAO,MAAM,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAAA,EAG3D,SAAS,MAAmB;AACrB,SAAA,OAAO,MAAM,EAAE,QAAQ,KAAK,cAAc,GAAG,GAAG,IAAI;AAAA,EAAA;AAE7D;AA1EiB,QAAA,gCAAqC,IAAI;AADnD,IAAM,SAAN;"}
@@ -1,4 +1,4 @@
1
- import Buffer from "./standards-sdk.es19.js";
1
+ import Buffer from "./standards-sdk.es21.js";
2
2
  import { InscriptionSDK } from "./standards-sdk.es24.js";
3
3
  import { Logger } from "./standards-sdk.es14.js";
4
4
  import { ProgressReporter } from "./standards-sdk.es16.js";
@@ -1,8 +1,8 @@
1
- import Buffer from "./standards-sdk.es19.js";
1
+ import Buffer from "./standards-sdk.es21.js";
2
2
  import { PublicKey, Timestamp } from "@hashgraph/sdk";
3
- import "./standards-sdk.es22.js";
3
+ import "./standards-sdk.es25.js";
4
4
  import { proto } from "@hashgraph/proto";
5
- import axios from "./standards-sdk.es23.js";
5
+ import axios from "./standards-sdk.es26.js";
6
6
  class HederaMirrorNode {
7
7
  constructor(network, logger) {
8
8
  this.network = network;
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es18.js","sources":["../../src/services/mirror-node.ts"],"sourcesContent":["import { PublicKey, Timestamp } from '@hashgraph/sdk';\nimport axios from 'axios';\nimport { Logger } from '../utils/logger';\nimport { HCSMessage } from '../hcs-10/base-client';\nimport { proto } from '@hashgraph/proto';\nimport {\n AccountResponse,\n CustomFees,\n HBARPrice,\n NetworkType,\n TopicMessagesResponse,\n TopicResponse,\n} from './types';\n\nexport class HederaMirrorNode {\n private network: NetworkType;\n private baseUrl: string;\n private logger: Logger;\n private isServerEnvironment: boolean;\n\n constructor(network: NetworkType, logger: Logger) {\n this.network = network;\n this.baseUrl = this.getMirrorNodeUrl();\n this.logger = logger;\n this.isServerEnvironment = typeof window === 'undefined';\n }\n\n private getMirrorNodeUrl(): string {\n return this.network === 'mainnet'\n ? 'https://mainnet-public.mirrornode.hedera.com'\n : 'https://testnet.mirrornode.hedera.com';\n }\n\n getBaseUrl(): string {\n return this.baseUrl;\n }\n\n async getPublicKey(accountId: string): Promise<PublicKey> {\n this.logger.info(`Getting public key for account ${accountId}`);\n\n const accountInfo = await this.requestAccount(accountId);\n\n try {\n if (!accountInfo || !accountInfo.key) {\n throw new Error(\n `Failed to retrieve public key for account ID: ${accountId}`\n );\n }\n\n return PublicKey.fromString(accountInfo.key.key);\n } catch (error: any) {\n throw new Error(\n `Error fetching public key from Mirror Node: ${error.message}`\n );\n }\n }\n\n async getAccountMemo(accountId: string): Promise<string | null> {\n const maxRetries = 3;\n\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n try {\n const accountInfoUrl = `${this.baseUrl}/api/v1/accounts/${accountId}`;\n\n const response = await axios.get(accountInfoUrl);\n const accountInfo = response.data;\n\n if (accountInfo && accountInfo.memo) {\n return accountInfo.memo;\n }\n\n this.logger.error(`No memo found for account ${accountId}`);\n\n if (attempt < maxRetries - 1) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n } catch (error: any) {\n this.logger.error(\n `Error getting account memo (attempt ${attempt + 1}): ${\n error.message\n }`\n );\n\n if (attempt < maxRetries - 1) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n }\n }\n\n return null;\n }\n\n async getTopicInfo(topicId: string): Promise<TopicResponse> {\n try {\n const topicInfoUrl = `${this.baseUrl}/api/v1/topics/${topicId}`;\n const response = await axios.get(topicInfoUrl);\n return response.data;\n } catch (error: any) {\n this.logger.error(`Error retrieving topic information: ${error.message}`);\n throw new Error(`Failed to retrieve topic information: ${error.message}`);\n }\n }\n\n async getTopicFees(topicId: string): Promise<CustomFees | null> {\n try {\n const topicInfo = await this.getTopicInfo(topicId);\n return topicInfo.custom_fees;\n } catch (error: any) {\n this.logger.error(`Error retrieving topic fees: ${error.message}`);\n return null;\n }\n }\n\n async getHBARPrice(date: Date): Promise<number | null> {\n try {\n const timestamp = Timestamp.fromDate(date).toString();\n\n const request = await fetch(\n `https://mainnet-public.mirrornode.hedera.com/api/v1/network/exchangerate?timestamp=${timestamp}`\n );\n const response = (await request.json()) as HBARPrice;\n\n const usdPrice =\n Number(response?.current_rate?.cent_equivalent) /\n Number(response?.current_rate?.hbar_equivalent) /\n 100;\n\n return usdPrice;\n } catch (e) {\n return null;\n }\n }\n\n async getTopicMessages(topicId: string): Promise<HCSMessage[]> {\n this.logger.trace(`Querying messages for topic ${topicId}`);\n\n let nextUrl = `${this.baseUrl}/api/v1/topics/${topicId}/messages`;\n const messages: HCSMessage[] = [];\n\n while (nextUrl) {\n try {\n const response = await axios.get<TopicMessagesResponse>(nextUrl);\n const data = response.data;\n\n if (data.messages && data.messages.length > 0) {\n for (const message of data.messages) {\n try {\n if (!message.message) {\n continue;\n }\n\n let messageContent: string;\n try {\n if (this.isServerEnvironment) {\n messageContent = Buffer.from(\n message.message,\n 'base64'\n ).toString('utf-8');\n } else {\n messageContent = new TextDecoder().decode(\n Uint8Array.from(atob(message.message), (c) =>\n c.charCodeAt(0)\n )\n );\n }\n } catch (error) {\n this.logger.error(`Error decoding message: ${error}`);\n continue;\n }\n\n let messageJson;\n try {\n messageJson = JSON.parse(messageContent);\n } catch (error) {\n this.logger.error(\n `Invalid JSON message content: ${messageContent}`\n );\n return;\n }\n\n messageJson.sequence_number = message.sequence_number;\n messages.push({\n ...messageJson,\n consensus_timestamp: message.consensus_timestamp,\n sequence_number: message.sequence_number,\n created: new Date(\n Number(message.consensus_timestamp) * 1000\n ),\n });\n } catch (error: any) {\n this.logger.error(`Error processing message: ${error.message}`);\n }\n }\n }\n\n nextUrl = data.links?.next ? `${this.baseUrl}${data.links.next}` : '';\n } catch (error: any) {\n this.logger.error(`Error querying topic messages: ${error.message}`);\n throw new Error(`Failed to query topic messages: ${error.message}`);\n }\n }\n\n return messages;\n }\n\n async requestAccount(accountId: string): Promise<AccountResponse> {\n try {\n const accountInfoUrl = `${this.baseUrl}/api/v1/accounts/${accountId}`;\n const response = await axios.get(accountInfoUrl);\n if (!response.data) {\n throw new Error(\n `Failed to make request to mirror node for account: ${accountId}`\n );\n }\n return response.data;\n } catch (error: any) {\n this.logger.error(`Failed to fetch account: ${error.message}`);\n throw new Error(`Failed to fetch account: ${error.message}`);\n }\n }\n\n async checkKeyListAccess(\n keyBytes: Buffer,\n userPublicKey: PublicKey\n ): Promise<boolean> {\n try {\n const key = proto.Key.decode(keyBytes);\n return this.evaluateKeyAccess(key, userPublicKey);\n } catch (error) {\n this.logger.error(\n `Error decoding protobuf key: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n return false;\n }\n }\n\n private async evaluateKeyAccess(\n key: proto.IKey,\n userPublicKey: PublicKey\n ): Promise<boolean> {\n if (key.ed25519) {\n return this.compareEd25519Key(key.ed25519, userPublicKey);\n }\n\n if (key.keyList) {\n return this.evaluateKeyList(key.keyList, userPublicKey);\n }\n\n if (key.thresholdKey && key.thresholdKey.keys) {\n return this.evaluateKeyList(key.thresholdKey.keys, userPublicKey);\n }\n\n return false;\n }\n\n private async evaluateKeyList(\n keyList: proto.IKeyList,\n userPublicKey: PublicKey\n ): Promise<boolean> {\n const keys = keyList.keys || [];\n\n for (const listKey of keys) {\n if (!listKey) continue;\n\n if (listKey.ed25519) {\n if (this.compareEd25519Key(listKey.ed25519, userPublicKey)) {\n return true;\n }\n } else if (listKey.keyList || listKey.thresholdKey) {\n try {\n const nestedKeyBytes = proto.Key.encode({\n ...(listKey.keyList ? { keyList: listKey.keyList } : {}),\n ...(listKey.thresholdKey\n ? { thresholdKey: listKey.thresholdKey }\n : {}),\n }).finish();\n\n const hasNestedAccess = await this.checkKeyListAccess(\n Buffer.from(nestedKeyBytes),\n userPublicKey\n );\n\n if (hasNestedAccess) {\n return true;\n }\n } catch (err) {\n this.logger.debug(\n `Error in nested key: ${\n err instanceof Error ? err.message : String(err)\n }`\n );\n }\n }\n }\n\n return false;\n }\n\n private compareEd25519Key(\n keyData: Uint8Array,\n userPublicKey: PublicKey\n ): boolean {\n try {\n const decodedKey = PublicKey.fromBytes(Buffer.from(keyData));\n return decodedKey.toString() === userPublicKey.toString();\n } catch (err) {\n return false;\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es18.js","sources":["../../src/services/mirror-node.ts"],"sourcesContent":["import { PublicKey, Timestamp } from '@hashgraph/sdk';\nimport axios from 'axios';\nimport { Logger } from '../utils/logger';\nimport { HCSMessage } from '../hcs-10/base-client';\nimport { proto } from '@hashgraph/proto';\nimport {\n AccountResponse,\n CustomFees,\n HBARPrice,\n TopicMessagesResponse,\n TopicResponse,\n} from './types';\nimport { NetworkType } from '../utils/types';\nexport class HederaMirrorNode {\n private network: NetworkType;\n private baseUrl: string;\n private logger: Logger;\n private isServerEnvironment: boolean;\n\n constructor(network: NetworkType, logger: Logger) {\n this.network = network;\n this.baseUrl = this.getMirrorNodeUrl();\n this.logger = logger;\n this.isServerEnvironment = typeof window === 'undefined';\n }\n\n private getMirrorNodeUrl(): string {\n return this.network === 'mainnet'\n ? 'https://mainnet-public.mirrornode.hedera.com'\n : 'https://testnet.mirrornode.hedera.com';\n }\n\n getBaseUrl(): string {\n return this.baseUrl;\n }\n\n async getPublicKey(accountId: string): Promise<PublicKey> {\n this.logger.info(`Getting public key for account ${accountId}`);\n\n const accountInfo = await this.requestAccount(accountId);\n\n try {\n if (!accountInfo || !accountInfo.key) {\n throw new Error(\n `Failed to retrieve public key for account ID: ${accountId}`\n );\n }\n\n return PublicKey.fromString(accountInfo.key.key);\n } catch (error: any) {\n throw new Error(\n `Error fetching public key from Mirror Node: ${error.message}`\n );\n }\n }\n\n async getAccountMemo(accountId: string): Promise<string | null> {\n const maxRetries = 3;\n\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n try {\n const accountInfoUrl = `${this.baseUrl}/api/v1/accounts/${accountId}`;\n\n const response = await axios.get(accountInfoUrl);\n const accountInfo = response.data;\n\n if (accountInfo && accountInfo.memo) {\n return accountInfo.memo;\n }\n\n this.logger.error(`No memo found for account ${accountId}`);\n\n if (attempt < maxRetries - 1) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n } catch (error: any) {\n this.logger.error(\n `Error getting account memo (attempt ${attempt + 1}): ${\n error.message\n }`\n );\n\n if (attempt < maxRetries - 1) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n }\n }\n\n return null;\n }\n\n async getTopicInfo(topicId: string): Promise<TopicResponse> {\n try {\n const topicInfoUrl = `${this.baseUrl}/api/v1/topics/${topicId}`;\n const response = await axios.get(topicInfoUrl);\n return response.data;\n } catch (error: any) {\n this.logger.error(`Error retrieving topic information: ${error.message}`);\n throw new Error(`Failed to retrieve topic information: ${error.message}`);\n }\n }\n\n async getTopicFees(topicId: string): Promise<CustomFees | null> {\n try {\n const topicInfo = await this.getTopicInfo(topicId);\n return topicInfo.custom_fees;\n } catch (error: any) {\n this.logger.error(`Error retrieving topic fees: ${error.message}`);\n return null;\n }\n }\n\n async getHBARPrice(date: Date): Promise<number | null> {\n try {\n const timestamp = Timestamp.fromDate(date).toString();\n\n const request = await fetch(\n `https://mainnet-public.mirrornode.hedera.com/api/v1/network/exchangerate?timestamp=${timestamp}`\n );\n const response = (await request.json()) as HBARPrice;\n\n const usdPrice =\n Number(response?.current_rate?.cent_equivalent) /\n Number(response?.current_rate?.hbar_equivalent) /\n 100;\n\n return usdPrice;\n } catch (e) {\n return null;\n }\n }\n\n async getTopicMessages(topicId: string): Promise<HCSMessage[]> {\n this.logger.trace(`Querying messages for topic ${topicId}`);\n\n let nextUrl = `${this.baseUrl}/api/v1/topics/${topicId}/messages`;\n const messages: HCSMessage[] = [];\n\n while (nextUrl) {\n try {\n const response = await axios.get<TopicMessagesResponse>(nextUrl);\n const data = response.data;\n\n if (data.messages && data.messages.length > 0) {\n for (const message of data.messages) {\n try {\n if (!message.message) {\n continue;\n }\n\n let messageContent: string;\n try {\n if (this.isServerEnvironment) {\n messageContent = Buffer.from(\n message.message,\n 'base64'\n ).toString('utf-8');\n } else {\n messageContent = new TextDecoder().decode(\n Uint8Array.from(atob(message.message), (c) =>\n c.charCodeAt(0)\n )\n );\n }\n } catch (error) {\n this.logger.error(`Error decoding message: ${error}`);\n continue;\n }\n\n let messageJson;\n try {\n messageJson = JSON.parse(messageContent);\n } catch (error) {\n this.logger.error(\n `Invalid JSON message content: ${messageContent}`\n );\n return;\n }\n\n messageJson.sequence_number = message.sequence_number;\n messages.push({\n ...messageJson,\n consensus_timestamp: message.consensus_timestamp,\n sequence_number: message.sequence_number,\n created: new Date(\n Number(message.consensus_timestamp) * 1000\n ),\n });\n } catch (error: any) {\n this.logger.error(`Error processing message: ${error.message}`);\n }\n }\n }\n\n nextUrl = data.links?.next ? `${this.baseUrl}${data.links.next}` : '';\n } catch (error: any) {\n this.logger.error(`Error querying topic messages: ${error.message}`);\n throw new Error(`Failed to query topic messages: ${error.message}`);\n }\n }\n\n return messages;\n }\n\n async requestAccount(accountId: string): Promise<AccountResponse> {\n try {\n const accountInfoUrl = `${this.baseUrl}/api/v1/accounts/${accountId}`;\n const response = await axios.get(accountInfoUrl);\n if (!response.data) {\n throw new Error(\n `Failed to make request to mirror node for account: ${accountId}`\n );\n }\n return response.data;\n } catch (error: any) {\n this.logger.error(`Failed to fetch account: ${error.message}`);\n throw new Error(`Failed to fetch account: ${error.message}`);\n }\n }\n\n async checkKeyListAccess(\n keyBytes: Buffer,\n userPublicKey: PublicKey\n ): Promise<boolean> {\n try {\n const key = proto.Key.decode(keyBytes);\n return this.evaluateKeyAccess(key, userPublicKey);\n } catch (error) {\n this.logger.error(\n `Error decoding protobuf key: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n return false;\n }\n }\n\n private async evaluateKeyAccess(\n key: proto.IKey,\n userPublicKey: PublicKey\n ): Promise<boolean> {\n if (key.ed25519) {\n return this.compareEd25519Key(key.ed25519, userPublicKey);\n }\n\n if (key.keyList) {\n return this.evaluateKeyList(key.keyList, userPublicKey);\n }\n\n if (key.thresholdKey && key.thresholdKey.keys) {\n return this.evaluateKeyList(key.thresholdKey.keys, userPublicKey);\n }\n\n return false;\n }\n\n private async evaluateKeyList(\n keyList: proto.IKeyList,\n userPublicKey: PublicKey\n ): Promise<boolean> {\n const keys = keyList.keys || [];\n\n for (const listKey of keys) {\n if (!listKey) continue;\n\n if (listKey.ed25519) {\n if (this.compareEd25519Key(listKey.ed25519, userPublicKey)) {\n return true;\n }\n } else if (listKey.keyList || listKey.thresholdKey) {\n try {\n const nestedKeyBytes = proto.Key.encode({\n ...(listKey.keyList ? { keyList: listKey.keyList } : {}),\n ...(listKey.thresholdKey\n ? { thresholdKey: listKey.thresholdKey }\n : {}),\n }).finish();\n\n const hasNestedAccess = await this.checkKeyListAccess(\n Buffer.from(nestedKeyBytes),\n userPublicKey\n );\n\n if (hasNestedAccess) {\n return true;\n }\n } catch (err) {\n this.logger.debug(\n `Error in nested key: ${\n err instanceof Error ? err.message : String(err)\n }`\n );\n }\n }\n }\n\n return false;\n }\n\n private compareEd25519Key(\n keyData: Uint8Array,\n userPublicKey: PublicKey\n ): boolean {\n try {\n const decodedKey = PublicKey.fromBytes(Buffer.from(keyData));\n return decodedKey.toString() === userPublicKey.toString();\n } catch (err) {\n return false;\n }\n }\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,iBAAiB;AAAA,EAM5B,YAAY,SAAsB,QAAgB;AAChD,SAAK,UAAU;AACV,SAAA,UAAU,KAAK,iBAAiB;AACrC,SAAK,SAAS;AACT,SAAA,sBAAsB,OAAO,WAAW;AAAA,EAAA;AAAA,EAGvC,mBAA2B;AAC1B,WAAA,KAAK,YAAY,YACpB,iDACA;AAAA,EAAA;AAAA,EAGN,aAAqB;AACnB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGd,MAAM,aAAa,WAAuC;AACxD,SAAK,OAAO,KAAK,kCAAkC,SAAS,EAAE;AAE9D,UAAM,cAAc,MAAM,KAAK,eAAe,SAAS;AAEnD,QAAA;AACF,UAAI,CAAC,eAAe,CAAC,YAAY,KAAK;AACpC,cAAM,IAAI;AAAA,UACR,iDAAiD,SAAS;AAAA,QAC5D;AAAA,MAAA;AAGF,aAAO,UAAU,WAAW,YAAY,IAAI,GAAG;AAAA,aACxC,OAAY;AACnB,YAAM,IAAI;AAAA,QACR,+CAA+C,MAAM,OAAO;AAAA,MAC9D;AAAA,IAAA;AAAA,EACF;AAAA,EAGF,MAAM,eAAe,WAA2C;AAC9D,UAAM,aAAa;AAEnB,aAAS,UAAU,GAAG,UAAU,YAAY,WAAW;AACjD,UAAA;AACF,cAAM,iBAAiB,GAAG,KAAK,OAAO,oBAAoB,SAAS;AAEnE,cAAM,WAAW,MAAM,MAAM,IAAI,cAAc;AAC/C,cAAM,cAAc,SAAS;AAEzB,YAAA,eAAe,YAAY,MAAM;AACnC,iBAAO,YAAY;AAAA,QAAA;AAGrB,aAAK,OAAO,MAAM,6BAA6B,SAAS,EAAE;AAEtD,YAAA,UAAU,aAAa,GAAG;AAC5B,gBAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AAAA,QAAA;AAAA,eAEnD,OAAY;AACnB,aAAK,OAAO;AAAA,UACV,uCAAuC,UAAU,CAAC,MAChD,MAAM,OACR;AAAA,QACF;AAEI,YAAA,UAAU,aAAa,GAAG;AAC5B,gBAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AAAA,QAAA;AAAA,MAC1D;AAAA,IACF;AAGK,WAAA;AAAA,EAAA;AAAA,EAGT,MAAM,aAAa,SAAyC;AACtD,QAAA;AACF,YAAM,eAAe,GAAG,KAAK,OAAO,kBAAkB,OAAO;AAC7D,YAAM,WAAW,MAAM,MAAM,IAAI,YAAY;AAC7C,aAAO,SAAS;AAAA,aACT,OAAY;AACnB,WAAK,OAAO,MAAM,uCAAuC,MAAM,OAAO,EAAE;AACxE,YAAM,IAAI,MAAM,yCAAyC,MAAM,OAAO,EAAE;AAAA,IAAA;AAAA,EAC1E;AAAA,EAGF,MAAM,aAAa,SAA6C;AAC1D,QAAA;AACF,YAAM,YAAY,MAAM,KAAK,aAAa,OAAO;AACjD,aAAO,UAAU;AAAA,aACV,OAAY;AACnB,WAAK,OAAO,MAAM,gCAAgC,MAAM,OAAO,EAAE;AAC1D,aAAA;AAAA,IAAA;AAAA,EACT;AAAA,EAGF,MAAM,aAAa,MAAoC;AACjD,QAAA;AACF,YAAM,YAAY,UAAU,SAAS,IAAI,EAAE,SAAS;AAEpD,YAAM,UAAU,MAAM;AAAA,QACpB,sFAAsF,SAAS;AAAA,MACjG;AACM,YAAA,WAAY,MAAM,QAAQ,KAAK;AAE/B,YAAA,WACJ,OAAO,UAAU,cAAc,eAAe,IAC9C,OAAO,UAAU,cAAc,eAAe,IAC9C;AAEK,aAAA;AAAA,aACA,GAAG;AACH,aAAA;AAAA,IAAA;AAAA,EACT;AAAA,EAGF,MAAM,iBAAiB,SAAwC;AAC7D,SAAK,OAAO,MAAM,+BAA+B,OAAO,EAAE;AAE1D,QAAI,UAAU,GAAG,KAAK,OAAO,kBAAkB,OAAO;AACtD,UAAM,WAAyB,CAAC;AAEhC,WAAO,SAAS;AACV,UAAA;AACF,cAAM,WAAW,MAAM,MAAM,IAA2B,OAAO;AAC/D,cAAM,OAAO,SAAS;AAEtB,YAAI,KAAK,YAAY,KAAK,SAAS,SAAS,GAAG;AAClC,qBAAA,WAAW,KAAK,UAAU;AAC/B,gBAAA;AACE,kBAAA,CAAC,QAAQ,SAAS;AACpB;AAAA,cAAA;AAGE,kBAAA;AACA,kBAAA;AACF,oBAAI,KAAK,qBAAqB;AAC5B,mCAAiB,OAAO;AAAA,oBACtB,QAAQ;AAAA,oBACR;AAAA,kBAAA,EACA,SAAS,OAAO;AAAA,gBAAA,OACb;AACY,mCAAA,IAAI,cAAc;AAAA,oBACjC,WAAW;AAAA,sBAAK,KAAK,QAAQ,OAAO;AAAA,sBAAG,CAAC,MACtC,EAAE,WAAW,CAAC;AAAA,oBAAA;AAAA,kBAElB;AAAA,gBAAA;AAAA,uBAEK,OAAO;AACd,qBAAK,OAAO,MAAM,2BAA2B,KAAK,EAAE;AACpD;AAAA,cAAA;AAGE,kBAAA;AACA,kBAAA;AACY,8BAAA,KAAK,MAAM,cAAc;AAAA,uBAChC,OAAO;AACd,qBAAK,OAAO;AAAA,kBACV,iCAAiC,cAAc;AAAA,gBACjD;AACA;AAAA,cAAA;AAGF,0BAAY,kBAAkB,QAAQ;AACtC,uBAAS,KAAK;AAAA,gBACZ,GAAG;AAAA,gBACH,qBAAqB,QAAQ;AAAA,gBAC7B,iBAAiB,QAAQ;AAAA,gBACzB,SAAS,IAAI;AAAA,kBACX,OAAO,QAAQ,mBAAmB,IAAI;AAAA,gBAAA;AAAA,cACxC,CACD;AAAA,qBACM,OAAY;AACnB,mBAAK,OAAO,MAAM,6BAA6B,MAAM,OAAO,EAAE;AAAA,YAAA;AAAA,UAChE;AAAA,QACF;AAGQ,kBAAA,KAAK,OAAO,OAAO,GAAG,KAAK,OAAO,GAAG,KAAK,MAAM,IAAI,KAAK;AAAA,eAC5D,OAAY;AACnB,aAAK,OAAO,MAAM,kCAAkC,MAAM,OAAO,EAAE;AACnE,cAAM,IAAI,MAAM,mCAAmC,MAAM,OAAO,EAAE;AAAA,MAAA;AAAA,IACpE;AAGK,WAAA;AAAA,EAAA;AAAA,EAGT,MAAM,eAAe,WAA6C;AAC5D,QAAA;AACF,YAAM,iBAAiB,GAAG,KAAK,OAAO,oBAAoB,SAAS;AACnE,YAAM,WAAW,MAAM,MAAM,IAAI,cAAc;AAC3C,UAAA,CAAC,SAAS,MAAM;AAClB,cAAM,IAAI;AAAA,UACR,sDAAsD,SAAS;AAAA,QACjE;AAAA,MAAA;AAEF,aAAO,SAAS;AAAA,aACT,OAAY;AACnB,WAAK,OAAO,MAAM,4BAA4B,MAAM,OAAO,EAAE;AAC7D,YAAM,IAAI,MAAM,4BAA4B,MAAM,OAAO,EAAE;AAAA,IAAA;AAAA,EAC7D;AAAA,EAGF,MAAM,mBACJ,UACA,eACkB;AACd,QAAA;AACF,YAAM,MAAM,MAAM,IAAI,OAAO,QAAQ;AAC9B,aAAA,KAAK,kBAAkB,KAAK,aAAa;AAAA,aACzC,OAAO;AACd,WAAK,OAAO;AAAA,QACV,gCACE,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CACvD;AAAA,MACF;AACO,aAAA;AAAA,IAAA;AAAA,EACT;AAAA,EAGF,MAAc,kBACZ,KACA,eACkB;AAClB,QAAI,IAAI,SAAS;AACf,aAAO,KAAK,kBAAkB,IAAI,SAAS,aAAa;AAAA,IAAA;AAG1D,QAAI,IAAI,SAAS;AACf,aAAO,KAAK,gBAAgB,IAAI,SAAS,aAAa;AAAA,IAAA;AAGxD,QAAI,IAAI,gBAAgB,IAAI,aAAa,MAAM;AAC7C,aAAO,KAAK,gBAAgB,IAAI,aAAa,MAAM,aAAa;AAAA,IAAA;AAG3D,WAAA;AAAA,EAAA;AAAA,EAGT,MAAc,gBACZ,SACA,eACkB;AACZ,UAAA,OAAO,QAAQ,QAAQ,CAAC;AAE9B,eAAW,WAAW,MAAM;AAC1B,UAAI,CAAC,QAAS;AAEd,UAAI,QAAQ,SAAS;AACnB,YAAI,KAAK,kBAAkB,QAAQ,SAAS,aAAa,GAAG;AACnD,iBAAA;AAAA,QAAA;AAAA,MAEA,WAAA,QAAQ,WAAW,QAAQ,cAAc;AAC9C,YAAA;AACI,gBAAA,iBAAiB,MAAM,IAAI,OAAO;AAAA,YACtC,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,YACtD,GAAI,QAAQ,eACR,EAAE,cAAc,QAAQ,aAAA,IACxB,CAAA;AAAA,UACL,CAAA,EAAE,OAAO;AAEJ,gBAAA,kBAAkB,MAAM,KAAK;AAAA,YACjC,OAAO,KAAK,cAAc;AAAA,YAC1B;AAAA,UACF;AAEA,cAAI,iBAAiB;AACZ,mBAAA;AAAA,UAAA;AAAA,iBAEF,KAAK;AACZ,eAAK,OAAO;AAAA,YACV,wBACE,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CACjD;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAGK,WAAA;AAAA,EAAA;AAAA,EAGD,kBACN,SACA,eACS;AACL,QAAA;AACF,YAAM,aAAa,UAAU,UAAU,OAAO,KAAK,OAAO,CAAC;AAC3D,aAAO,WAAW,eAAe,cAAc,SAAS;AAAA,aACjD,KAAK;AACL,aAAA;AAAA,IAAA;AAAA,EACT;AAEJ;"}