@hashgraphonline/standards-sdk 0.1.141-canary.9 → 0.1.141-feat-hcs-21-flora-adapter.canary.cff94ea.45

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 (249) hide show
  1. package/README.md +13 -1
  2. package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  4. package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
  5. package/dist/cjs/hcs-20/types.d.ts +9 -8
  6. package/dist/cjs/hcs-20/types.d.ts.map +1 -1
  7. package/dist/cjs/hcs-21/base-client.d.ts +4 -3
  8. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  9. package/dist/cjs/hcs-21/index.d.ts +1 -0
  10. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  11. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  12. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  13. package/dist/cjs/hcs-21/types.d.ts +135 -64
  14. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  15. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  16. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  17. package/dist/cjs/inscribe/inscriber.d.ts +1 -0
  18. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  19. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  20. package/dist/cjs/services/registry-broker/client.d.ts +4 -3
  21. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  22. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  23. package/dist/cjs/services/registry-broker/schemas.d.ts +16 -16
  24. package/dist/cjs/standards-sdk.cjs +2 -2
  25. package/dist/cjs/standards-sdk.cjs.map +1 -1
  26. package/dist/cjs/utils/dynamic-import.d.ts +1 -0
  27. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  28. package/dist/es/hcs-16/base-client.d.ts.map +1 -1
  29. package/dist/es/hcs-17/types.d.ts.map +1 -1
  30. package/dist/es/hcs-20/sdk.d.ts.map +1 -1
  31. package/dist/es/hcs-20/types.d.ts +9 -8
  32. package/dist/es/hcs-20/types.d.ts.map +1 -1
  33. package/dist/es/hcs-21/base-client.d.ts +4 -3
  34. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  35. package/dist/es/hcs-21/index.d.ts +1 -0
  36. package/dist/es/hcs-21/index.d.ts.map +1 -1
  37. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  38. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  39. package/dist/es/hcs-21/types.d.ts +135 -64
  40. package/dist/es/hcs-21/types.d.ts.map +1 -1
  41. package/dist/es/hcs-21/verify.d.ts +6 -0
  42. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  43. package/dist/es/inscribe/inscriber.d.ts +1 -0
  44. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  45. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  46. package/dist/es/services/registry-broker/client.d.ts +4 -3
  47. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  48. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  49. package/dist/es/services/registry-broker/schemas.d.ts +16 -16
  50. package/dist/es/standards-sdk.es.js +58 -50
  51. package/dist/es/standards-sdk.es.js.map +1 -1
  52. package/dist/es/standards-sdk.es10.js +2 -2
  53. package/dist/es/standards-sdk.es100.js +26 -229
  54. package/dist/es/standards-sdk.es100.js.map +1 -1
  55. package/dist/es/standards-sdk.es101.js +228 -109
  56. package/dist/es/standards-sdk.es101.js.map +1 -1
  57. package/dist/es/standards-sdk.es102.js +94 -15
  58. package/dist/es/standards-sdk.es102.js.map +1 -1
  59. package/dist/es/standards-sdk.es103.js +30 -80
  60. package/dist/es/standards-sdk.es103.js.map +1 -1
  61. package/dist/es/standards-sdk.es104.js +80 -27
  62. package/dist/es/standards-sdk.es104.js.map +1 -1
  63. package/dist/es/standards-sdk.es105.js +25 -136
  64. package/dist/es/standards-sdk.es105.js.map +1 -1
  65. package/dist/es/standards-sdk.es106.js +140 -27
  66. package/dist/es/standards-sdk.es106.js.map +1 -1
  67. package/dist/es/standards-sdk.es107.js +27 -20
  68. package/dist/es/standards-sdk.es107.js.map +1 -1
  69. package/dist/es/standards-sdk.es108.js +18 -156
  70. package/dist/es/standards-sdk.es108.js.map +1 -1
  71. package/dist/es/standards-sdk.es109.js +148 -196
  72. package/dist/es/standards-sdk.es109.js.map +1 -1
  73. package/dist/es/standards-sdk.es110.js +160 -747
  74. package/dist/es/standards-sdk.es110.js.map +1 -1
  75. package/dist/es/standards-sdk.es111.js +786 -9
  76. package/dist/es/standards-sdk.es111.js.map +1 -1
  77. package/dist/es/standards-sdk.es112.js +13 -567
  78. package/dist/es/standards-sdk.es112.js.map +1 -1
  79. package/dist/es/standards-sdk.es113.js +541 -576
  80. package/dist/es/standards-sdk.es113.js.map +1 -1
  81. package/dist/es/standards-sdk.es114.js +601 -12
  82. package/dist/es/standards-sdk.es114.js.map +1 -1
  83. package/dist/es/standards-sdk.es115.js +13 -2
  84. package/dist/es/standards-sdk.es115.js.map +1 -1
  85. package/dist/es/standards-sdk.es116.js +2 -83
  86. package/dist/es/standards-sdk.es116.js.map +1 -1
  87. package/dist/es/standards-sdk.es117.js +80 -36
  88. package/dist/es/standards-sdk.es117.js.map +1 -1
  89. package/dist/es/standards-sdk.es118.js +39 -2
  90. package/dist/es/standards-sdk.es118.js.map +1 -1
  91. package/dist/es/standards-sdk.es119.js +2 -223
  92. package/dist/es/standards-sdk.es119.js.map +1 -1
  93. package/dist/es/standards-sdk.es12.js +1 -1
  94. package/dist/es/standards-sdk.es120.js +193 -1110
  95. package/dist/es/standards-sdk.es120.js.map +1 -1
  96. package/dist/es/standards-sdk.es121.js +1059 -225
  97. package/dist/es/standards-sdk.es121.js.map +1 -1
  98. package/dist/es/standards-sdk.es122.js +303 -419
  99. package/dist/es/standards-sdk.es122.js.map +1 -1
  100. package/dist/es/standards-sdk.es123.js +418 -351
  101. package/dist/es/standards-sdk.es123.js.map +1 -1
  102. package/dist/es/standards-sdk.es124.js +348 -785
  103. package/dist/es/standards-sdk.es124.js.map +1 -1
  104. package/dist/es/standards-sdk.es125.js +767 -183
  105. package/dist/es/standards-sdk.es125.js.map +1 -1
  106. package/dist/es/standards-sdk.es126.js +153 -1512
  107. package/dist/es/standards-sdk.es126.js.map +1 -1
  108. package/dist/es/standards-sdk.es127.js +1373 -1987
  109. package/dist/es/standards-sdk.es127.js.map +1 -1
  110. package/dist/es/standards-sdk.es128.js +2208 -67
  111. package/dist/es/standards-sdk.es128.js.map +1 -1
  112. package/dist/es/standards-sdk.es129.js +59 -79
  113. package/dist/es/standards-sdk.es129.js.map +1 -1
  114. package/dist/es/standards-sdk.es13.js +1 -1
  115. package/dist/es/standards-sdk.es130.js +80 -152
  116. package/dist/es/standards-sdk.es130.js.map +1 -1
  117. package/dist/es/standards-sdk.es131.js +159 -7
  118. package/dist/es/standards-sdk.es131.js.map +1 -1
  119. package/dist/es/standards-sdk.es132.js +7 -86
  120. package/dist/es/standards-sdk.es132.js.map +1 -1
  121. package/dist/es/standards-sdk.es133.js +65 -44
  122. package/dist/es/standards-sdk.es133.js.map +1 -1
  123. package/dist/es/standards-sdk.es134.js +65 -28
  124. package/dist/es/standards-sdk.es134.js.map +1 -1
  125. package/dist/es/standards-sdk.es135.js +69 -125
  126. package/dist/es/standards-sdk.es135.js.map +1 -1
  127. package/dist/es/standards-sdk.es136.js +28 -42
  128. package/dist/es/standards-sdk.es136.js.map +1 -1
  129. package/dist/es/standards-sdk.es137.js +132 -50
  130. package/dist/es/standards-sdk.es137.js.map +1 -1
  131. package/dist/es/standards-sdk.es138.js +36 -58
  132. package/dist/es/standards-sdk.es138.js.map +1 -1
  133. package/dist/es/standards-sdk.es139.js +56 -766
  134. package/dist/es/standards-sdk.es139.js.map +1 -1
  135. package/dist/es/standards-sdk.es14.js +1 -1
  136. package/dist/es/standards-sdk.es140.js +746 -12254
  137. package/dist/es/standards-sdk.es140.js.map +1 -1
  138. package/dist/es/standards-sdk.es141.js +12235 -133
  139. package/dist/es/standards-sdk.es141.js.map +1 -1
  140. package/dist/es/standards-sdk.es142.js +13 -318
  141. package/dist/es/standards-sdk.es142.js.map +1 -1
  142. package/dist/es/standards-sdk.es143.js +120 -294
  143. package/dist/es/standards-sdk.es143.js.map +1 -1
  144. package/dist/es/standards-sdk.es144.js +191 -322
  145. package/dist/es/standards-sdk.es144.js.map +1 -1
  146. package/dist/es/standards-sdk.es145.js +294 -279
  147. package/dist/es/standards-sdk.es145.js.map +1 -1
  148. package/dist/es/standards-sdk.es146.js +440 -63
  149. package/dist/es/standards-sdk.es146.js.map +1 -1
  150. package/dist/es/standards-sdk.es147.js +327 -13
  151. package/dist/es/standards-sdk.es147.js.map +1 -1
  152. package/dist/es/standards-sdk.es148.js +79 -0
  153. package/dist/es/standards-sdk.es148.js.map +1 -0
  154. package/dist/es/standards-sdk.es15.js +1 -1
  155. package/dist/es/standards-sdk.es16.js +1 -1
  156. package/dist/es/standards-sdk.es17.js +5 -11
  157. package/dist/es/standards-sdk.es17.js.map +1 -1
  158. package/dist/es/standards-sdk.es19.js +12 -17
  159. package/dist/es/standards-sdk.es19.js.map +1 -1
  160. package/dist/es/standards-sdk.es2.js +26 -72
  161. package/dist/es/standards-sdk.es2.js.map +1 -1
  162. package/dist/es/standards-sdk.es20.js +9 -14
  163. package/dist/es/standards-sdk.es20.js.map +1 -1
  164. package/dist/es/standards-sdk.es21.js +1 -1
  165. package/dist/es/standards-sdk.es22.js +1 -1
  166. package/dist/es/standards-sdk.es23.js +1 -1
  167. package/dist/es/standards-sdk.es24.js +1 -1
  168. package/dist/es/standards-sdk.es25.js +1 -1
  169. package/dist/es/standards-sdk.es26.js +1 -1
  170. package/dist/es/standards-sdk.es27.js +1 -1
  171. package/dist/es/standards-sdk.es28.js +12 -17
  172. package/dist/es/standards-sdk.es28.js.map +1 -1
  173. package/dist/es/standards-sdk.es3.js +2 -2
  174. package/dist/es/standards-sdk.es31.js +2 -2
  175. package/dist/es/standards-sdk.es32.js +4 -4
  176. package/dist/es/standards-sdk.es33.js +1 -1
  177. package/dist/es/standards-sdk.es36.js +6 -12
  178. package/dist/es/standards-sdk.es36.js.map +1 -1
  179. package/dist/es/standards-sdk.es37.js +4 -4
  180. package/dist/es/standards-sdk.es38.js +2 -2
  181. package/dist/es/standards-sdk.es39.js +2 -2
  182. package/dist/es/standards-sdk.es40.js +1 -1
  183. package/dist/es/standards-sdk.es41.js +1 -1
  184. package/dist/es/standards-sdk.es42.js +2 -2
  185. package/dist/es/standards-sdk.es47.js +1 -1
  186. package/dist/es/standards-sdk.es5.js +2 -2
  187. package/dist/es/standards-sdk.es52.js +1 -1
  188. package/dist/es/standards-sdk.es54.js +1 -1
  189. package/dist/es/standards-sdk.es57.js +2 -2
  190. package/dist/es/standards-sdk.es59.js +1 -1
  191. package/dist/es/standards-sdk.es6.js +2 -2
  192. package/dist/es/standards-sdk.es60.js +1 -1
  193. package/dist/es/standards-sdk.es61.js +7 -12
  194. package/dist/es/standards-sdk.es61.js.map +1 -1
  195. package/dist/es/standards-sdk.es63.js +1 -1
  196. package/dist/es/standards-sdk.es65.js +2 -2
  197. package/dist/es/standards-sdk.es66.js +3 -3
  198. package/dist/es/standards-sdk.es69.js +2 -2
  199. package/dist/es/standards-sdk.es7.js +2 -2
  200. package/dist/es/standards-sdk.es70.js +3 -3
  201. package/dist/es/standards-sdk.es71.js +2 -2
  202. package/dist/es/standards-sdk.es72.js +1 -1
  203. package/dist/es/standards-sdk.es73.js.map +1 -1
  204. package/dist/es/standards-sdk.es75.js +2 -2
  205. package/dist/es/standards-sdk.es77.js +5 -3
  206. package/dist/es/standards-sdk.es77.js.map +1 -1
  207. package/dist/es/standards-sdk.es78.js +4 -10
  208. package/dist/es/standards-sdk.es78.js.map +1 -1
  209. package/dist/es/standards-sdk.es79.js +1 -1
  210. package/dist/es/standards-sdk.es8.js +1 -1
  211. package/dist/es/standards-sdk.es80.js +26 -15
  212. package/dist/es/standards-sdk.es80.js.map +1 -1
  213. package/dist/es/standards-sdk.es82.js +12 -4
  214. package/dist/es/standards-sdk.es82.js.map +1 -1
  215. package/dist/es/standards-sdk.es83.js +7 -6
  216. package/dist/es/standards-sdk.es83.js.map +1 -1
  217. package/dist/es/standards-sdk.es84.js +7 -5
  218. package/dist/es/standards-sdk.es84.js.map +1 -1
  219. package/dist/es/standards-sdk.es86.js +55 -21
  220. package/dist/es/standards-sdk.es86.js.map +1 -1
  221. package/dist/es/standards-sdk.es87.js +22 -75
  222. package/dist/es/standards-sdk.es87.js.map +1 -1
  223. package/dist/es/standards-sdk.es88.js +45 -30
  224. package/dist/es/standards-sdk.es88.js.map +1 -1
  225. package/dist/es/standards-sdk.es89.js +57 -22
  226. package/dist/es/standards-sdk.es89.js.map +1 -1
  227. package/dist/es/standards-sdk.es90.js +28 -23
  228. package/dist/es/standards-sdk.es90.js.map +1 -1
  229. package/dist/es/standards-sdk.es91.js +23 -167
  230. package/dist/es/standards-sdk.es91.js.map +1 -1
  231. package/dist/es/standards-sdk.es92.js +158 -119
  232. package/dist/es/standards-sdk.es92.js.map +1 -1
  233. package/dist/es/standards-sdk.es93.js +68 -95
  234. package/dist/es/standards-sdk.es93.js.map +1 -1
  235. package/dist/es/standards-sdk.es94.js +136 -119
  236. package/dist/es/standards-sdk.es94.js.map +1 -1
  237. package/dist/es/standards-sdk.es95.js +139 -39
  238. package/dist/es/standards-sdk.es95.js.map +1 -1
  239. package/dist/es/standards-sdk.es96.js +42 -257
  240. package/dist/es/standards-sdk.es96.js.map +1 -1
  241. package/dist/es/standards-sdk.es97.js +243 -80
  242. package/dist/es/standards-sdk.es97.js.map +1 -1
  243. package/dist/es/standards-sdk.es98.js +47 -48
  244. package/dist/es/standards-sdk.es98.js.map +1 -1
  245. package/dist/es/standards-sdk.es99.js +100 -28
  246. package/dist/es/standards-sdk.es99.js.map +1 -1
  247. package/dist/es/utils/dynamic-import.d.ts +1 -0
  248. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  249. package/package.json +63 -65
@@ -1,87 +1,40 @@
1
+ import { optionalImportSync } from "./standards-sdk.es135.js";
1
2
  const accountIdPattern = /^\d+\.\d+\.\d+$/u;
2
3
  const prototypeMarker = Symbol.for("standards-sdk.topic-auto-renew.patch");
3
4
  const accountMarker = Symbol.for("standards-sdk.account-id.patch");
4
- const nodeRequire = getNodeRequire();
5
- if (nodeRequire) {
6
- bootstrap(nodeRequire);
7
- } else {
8
- Reflect.set(globalThis, "__standardsSdkTopicAutoRenewPatched", false);
5
+ const accountModule = optionalImportSync(
6
+ "@hashgraph/sdk/lib/account/AccountId.cjs"
7
+ );
8
+ const topicModule = optionalImportSync(
9
+ "@hashgraph/sdk/lib/topic/TopicCreateTransaction.cjs"
10
+ );
11
+ const sdkModule = optionalImportSync("@hashgraph/sdk");
12
+ const candidates = [];
13
+ if (accountModule?.default && topicModule?.default) {
14
+ candidates.push({
15
+ accountId: accountModule.default,
16
+ topic: topicModule.default
17
+ });
9
18
  }
10
- function bootstrap(requireFn) {
11
- const accountModule = safeRequire(
12
- requireFn,
13
- "@hashgraph/sdk/lib/account/AccountId.cjs"
14
- );
15
- const topicModule = safeRequire(
16
- requireFn,
17
- "@hashgraph/sdk/lib/topic/TopicCreateTransaction.cjs"
18
- );
19
- const sdkModule = safeRequire(requireFn, "@hashgraph/sdk");
20
- const candidates = [];
21
- if (accountModule?.default && topicModule?.default) {
22
- candidates.push({
23
- accountId: accountModule.default,
24
- topic: topicModule.default
25
- });
26
- }
27
- if (sdkModule) {
28
- candidates.push({
29
- accountId: sdkModule.AccountId ?? sdkModule.default?.AccountId,
30
- topic: sdkModule.TopicCreateTransaction ?? sdkModule.default?.TopicCreateTransaction
31
- });
32
- }
33
- for (const candidate of candidates) {
34
- patchTopicModule(candidate.topic, candidate.accountId);
35
- }
36
- Reflect.set(globalThis, "__standardsSdkTopicAutoRenewPatched", true);
19
+ if (sdkModule) {
20
+ candidates.push({
21
+ accountId: sdkModule.AccountId ?? sdkModule.default?.AccountId,
22
+ topic: sdkModule.TopicCreateTransaction ?? sdkModule.default?.TopicCreateTransaction
23
+ });
37
24
  }
38
- function getNodeRequire() {
39
- const moduleConstructor = getModuleConstructor();
40
- if (moduleConstructor?.createRequire) {
41
- try {
42
- return moduleConstructor.createRequire(import.meta.url);
43
- } catch {
44
- return null;
45
- }
46
- }
47
- if (typeof require === "function") {
48
- return require;
49
- }
50
- return null;
51
- }
52
- function getModuleConstructor() {
53
- try {
54
- if (typeof module !== "undefined" && module?.createRequire) {
55
- return module;
56
- }
57
- } catch {
58
- }
59
- try {
60
- if (typeof require === "function") {
61
- const requiredModule = require("module");
62
- if (requiredModule?.createRequire) {
63
- return requiredModule;
64
- }
65
- }
66
- } catch {
67
- }
68
- return null;
69
- }
70
- function safeRequire(requireFn, moduleId) {
71
- try {
72
- return requireFn(moduleId);
73
- } catch {
74
- return null;
75
- }
25
+ let patched = false;
26
+ for (const candidate of candidates) {
27
+ patched = patchTopicModule(candidate.topic, candidate.accountId) || patched;
76
28
  }
29
+ Reflect.set(globalThis, "__standardsSdkTopicAutoRenewPatched", patched);
77
30
  function patchTopicModule(topicCtor, accountCtor) {
78
31
  if (!topicCtor || !accountCtor) {
79
- return;
32
+ return false;
80
33
  }
81
34
  patchAccountId(accountCtor);
82
35
  const prototype = topicCtor.prototype;
83
36
  if (Reflect.get(prototype, prototypeMarker)) {
84
- return;
37
+ return false;
85
38
  }
86
39
  const originalSet = prototype.setAutoRenewAccountId;
87
40
  const originalFreeze = prototype.freezeWith;
@@ -113,6 +66,7 @@ function patchTopicModule(topicCtor, accountCtor) {
113
66
  return originalFreeze.call(this, client);
114
67
  };
115
68
  Reflect.set(prototype, prototypeMarker, true);
69
+ return true;
116
70
  }
117
71
  function patchAccountId(accountCtor) {
118
72
  if (Reflect.get(accountCtor, accountMarker)) {
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es2.js","sources":["../../src/patches/topic-autorenew-patch.ts"],"sourcesContent":["type TopicCreateTransactionCtor =\n (typeof import('@hashgraph/sdk'))['TopicCreateTransaction'];\ntype AccountIdCtor = (typeof import('@hashgraph/sdk'))['AccountId'];\ntype AccountIdInstance = InstanceType<AccountIdCtor>;\ntype NodeRequire = (moduleId: string) => unknown;\ntype ModuleConstructor = {\n createRequire?: (url: string | URL | undefined) => NodeRequire;\n};\n\ndeclare const module: ModuleConstructor | undefined;\ndeclare const require: NodeRequire | undefined;\n\nconst accountIdPattern = /^\\d+\\.\\d+\\.\\d+$/u;\nconst prototypeMarker = Symbol.for('standards-sdk.topic-auto-renew.patch');\nconst accountMarker = Symbol.for('standards-sdk.account-id.patch');\n\nconst nodeRequire = getNodeRequire();\n\nif (nodeRequire) {\n bootstrap(nodeRequire);\n} else {\n Reflect.set(globalThis, '__standardsSdkTopicAutoRenewPatched', false);\n}\n\nfunction bootstrap(requireFn: NodeRequire): void {\n const accountModule = safeRequire<{ default: AccountIdCtor }>(\n requireFn,\n '@hashgraph/sdk/lib/account/AccountId.cjs',\n );\n const topicModule = safeRequire<{ default: TopicCreateTransactionCtor }>(\n requireFn,\n '@hashgraph/sdk/lib/topic/TopicCreateTransaction.cjs',\n );\n const sdkModule = safeRequire<{\n AccountId?: AccountIdCtor;\n TopicCreateTransaction?: TopicCreateTransactionCtor;\n default?: {\n AccountId?: AccountIdCtor;\n TopicCreateTransaction?: TopicCreateTransactionCtor;\n };\n }>(requireFn, '@hashgraph/sdk');\n\n const candidates: Array<{\n accountId?: AccountIdCtor;\n topic?: TopicCreateTransactionCtor;\n }> = [];\n\n if (accountModule?.default && topicModule?.default) {\n candidates.push({\n accountId: accountModule.default,\n topic: topicModule.default,\n });\n }\n\n if (sdkModule) {\n candidates.push({\n accountId: sdkModule.AccountId ?? sdkModule.default?.AccountId,\n topic:\n sdkModule.TopicCreateTransaction ??\n sdkModule.default?.TopicCreateTransaction,\n });\n }\n\n for (const candidate of candidates) {\n patchTopicModule(candidate.topic, candidate.accountId);\n }\n\n Reflect.set(globalThis, '__standardsSdkTopicAutoRenewPatched', true);\n}\n\nfunction getNodeRequire(): NodeRequire | null {\n const moduleConstructor = getModuleConstructor();\n\n if (moduleConstructor?.createRequire) {\n try {\n return moduleConstructor.createRequire(import.meta.url);\n } catch {\n return null;\n }\n }\n\n if (typeof require === 'function') {\n return require;\n }\n\n return null;\n}\n\nfunction getModuleConstructor(): ModuleConstructor | null {\n try {\n if (typeof module !== 'undefined' && module?.createRequire) {\n return module;\n }\n } catch {}\n\n try {\n if (typeof require === 'function') {\n const requiredModule = require('module') as ModuleConstructor;\n\n if (requiredModule?.createRequire) {\n return requiredModule;\n }\n }\n } catch {}\n\n return null;\n}\n\nfunction safeRequire<T>(requireFn: NodeRequire, moduleId: string): T | null {\n try {\n return requireFn(moduleId) as T;\n } catch {\n return null;\n }\n}\n\nfunction patchTopicModule(\n topicCtor?: TopicCreateTransactionCtor,\n accountCtor?: AccountIdCtor,\n): void {\n if (!topicCtor || !accountCtor) {\n return;\n }\n\n patchAccountId(accountCtor);\n\n const prototype = topicCtor.prototype;\n\n if (Reflect.get(prototype, prototypeMarker)) {\n return;\n }\n\n const originalSet = prototype.setAutoRenewAccountId;\n const originalFreeze = prototype.freezeWith;\n\n prototype.setAutoRenewAccountId = function setAutoRenewAccountIdPatched(\n this: TopicPrototype,\n autoRenewAccountId: unknown,\n ) {\n const resolved = resolveAccountId(autoRenewAccountId, accountCtor);\n\n if (resolved) {\n requireNotFrozen(this);\n this._autoRenewAccountId = resolved;\n return this;\n }\n\n return originalSet.call(\n this,\n autoRenewAccountId as AccountIdInstance | string,\n );\n };\n\n prototype.freezeWith = function freezeWithPatched(\n this: TopicPrototype,\n client?: unknown,\n ) {\n if (\n !this.getAutoRenewAccountId ||\n typeof this.getAutoRenewAccountId !== 'function'\n ) {\n return originalFreeze.call(this, client);\n }\n\n const current = this.getAutoRenewAccountId();\n\n if (!current) {\n const transactionAccountId = this.transactionId?.accountId;\n const operatorAccountId = (client as ClientLike | null | undefined)\n ?.operatorAccountId;\n const resolved =\n resolveAccountId(transactionAccountId, accountCtor) ??\n resolveAccountId(operatorAccountId, accountCtor);\n\n if (resolved) {\n this._autoRenewAccountId = resolved;\n }\n }\n\n return originalFreeze.call(this, client);\n };\n\n Reflect.set(prototype, prototypeMarker, true);\n}\n\nfunction patchAccountId(accountCtor: AccountIdCtor): void {\n if (Reflect.get(accountCtor, accountMarker)) {\n return;\n }\n\n const originalFromString = accountCtor.fromString.bind(accountCtor);\n\n accountCtor.fromString = function accountIdFromStringPatched(\n value: unknown,\n ): AccountIdInstance {\n if (typeof value === 'string') {\n return originalFromString(value);\n }\n\n const extracted = extractAccountIdString(value);\n\n if (extracted) {\n return originalFromString(extracted);\n }\n\n if (isProtoAccountId(value)) {\n const shard = toNumericString(value.shard);\n const realm = toNumericString(value.realm);\n const num = toNumericString(value.num);\n\n if (shard && realm && num) {\n return originalFromString(`${shard}.${realm}.${num}`);\n }\n }\n\n return originalFromString(value as string);\n };\n\n Reflect.set(accountCtor, accountMarker, true);\n}\n\nfunction resolveAccountId(\n value: unknown,\n accountCtor: AccountIdCtor,\n): AccountIdInstance | null {\n if (value instanceof accountCtor) {\n return value;\n }\n\n if (typeof value === 'string' && accountIdPattern.test(value)) {\n return accountCtor.fromString(value);\n }\n\n const normalized = normalizeAutoRenewValue(value);\n\n if (normalized) {\n return accountCtor.fromString(normalized);\n }\n\n return null;\n}\n\nfunction normalizeAutoRenewValue(value: unknown): string | null {\n if (typeof value === 'string' && accountIdPattern.test(value)) {\n return value;\n }\n\n const extracted = extractAccountIdString(value);\n\n if (extracted) {\n return extracted;\n }\n\n if (isProtoAccountId(value)) {\n const shard = toNumericString(value.shard);\n const realm = toNumericString(value.realm);\n const num = toNumericString(value.num);\n\n if (shard && realm && num) {\n const composed = `${shard}.${realm}.${num}`;\n if (accountIdPattern.test(composed)) {\n return composed;\n }\n }\n }\n\n return null;\n}\n\nfunction extractAccountIdString(value: unknown): string | null {\n if (typeof value !== 'object' || value === null) {\n return null;\n }\n\n const candidate = value as { toString?: () => unknown };\n const method = candidate.toString;\n\n if (typeof method !== 'function') {\n return null;\n }\n\n const result = method.call(value);\n\n if (typeof result !== 'string') {\n return null;\n }\n\n return accountIdPattern.test(result) ? result : null;\n}\n\nfunction isProtoAccountId(value: unknown): value is {\n shard: { toString: () => string };\n realm: { toString: () => string };\n num: { toString: () => string };\n} {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n const candidate = value as Record<string, unknown>;\n\n return (\n hasToString(candidate.shard) &&\n hasToString(candidate.realm) &&\n hasToString(candidate.num)\n );\n}\n\nfunction hasToString(value: unknown): value is { toString: () => string } {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { toString?: unknown }).toString === 'function'\n );\n}\n\nfunction toNumericString(value: unknown): string | null {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return String(Math.trunc(value));\n }\n\n if (typeof value === 'bigint') {\n return value.toString();\n }\n\n if (hasToString(value)) {\n const result = value.toString();\n if (/^\\d+$/u.test(result)) {\n return result;\n }\n }\n\n return null;\n}\n\nfunction requireNotFrozen(target: TopicPrototype): void {\n const candidate = target as { _requireNotFrozen?: () => void };\n candidate._requireNotFrozen?.();\n}\n\ntype ClientLike = {\n operatorAccountId?: unknown;\n};\n\ntype TopicPrototype = {\n setAutoRenewAccountId?: (...args: unknown[]) => unknown;\n freezeWith?: (...args: unknown[]) => unknown;\n getAutoRenewAccountId?: () => AccountIdInstance | null;\n transactionId?: { accountId?: unknown } | null;\n _autoRenewAccountId?: AccountIdInstance | null;\n [key: string]: unknown;\n};\n"],"names":[],"mappings":"AAYA,MAAM,mBAAmB;AACzB,MAAM,kBAAkB,OAAO,IAAI,sCAAsC;AACzE,MAAM,gBAAgB,OAAO,IAAI,gCAAgC;AAEjE,MAAM,cAAc,eAAA;AAEpB,IAAI,aAAa;AACf,YAAU,WAAW;AACvB,OAAO;AACL,UAAQ,IAAI,YAAY,uCAAuC,KAAK;AACtE;AAEA,SAAS,UAAU,WAA8B;AAC/C,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,YAAY,YAOf,WAAW,gBAAgB;AAE9B,QAAM,aAGD,CAAA;AAEL,MAAI,eAAe,WAAW,aAAa,SAAS;AAClD,eAAW,KAAK;AAAA,MACd,WAAW,cAAc;AAAA,MACzB,OAAO,YAAY;AAAA,IAAA,CACpB;AAAA,EACH;AAEA,MAAI,WAAW;AACb,eAAW,KAAK;AAAA,MACd,WAAW,UAAU,aAAa,UAAU,SAAS;AAAA,MACrD,OACE,UAAU,0BACV,UAAU,SAAS;AAAA,IAAA,CACtB;AAAA,EACH;AAEA,aAAW,aAAa,YAAY;AAClC,qBAAiB,UAAU,OAAO,UAAU,SAAS;AAAA,EACvD;AAEA,UAAQ,IAAI,YAAY,uCAAuC,IAAI;AACrE;AAEA,SAAS,iBAAqC;AAC5C,QAAM,oBAAoB,qBAAA;AAE1B,MAAI,mBAAmB,eAAe;AACpC,QAAI;AACF,aAAO,kBAAkB,cAAc,YAAY,GAAG;AAAA,IACxD,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,uBAAiD;AACxD,MAAI;AACF,QAAI,OAAO,WAAW,eAAe,QAAQ,eAAe;AAC1D,aAAO;AAAA,IACT;AAAA,EACF,QAAQ;AAAA,EAAC;AAET,MAAI;AACF,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,iBAAiB,QAAQ,QAAQ;AAEvC,UAAI,gBAAgB,eAAe;AACjC,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,QAAQ;AAAA,EAAC;AAET,SAAO;AACT;AAEA,SAAS,YAAe,WAAwB,UAA4B;AAC1E,MAAI;AACF,WAAO,UAAU,QAAQ;AAAA,EAC3B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,iBACP,WACA,aACM;AACN,MAAI,CAAC,aAAa,CAAC,aAAa;AAC9B;AAAA,EACF;AAEA,iBAAe,WAAW;AAE1B,QAAM,YAAY,UAAU;AAE5B,MAAI,QAAQ,IAAI,WAAW,eAAe,GAAG;AAC3C;AAAA,EACF;AAEA,QAAM,cAAc,UAAU;AAC9B,QAAM,iBAAiB,UAAU;AAEjC,YAAU,wBAAwB,SAAS,6BAEzC,oBACA;AACA,UAAM,WAAW,iBAAiB,oBAAoB,WAAW;AAEjE,QAAI,UAAU;AACZ,uBAAiB,IAAI;AACrB,WAAK,sBAAsB;AAC3B,aAAO;AAAA,IACT;AAEA,WAAO,YAAY;AAAA,MACjB;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,YAAU,aAAa,SAAS,kBAE9B,QACA;AACA,QACE,CAAC,KAAK,yBACN,OAAO,KAAK,0BAA0B,YACtC;AACA,aAAO,eAAe,KAAK,MAAM,MAAM;AAAA,IACzC;AAEA,UAAM,UAAU,KAAK,sBAAA;AAErB,QAAI,CAAC,SAAS;AACZ,YAAM,uBAAuB,KAAK,eAAe;AACjD,YAAM,oBAAqB,QACvB;AACJ,YAAM,WACJ,iBAAiB,sBAAsB,WAAW,KAClD,iBAAiB,mBAAmB,WAAW;AAEjD,UAAI,UAAU;AACZ,aAAK,sBAAsB;AAAA,MAC7B;AAAA,IACF;AAEA,WAAO,eAAe,KAAK,MAAM,MAAM;AAAA,EACzC;AAEA,UAAQ,IAAI,WAAW,iBAAiB,IAAI;AAC9C;AAEA,SAAS,eAAe,aAAkC;AACxD,MAAI,QAAQ,IAAI,aAAa,aAAa,GAAG;AAC3C;AAAA,EACF;AAEA,QAAM,qBAAqB,YAAY,WAAW,KAAK,WAAW;AAElE,cAAY,aAAa,SAAS,2BAChC,OACmB;AACnB,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,mBAAmB,KAAK;AAAA,IACjC;AAEA,UAAM,YAAY,uBAAuB,KAAK;AAE9C,QAAI,WAAW;AACb,aAAO,mBAAmB,SAAS;AAAA,IACrC;AAEA,QAAI,iBAAiB,KAAK,GAAG;AAC3B,YAAM,QAAQ,gBAAgB,MAAM,KAAK;AACzC,YAAM,QAAQ,gBAAgB,MAAM,KAAK;AACzC,YAAM,MAAM,gBAAgB,MAAM,GAAG;AAErC,UAAI,SAAS,SAAS,KAAK;AACzB,eAAO,mBAAmB,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE;AAAA,MACtD;AAAA,IACF;AAEA,WAAO,mBAAmB,KAAe;AAAA,EAC3C;AAEA,UAAQ,IAAI,aAAa,eAAe,IAAI;AAC9C;AAEA,SAAS,iBACP,OACA,aAC0B;AAC1B,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,UAAU,YAAY,iBAAiB,KAAK,KAAK,GAAG;AAC7D,WAAO,YAAY,WAAW,KAAK;AAAA,EACrC;AAEA,QAAM,aAAa,wBAAwB,KAAK;AAEhD,MAAI,YAAY;AACd,WAAO,YAAY,WAAW,UAAU;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,SAAS,wBAAwB,OAA+B;AAC9D,MAAI,OAAO,UAAU,YAAY,iBAAiB,KAAK,KAAK,GAAG;AAC7D,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,uBAAuB,KAAK;AAE9C,MAAI,WAAW;AACb,WAAO;AAAA,EACT;AAEA,MAAI,iBAAiB,KAAK,GAAG;AAC3B,UAAM,QAAQ,gBAAgB,MAAM,KAAK;AACzC,UAAM,QAAQ,gBAAgB,MAAM,KAAK;AACzC,UAAM,MAAM,gBAAgB,MAAM,GAAG;AAErC,QAAI,SAAS,SAAS,KAAK;AACzB,YAAM,WAAW,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG;AACzC,UAAI,iBAAiB,KAAK,QAAQ,GAAG;AACnC,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,uBAAuB,OAA+B;AAC7D,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAClB,QAAM,SAAS,UAAU;AAEzB,MAAI,OAAO,WAAW,YAAY;AAChC,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,OAAO,KAAK,KAAK;AAEhC,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO;AAAA,EACT;AAEA,SAAO,iBAAiB,KAAK,MAAM,IAAI,SAAS;AAClD;AAEA,SAAS,iBAAiB,OAIxB;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAElB,SACE,YAAY,UAAU,KAAK,KAC3B,YAAY,UAAU,KAAK,KAC3B,YAAY,UAAU,GAAG;AAE7B;AAEA,SAAS,YAAY,OAAqD;AACxE,SACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAAiC,aAAa;AAE1D;AAEA,SAAS,gBAAgB,OAA+B;AACtD,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,GAAG;AACvD,WAAO,OAAO,KAAK,MAAM,KAAK,CAAC;AAAA,EACjC;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,MAAM,SAAA;AAAA,EACf;AAEA,MAAI,YAAY,KAAK,GAAG;AACtB,UAAM,SAAS,MAAM,SAAA;AACrB,QAAI,SAAS,KAAK,MAAM,GAAG;AACzB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,iBAAiB,QAA8B;AACtD,QAAM,YAAY;AAClB,YAAU,oBAAA;AACZ;"}
1
+ {"version":3,"file":"standards-sdk.es2.js","sources":["../../src/patches/topic-autorenew-patch.ts"],"sourcesContent":["type TopicCreateTransactionCtor =\n (typeof import('@hashgraph/sdk'))['TopicCreateTransaction'];\ntype AccountIdCtor = (typeof import('@hashgraph/sdk'))['AccountId'];\ntype AccountIdInstance = InstanceType<AccountIdCtor>;\nimport { optionalImportSync } from '../utils/dynamic-import';\n\nconst accountIdPattern = /^\\d+\\.\\d+\\.\\d+$/u;\nconst prototypeMarker = Symbol.for('standards-sdk.topic-auto-renew.patch');\nconst accountMarker = Symbol.for('standards-sdk.account-id.patch');\n\nconst accountModule = optionalImportSync<{ default: AccountIdCtor }>(\n '@hashgraph/sdk/lib/account/AccountId.cjs',\n);\nconst topicModule = optionalImportSync<{ default: TopicCreateTransactionCtor }>(\n '@hashgraph/sdk/lib/topic/TopicCreateTransaction.cjs',\n);\nconst sdkModule = optionalImportSync<{\n AccountId?: AccountIdCtor;\n TopicCreateTransaction?: TopicCreateTransactionCtor;\n default?: {\n AccountId?: AccountIdCtor;\n TopicCreateTransaction?: TopicCreateTransactionCtor;\n };\n}>('@hashgraph/sdk');\n\nconst candidates: Array<{\n accountId?: AccountIdCtor;\n topic?: TopicCreateTransactionCtor;\n}> = [];\n\nif (accountModule?.default && topicModule?.default) {\n candidates.push({\n accountId: accountModule.default,\n topic: topicModule.default,\n });\n}\n\nif (sdkModule) {\n candidates.push({\n accountId: sdkModule.AccountId ?? sdkModule.default?.AccountId,\n topic:\n sdkModule.TopicCreateTransaction ?? sdkModule.default?.TopicCreateTransaction,\n });\n}\n\nlet patched = false;\n\nfor (const candidate of candidates) {\n patched = patchTopicModule(candidate.topic, candidate.accountId) || patched;\n}\n\nReflect.set(globalThis, '__standardsSdkTopicAutoRenewPatched', patched);\n\nfunction patchTopicModule(\n topicCtor?: TopicCreateTransactionCtor,\n accountCtor?: AccountIdCtor,\n): boolean {\n if (!topicCtor || !accountCtor) {\n return false;\n }\n\n patchAccountId(accountCtor);\n\n const prototype = topicCtor.prototype;\n\n if (Reflect.get(prototype, prototypeMarker)) {\n return false;\n }\n\n const originalSet = prototype.setAutoRenewAccountId;\n const originalFreeze = prototype.freezeWith;\n\n prototype.setAutoRenewAccountId = function setAutoRenewAccountIdPatched(\n this: TopicPrototype,\n autoRenewAccountId: unknown,\n ) {\n const resolved = resolveAccountId(autoRenewAccountId, accountCtor);\n\n if (resolved) {\n requireNotFrozen(this);\n this._autoRenewAccountId = resolved;\n return this;\n }\n\n return originalSet.call(\n this,\n autoRenewAccountId as AccountIdInstance | string,\n );\n };\n\n prototype.freezeWith = function freezeWithPatched(\n this: TopicPrototype,\n client?: unknown,\n ) {\n if (\n !this.getAutoRenewAccountId ||\n typeof this.getAutoRenewAccountId !== 'function'\n ) {\n return originalFreeze.call(this, client);\n }\n\n const current = this.getAutoRenewAccountId();\n\n if (!current) {\n const transactionAccountId = this.transactionId?.accountId;\n const operatorAccountId = (client as ClientLike | null | undefined)\n ?.operatorAccountId;\n const resolved =\n resolveAccountId(transactionAccountId, accountCtor) ??\n resolveAccountId(operatorAccountId, accountCtor);\n\n if (resolved) {\n this._autoRenewAccountId = resolved;\n }\n }\n\n return originalFreeze.call(this, client);\n };\n\n Reflect.set(prototype, prototypeMarker, true);\n return true;\n}\n\nfunction patchAccountId(accountCtor: AccountIdCtor): void {\n if (Reflect.get(accountCtor, accountMarker)) {\n return;\n }\n\n const originalFromString = accountCtor.fromString.bind(accountCtor);\n\n accountCtor.fromString = function accountIdFromStringPatched(\n value: unknown,\n ): AccountIdInstance {\n if (typeof value === 'string') {\n return originalFromString(value);\n }\n\n const extracted = extractAccountIdString(value);\n\n if (extracted) {\n return originalFromString(extracted);\n }\n\n if (isProtoAccountId(value)) {\n const shard = toNumericString(value.shard);\n const realm = toNumericString(value.realm);\n const num = toNumericString(value.num);\n\n if (shard && realm && num) {\n return originalFromString(`${shard}.${realm}.${num}`);\n }\n }\n\n return originalFromString(value as string);\n };\n\n Reflect.set(accountCtor, accountMarker, true);\n}\n\nfunction resolveAccountId(\n value: unknown,\n accountCtor: AccountIdCtor,\n): AccountIdInstance | null {\n if (value instanceof accountCtor) {\n return value;\n }\n\n if (typeof value === 'string' && accountIdPattern.test(value)) {\n return accountCtor.fromString(value);\n }\n\n const normalized = normalizeAutoRenewValue(value);\n\n if (normalized) {\n return accountCtor.fromString(normalized);\n }\n\n return null;\n}\n\nfunction normalizeAutoRenewValue(value: unknown): string | null {\n if (typeof value === 'string' && accountIdPattern.test(value)) {\n return value;\n }\n\n const extracted = extractAccountIdString(value);\n\n if (extracted) {\n return extracted;\n }\n\n if (isProtoAccountId(value)) {\n const shard = toNumericString(value.shard);\n const realm = toNumericString(value.realm);\n const num = toNumericString(value.num);\n\n if (shard && realm && num) {\n const composed = `${shard}.${realm}.${num}`;\n if (accountIdPattern.test(composed)) {\n return composed;\n }\n }\n }\n\n return null;\n}\n\nfunction extractAccountIdString(value: unknown): string | null {\n if (typeof value !== 'object' || value === null) {\n return null;\n }\n\n const candidate = value as { toString?: () => unknown };\n const method = candidate.toString;\n\n if (typeof method !== 'function') {\n return null;\n }\n\n const result = method.call(value);\n\n if (typeof result !== 'string') {\n return null;\n }\n\n return accountIdPattern.test(result) ? result : null;\n}\n\nfunction isProtoAccountId(value: unknown): value is {\n shard: { toString: () => string };\n realm: { toString: () => string };\n num: { toString: () => string };\n} {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n const candidate = value as Record<string, unknown>;\n\n return (\n hasToString(candidate.shard) &&\n hasToString(candidate.realm) &&\n hasToString(candidate.num)\n );\n}\n\nfunction hasToString(value: unknown): value is { toString: () => string } {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { toString?: unknown }).toString === 'function'\n );\n}\n\nfunction toNumericString(value: unknown): string | null {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return String(Math.trunc(value));\n }\n\n if (typeof value === 'bigint') {\n return value.toString();\n }\n\n if (hasToString(value)) {\n const result = value.toString();\n if (/^\\d+$/u.test(result)) {\n return result;\n }\n }\n\n return null;\n}\n\nfunction requireNotFrozen(target: TopicPrototype): void {\n const candidate = target as { _requireNotFrozen?: () => void };\n candidate._requireNotFrozen?.();\n}\n\ntype ClientLike = {\n operatorAccountId?: unknown;\n};\n\ntype TopicPrototype = {\n setAutoRenewAccountId?: (...args: unknown[]) => unknown;\n freezeWith?: (...args: unknown[]) => unknown;\n getAutoRenewAccountId?: () => AccountIdInstance | null;\n transactionId?: { accountId?: unknown } | null;\n _autoRenewAccountId?: AccountIdInstance | null;\n [key: string]: unknown;\n};\n"],"names":[],"mappings":"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"}
@@ -1,31 +1,26 @@
1
1
  import { KeyList, TopicCreateTransaction, AccountId, Transaction, TopicMessageSubmitTransaction, Hbar } from "@hashgraph/sdk";
2
- import { Logger } from "./standards-sdk.es105.js";
2
+ import { Logger } from "./standards-sdk.es106.js";
3
3
  import "axios";
4
4
  import "@hashgraph/proto";
5
- import { ProgressReporter } from "./standards-sdk.es108.js";
5
+ import { ProgressReporter } from "./standards-sdk.es109.js";
6
6
  import "node:path";
7
7
  import "node:buffer";
8
8
  import "node:crypto";
9
- import "node:module";
10
9
  import "@noble/curves/secp256k1.js";
11
- import "./standards-sdk.es129.js";
12
- import "viem/accounts";
13
- import "viem/chains";
14
- import "x402-axios";
15
- import "x402/types";
16
- import "./standards-sdk.es139.js";
10
+ import "./standards-sdk.es130.js";
11
+ import "./standards-sdk.es140.js";
17
12
  import "zod";
18
13
  import "buffer";
19
14
  import "ethers";
20
- import "./standards-sdk.es122.js";
21
- import "./standards-sdk.es113.js";
22
- import { getTopicId } from "./standards-sdk.es114.js";
23
- import { InscriptionSDK } from "./standards-sdk.es140.js";
15
+ import "./standards-sdk.es123.js";
16
+ import "./standards-sdk.es114.js";
17
+ import { getTopicId } from "./standards-sdk.es115.js";
18
+ import { InscriptionSDK } from "./standards-sdk.es141.js";
24
19
  import { HCS10BaseClient, Hcs10MemoType } from "./standards-sdk.es17.js";
25
20
  import * as mime from "mime-types";
26
21
  import { AgentBuilder } from "./standards-sdk.es24.js";
27
22
  import { HCS11Client } from "./standards-sdk.es28.js";
28
- import { inscribeWithSigner } from "./standards-sdk.es124.js";
23
+ import { inscribeWithSigner } from "./standards-sdk.es125.js";
29
24
  const isBrowser = typeof window !== "undefined";
30
25
  class BrowserHCSClient extends HCS10BaseClient {
31
26
  constructor(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es20.js","sources":["../../src/hcs-10/browser.ts"],"sourcesContent":["import {\n KeyList,\n PublicKey,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n TransactionReceipt,\n PrivateKey,\n Hbar,\n AccountId,\n} from '@hashgraph/sdk';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { Logger, LogLevel, ILogger, getTopicId } from '../utils';\nimport {\n InscriptionSDK,\n RetrievedInscriptionResult,\n} from '@kiloscribe/inscription-sdk';\nimport { HCS10BaseClient } from './base-client';\nimport * as mime from 'mime-types';\nimport {\n AgentConfig,\n InscribePfpResponse,\n StoreHCS11ProfileResponse,\n AgentRegistrationResult,\n HandleConnectionRequestResponse,\n RegistrationProgressCallback,\n AgentCreationState,\n GetAccountAndSignerResponse,\n} from './types';\nimport {\n HCS11Client,\n AgentMetadata as AIAgentMetadata,\n InscribeProfileResponse,\n SocialLink,\n SocialPlatform,\n} from '../hcs-11';\nimport { ProgressReporter } from '../utils/progress-reporter';\nimport { Transaction } from '@hashgraph/sdk';\nimport { AgentBuilder } from '../hcs-11/agent-builder';\nimport { PersonBuilder } from '../hcs-11/person-builder';\nimport { Hcs10MemoType } from './base-client';\nimport { inscribeWithSigner } from '../inscribe/inscriber';\n\nconst isBrowser = typeof window !== 'undefined';\n\n/**\n * Configuration for HCS-10 browser client.\n *\n * @example\n * // Using default Hedera mirror nodes\n * const config = {\n * network: 'testnet',\n * hwc: walletConnectSDK\n * };\n *\n * @example\n * // Using HGraph custom mirror node provider\n * const config = {\n * network: 'mainnet',\n * hwc: walletConnectSDK,\n * mirrorNode: {\n * customUrl: 'https://mainnet.hedera.api.hgraph.dev/v1/<API-KEY>',\n * apiKey: 'your-hgraph-api-key'\n * }\n * };\n */\nexport type BrowserHCSClientConfig = {\n /** The Hedera network to connect to */\n network: 'mainnet' | 'testnet';\n /** Hashinals WalletConnect SDK instance */\n hwc: HashinalsWalletConnectSDK;\n /** Log level for the client */\n logLevel?: LogLevel;\n /** Whether to pretty print logs */\n prettyPrint?: boolean;\n /** Guarded registry topic ID (deprecated) */\n guardedRegistryTopicId?: string;\n /** Base URL for the guarded registry */\n guardedRegistryBaseUrl?: string;\n /** Default fee amount for HIP-991 fee payments */\n feeAmount?: number;\n /** Custom mirror node configuration */\n mirrorNode?: import('../services').MirrorNodeConfig;\n /** Whether to run logger in silent mode */\n silent?: boolean;\n};\n\nexport type BrowserAgentConfig = Omit<\n AgentConfig<BrowserHCSClient>,\n 'privateKey'\n> & {\n client: BrowserHCSClient;\n};\n\nexport type RegisteredAgent = {\n outboundTopicId: string;\n inboundTopicId: string;\n pfpTopicId: string;\n profileTopicId: string;\n error?: string;\n success: boolean;\n state: AgentCreationState;\n};\n\nexport class BrowserHCSClient extends HCS10BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n declare protected logger: ILogger;\n private guardedRegistryBaseUrl: string;\n private hcs11Client: HCS11Client | null = null;\n\n constructor(config: BrowserHCSClientConfig) {\n super({\n network: config.network,\n logLevel: config.logLevel,\n prettyPrint: config.prettyPrint,\n feeAmount: config.feeAmount,\n mirrorNode: config.mirrorNode,\n silent: config.silent,\n });\n\n this.hwc = config.hwc;\n if (!config.guardedRegistryBaseUrl) {\n this.guardedRegistryBaseUrl = 'https://moonscape.tech';\n } else {\n this.guardedRegistryBaseUrl = config.guardedRegistryBaseUrl;\n }\n\n let logLevel: LogLevel;\n if (config.logLevel) {\n logLevel = config.logLevel;\n } else {\n logLevel = 'info';\n }\n\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'HCS-Browser',\n prettyPrint: config.prettyPrint,\n silent: config.silent,\n });\n\n if (isBrowser) {\n try {\n const { accountId, signer } = this.getAccountAndSigner();\n\n this.hcs11Client = new HCS11Client({\n network: config.network,\n auth: {\n operatorId: accountId,\n signer: signer as any,\n },\n logLevel: config.logLevel,\n silent: config.silent,\n });\n } catch (err) {\n this.logger.warn(`Failed to initialize HCS11Client: ${err}`);\n }\n } else {\n this.logger.error(\n 'BrowserHCSClient initialized in server environment - browser-specific features will not be available. Use HCS10Client instead.',\n );\n }\n }\n\n async sendMessage(\n connectionTopicId: string,\n data: string,\n memo?: string,\n submitKey?: PrivateKey,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n waitMaxAttempts?: number;\n waitIntervalMs?: number;\n },\n ): Promise<TransactionReceipt> {\n this.logger.info('Sending message');\n const operatorId = await this.getOperatorId();\n\n const payload = {\n p: 'hcs-10',\n op: 'message',\n operator_id: operatorId,\n data,\n m: memo,\n };\n\n const submissionCheck = await this.canSubmitToTopic(\n connectionTopicId,\n this.hwc.getAccountInfo().accountId,\n );\n\n const payloadString = JSON.stringify(payload);\n const isLargePayload = Buffer.from(payloadString).length > 1000;\n\n if (isLargePayload) {\n this.logger.info(\n 'Message payload exceeds 1000 bytes, storing via inscription',\n );\n try {\n const contentBuffer = Buffer.from(data);\n const fileName = `message-${Date.now()}.json`;\n const inscriptionResult = await this.inscribeFile(\n contentBuffer,\n fileName,\n {\n progressCallback: options?.progressCallback,\n waitMaxAttempts: options?.waitMaxAttempts,\n waitIntervalMs: options?.waitIntervalMs,\n },\n );\n\n if (getTopicId(inscriptionResult)) {\n payload.data = `hcs://1/${getTopicId(inscriptionResult)}`;\n this.logger.info(\n `Large message inscribed with topic ID: ${getTopicId(inscriptionResult)}`,\n );\n } else {\n throw new Error('Failed to inscribe large message content');\n }\n } catch (error) {\n this.logger.error('Error inscribing large message:', error);\n throw new Error(\n `Failed to handle large message: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n );\n }\n }\n\n return await this.submitPayload(\n connectionTopicId,\n payload,\n submitKey,\n submissionCheck.requiresFee,\n );\n }\n\n async getPublicKey(accountId: string): Promise<PublicKey> {\n return await this.mirrorNode.getPublicKey(accountId);\n }\n\n async handleConnectionRequest(\n inboundTopicId: string,\n requestingAccountId: string,\n connectionId: number,\n connectionMemo: string = 'Connection accepted. Looking forward to collaborating!',\n ttl: number = 60,\n ): Promise<HandleConnectionRequestResponse> {\n this.logger.info('Handling connection request');\n const userAccountId = this.hwc.getAccountInfo().accountId;\n if (!userAccountId) {\n throw new Error('Failed to retrieve user account ID');\n }\n\n const requesterKey =\n await this.mirrorNode.getPublicKey(requestingAccountId);\n const accountKey = await this.mirrorNode.getPublicKey(userAccountId);\n\n if (!accountKey) {\n throw new Error('Failed to retrieve public key');\n }\n\n const thresholdKey = new KeyList([accountKey, requesterKey], 1);\n const memo = this._generateHcs10Memo(Hcs10MemoType.CONNECTION, {\n ttl,\n inboundTopicId,\n connectionId,\n });\n\n const transaction = new TopicCreateTransaction()\n .setTopicMemo(memo)\n .setAutoRenewAccountId(AccountId.fromString(userAccountId))\n .setAdminKey(thresholdKey)\n .setSubmitKey(thresholdKey);\n\n this.logger.debug('Executing topic creation transaction');\n const txResponse = await this.hwc.executeTransactionWithErrorHandling(\n transaction,\n false,\n );\n if (txResponse?.error) {\n this.logger.error(txResponse.error);\n throw new Error(txResponse.error);\n }\n\n const resultReceipt = txResponse?.result;\n if (!resultReceipt?.topicId) {\n this.logger.error('Failed to create topic: topicId is null');\n throw new Error('Failed to create topic: topicId is null');\n }\n\n const connectionTopicId = resultReceipt.topicId.toString();\n const operatorId = `${inboundTopicId}@${userAccountId}`;\n const confirmedConnectionSequenceNumber = await this.confirmConnection(\n inboundTopicId,\n connectionTopicId,\n requestingAccountId,\n connectionId,\n operatorId,\n connectionMemo,\n );\n\n const accountTopics = await this.retrieveCommunicationTopics(userAccountId);\n\n const requestingAccountTopics =\n await this.retrieveCommunicationTopics(requestingAccountId);\n\n const requestingAccountOperatorId = `${requestingAccountTopics.inboundTopic}@${requestingAccountId}`;\n\n await this.recordOutboundConnectionConfirmation({\n outboundTopicId: accountTopics.outboundTopic,\n requestorOutboundTopicId: requestingAccountTopics.outboundTopic,\n connectionRequestId: connectionId,\n confirmedRequestId: confirmedConnectionSequenceNumber,\n connectionTopicId,\n operatorId: requestingAccountOperatorId,\n memo: `Connection established with ${requestingAccountId}`,\n });\n\n return {\n connectionTopicId,\n confirmedConnectionSequenceNumber,\n operatorId,\n };\n }\n\n async confirmConnection(\n inboundTopicId: string,\n connectionTopicId: string,\n connectedAccountId: string,\n connectionId: number,\n operatorId: string,\n memo: string,\n ): Promise<number> {\n this.logger.info('Confirming connection');\n const payload = {\n p: 'hcs-10',\n op: 'connection_created',\n connection_topic_id: connectionTopicId,\n connected_account_id: connectedAccountId,\n operator_id: operatorId,\n connection_id: connectionId,\n m: memo,\n };\n\n const transactionResponse = await this.submitPayload(\n inboundTopicId,\n payload,\n );\n if (!transactionResponse?.topicSequenceNumber) {\n this.logger.error(\n 'Failed to confirm connection: sequence number is null',\n );\n throw new Error('Failed to confirm connection: sequence number is null');\n }\n return transactionResponse.topicSequenceNumber.toNumber();\n }\n\n async create(\n builder: AgentBuilder | PersonBuilder,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n existingState?: AgentCreationState;\n ttl?: number;\n updateAccountMemo?: boolean;\n },\n ): Promise<RegisteredAgent | InscribeProfileResponse> {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'ProfileCreate',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n try {\n const isAgentBuilder = builder instanceof AgentBuilder;\n\n let state;\n if (options?.existingState) {\n state = options.existingState;\n } else {\n state = {\n currentStage: 'init',\n completedPercentage: 0,\n createdResources: [],\n } as AgentCreationState;\n }\n\n if (isAgentBuilder) {\n this.logger.info('Creating Agent Profile and HCS-10 Topics');\n const agentConfig = (builder as AgentBuilder).build();\n state.agentMetadata = agentConfig.metadata;\n } else {\n this.logger.info('Creating Person HCS-11 Profile');\n }\n\n progressReporter.preparing(\n `Starting ${isAgentBuilder ? 'agent' : 'person'} resource creation`,\n 0,\n {\n state,\n },\n );\n\n const {\n inboundTopicId,\n outboundTopicId,\n state: updatedState,\n } = await this.createCommunicationTopics(options, progressReporter);\n\n state = updatedState;\n\n builder.setInboundTopicId(inboundTopicId);\n builder.setOutboundTopicId(outboundTopicId);\n\n let pfpTopicId: string | undefined;\n let hasPfpBuffer: Buffer | undefined;\n let pfpFileName: string | undefined;\n\n if (isAgentBuilder) {\n const agentProfile = (builder as AgentBuilder).build();\n pfpTopicId = agentProfile.existingPfpTopicId || state.pfpTopicId;\n hasPfpBuffer = agentProfile.pfpBuffer;\n pfpFileName = agentProfile.pfpFileName || 'pfp.png';\n } else {\n const personProfile = (builder as PersonBuilder).build();\n pfpTopicId = state.pfpTopicId;\n hasPfpBuffer = personProfile.pfpBuffer;\n pfpFileName = personProfile.pfpFileName;\n }\n\n if (!pfpTopicId && hasPfpBuffer && pfpFileName) {\n pfpTopicId = await this.handleProfilePictureCreation(\n hasPfpBuffer,\n pfpFileName,\n state,\n progressReporter,\n );\n } else if (pfpTopicId) {\n progressReporter.preparing(\n `Using existing profile picture: ${pfpTopicId}`,\n 50,\n { state },\n );\n state.pfpTopicId = pfpTopicId;\n }\n\n await this.createAndInscribeProfile(\n isAgentBuilder,\n builder as any,\n pfpTopicId,\n state,\n inboundTopicId,\n outboundTopicId,\n options,\n progressReporter,\n );\n\n state.currentStage = 'complete';\n state.completedPercentage = 100;\n progressReporter.completed(\n `${isAgentBuilder ? 'Agent' : 'Person'} profile created successfully`,\n {\n profileTopicId: state.profileTopicId,\n inboundTopicId,\n outboundTopicId,\n pfpTopicId,\n state,\n },\n );\n\n let outTopicId = '';\n if (state.outboundTopicId) {\n outTopicId = state.outboundTopicId;\n }\n\n let inTopicId = '';\n if (state.inboundTopicId) {\n inTopicId = state.inboundTopicId;\n }\n\n let profilePicTopicId = '';\n if (state.pfpTopicId) {\n profilePicTopicId = state.pfpTopicId;\n }\n\n let profTopicId = '';\n if (state.profileTopicId) {\n profTopicId = state.profileTopicId;\n }\n\n return {\n outboundTopicId: outTopicId,\n inboundTopicId: inTopicId,\n pfpTopicId: profilePicTopicId,\n profileTopicId: profTopicId,\n success: true,\n state,\n } as RegisteredAgent | InscribeProfileResponse;\n } catch (error: any) {\n progressReporter.failed('Error during profile creation', {\n error: error.message,\n });\n return {\n outboundTopicId: '',\n inboundTopicId: '',\n pfpTopicId: '',\n profileTopicId: '',\n success: false,\n error: error.message,\n state: {\n currentStage: 'init',\n completedPercentage: 0,\n error: error.message,\n } as AgentCreationState,\n } as RegisteredAgent;\n }\n }\n\n private async handleProfilePictureCreation(\n pfpBuffer: Buffer,\n pfpFileName: string,\n state: AgentCreationState,\n progressReporter: ProgressReporter,\n ): Promise<string> {\n state.currentStage = 'pfp';\n progressReporter.preparing('Creating profile picture', 30, {\n state,\n });\n\n const pfpProgress = progressReporter.createSubProgress({\n minPercent: 30,\n maxPercent: 50,\n logPrefix: 'PFP',\n });\n\n const pfpResult = await this.inscribePfp(pfpBuffer, pfpFileName, {\n progressCallback: data =>\n pfpProgress.report({\n ...data,\n progressPercent: data.progressPercent ?? 0,\n details: { ...data.details, state },\n }),\n });\n\n if (!pfpResult.success) {\n let errorMessage = 'Failed to inscribe profile picture';\n if (pfpResult.error) {\n errorMessage = pfpResult.error;\n }\n throw new Error(errorMessage);\n }\n\n const pfpTopicId = pfpResult.pfpTopicId;\n state.pfpTopicId = pfpTopicId;\n\n if (state.createdResources) {\n state.createdResources.push(`pfp:${state.pfpTopicId}`);\n }\n\n progressReporter.preparing('Profile picture created', 50, { state });\n\n return pfpTopicId;\n }\n\n private async createAndInscribeProfile(\n isAgentBuilder: boolean,\n builder: AgentBuilder | PersonBuilder,\n pfpTopicId: string | undefined,\n state: AgentCreationState,\n inboundTopicId: string,\n outboundTopicId: string,\n options?: {\n updateAccountMemo?: boolean;\n },\n progressReporter?: ProgressReporter,\n ): Promise<void> {\n if (!this.hcs11Client) {\n if (progressReporter) {\n progressReporter.failed('HCS11Client is not available');\n }\n throw new Error('HCS11Client is not available');\n }\n\n this.logger.info('Creating and inscribing profile');\n if (!state.profileTopicId) {\n if (progressReporter) {\n progressReporter.preparing(\n `Storing HCS-11 ${isAgentBuilder ? 'agent' : 'person'} profile`,\n 80,\n );\n }\n\n const profileProgress = progressReporter?.createSubProgress({\n minPercent: 80,\n maxPercent: 95,\n logPrefix: 'StoreProfile',\n });\n\n let hcs11Profile;\n\n if (isAgentBuilder) {\n const agentProfile = (builder as AgentBuilder).build();\n\n const socialLinks = agentProfile.metadata?.socials\n ? Object.entries(agentProfile.metadata.socials).map(\n ([platform, handle]) => ({\n platform: platform as SocialPlatform,\n handle: handle as string,\n }),\n )\n : [];\n\n hcs11Profile = this.hcs11Client.createAIAgentProfile(\n agentProfile.name,\n agentProfile.metadata?.type === 'manual' ? 0 : 1,\n agentProfile.capabilities || [],\n agentProfile.metadata?.model || 'unknown',\n {\n alias: agentProfile.name.toLowerCase().replace(/\\s+/g, '_'),\n bio: agentProfile.bio,\n profileImage: pfpTopicId ? `hcs://1/${pfpTopicId}` : undefined,\n socials: socialLinks,\n properties: agentProfile.metadata?.properties || {},\n inboundTopicId,\n outboundTopicId,\n creator: agentProfile.metadata?.creator,\n },\n );\n } else {\n const personProfile = (builder as PersonBuilder).build();\n\n const { pfpBuffer, pfpFileName, ...cleanProfile } = personProfile;\n\n hcs11Profile = this.hcs11Client.createPersonalProfile(\n personProfile.display_name,\n {\n alias: personProfile.alias,\n bio: personProfile.bio,\n socials: personProfile.socials,\n profileImage: pfpTopicId\n ? `hcs://1/${pfpTopicId}`\n : personProfile.profileImage,\n properties: personProfile.properties,\n inboundTopicId,\n outboundTopicId,\n },\n );\n }\n\n const profileResult = await this.hcs11Client.createAndInscribeProfile(\n hcs11Profile,\n options?.updateAccountMemo ?? true,\n {\n progressCallback: data =>\n profileProgress?.report({\n ...data,\n progressPercent: data.progressPercent ?? 0,\n }),\n },\n );\n\n if (!profileResult.success) {\n if (progressReporter) {\n progressReporter.failed(\n `Failed to inscribe ${isAgentBuilder ? 'agent' : 'person'} profile`,\n {\n error: profileResult.error,\n },\n );\n }\n\n let errorMessage = `Failed to inscribe ${\n isAgentBuilder ? 'agent' : 'person'\n } profile`;\n if (profileResult.error) {\n errorMessage = profileResult.error;\n }\n throw new Error(errorMessage);\n }\n\n state.profileTopicId = profileResult.profileTopicId;\n\n if (state.createdResources) {\n state.createdResources.push(`profile:${profileResult.profileTopicId}`);\n }\n\n if (progressReporter) {\n progressReporter.preparing('HCS-11 Profile stored', 95, { state });\n }\n } else if (progressReporter) {\n progressReporter.preparing(\n `Using existing ${isAgentBuilder ? 'agent' : 'person'} profile`,\n 95,\n {\n state,\n },\n );\n }\n }\n\n private initializeRegistrationState(\n inboundTopicId: string,\n existingState?: AgentCreationState,\n ): AgentCreationState {\n const state = existingState || {\n inboundTopicId,\n currentStage: 'registration',\n completedPercentage: 0,\n createdResources: [],\n };\n\n if (\n state.currentStage !== 'registration' &&\n state.currentStage !== 'complete'\n ) {\n state.currentStage = 'registration';\n }\n\n return state;\n }\n\n private updateStateForCompletedRegistration(\n state: AgentCreationState,\n inboundTopicId: string,\n ): void {\n state.currentStage = 'complete';\n state.completedPercentage = 100;\n if (state.createdResources) {\n state.createdResources.push(`registration:${inboundTopicId}`);\n }\n }\n\n async registerAgentWithGuardedRegistry(\n accountId: string,\n network: string = this.network,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n maxAttempts?: number;\n delayMs?: number;\n existingState?: AgentCreationState;\n },\n ): Promise<AgentRegistrationResult> {\n try {\n this.logger.info('Registering agent with guarded registry');\n\n let inboundTopicId: string;\n\n if (options?.existingState?.inboundTopicId) {\n this.logger.info('Using inboundTopicId from existing state');\n inboundTopicId = options.existingState.inboundTopicId;\n } else {\n const profileResponse = await this.retrieveProfile(accountId, false, {\n maxRetries: 5,\n retryDelay: 3000,\n });\n\n if (\n !profileResponse.success ||\n !profileResponse.profile ||\n !profileResponse.topicInfo\n ) {\n const errorMessage =\n profileResponse.error ||\n `Failed to retrieve profile for account ${accountId}. Make sure the agent profile is created and memo is updated before registration.`;\n this.logger.error(errorMessage);\n return {\n error: errorMessage,\n success: false,\n state: {\n currentStage: 'registration',\n completedPercentage: 0,\n error: errorMessage,\n },\n };\n }\n\n inboundTopicId = profileResponse.topicInfo.inboundTopic;\n }\n const state = this.initializeRegistrationState(\n inboundTopicId,\n options?.existingState,\n );\n const progressReporter = new ProgressReporter({\n module: 'AgentRegistration',\n logger: this.logger,\n callback: options?.progressCallback,\n });\n\n progressReporter.preparing('Preparing agent registration', 10, {\n inboundTopicId,\n accountId,\n });\n\n const registrationResult = await this.executeRegistration(\n accountId,\n network as string,\n this.guardedRegistryBaseUrl,\n this.logger,\n );\n\n if (!registrationResult.success) {\n return {\n ...registrationResult,\n state,\n };\n }\n\n progressReporter.submitting('Submitting registration to registry', 30, {\n transactionId: registrationResult.transactionId,\n });\n\n if (registrationResult.transaction) {\n const transaction = Transaction.fromBytes(\n Buffer.from(registrationResult.transaction, 'base64'),\n );\n\n this.logger.info(`Processing registration transaction`);\n const txResult = await this.hwc.executeTransactionWithErrorHandling(\n transaction as any,\n true,\n );\n\n if (txResult.error) {\n return {\n ...registrationResult,\n error: txResult.error,\n success: false,\n state,\n };\n }\n\n this.logger.info(`Successfully processed registration transaction`);\n }\n\n progressReporter.confirming('Confirming registration transaction', 60, {\n accountId,\n inboundTopicId,\n transactionId: registrationResult.transactionId,\n });\n\n const maxAttempts = options?.maxAttempts ?? 60;\n const delayMs = options?.delayMs ?? 2000;\n\n const confirmed = await this.waitForRegistrationConfirmation(\n registrationResult.transactionId!,\n network,\n this.guardedRegistryBaseUrl,\n maxAttempts,\n delayMs,\n this.logger,\n );\n\n this.updateStateForCompletedRegistration(state, inboundTopicId);\n\n progressReporter.completed('Agent registration complete', {\n transactionId: registrationResult.transactionId,\n inboundTopicId,\n state,\n confirmed,\n });\n\n return {\n ...registrationResult,\n confirmed,\n state,\n };\n } catch (error: any) {\n this.logger.error(`Registration error: ${error.message}`);\n return {\n error: `Error during registration: ${error.message}`,\n success: false,\n state: {\n currentStage: 'registration',\n completedPercentage: 0,\n error: error.message,\n },\n };\n }\n }\n\n async createAndRegisterAgent(\n builder: AgentBuilder,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n maxAttempts?: number;\n delayMs?: number;\n existingState?: AgentCreationState;\n baseUrl?: string;\n },\n ): Promise<AgentRegistrationResult> {\n try {\n const agentConfig = builder.build();\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'AgentCreateRegister',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n let state =\n options?.existingState ||\n ({\n currentStage: 'init',\n completedPercentage: 0,\n createdResources: [],\n } as AgentCreationState);\n\n state.agentMetadata = agentConfig.metadata;\n\n progressReporter.preparing('Starting agent creation process', 0, {\n state,\n });\n\n if (\n state.currentStage !== 'complete' ||\n !state.inboundTopicId ||\n !state.outboundTopicId ||\n !state.profileTopicId\n ) {\n const createResult = await this.create(builder, {\n progressCallback: (progress: any) => {\n const adjustedPercent = (progress.progressPercent || 0) * 0.3;\n progressReporter.report({\n ...progress,\n progressPercent: adjustedPercent,\n details: {\n ...progress.details,\n state: progress.details?.state || state,\n },\n });\n },\n existingState: state,\n updateAccountMemo: true,\n });\n\n if (!('state' in createResult)) {\n throw new Error('Create method did not return expected agent state.');\n }\n\n if (!createResult.success) {\n throw new Error(\n createResult.error || 'Failed to create agent resources',\n );\n }\n\n state = createResult.state;\n state.agentMetadata = agentConfig.metadata;\n\n this.logger.info('Waiting for account memo update to propagate...');\n await new Promise(resolve => setTimeout(resolve, 5000));\n }\n\n progressReporter.preparing(\n `Agent creation status: ${state.currentStage}, ${state.completedPercentage}%`,\n 30,\n { state },\n );\n\n const { accountId } = this.getAccountAndSigner();\n\n if (\n state.currentStage !== 'complete' ||\n !state.createdResources?.includes(\n `registration:${state.inboundTopicId}`,\n )\n ) {\n if (options?.baseUrl) {\n this.guardedRegistryBaseUrl = options.baseUrl;\n }\n\n const registrationResult = await this.registerAgentWithGuardedRegistry(\n accountId,\n agentConfig.network,\n {\n progressCallback: progress => {\n const adjustedPercent =\n 30 + (progress.progressPercent || 0) * 0.7;\n progressReporter.report({\n ...progress,\n progressPercent: adjustedPercent,\n details: {\n ...progress.details,\n state: progress.details?.state || state,\n },\n });\n },\n maxAttempts: options?.maxAttempts,\n delayMs: options?.delayMs,\n existingState: state,\n },\n );\n\n if (!registrationResult.success) {\n throw new Error(\n registrationResult.error ||\n 'Failed to register agent with registry',\n );\n }\n\n state = registrationResult.state;\n }\n\n progressReporter.completed('Agent creation and registration complete', {\n state,\n });\n\n return {\n success: true,\n state,\n metadata: {\n accountId,\n operatorId: `${state.inboundTopicId}@${accountId}`,\n inboundTopicId: state.inboundTopicId!,\n outboundTopicId: state.outboundTopicId!,\n profileTopicId: state.profileTopicId!,\n pfpTopicId: state.pfpTopicId!,\n privateKey: null,\n ...state.agentMetadata,\n },\n };\n } catch (error: any) {\n this.logger.error(\n `Failed to create and register agent: ${error.message}`,\n );\n return {\n success: false,\n error: `Failed to create and register agent: ${error.message}`,\n state:\n options?.existingState ||\n ({\n currentStage: 'init',\n completedPercentage: 0,\n error: error.message,\n } as AgentCreationState),\n };\n }\n }\n\n async storeHCS11Profile(\n agentName: string,\n agentBio: string,\n inboundTopicId: string,\n outboundTopicId: string,\n capabilities: number[] = [],\n metadata: Record<string, any> = {},\n pfpBuffer?: Buffer,\n pfpFileName?: string,\n existingPfpTopicId?: string,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n updateAccountMemo?: boolean;\n },\n ): Promise<StoreHCS11ProfileResponse> {\n try {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'StoreHCS11Profile',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n progressReporter.preparing('Preparing agent profile data', 0);\n\n let pfpTopicId = existingPfpTopicId;\n\n if (!pfpTopicId && pfpBuffer && pfpFileName) {\n const pfpProgress = progressReporter.createSubProgress({\n minPercent: 0,\n maxPercent: 60,\n logPrefix: 'PFP',\n });\n\n const pfpResult = await this.inscribePfp(pfpBuffer, pfpFileName, {\n progressCallback: data => {\n pfpProgress.report({\n stage: data.stage,\n message: data.message,\n progressPercent: data.progressPercent || 0,\n details: data.details,\n });\n },\n });\n\n if (!pfpResult.success) {\n progressReporter.failed(\n 'Failed to inscribe profile picture, continuing without PFP',\n );\n } else {\n pfpTopicId = pfpResult.pfpTopicId;\n }\n } else if (existingPfpTopicId) {\n progressReporter.preparing(\n `Using existing profile picture: ${existingPfpTopicId}`,\n 30,\n );\n } else {\n progressReporter.preparing('No profile picture provided', 30);\n }\n\n if (!this.hcs11Client) {\n progressReporter.failed(\n 'HCS11Client is not available in this environment',\n );\n return {\n profileTopicId: '',\n success: false,\n error: 'HCS11Client is not available in this environment',\n transactionId: '',\n };\n }\n\n const agentType = this.hcs11Client.getAgentTypeFromMetadata({\n type: metadata.type || 'autonomous',\n } as AIAgentMetadata);\n\n progressReporter.preparing('Building agent profile', 65);\n\n const formattedSocials: SocialLink[] | undefined = metadata.socials\n ? Object.entries(metadata.socials)\n .filter(([_, handle]) => handle)\n .map(([platform, handle]) => ({\n platform: platform as SocialPlatform,\n handle: handle as string,\n }))\n : undefined;\n\n const profile = this.hcs11Client.createAIAgentProfile(\n agentName,\n agentType,\n capabilities,\n metadata.model || 'unknown',\n {\n alias: agentName.toLowerCase().replace(/\\s+/g, '_'),\n bio: agentBio,\n profileImage: pfpTopicId ? `hcs://1/${pfpTopicId}` : undefined,\n socials: formattedSocials,\n properties: {\n version: metadata.version || '1.0.0',\n creator: metadata.creator || 'Unknown',\n supported_languages: metadata.supported_languages || ['en'],\n permissions: metadata.permissions || [],\n model_details: metadata.model_details,\n training: metadata.training,\n capabilities_description: metadata.capabilities_description,\n ...metadata,\n },\n inboundTopicId,\n outboundTopicId,\n creator: metadata.creator,\n },\n );\n\n const profileProgress = progressReporter.createSubProgress({\n minPercent: 65,\n maxPercent: 100,\n logPrefix: 'Profile',\n });\n\n const profileResult = await this.hcs11Client.createAndInscribeProfile(\n profile,\n options?.updateAccountMemo ?? true,\n {\n progressCallback: profileData => {\n profileProgress.report({\n stage: profileData.stage,\n message: profileData.message,\n progressPercent: profileData.progressPercent || 0,\n details: profileData.details,\n });\n },\n },\n );\n\n if (!profileResult.success) {\n progressReporter.failed('Failed to inscribe profile');\n return {\n profileTopicId: '',\n success: false,\n error: profileResult.error || 'Failed to inscribe profile',\n transactionId: profileResult.transactionId || '',\n };\n }\n\n progressReporter.completed('Profile stored successfully', {\n profileTopicId: profileResult.profileTopicId,\n });\n\n return {\n profileTopicId: profileResult.profileTopicId,\n pfpTopicId,\n success: true,\n transactionId: profileResult.transactionId || '',\n };\n } catch (error: any) {\n this.logger.error(`Error storing HCS11 profile: ${error.message}`);\n return {\n profileTopicId: '',\n success: false,\n error: error.message,\n transactionId: '',\n };\n }\n }\n\n async createTopic(\n memo: string,\n adminKey?: boolean,\n submitKey?: boolean,\n ): Promise<{\n success: boolean;\n topicId?: string;\n error?: string;\n }> {\n this.logger.info('Creating topic');\n const { accountId, signer } = this.getAccountAndSigner();\n\n const transaction = new TopicCreateTransaction().setTopicMemo(memo);\n\n const publicKey = await this.mirrorNode.getPublicKey(accountId);\n\n if (adminKey && publicKey) {\n transaction.setAdminKey(publicKey);\n transaction.setAutoRenewAccountId(accountId);\n }\n\n if (submitKey && publicKey) {\n transaction.setSubmitKey(publicKey);\n }\n\n const transactionResponse =\n await this.hwc.executeTransactionWithErrorHandling(\n transaction as any,\n false,\n );\n\n const error = transactionResponse.error;\n\n if (error) {\n this.logger.error(error);\n return {\n success: false,\n error,\n };\n }\n\n const resultReceipt = transactionResponse.result;\n\n if (!resultReceipt?.topicId) {\n this.logger.error('Failed to create topic: topicId is null');\n return {\n success: false,\n error: 'Failed to create topic: topicId is null',\n };\n }\n\n return {\n success: true,\n topicId: resultReceipt.topicId.toString(),\n };\n }\n\n public async submitPayload(\n topicId: string,\n payload: object | string,\n submitKey?: PrivateKey,\n requiresFee?: boolean,\n ): Promise<TransactionReceipt> {\n this.logger.debug(`Submitting payload to topic ${topicId}`);\n\n let message: string;\n if (typeof payload === 'string') {\n message = payload;\n } else {\n message = JSON.stringify(payload);\n }\n\n const transaction = new TopicMessageSubmitTransaction()\n .setTopicId(topicId)\n .setMessage(message);\n\n const transactionMemo = this.getHcs10TransactionMemo(payload);\n if (transactionMemo) {\n transaction.setTransactionMemo(transactionMemo);\n }\n\n let transactionResponse: {\n result?: TransactionReceipt;\n error?: string;\n };\n\n if (requiresFee) {\n this.logger.info(\n 'Topic requires fee payment, setting max transaction fee',\n );\n transaction.setMaxTransactionFee(new Hbar(this.feeAmount));\n }\n\n if (submitKey) {\n const { signer } = this.getAccountAndSigner();\n transaction.freezeWithSigner(signer as any);\n const signedTransaction = await transaction.sign(submitKey);\n transactionResponse = await this.hwc.executeTransactionWithErrorHandling(\n signedTransaction,\n true,\n );\n } else {\n transactionResponse = await this.hwc.executeTransactionWithErrorHandling(\n transaction,\n false,\n );\n }\n\n if (transactionResponse?.error) {\n this.logger.error(\n `Failed to submit payload: ${transactionResponse.error}`,\n );\n throw new Error(`Failed to submit payload: ${transactionResponse.error}`);\n }\n\n if (!transactionResponse?.result) {\n this.logger.error(\n 'Failed to submit message: receipt is null or undefined',\n );\n throw new Error('Failed to submit message: receipt is null or undefined');\n }\n\n this.logger.debug('Payload submitted successfully via HWC');\n return transactionResponse.result;\n }\n\n async inscribeFile(\n buffer: Buffer,\n fileName: string,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n waitMaxAttempts?: number;\n waitIntervalMs?: number;\n },\n ): Promise<RetrievedInscriptionResult> {\n const { accountId, signer } = this.getAccountAndSigner();\n\n const mimeType = mime.lookup(fileName) || 'application/octet-stream';\n\n const sdk = await InscriptionSDK.createWithAuth({\n type: 'client',\n accountId: accountId,\n signer: signer as any,\n network: this.network as 'testnet' | 'mainnet',\n });\n\n const inscriptionOptions = {\n mode: 'file' as const,\n waitForConfirmation: true,\n waitMaxAttempts: options?.waitMaxAttempts || 30,\n waitIntervalMs: options?.waitIntervalMs || 4000,\n progressCallback: options?.progressCallback,\n logging: {\n level: this.logger.getLevel ? this.logger.getLevel() : 'info',\n },\n };\n\n const response = await inscribeWithSigner(\n {\n type: 'buffer',\n buffer,\n fileName,\n mimeType,\n },\n signer as any,\n {\n ...inscriptionOptions,\n network: this.network as 'testnet' | 'mainnet',\n },\n sdk,\n );\n\n if (!response.confirmed || !response.inscription) {\n throw new Error('Inscription was not confirmed');\n }\n\n return response.inscription;\n }\n\n getAccountAndSigner(): GetAccountAndSignerResponse {\n const accountInfo = this?.hwc?.getAccountInfo();\n const accountId = accountInfo?.accountId?.toString();\n const signer = this?.hwc?.dAppConnector?.signers?.find(s => {\n return s.getAccountId().toString() === accountId;\n });\n\n if (!signer) {\n this.logger.error('Failed to find signer', {\n accountId,\n signers: this?.hwc?.dAppConnector?.signers,\n accountInfo,\n });\n throw new Error('Failed to find signer');\n }\n\n return { accountId, signer: signer as any };\n }\n\n /**\n * Inscribes a profile picture (PFP) on HCS-11.\n *\n * @param buffer - The buffer containing the PFP image.\n * @param fileName - The name of the file containing the PFP image.\n * @param options - Optional configuration options.\n * @returns A promise that resolves to the topic ID of the inscribed PFP.\n */\n async inscribePfp(\n buffer: Buffer,\n fileName: string,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n },\n ): Promise<InscribePfpResponse> {\n try {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'PFP-Inscription',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n if (!this.hcs11Client) {\n progressReporter.failed(\n 'HCS11Client is not available in this environment',\n );\n return {\n pfpTopicId: '',\n success: false,\n error: 'HCS11Client is not available in this environment',\n transactionId: '',\n };\n }\n\n progressReporter.preparing('Preparing to inscribe profile picture', 10);\n this.logger.info('Inscribing profile picture using HCS-11 client');\n\n const wrappedProgressCallback = (data: any) => {\n progressReporter.report({\n stage: data.stage || 'confirming',\n message: data.message || 'Processing PFP inscription',\n progressPercent: data.progressPercent || 50,\n details: data.details,\n });\n };\n\n const imageResult = await this.hcs11Client.inscribeImage(\n buffer,\n fileName,\n { progressCallback: wrappedProgressCallback },\n );\n\n if (!imageResult.success) {\n let errorMessage = 'Failed to inscribe profile picture';\n if (imageResult.error) {\n errorMessage = imageResult.error;\n }\n\n let txId = '';\n if (imageResult.transactionId) {\n txId = imageResult.transactionId;\n }\n\n return {\n pfpTopicId: '',\n success: false,\n error: errorMessage,\n transactionId: txId,\n };\n }\n\n progressReporter.completed('Successfully inscribed profile picture', {\n pfpTopicId: imageResult.imageTopicId,\n });\n\n this.logger.info(\n `Successfully inscribed profile picture with topic ID: ${imageResult.imageTopicId}`,\n );\n return {\n pfpTopicId: imageResult.imageTopicId,\n success: true,\n transactionId: imageResult.transactionId || '',\n };\n } catch (error: any) {\n this.logger.error(`Error inscribing profile picture: ${error.message}`);\n return {\n pfpTopicId: '',\n success: false,\n error: error.message,\n transactionId: '',\n };\n }\n }\n\n private async createCommunicationTopics(\n options?: {\n existingState?: AgentCreationState;\n ttl?: number;\n },\n progressReporter?: ProgressReporter,\n ): Promise<{\n inboundTopicId: string;\n outboundTopicId: string;\n state: AgentCreationState;\n }> {\n let state =\n options?.existingState ||\n ({\n currentStage: 'init',\n completedPercentage: 0,\n createdResources: [],\n } as AgentCreationState);\n\n if (progressReporter) {\n progressReporter.preparing('Starting communication topic creation', 0, {\n state,\n });\n }\n\n const { accountId } = this.getAccountAndSigner();\n if (!state.outboundTopicId) {\n state.currentStage = 'topics';\n if (progressReporter) {\n progressReporter.preparing('Creating outbound topic', 5, {\n state,\n });\n }\n const outboundMemo = this._generateHcs10Memo(Hcs10MemoType.OUTBOUND, {\n ttl: options?.ttl,\n accountId,\n });\n const outboundResult = await this.createTopic(outboundMemo, true, true);\n if (!outboundResult.success || !outboundResult.topicId) {\n throw new Error(\n outboundResult.error || 'Failed to create outbound topic',\n );\n }\n state.outboundTopicId = outboundResult.topicId;\n if (state.createdResources)\n state.createdResources.push(`outbound:${state.outboundTopicId}`);\n }\n\n if (!state.inboundTopicId) {\n state.currentStage = 'topics';\n if (progressReporter) {\n progressReporter.preparing('Creating inbound topic', 10, {\n state,\n });\n }\n const inboundMemo = this._generateHcs10Memo(Hcs10MemoType.INBOUND, {\n ttl: options?.ttl,\n accountId,\n });\n\n const inboundResult = await this.createTopic(inboundMemo, true, false);\n if (!inboundResult.success || !inboundResult.topicId) {\n throw new Error(\n inboundResult.error || 'Failed to create inbound topic',\n );\n }\n state.inboundTopicId = inboundResult.topicId;\n if (state.createdResources)\n state.createdResources.push(`inbound:${state.inboundTopicId}`);\n }\n\n return {\n inboundTopicId: state.inboundTopicId,\n outboundTopicId: state.outboundTopicId,\n state,\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es20.js","sources":["../../src/hcs-10/browser.ts"],"sourcesContent":["import {\n KeyList,\n PublicKey,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n TransactionReceipt,\n PrivateKey,\n Hbar,\n AccountId,\n} from '@hashgraph/sdk';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { Logger, LogLevel, ILogger, getTopicId } from '../utils';\nimport {\n InscriptionSDK,\n RetrievedInscriptionResult,\n} from '@kiloscribe/inscription-sdk';\nimport { HCS10BaseClient } from './base-client';\nimport * as mime from 'mime-types';\nimport {\n AgentConfig,\n InscribePfpResponse,\n StoreHCS11ProfileResponse,\n AgentRegistrationResult,\n HandleConnectionRequestResponse,\n RegistrationProgressCallback,\n AgentCreationState,\n GetAccountAndSignerResponse,\n} from './types';\nimport {\n HCS11Client,\n AgentMetadata as AIAgentMetadata,\n InscribeProfileResponse,\n SocialLink,\n SocialPlatform,\n} from '../hcs-11';\nimport { ProgressReporter } from '../utils/progress-reporter';\nimport { Transaction } from '@hashgraph/sdk';\nimport { AgentBuilder } from '../hcs-11/agent-builder';\nimport { PersonBuilder } from '../hcs-11/person-builder';\nimport { Hcs10MemoType } from './base-client';\nimport { inscribeWithSigner } from '../inscribe/inscriber';\n\nconst isBrowser = typeof window !== 'undefined';\n\n/**\n * Configuration for HCS-10 browser client.\n *\n * @example\n * // Using default Hedera mirror nodes\n * const config = {\n * network: 'testnet',\n * hwc: walletConnectSDK\n * };\n *\n * @example\n * // Using HGraph custom mirror node provider\n * const config = {\n * network: 'mainnet',\n * hwc: walletConnectSDK,\n * mirrorNode: {\n * customUrl: 'https://mainnet.hedera.api.hgraph.dev/v1/<API-KEY>',\n * apiKey: 'your-hgraph-api-key'\n * }\n * };\n */\nexport type BrowserHCSClientConfig = {\n /** The Hedera network to connect to */\n network: 'mainnet' | 'testnet';\n /** Hashinals WalletConnect SDK instance */\n hwc: HashinalsWalletConnectSDK;\n /** Log level for the client */\n logLevel?: LogLevel;\n /** Whether to pretty print logs */\n prettyPrint?: boolean;\n /** Guarded registry topic ID (deprecated) */\n guardedRegistryTopicId?: string;\n /** Base URL for the guarded registry */\n guardedRegistryBaseUrl?: string;\n /** Default fee amount for HIP-991 fee payments */\n feeAmount?: number;\n /** Custom mirror node configuration */\n mirrorNode?: import('../services').MirrorNodeConfig;\n /** Whether to run logger in silent mode */\n silent?: boolean;\n};\n\nexport type BrowserAgentConfig = Omit<\n AgentConfig<BrowserHCSClient>,\n 'privateKey'\n> & {\n client: BrowserHCSClient;\n};\n\nexport type RegisteredAgent = {\n outboundTopicId: string;\n inboundTopicId: string;\n pfpTopicId: string;\n profileTopicId: string;\n error?: string;\n success: boolean;\n state: AgentCreationState;\n};\n\nexport class BrowserHCSClient extends HCS10BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n declare protected logger: ILogger;\n private guardedRegistryBaseUrl: string;\n private hcs11Client: HCS11Client | null = null;\n\n constructor(config: BrowserHCSClientConfig) {\n super({\n network: config.network,\n logLevel: config.logLevel,\n prettyPrint: config.prettyPrint,\n feeAmount: config.feeAmount,\n mirrorNode: config.mirrorNode,\n silent: config.silent,\n });\n\n this.hwc = config.hwc;\n if (!config.guardedRegistryBaseUrl) {\n this.guardedRegistryBaseUrl = 'https://moonscape.tech';\n } else {\n this.guardedRegistryBaseUrl = config.guardedRegistryBaseUrl;\n }\n\n let logLevel: LogLevel;\n if (config.logLevel) {\n logLevel = config.logLevel;\n } else {\n logLevel = 'info';\n }\n\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'HCS-Browser',\n prettyPrint: config.prettyPrint,\n silent: config.silent,\n });\n\n if (isBrowser) {\n try {\n const { accountId, signer } = this.getAccountAndSigner();\n\n this.hcs11Client = new HCS11Client({\n network: config.network,\n auth: {\n operatorId: accountId,\n signer: signer as any,\n },\n logLevel: config.logLevel,\n silent: config.silent,\n });\n } catch (err) {\n this.logger.warn(`Failed to initialize HCS11Client: ${err}`);\n }\n } else {\n this.logger.error(\n 'BrowserHCSClient initialized in server environment - browser-specific features will not be available. Use HCS10Client instead.',\n );\n }\n }\n\n async sendMessage(\n connectionTopicId: string,\n data: string,\n memo?: string,\n submitKey?: PrivateKey,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n waitMaxAttempts?: number;\n waitIntervalMs?: number;\n },\n ): Promise<TransactionReceipt> {\n this.logger.info('Sending message');\n const operatorId = await this.getOperatorId();\n\n const payload = {\n p: 'hcs-10',\n op: 'message',\n operator_id: operatorId,\n data,\n m: memo,\n };\n\n const submissionCheck = await this.canSubmitToTopic(\n connectionTopicId,\n this.hwc.getAccountInfo().accountId,\n );\n\n const payloadString = JSON.stringify(payload);\n const isLargePayload = Buffer.from(payloadString).length > 1000;\n\n if (isLargePayload) {\n this.logger.info(\n 'Message payload exceeds 1000 bytes, storing via inscription',\n );\n try {\n const contentBuffer = Buffer.from(data);\n const fileName = `message-${Date.now()}.json`;\n const inscriptionResult = await this.inscribeFile(\n contentBuffer,\n fileName,\n {\n progressCallback: options?.progressCallback,\n waitMaxAttempts: options?.waitMaxAttempts,\n waitIntervalMs: options?.waitIntervalMs,\n },\n );\n\n if (getTopicId(inscriptionResult)) {\n payload.data = `hcs://1/${getTopicId(inscriptionResult)}`;\n this.logger.info(\n `Large message inscribed with topic ID: ${getTopicId(inscriptionResult)}`,\n );\n } else {\n throw new Error('Failed to inscribe large message content');\n }\n } catch (error) {\n this.logger.error('Error inscribing large message:', error);\n throw new Error(\n `Failed to handle large message: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n );\n }\n }\n\n return await this.submitPayload(\n connectionTopicId,\n payload,\n submitKey,\n submissionCheck.requiresFee,\n );\n }\n\n async getPublicKey(accountId: string): Promise<PublicKey> {\n return await this.mirrorNode.getPublicKey(accountId);\n }\n\n async handleConnectionRequest(\n inboundTopicId: string,\n requestingAccountId: string,\n connectionId: number,\n connectionMemo: string = 'Connection accepted. Looking forward to collaborating!',\n ttl: number = 60,\n ): Promise<HandleConnectionRequestResponse> {\n this.logger.info('Handling connection request');\n const userAccountId = this.hwc.getAccountInfo().accountId;\n if (!userAccountId) {\n throw new Error('Failed to retrieve user account ID');\n }\n\n const requesterKey =\n await this.mirrorNode.getPublicKey(requestingAccountId);\n const accountKey = await this.mirrorNode.getPublicKey(userAccountId);\n\n if (!accountKey) {\n throw new Error('Failed to retrieve public key');\n }\n\n const thresholdKey = new KeyList([accountKey, requesterKey], 1);\n const memo = this._generateHcs10Memo(Hcs10MemoType.CONNECTION, {\n ttl,\n inboundTopicId,\n connectionId,\n });\n\n const transaction = new TopicCreateTransaction()\n .setTopicMemo(memo)\n .setAutoRenewAccountId(AccountId.fromString(userAccountId))\n .setAdminKey(thresholdKey)\n .setSubmitKey(thresholdKey);\n\n this.logger.debug('Executing topic creation transaction');\n const txResponse = await this.hwc.executeTransactionWithErrorHandling(\n transaction,\n false,\n );\n if (txResponse?.error) {\n this.logger.error(txResponse.error);\n throw new Error(txResponse.error);\n }\n\n const resultReceipt = txResponse?.result;\n if (!resultReceipt?.topicId) {\n this.logger.error('Failed to create topic: topicId is null');\n throw new Error('Failed to create topic: topicId is null');\n }\n\n const connectionTopicId = resultReceipt.topicId.toString();\n const operatorId = `${inboundTopicId}@${userAccountId}`;\n const confirmedConnectionSequenceNumber = await this.confirmConnection(\n inboundTopicId,\n connectionTopicId,\n requestingAccountId,\n connectionId,\n operatorId,\n connectionMemo,\n );\n\n const accountTopics = await this.retrieveCommunicationTopics(userAccountId);\n\n const requestingAccountTopics =\n await this.retrieveCommunicationTopics(requestingAccountId);\n\n const requestingAccountOperatorId = `${requestingAccountTopics.inboundTopic}@${requestingAccountId}`;\n\n await this.recordOutboundConnectionConfirmation({\n outboundTopicId: accountTopics.outboundTopic,\n requestorOutboundTopicId: requestingAccountTopics.outboundTopic,\n connectionRequestId: connectionId,\n confirmedRequestId: confirmedConnectionSequenceNumber,\n connectionTopicId,\n operatorId: requestingAccountOperatorId,\n memo: `Connection established with ${requestingAccountId}`,\n });\n\n return {\n connectionTopicId,\n confirmedConnectionSequenceNumber,\n operatorId,\n };\n }\n\n async confirmConnection(\n inboundTopicId: string,\n connectionTopicId: string,\n connectedAccountId: string,\n connectionId: number,\n operatorId: string,\n memo: string,\n ): Promise<number> {\n this.logger.info('Confirming connection');\n const payload = {\n p: 'hcs-10',\n op: 'connection_created',\n connection_topic_id: connectionTopicId,\n connected_account_id: connectedAccountId,\n operator_id: operatorId,\n connection_id: connectionId,\n m: memo,\n };\n\n const transactionResponse = await this.submitPayload(\n inboundTopicId,\n payload,\n );\n if (!transactionResponse?.topicSequenceNumber) {\n this.logger.error(\n 'Failed to confirm connection: sequence number is null',\n );\n throw new Error('Failed to confirm connection: sequence number is null');\n }\n return transactionResponse.topicSequenceNumber.toNumber();\n }\n\n async create(\n builder: AgentBuilder | PersonBuilder,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n existingState?: AgentCreationState;\n ttl?: number;\n updateAccountMemo?: boolean;\n },\n ): Promise<RegisteredAgent | InscribeProfileResponse> {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'ProfileCreate',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n try {\n const isAgentBuilder = builder instanceof AgentBuilder;\n\n let state;\n if (options?.existingState) {\n state = options.existingState;\n } else {\n state = {\n currentStage: 'init',\n completedPercentage: 0,\n createdResources: [],\n } as AgentCreationState;\n }\n\n if (isAgentBuilder) {\n this.logger.info('Creating Agent Profile and HCS-10 Topics');\n const agentConfig = (builder as AgentBuilder).build();\n state.agentMetadata = agentConfig.metadata;\n } else {\n this.logger.info('Creating Person HCS-11 Profile');\n }\n\n progressReporter.preparing(\n `Starting ${isAgentBuilder ? 'agent' : 'person'} resource creation`,\n 0,\n {\n state,\n },\n );\n\n const {\n inboundTopicId,\n outboundTopicId,\n state: updatedState,\n } = await this.createCommunicationTopics(options, progressReporter);\n\n state = updatedState;\n\n builder.setInboundTopicId(inboundTopicId);\n builder.setOutboundTopicId(outboundTopicId);\n\n let pfpTopicId: string | undefined;\n let hasPfpBuffer: Buffer | undefined;\n let pfpFileName: string | undefined;\n\n if (isAgentBuilder) {\n const agentProfile = (builder as AgentBuilder).build();\n pfpTopicId = agentProfile.existingPfpTopicId || state.pfpTopicId;\n hasPfpBuffer = agentProfile.pfpBuffer;\n pfpFileName = agentProfile.pfpFileName || 'pfp.png';\n } else {\n const personProfile = (builder as PersonBuilder).build();\n pfpTopicId = state.pfpTopicId;\n hasPfpBuffer = personProfile.pfpBuffer;\n pfpFileName = personProfile.pfpFileName;\n }\n\n if (!pfpTopicId && hasPfpBuffer && pfpFileName) {\n pfpTopicId = await this.handleProfilePictureCreation(\n hasPfpBuffer,\n pfpFileName,\n state,\n progressReporter,\n );\n } else if (pfpTopicId) {\n progressReporter.preparing(\n `Using existing profile picture: ${pfpTopicId}`,\n 50,\n { state },\n );\n state.pfpTopicId = pfpTopicId;\n }\n\n await this.createAndInscribeProfile(\n isAgentBuilder,\n builder as any,\n pfpTopicId,\n state,\n inboundTopicId,\n outboundTopicId,\n options,\n progressReporter,\n );\n\n state.currentStage = 'complete';\n state.completedPercentage = 100;\n progressReporter.completed(\n `${isAgentBuilder ? 'Agent' : 'Person'} profile created successfully`,\n {\n profileTopicId: state.profileTopicId,\n inboundTopicId,\n outboundTopicId,\n pfpTopicId,\n state,\n },\n );\n\n let outTopicId = '';\n if (state.outboundTopicId) {\n outTopicId = state.outboundTopicId;\n }\n\n let inTopicId = '';\n if (state.inboundTopicId) {\n inTopicId = state.inboundTopicId;\n }\n\n let profilePicTopicId = '';\n if (state.pfpTopicId) {\n profilePicTopicId = state.pfpTopicId;\n }\n\n let profTopicId = '';\n if (state.profileTopicId) {\n profTopicId = state.profileTopicId;\n }\n\n return {\n outboundTopicId: outTopicId,\n inboundTopicId: inTopicId,\n pfpTopicId: profilePicTopicId,\n profileTopicId: profTopicId,\n success: true,\n state,\n } as RegisteredAgent | InscribeProfileResponse;\n } catch (error: any) {\n progressReporter.failed('Error during profile creation', {\n error: error.message,\n });\n return {\n outboundTopicId: '',\n inboundTopicId: '',\n pfpTopicId: '',\n profileTopicId: '',\n success: false,\n error: error.message,\n state: {\n currentStage: 'init',\n completedPercentage: 0,\n error: error.message,\n } as AgentCreationState,\n } as RegisteredAgent;\n }\n }\n\n private async handleProfilePictureCreation(\n pfpBuffer: Buffer,\n pfpFileName: string,\n state: AgentCreationState,\n progressReporter: ProgressReporter,\n ): Promise<string> {\n state.currentStage = 'pfp';\n progressReporter.preparing('Creating profile picture', 30, {\n state,\n });\n\n const pfpProgress = progressReporter.createSubProgress({\n minPercent: 30,\n maxPercent: 50,\n logPrefix: 'PFP',\n });\n\n const pfpResult = await this.inscribePfp(pfpBuffer, pfpFileName, {\n progressCallback: data =>\n pfpProgress.report({\n ...data,\n progressPercent: data.progressPercent ?? 0,\n details: { ...data.details, state },\n }),\n });\n\n if (!pfpResult.success) {\n let errorMessage = 'Failed to inscribe profile picture';\n if (pfpResult.error) {\n errorMessage = pfpResult.error;\n }\n throw new Error(errorMessage);\n }\n\n const pfpTopicId = pfpResult.pfpTopicId;\n state.pfpTopicId = pfpTopicId;\n\n if (state.createdResources) {\n state.createdResources.push(`pfp:${state.pfpTopicId}`);\n }\n\n progressReporter.preparing('Profile picture created', 50, { state });\n\n return pfpTopicId;\n }\n\n private async createAndInscribeProfile(\n isAgentBuilder: boolean,\n builder: AgentBuilder | PersonBuilder,\n pfpTopicId: string | undefined,\n state: AgentCreationState,\n inboundTopicId: string,\n outboundTopicId: string,\n options?: {\n updateAccountMemo?: boolean;\n },\n progressReporter?: ProgressReporter,\n ): Promise<void> {\n if (!this.hcs11Client) {\n if (progressReporter) {\n progressReporter.failed('HCS11Client is not available');\n }\n throw new Error('HCS11Client is not available');\n }\n\n this.logger.info('Creating and inscribing profile');\n if (!state.profileTopicId) {\n if (progressReporter) {\n progressReporter.preparing(\n `Storing HCS-11 ${isAgentBuilder ? 'agent' : 'person'} profile`,\n 80,\n );\n }\n\n const profileProgress = progressReporter?.createSubProgress({\n minPercent: 80,\n maxPercent: 95,\n logPrefix: 'StoreProfile',\n });\n\n let hcs11Profile;\n\n if (isAgentBuilder) {\n const agentProfile = (builder as AgentBuilder).build();\n\n const socialLinks = agentProfile.metadata?.socials\n ? Object.entries(agentProfile.metadata.socials).map(\n ([platform, handle]) => ({\n platform: platform as SocialPlatform,\n handle: handle as string,\n }),\n )\n : [];\n\n hcs11Profile = this.hcs11Client.createAIAgentProfile(\n agentProfile.name,\n agentProfile.metadata?.type === 'manual' ? 0 : 1,\n agentProfile.capabilities || [],\n agentProfile.metadata?.model || 'unknown',\n {\n alias: agentProfile.name.toLowerCase().replace(/\\s+/g, '_'),\n bio: agentProfile.bio,\n profileImage: pfpTopicId ? `hcs://1/${pfpTopicId}` : undefined,\n socials: socialLinks,\n properties: agentProfile.metadata?.properties || {},\n inboundTopicId,\n outboundTopicId,\n creator: agentProfile.metadata?.creator,\n },\n );\n } else {\n const personProfile = (builder as PersonBuilder).build();\n\n const { pfpBuffer, pfpFileName, ...cleanProfile } = personProfile;\n\n hcs11Profile = this.hcs11Client.createPersonalProfile(\n personProfile.display_name,\n {\n alias: personProfile.alias,\n bio: personProfile.bio,\n socials: personProfile.socials,\n profileImage: pfpTopicId\n ? `hcs://1/${pfpTopicId}`\n : personProfile.profileImage,\n properties: personProfile.properties,\n inboundTopicId,\n outboundTopicId,\n },\n );\n }\n\n const profileResult = await this.hcs11Client.createAndInscribeProfile(\n hcs11Profile,\n options?.updateAccountMemo ?? true,\n {\n progressCallback: data =>\n profileProgress?.report({\n ...data,\n progressPercent: data.progressPercent ?? 0,\n }),\n },\n );\n\n if (!profileResult.success) {\n if (progressReporter) {\n progressReporter.failed(\n `Failed to inscribe ${isAgentBuilder ? 'agent' : 'person'} profile`,\n {\n error: profileResult.error,\n },\n );\n }\n\n let errorMessage = `Failed to inscribe ${\n isAgentBuilder ? 'agent' : 'person'\n } profile`;\n if (profileResult.error) {\n errorMessage = profileResult.error;\n }\n throw new Error(errorMessage);\n }\n\n state.profileTopicId = profileResult.profileTopicId;\n\n if (state.createdResources) {\n state.createdResources.push(`profile:${profileResult.profileTopicId}`);\n }\n\n if (progressReporter) {\n progressReporter.preparing('HCS-11 Profile stored', 95, { state });\n }\n } else if (progressReporter) {\n progressReporter.preparing(\n `Using existing ${isAgentBuilder ? 'agent' : 'person'} profile`,\n 95,\n {\n state,\n },\n );\n }\n }\n\n private initializeRegistrationState(\n inboundTopicId: string,\n existingState?: AgentCreationState,\n ): AgentCreationState {\n const state = existingState || {\n inboundTopicId,\n currentStage: 'registration',\n completedPercentage: 0,\n createdResources: [],\n };\n\n if (\n state.currentStage !== 'registration' &&\n state.currentStage !== 'complete'\n ) {\n state.currentStage = 'registration';\n }\n\n return state;\n }\n\n private updateStateForCompletedRegistration(\n state: AgentCreationState,\n inboundTopicId: string,\n ): void {\n state.currentStage = 'complete';\n state.completedPercentage = 100;\n if (state.createdResources) {\n state.createdResources.push(`registration:${inboundTopicId}`);\n }\n }\n\n async registerAgentWithGuardedRegistry(\n accountId: string,\n network: string = this.network,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n maxAttempts?: number;\n delayMs?: number;\n existingState?: AgentCreationState;\n },\n ): Promise<AgentRegistrationResult> {\n try {\n this.logger.info('Registering agent with guarded registry');\n\n let inboundTopicId: string;\n\n if (options?.existingState?.inboundTopicId) {\n this.logger.info('Using inboundTopicId from existing state');\n inboundTopicId = options.existingState.inboundTopicId;\n } else {\n const profileResponse = await this.retrieveProfile(accountId, false, {\n maxRetries: 5,\n retryDelay: 3000,\n });\n\n if (\n !profileResponse.success ||\n !profileResponse.profile ||\n !profileResponse.topicInfo\n ) {\n const errorMessage =\n profileResponse.error ||\n `Failed to retrieve profile for account ${accountId}. Make sure the agent profile is created and memo is updated before registration.`;\n this.logger.error(errorMessage);\n return {\n error: errorMessage,\n success: false,\n state: {\n currentStage: 'registration',\n completedPercentage: 0,\n error: errorMessage,\n },\n };\n }\n\n inboundTopicId = profileResponse.topicInfo.inboundTopic;\n }\n const state = this.initializeRegistrationState(\n inboundTopicId,\n options?.existingState,\n );\n const progressReporter = new ProgressReporter({\n module: 'AgentRegistration',\n logger: this.logger,\n callback: options?.progressCallback,\n });\n\n progressReporter.preparing('Preparing agent registration', 10, {\n inboundTopicId,\n accountId,\n });\n\n const registrationResult = await this.executeRegistration(\n accountId,\n network as string,\n this.guardedRegistryBaseUrl,\n this.logger,\n );\n\n if (!registrationResult.success) {\n return {\n ...registrationResult,\n state,\n };\n }\n\n progressReporter.submitting('Submitting registration to registry', 30, {\n transactionId: registrationResult.transactionId,\n });\n\n if (registrationResult.transaction) {\n const transaction = Transaction.fromBytes(\n Buffer.from(registrationResult.transaction, 'base64'),\n );\n\n this.logger.info(`Processing registration transaction`);\n const txResult = await this.hwc.executeTransactionWithErrorHandling(\n transaction as any,\n true,\n );\n\n if (txResult.error) {\n return {\n ...registrationResult,\n error: txResult.error,\n success: false,\n state,\n };\n }\n\n this.logger.info(`Successfully processed registration transaction`);\n }\n\n progressReporter.confirming('Confirming registration transaction', 60, {\n accountId,\n inboundTopicId,\n transactionId: registrationResult.transactionId,\n });\n\n const maxAttempts = options?.maxAttempts ?? 60;\n const delayMs = options?.delayMs ?? 2000;\n\n const confirmed = await this.waitForRegistrationConfirmation(\n registrationResult.transactionId!,\n network,\n this.guardedRegistryBaseUrl,\n maxAttempts,\n delayMs,\n this.logger,\n );\n\n this.updateStateForCompletedRegistration(state, inboundTopicId);\n\n progressReporter.completed('Agent registration complete', {\n transactionId: registrationResult.transactionId,\n inboundTopicId,\n state,\n confirmed,\n });\n\n return {\n ...registrationResult,\n confirmed,\n state,\n };\n } catch (error: any) {\n this.logger.error(`Registration error: ${error.message}`);\n return {\n error: `Error during registration: ${error.message}`,\n success: false,\n state: {\n currentStage: 'registration',\n completedPercentage: 0,\n error: error.message,\n },\n };\n }\n }\n\n async createAndRegisterAgent(\n builder: AgentBuilder,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n maxAttempts?: number;\n delayMs?: number;\n existingState?: AgentCreationState;\n baseUrl?: string;\n },\n ): Promise<AgentRegistrationResult> {\n try {\n const agentConfig = builder.build();\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'AgentCreateRegister',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n let state =\n options?.existingState ||\n ({\n currentStage: 'init',\n completedPercentage: 0,\n createdResources: [],\n } as AgentCreationState);\n\n state.agentMetadata = agentConfig.metadata;\n\n progressReporter.preparing('Starting agent creation process', 0, {\n state,\n });\n\n if (\n state.currentStage !== 'complete' ||\n !state.inboundTopicId ||\n !state.outboundTopicId ||\n !state.profileTopicId\n ) {\n const createResult = await this.create(builder, {\n progressCallback: (progress: any) => {\n const adjustedPercent = (progress.progressPercent || 0) * 0.3;\n progressReporter.report({\n ...progress,\n progressPercent: adjustedPercent,\n details: {\n ...progress.details,\n state: progress.details?.state || state,\n },\n });\n },\n existingState: state,\n updateAccountMemo: true,\n });\n\n if (!('state' in createResult)) {\n throw new Error('Create method did not return expected agent state.');\n }\n\n if (!createResult.success) {\n throw new Error(\n createResult.error || 'Failed to create agent resources',\n );\n }\n\n state = createResult.state;\n state.agentMetadata = agentConfig.metadata;\n\n this.logger.info('Waiting for account memo update to propagate...');\n await new Promise(resolve => setTimeout(resolve, 5000));\n }\n\n progressReporter.preparing(\n `Agent creation status: ${state.currentStage}, ${state.completedPercentage}%`,\n 30,\n { state },\n );\n\n const { accountId } = this.getAccountAndSigner();\n\n if (\n state.currentStage !== 'complete' ||\n !state.createdResources?.includes(\n `registration:${state.inboundTopicId}`,\n )\n ) {\n if (options?.baseUrl) {\n this.guardedRegistryBaseUrl = options.baseUrl;\n }\n\n const registrationResult = await this.registerAgentWithGuardedRegistry(\n accountId,\n agentConfig.network,\n {\n progressCallback: progress => {\n const adjustedPercent =\n 30 + (progress.progressPercent || 0) * 0.7;\n progressReporter.report({\n ...progress,\n progressPercent: adjustedPercent,\n details: {\n ...progress.details,\n state: progress.details?.state || state,\n },\n });\n },\n maxAttempts: options?.maxAttempts,\n delayMs: options?.delayMs,\n existingState: state,\n },\n );\n\n if (!registrationResult.success) {\n throw new Error(\n registrationResult.error ||\n 'Failed to register agent with registry',\n );\n }\n\n state = registrationResult.state;\n }\n\n progressReporter.completed('Agent creation and registration complete', {\n state,\n });\n\n return {\n success: true,\n state,\n metadata: {\n accountId,\n operatorId: `${state.inboundTopicId}@${accountId}`,\n inboundTopicId: state.inboundTopicId!,\n outboundTopicId: state.outboundTopicId!,\n profileTopicId: state.profileTopicId!,\n pfpTopicId: state.pfpTopicId!,\n privateKey: null,\n ...state.agentMetadata,\n },\n };\n } catch (error: any) {\n this.logger.error(\n `Failed to create and register agent: ${error.message}`,\n );\n return {\n success: false,\n error: `Failed to create and register agent: ${error.message}`,\n state:\n options?.existingState ||\n ({\n currentStage: 'init',\n completedPercentage: 0,\n error: error.message,\n } as AgentCreationState),\n };\n }\n }\n\n async storeHCS11Profile(\n agentName: string,\n agentBio: string,\n inboundTopicId: string,\n outboundTopicId: string,\n capabilities: number[] = [],\n metadata: Record<string, any> = {},\n pfpBuffer?: Buffer,\n pfpFileName?: string,\n existingPfpTopicId?: string,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n updateAccountMemo?: boolean;\n },\n ): Promise<StoreHCS11ProfileResponse> {\n try {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'StoreHCS11Profile',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n progressReporter.preparing('Preparing agent profile data', 0);\n\n let pfpTopicId = existingPfpTopicId;\n\n if (!pfpTopicId && pfpBuffer && pfpFileName) {\n const pfpProgress = progressReporter.createSubProgress({\n minPercent: 0,\n maxPercent: 60,\n logPrefix: 'PFP',\n });\n\n const pfpResult = await this.inscribePfp(pfpBuffer, pfpFileName, {\n progressCallback: data => {\n pfpProgress.report({\n stage: data.stage,\n message: data.message,\n progressPercent: data.progressPercent || 0,\n details: data.details,\n });\n },\n });\n\n if (!pfpResult.success) {\n progressReporter.failed(\n 'Failed to inscribe profile picture, continuing without PFP',\n );\n } else {\n pfpTopicId = pfpResult.pfpTopicId;\n }\n } else if (existingPfpTopicId) {\n progressReporter.preparing(\n `Using existing profile picture: ${existingPfpTopicId}`,\n 30,\n );\n } else {\n progressReporter.preparing('No profile picture provided', 30);\n }\n\n if (!this.hcs11Client) {\n progressReporter.failed(\n 'HCS11Client is not available in this environment',\n );\n return {\n profileTopicId: '',\n success: false,\n error: 'HCS11Client is not available in this environment',\n transactionId: '',\n };\n }\n\n const agentType = this.hcs11Client.getAgentTypeFromMetadata({\n type: metadata.type || 'autonomous',\n } as AIAgentMetadata);\n\n progressReporter.preparing('Building agent profile', 65);\n\n const formattedSocials: SocialLink[] | undefined = metadata.socials\n ? Object.entries(metadata.socials)\n .filter(([_, handle]) => handle)\n .map(([platform, handle]) => ({\n platform: platform as SocialPlatform,\n handle: handle as string,\n }))\n : undefined;\n\n const profile = this.hcs11Client.createAIAgentProfile(\n agentName,\n agentType,\n capabilities,\n metadata.model || 'unknown',\n {\n alias: agentName.toLowerCase().replace(/\\s+/g, '_'),\n bio: agentBio,\n profileImage: pfpTopicId ? `hcs://1/${pfpTopicId}` : undefined,\n socials: formattedSocials,\n properties: {\n version: metadata.version || '1.0.0',\n creator: metadata.creator || 'Unknown',\n supported_languages: metadata.supported_languages || ['en'],\n permissions: metadata.permissions || [],\n model_details: metadata.model_details,\n training: metadata.training,\n capabilities_description: metadata.capabilities_description,\n ...metadata,\n },\n inboundTopicId,\n outboundTopicId,\n creator: metadata.creator,\n },\n );\n\n const profileProgress = progressReporter.createSubProgress({\n minPercent: 65,\n maxPercent: 100,\n logPrefix: 'Profile',\n });\n\n const profileResult = await this.hcs11Client.createAndInscribeProfile(\n profile,\n options?.updateAccountMemo ?? true,\n {\n progressCallback: profileData => {\n profileProgress.report({\n stage: profileData.stage,\n message: profileData.message,\n progressPercent: profileData.progressPercent || 0,\n details: profileData.details,\n });\n },\n },\n );\n\n if (!profileResult.success) {\n progressReporter.failed('Failed to inscribe profile');\n return {\n profileTopicId: '',\n success: false,\n error: profileResult.error || 'Failed to inscribe profile',\n transactionId: profileResult.transactionId || '',\n };\n }\n\n progressReporter.completed('Profile stored successfully', {\n profileTopicId: profileResult.profileTopicId,\n });\n\n return {\n profileTopicId: profileResult.profileTopicId,\n pfpTopicId,\n success: true,\n transactionId: profileResult.transactionId || '',\n };\n } catch (error: any) {\n this.logger.error(`Error storing HCS11 profile: ${error.message}`);\n return {\n profileTopicId: '',\n success: false,\n error: error.message,\n transactionId: '',\n };\n }\n }\n\n async createTopic(\n memo: string,\n adminKey?: boolean,\n submitKey?: boolean,\n ): Promise<{\n success: boolean;\n topicId?: string;\n error?: string;\n }> {\n this.logger.info('Creating topic');\n const { accountId, signer } = this.getAccountAndSigner();\n\n const transaction = new TopicCreateTransaction().setTopicMemo(memo);\n\n const publicKey = await this.mirrorNode.getPublicKey(accountId);\n\n if (adminKey && publicKey) {\n transaction.setAdminKey(publicKey);\n transaction.setAutoRenewAccountId(accountId);\n }\n\n if (submitKey && publicKey) {\n transaction.setSubmitKey(publicKey);\n }\n\n const transactionResponse =\n await this.hwc.executeTransactionWithErrorHandling(\n transaction as any,\n false,\n );\n\n const error = transactionResponse.error;\n\n if (error) {\n this.logger.error(error);\n return {\n success: false,\n error,\n };\n }\n\n const resultReceipt = transactionResponse.result;\n\n if (!resultReceipt?.topicId) {\n this.logger.error('Failed to create topic: topicId is null');\n return {\n success: false,\n error: 'Failed to create topic: topicId is null',\n };\n }\n\n return {\n success: true,\n topicId: resultReceipt.topicId.toString(),\n };\n }\n\n public async submitPayload(\n topicId: string,\n payload: object | string,\n submitKey?: PrivateKey,\n requiresFee?: boolean,\n ): Promise<TransactionReceipt> {\n this.logger.debug(`Submitting payload to topic ${topicId}`);\n\n let message: string;\n if (typeof payload === 'string') {\n message = payload;\n } else {\n message = JSON.stringify(payload);\n }\n\n const transaction = new TopicMessageSubmitTransaction()\n .setTopicId(topicId)\n .setMessage(message);\n\n const transactionMemo = this.getHcs10TransactionMemo(payload);\n if (transactionMemo) {\n transaction.setTransactionMemo(transactionMemo);\n }\n\n let transactionResponse: {\n result?: TransactionReceipt;\n error?: string;\n };\n\n if (requiresFee) {\n this.logger.info(\n 'Topic requires fee payment, setting max transaction fee',\n );\n transaction.setMaxTransactionFee(new Hbar(this.feeAmount));\n }\n\n if (submitKey) {\n const { signer } = this.getAccountAndSigner();\n transaction.freezeWithSigner(signer as any);\n const signedTransaction = await transaction.sign(submitKey);\n transactionResponse = await this.hwc.executeTransactionWithErrorHandling(\n signedTransaction,\n true,\n );\n } else {\n transactionResponse = await this.hwc.executeTransactionWithErrorHandling(\n transaction,\n false,\n );\n }\n\n if (transactionResponse?.error) {\n this.logger.error(\n `Failed to submit payload: ${transactionResponse.error}`,\n );\n throw new Error(`Failed to submit payload: ${transactionResponse.error}`);\n }\n\n if (!transactionResponse?.result) {\n this.logger.error(\n 'Failed to submit message: receipt is null or undefined',\n );\n throw new Error('Failed to submit message: receipt is null or undefined');\n }\n\n this.logger.debug('Payload submitted successfully via HWC');\n return transactionResponse.result;\n }\n\n async inscribeFile(\n buffer: Buffer,\n fileName: string,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n waitMaxAttempts?: number;\n waitIntervalMs?: number;\n },\n ): Promise<RetrievedInscriptionResult> {\n const { accountId, signer } = this.getAccountAndSigner();\n\n const mimeType = mime.lookup(fileName) || 'application/octet-stream';\n\n const sdk = await InscriptionSDK.createWithAuth({\n type: 'client',\n accountId: accountId,\n signer: signer as any,\n network: this.network as 'testnet' | 'mainnet',\n });\n\n const inscriptionOptions = {\n mode: 'file' as const,\n waitForConfirmation: true,\n waitMaxAttempts: options?.waitMaxAttempts || 30,\n waitIntervalMs: options?.waitIntervalMs || 4000,\n progressCallback: options?.progressCallback,\n logging: {\n level: this.logger.getLevel ? this.logger.getLevel() : 'info',\n },\n };\n\n const response = await inscribeWithSigner(\n {\n type: 'buffer',\n buffer,\n fileName,\n mimeType,\n },\n signer as any,\n {\n ...inscriptionOptions,\n network: this.network as 'testnet' | 'mainnet',\n },\n sdk,\n );\n\n if (!response.confirmed || !response.inscription) {\n throw new Error('Inscription was not confirmed');\n }\n\n return response.inscription;\n }\n\n getAccountAndSigner(): GetAccountAndSignerResponse {\n const accountInfo = this?.hwc?.getAccountInfo();\n const accountId = accountInfo?.accountId?.toString();\n const signer = this?.hwc?.dAppConnector?.signers?.find(s => {\n return s.getAccountId().toString() === accountId;\n });\n\n if (!signer) {\n this.logger.error('Failed to find signer', {\n accountId,\n signers: this?.hwc?.dAppConnector?.signers,\n accountInfo,\n });\n throw new Error('Failed to find signer');\n }\n\n return { accountId, signer: signer as any };\n }\n\n /**\n * Inscribes a profile picture (PFP) on HCS-11.\n *\n * @param buffer - The buffer containing the PFP image.\n * @param fileName - The name of the file containing the PFP image.\n * @param options - Optional configuration options.\n * @returns A promise that resolves to the topic ID of the inscribed PFP.\n */\n async inscribePfp(\n buffer: Buffer,\n fileName: string,\n options?: {\n progressCallback?: RegistrationProgressCallback;\n },\n ): Promise<InscribePfpResponse> {\n try {\n const progressCallback = options?.progressCallback;\n const progressReporter = new ProgressReporter({\n module: 'PFP-Inscription',\n logger: this.logger,\n callback: progressCallback as any,\n });\n\n if (!this.hcs11Client) {\n progressReporter.failed(\n 'HCS11Client is not available in this environment',\n );\n return {\n pfpTopicId: '',\n success: false,\n error: 'HCS11Client is not available in this environment',\n transactionId: '',\n };\n }\n\n progressReporter.preparing('Preparing to inscribe profile picture', 10);\n this.logger.info('Inscribing profile picture using HCS-11 client');\n\n const wrappedProgressCallback = (data: any) => {\n progressReporter.report({\n stage: data.stage || 'confirming',\n message: data.message || 'Processing PFP inscription',\n progressPercent: data.progressPercent || 50,\n details: data.details,\n });\n };\n\n const imageResult = await this.hcs11Client.inscribeImage(\n buffer,\n fileName,\n { progressCallback: wrappedProgressCallback },\n );\n\n if (!imageResult.success) {\n let errorMessage = 'Failed to inscribe profile picture';\n if (imageResult.error) {\n errorMessage = imageResult.error;\n }\n\n let txId = '';\n if (imageResult.transactionId) {\n txId = imageResult.transactionId;\n }\n\n return {\n pfpTopicId: '',\n success: false,\n error: errorMessage,\n transactionId: txId,\n };\n }\n\n progressReporter.completed('Successfully inscribed profile picture', {\n pfpTopicId: imageResult.imageTopicId,\n });\n\n this.logger.info(\n `Successfully inscribed profile picture with topic ID: ${imageResult.imageTopicId}`,\n );\n return {\n pfpTopicId: imageResult.imageTopicId,\n success: true,\n transactionId: imageResult.transactionId || '',\n };\n } catch (error: any) {\n this.logger.error(`Error inscribing profile picture: ${error.message}`);\n return {\n pfpTopicId: '',\n success: false,\n error: error.message,\n transactionId: '',\n };\n }\n }\n\n private async createCommunicationTopics(\n options?: {\n existingState?: AgentCreationState;\n ttl?: number;\n },\n progressReporter?: ProgressReporter,\n ): Promise<{\n inboundTopicId: string;\n outboundTopicId: string;\n state: AgentCreationState;\n }> {\n let state =\n options?.existingState ||\n ({\n currentStage: 'init',\n completedPercentage: 0,\n createdResources: [],\n } as AgentCreationState);\n\n if (progressReporter) {\n progressReporter.preparing('Starting communication topic creation', 0, {\n state,\n });\n }\n\n const { accountId } = this.getAccountAndSigner();\n if (!state.outboundTopicId) {\n state.currentStage = 'topics';\n if (progressReporter) {\n progressReporter.preparing('Creating outbound topic', 5, {\n state,\n });\n }\n const outboundMemo = this._generateHcs10Memo(Hcs10MemoType.OUTBOUND, {\n ttl: options?.ttl,\n accountId,\n });\n const outboundResult = await this.createTopic(outboundMemo, true, true);\n if (!outboundResult.success || !outboundResult.topicId) {\n throw new Error(\n outboundResult.error || 'Failed to create outbound topic',\n );\n }\n state.outboundTopicId = outboundResult.topicId;\n if (state.createdResources)\n state.createdResources.push(`outbound:${state.outboundTopicId}`);\n }\n\n if (!state.inboundTopicId) {\n state.currentStage = 'topics';\n if (progressReporter) {\n progressReporter.preparing('Creating inbound topic', 10, {\n state,\n });\n }\n const inboundMemo = this._generateHcs10Memo(Hcs10MemoType.INBOUND, {\n ttl: options?.ttl,\n accountId,\n });\n\n const inboundResult = await this.createTopic(inboundMemo, true, false);\n if (!inboundResult.success || !inboundResult.topicId) {\n throw new Error(\n inboundResult.error || 'Failed to create inbound topic',\n );\n }\n state.inboundTopicId = inboundResult.topicId;\n if (state.createdResources)\n state.createdResources.push(`inbound:${state.inboundTopicId}`);\n }\n\n return {\n inboundTopicId: state.inboundTopicId,\n outboundTopicId: state.outboundTopicId,\n state,\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HCS11Client } from "./standards-sdk.es28.js";
2
- import { sleep } from "./standards-sdk.es115.js";
2
+ import { sleep } from "./standards-sdk.es116.js";
3
3
  class Registration {
4
4
  /**
5
5
  * Checks the status of a registration request.
@@ -1,4 +1,4 @@
1
- import { Logger } from "./standards-sdk.es105.js";
1
+ import { Logger } from "./standards-sdk.es106.js";
2
2
  class ConnectionsManager {
3
3
  /**
4
4
  * Creates a new ConnectionsManager instance
@@ -1,4 +1,4 @@
1
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es136.js";
1
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es138.js";
2
2
  function memoInbound(ttl, accountId) {
3
3
  return `hcs-10:0:${ttl}:0:${accountId}`;
4
4
  }
@@ -1,5 +1,5 @@
1
1
  import { InboundTopicType } from "./standards-sdk.es29.js";
2
- import { Logger } from "./standards-sdk.es105.js";
2
+ import { Logger } from "./standards-sdk.es106.js";
3
3
  class AgentBuilder {
4
4
  constructor() {
5
5
  this.config = {};
@@ -1,4 +1,4 @@
1
- import { Logger } from "./standards-sdk.es105.js";
1
+ import { Logger } from "./standards-sdk.es106.js";
2
2
  class PersonBuilder {
3
3
  constructor() {
4
4
  this.config = {
@@ -1,5 +1,5 @@
1
1
  import { VerificationType } from "./standards-sdk.es29.js";
2
- import { Logger } from "./standards-sdk.es105.js";
2
+ import { Logger } from "./standards-sdk.es106.js";
3
3
  class MCPServerBuilder {
4
4
  constructor() {
5
5
  this.config = {
@@ -1,4 +1,4 @@
1
- import { Logger } from "./standards-sdk.es105.js";
1
+ import { Logger } from "./standards-sdk.es106.js";
2
2
  class FloraBuilder {
3
3
  constructor() {
4
4
  this.config = {