@hashgraphonline/standards-sdk 0.1.136-fix-hol-env.canary.a285980.31 → 0.1.137-feat-hcs-21.canary.5802d65.32

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 (227) hide show
  1. package/dist/cjs/hcs-21/base-client.d.ts +31 -0
  2. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -0
  3. package/dist/cjs/hcs-21/browser.d.ts +20 -0
  4. package/dist/cjs/hcs-21/browser.d.ts.map +1 -0
  5. package/dist/cjs/hcs-21/errors.d.ts +6 -0
  6. package/dist/cjs/hcs-21/errors.d.ts.map +1 -0
  7. package/dist/cjs/hcs-21/index.d.ts +7 -0
  8. package/dist/cjs/hcs-21/index.d.ts.map +1 -0
  9. package/dist/cjs/hcs-21/sdk.d.ts +48 -0
  10. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -0
  11. package/dist/cjs/hcs-21/tx.d.ts +20 -0
  12. package/dist/cjs/hcs-21/tx.d.ts.map +1 -0
  13. package/dist/cjs/hcs-21/types.d.ts +72 -0
  14. package/dist/cjs/hcs-21/types.d.ts.map +1 -0
  15. package/dist/cjs/index.d.ts +1 -0
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/services/types.d.ts +1 -1
  18. package/dist/cjs/services/types.d.ts.map +1 -1
  19. package/dist/cjs/standards-sdk.cjs +2 -2
  20. package/dist/cjs/standards-sdk.cjs.map +1 -1
  21. package/dist/es/hcs-21/base-client.d.ts +31 -0
  22. package/dist/es/hcs-21/base-client.d.ts.map +1 -0
  23. package/dist/es/hcs-21/browser.d.ts +20 -0
  24. package/dist/es/hcs-21/browser.d.ts.map +1 -0
  25. package/dist/es/hcs-21/errors.d.ts +6 -0
  26. package/dist/es/hcs-21/errors.d.ts.map +1 -0
  27. package/dist/es/hcs-21/index.d.ts +7 -0
  28. package/dist/es/hcs-21/index.d.ts.map +1 -0
  29. package/dist/es/hcs-21/sdk.d.ts +48 -0
  30. package/dist/es/hcs-21/sdk.d.ts.map +1 -0
  31. package/dist/es/hcs-21/tx.d.ts +20 -0
  32. package/dist/es/hcs-21/tx.d.ts.map +1 -0
  33. package/dist/es/hcs-21/types.d.ts +72 -0
  34. package/dist/es/hcs-21/types.d.ts.map +1 -0
  35. package/dist/es/index.d.ts +1 -0
  36. package/dist/es/index.d.ts.map +1 -1
  37. package/dist/es/services/types.d.ts +1 -1
  38. package/dist/es/services/types.d.ts.map +1 -1
  39. package/dist/es/standards-sdk.es.js +66 -48
  40. package/dist/es/standards-sdk.es.js.map +1 -1
  41. package/dist/es/standards-sdk.es10.js +2 -2
  42. package/dist/es/standards-sdk.es100.js +231 -28
  43. package/dist/es/standards-sdk.es100.js.map +1 -1
  44. package/dist/es/standards-sdk.es101.js +109 -18
  45. package/dist/es/standards-sdk.es101.js.map +1 -1
  46. package/dist/es/standards-sdk.es102.js +32 -158
  47. package/dist/es/standards-sdk.es102.js.map +1 -1
  48. package/dist/es/standards-sdk.es103.js +80 -204
  49. package/dist/es/standards-sdk.es103.js.map +1 -1
  50. package/dist/es/standards-sdk.es104.js +21 -780
  51. package/dist/es/standards-sdk.es104.js.map +1 -1
  52. package/dist/es/standards-sdk.es105.js +140 -11
  53. package/dist/es/standards-sdk.es105.js.map +1 -1
  54. package/dist/es/standards-sdk.es106.js +29 -567
  55. package/dist/es/standards-sdk.es106.js.map +1 -1
  56. package/dist/es/standards-sdk.es107.js +17 -597
  57. package/dist/es/standards-sdk.es107.js.map +1 -1
  58. package/dist/es/standards-sdk.es108.js +159 -12
  59. package/dist/es/standards-sdk.es108.js.map +1 -1
  60. package/dist/es/standards-sdk.es109.js +208 -2
  61. package/dist/es/standards-sdk.es109.js.map +1 -1
  62. package/dist/es/standards-sdk.es110.js +774 -67
  63. package/dist/es/standards-sdk.es110.js.map +1 -1
  64. package/dist/es/standards-sdk.es111.js +11 -37
  65. package/dist/es/standards-sdk.es111.js.map +1 -1
  66. package/dist/es/standards-sdk.es112.js +567 -2
  67. package/dist/es/standards-sdk.es112.js.map +1 -1
  68. package/dist/es/standards-sdk.es113.js +576 -197
  69. package/dist/es/standards-sdk.es113.js.map +1 -1
  70. package/dist/es/standards-sdk.es114.js +12 -1139
  71. package/dist/es/standards-sdk.es114.js.map +1 -1
  72. package/dist/es/standards-sdk.es115.js +2 -306
  73. package/dist/es/standards-sdk.es115.js.map +1 -1
  74. package/dist/es/standards-sdk.es116.js +79 -418
  75. package/dist/es/standards-sdk.es116.js.map +1 -1
  76. package/dist/es/standards-sdk.es117.js +35 -351
  77. package/dist/es/standards-sdk.es117.js.map +1 -1
  78. package/dist/es/standards-sdk.es118.js +2 -761
  79. package/dist/es/standards-sdk.es118.js.map +1 -1
  80. package/dist/es/standards-sdk.es119.js +204 -185
  81. package/dist/es/standards-sdk.es119.js.map +1 -1
  82. package/dist/es/standards-sdk.es12.js +1 -1
  83. package/dist/es/standards-sdk.es120.js +1055 -1482
  84. package/dist/es/standards-sdk.es120.js.map +1 -1
  85. package/dist/es/standards-sdk.es121.js +265 -2042
  86. package/dist/es/standards-sdk.es121.js.map +1 -1
  87. package/dist/es/standards-sdk.es122.js +420 -50
  88. package/dist/es/standards-sdk.es122.js.map +1 -1
  89. package/dist/es/standards-sdk.es123.js +350 -82
  90. package/dist/es/standards-sdk.es123.js.map +1 -1
  91. package/dist/es/standards-sdk.es124.js +741 -139
  92. package/dist/es/standards-sdk.es124.js.map +1 -1
  93. package/dist/es/standards-sdk.es125.js +204 -7
  94. package/dist/es/standards-sdk.es125.js.map +1 -1
  95. package/dist/es/standards-sdk.es126.js +1533 -52
  96. package/dist/es/standards-sdk.es126.js.map +1 -1
  97. package/dist/es/standards-sdk.es127.js +2077 -59
  98. package/dist/es/standards-sdk.es127.js.map +1 -1
  99. package/dist/es/standards-sdk.es128.js +52 -28
  100. package/dist/es/standards-sdk.es128.js.map +1 -1
  101. package/dist/es/standards-sdk.es129.js +85 -692
  102. package/dist/es/standards-sdk.es129.js.map +1 -1
  103. package/dist/es/standards-sdk.es13.js +1 -1
  104. package/dist/es/standards-sdk.es130.js +135 -12250
  105. package/dist/es/standards-sdk.es130.js.map +1 -1
  106. package/dist/es/standards-sdk.es131.js +7 -138
  107. package/dist/es/standards-sdk.es131.js.map +1 -1
  108. package/dist/es/standards-sdk.es132.js +80 -36
  109. package/dist/es/standards-sdk.es132.js.map +1 -1
  110. package/dist/es/standards-sdk.es133.js +58 -49
  111. package/dist/es/standards-sdk.es133.js.map +1 -1
  112. package/dist/es/standards-sdk.es134.js +28 -64
  113. package/dist/es/standards-sdk.es134.js.map +1 -1
  114. package/dist/es/standards-sdk.es135.js +118 -152
  115. package/dist/es/standards-sdk.es135.js.map +1 -1
  116. package/dist/es/standards-sdk.es136.js +34 -314
  117. package/dist/es/standards-sdk.es136.js.map +1 -1
  118. package/dist/es/standards-sdk.es137.js +694 -346
  119. package/dist/es/standards-sdk.es137.js.map +1 -1
  120. package/dist/es/standards-sdk.es138.js +12216 -395
  121. package/dist/es/standards-sdk.es138.js.map +1 -1
  122. package/dist/es/standards-sdk.es139.js +55 -330
  123. package/dist/es/standards-sdk.es139.js.map +1 -1
  124. package/dist/es/standards-sdk.es14.js +1 -1
  125. package/dist/es/standards-sdk.es140.js +50 -62
  126. package/dist/es/standards-sdk.es140.js.map +1 -1
  127. package/dist/es/standards-sdk.es141.js +168 -13
  128. package/dist/es/standards-sdk.es141.js.map +1 -1
  129. package/dist/es/standards-sdk.es142.js +325 -0
  130. package/dist/es/standards-sdk.es142.js.map +1 -0
  131. package/dist/es/standards-sdk.es143.js +349 -0
  132. package/dist/es/standards-sdk.es143.js.map +1 -0
  133. package/dist/es/standards-sdk.es144.js +456 -0
  134. package/dist/es/standards-sdk.es144.js.map +1 -0
  135. package/dist/es/standards-sdk.es145.js +334 -0
  136. package/dist/es/standards-sdk.es145.js.map +1 -0
  137. package/dist/es/standards-sdk.es146.js +79 -0
  138. package/dist/es/standards-sdk.es146.js.map +1 -0
  139. package/dist/es/standards-sdk.es147.js +20 -0
  140. package/dist/es/standards-sdk.es147.js.map +1 -0
  141. package/dist/es/standards-sdk.es15.js +1 -1
  142. package/dist/es/standards-sdk.es16.js +1 -1
  143. package/dist/es/standards-sdk.es17.js +5 -5
  144. package/dist/es/standards-sdk.es19.js +12 -12
  145. package/dist/es/standards-sdk.es20.js +9 -9
  146. package/dist/es/standards-sdk.es21.js +1 -1
  147. package/dist/es/standards-sdk.es22.js +1 -1
  148. package/dist/es/standards-sdk.es23.js +1 -1
  149. package/dist/es/standards-sdk.es24.js +1 -1
  150. package/dist/es/standards-sdk.es25.js +1 -1
  151. package/dist/es/standards-sdk.es26.js +1 -1
  152. package/dist/es/standards-sdk.es27.js +1 -1
  153. package/dist/es/standards-sdk.es28.js +12 -12
  154. package/dist/es/standards-sdk.es3.js +2 -2
  155. package/dist/es/standards-sdk.es31.js +2 -2
  156. package/dist/es/standards-sdk.es32.js +4 -4
  157. package/dist/es/standards-sdk.es33.js +1 -1
  158. package/dist/es/standards-sdk.es36.js +6 -6
  159. package/dist/es/standards-sdk.es37.js +4 -4
  160. package/dist/es/standards-sdk.es38.js +2 -2
  161. package/dist/es/standards-sdk.es39.js +2 -2
  162. package/dist/es/standards-sdk.es40.js +1 -1
  163. package/dist/es/standards-sdk.es41.js +1 -1
  164. package/dist/es/standards-sdk.es42.js +2 -2
  165. package/dist/es/standards-sdk.es47.js +1 -1
  166. package/dist/es/standards-sdk.es5.js +2 -2
  167. package/dist/es/standards-sdk.es52.js +1 -1
  168. package/dist/es/standards-sdk.es54.js +1 -1
  169. package/dist/es/standards-sdk.es57.js +2 -2
  170. package/dist/es/standards-sdk.es59.js +1 -1
  171. package/dist/es/standards-sdk.es6.js +2 -2
  172. package/dist/es/standards-sdk.es60.js +1 -1
  173. package/dist/es/standards-sdk.es61.js +7 -7
  174. package/dist/es/standards-sdk.es63.js +1 -1
  175. package/dist/es/standards-sdk.es65.js +2 -2
  176. package/dist/es/standards-sdk.es66.js +3 -3
  177. package/dist/es/standards-sdk.es69.js +2 -2
  178. package/dist/es/standards-sdk.es7.js +2 -2
  179. package/dist/es/standards-sdk.es70.js +3 -3
  180. package/dist/es/standards-sdk.es71.js +2 -2
  181. package/dist/es/standards-sdk.es72.js +1 -1
  182. package/dist/es/standards-sdk.es75.js +2 -2
  183. package/dist/es/standards-sdk.es77.js +2 -2
  184. package/dist/es/standards-sdk.es78.js +4 -4
  185. package/dist/es/standards-sdk.es79.js +1 -1
  186. package/dist/es/standards-sdk.es8.js +1 -1
  187. package/dist/es/standards-sdk.es80.js +25 -27
  188. package/dist/es/standards-sdk.es80.js.map +1 -1
  189. package/dist/es/standards-sdk.es81.js +6 -78
  190. package/dist/es/standards-sdk.es81.js.map +1 -1
  191. package/dist/es/standards-sdk.es82.js +27 -64
  192. package/dist/es/standards-sdk.es82.js.map +1 -1
  193. package/dist/es/standards-sdk.es83.js +67 -23
  194. package/dist/es/standards-sdk.es83.js.map +1 -1
  195. package/dist/es/standards-sdk.es84.js +165 -23
  196. package/dist/es/standards-sdk.es84.js.map +1 -1
  197. package/dist/es/standards-sdk.es85.js +31 -166
  198. package/dist/es/standards-sdk.es85.js.map +1 -1
  199. package/dist/es/standards-sdk.es86.js +24 -127
  200. package/dist/es/standards-sdk.es86.js.map +1 -1
  201. package/dist/es/standards-sdk.es87.js +65 -142
  202. package/dist/es/standards-sdk.es87.js.map +1 -1
  203. package/dist/es/standards-sdk.es88.js +52 -127
  204. package/dist/es/standards-sdk.es88.js.map +1 -1
  205. package/dist/es/standards-sdk.es89.js +26 -41
  206. package/dist/es/standards-sdk.es89.js.map +1 -1
  207. package/dist/es/standards-sdk.es90.js +23 -261
  208. package/dist/es/standards-sdk.es90.js.map +1 -1
  209. package/dist/es/standards-sdk.es91.js +162 -93
  210. package/dist/es/standards-sdk.es91.js.map +1 -1
  211. package/dist/es/standards-sdk.es92.js +112 -83
  212. package/dist/es/standards-sdk.es92.js.map +1 -1
  213. package/dist/es/standards-sdk.es93.js +156 -28
  214. package/dist/es/standards-sdk.es93.js.map +1 -1
  215. package/dist/es/standards-sdk.es94.js +133 -225
  216. package/dist/es/standards-sdk.es94.js.map +1 -1
  217. package/dist/es/standards-sdk.es95.js +40 -108
  218. package/dist/es/standards-sdk.es95.js.map +1 -1
  219. package/dist/es/standards-sdk.es96.js +253 -24
  220. package/dist/es/standards-sdk.es96.js.map +1 -1
  221. package/dist/es/standards-sdk.es97.js +96 -80
  222. package/dist/es/standards-sdk.es97.js.map +1 -1
  223. package/dist/es/standards-sdk.es98.js +91 -21
  224. package/dist/es/standards-sdk.es98.js.map +1 -1
  225. package/dist/es/standards-sdk.es99.js +28 -141
  226. package/dist/es/standards-sdk.es99.js.map +1 -1
  227. package/package.json +2 -1
@@ -1,32 +1,235 @@
1
- import { Logger } from "./standards-sdk.es99.js";
2
- function createLoggerAdapter(iLogger) {
3
- const adapter = Object.create(Logger.prototype);
4
- adapter.debug = (...args) => iLogger.debug(...args);
5
- adapter.info = (...args) => iLogger.info(...args);
6
- adapter.warn = (...args) => iLogger.warn(...args);
7
- adapter.error = (...args) => iLogger.error(...args);
8
- adapter.trace = (...args) => iLogger.trace(...args);
9
- adapter.setLogLevel = (level) => iLogger.setLogLevel(level);
10
- adapter.getLevel = () => iLogger.getLevel();
11
- adapter.setSilent = (silent) => iLogger.setSilent(silent);
12
- adapter.setModule = (module) => iLogger.setModule(module);
13
- adapter.logger = { level: iLogger.getLevel() };
14
- adapter.moduleContext = "";
15
- adapter.formatArgs = () => ({ msg: "" });
16
- return adapter;
17
- }
18
- function isConcreteLogger(logger) {
19
- return logger instanceof Logger;
20
- }
21
- function ensureLoggerType(logger) {
22
- if (isConcreteLogger(logger)) {
23
- return logger;
24
- }
25
- return createLoggerAdapter(logger);
1
+ var DiscoveryOperation = /* @__PURE__ */ ((DiscoveryOperation2) => {
2
+ DiscoveryOperation2["ANNOUNCE"] = "announce";
3
+ DiscoveryOperation2["PROPOSE"] = "propose";
4
+ DiscoveryOperation2["RESPOND"] = "respond";
5
+ DiscoveryOperation2["COMPLETE"] = "complete";
6
+ DiscoveryOperation2["WITHDRAW"] = "withdraw";
7
+ return DiscoveryOperation2;
8
+ })(DiscoveryOperation || {});
9
+ function isRecord(value) {
10
+ return typeof value === "object" && value !== null;
26
11
  }
12
+ function isString(value) {
13
+ return typeof value === "string";
14
+ }
15
+ function isNumber(value) {
16
+ return typeof value === "number" && Number.isFinite(value);
17
+ }
18
+ function isArray(value) {
19
+ return Array.isArray(value);
20
+ }
21
+ function isArrayOfStrings(value) {
22
+ return Array.isArray(value) && value.every(isString);
23
+ }
24
+ function isDiscoveryMessage(value) {
25
+ if (!isRecord(value)) {
26
+ return false;
27
+ }
28
+ if (value.p !== "hcs-18") {
29
+ return false;
30
+ }
31
+ if (!isString(value.op)) {
32
+ return false;
33
+ }
34
+ const op = value.op;
35
+ if (!["announce", "propose", "respond", "complete", "withdraw"].includes(op)) {
36
+ return false;
37
+ }
38
+ return "data" in value;
39
+ }
40
+ function isAnnounceMessage(value) {
41
+ if (!isDiscoveryMessage(value)) {
42
+ return false;
43
+ }
44
+ const v = value;
45
+ if (v.op !== "announce") {
46
+ return false;
47
+ }
48
+ if (!isRecord(v.data)) {
49
+ return false;
50
+ }
51
+ const d = v.data;
52
+ if (!isString(d.account)) {
53
+ return false;
54
+ }
55
+ if (!isRecord(d.petal)) {
56
+ return false;
57
+ }
58
+ const petal = d.petal;
59
+ if (!isString(petal.name) || !isNumber(petal.priority)) {
60
+ return false;
61
+ }
62
+ if (!isRecord(d.capabilities)) {
63
+ return false;
64
+ }
65
+ const caps = d.capabilities;
66
+ if (!isArrayOfStrings(caps.protocols)) {
67
+ return false;
68
+ }
69
+ if ("valid_for" in d && d.valid_for !== void 0 && d.valid_for !== null && !isNumber(d.valid_for)) {
70
+ return false;
71
+ }
72
+ return true;
73
+ }
74
+ function isProposeMessage(value) {
75
+ if (!isDiscoveryMessage(value)) {
76
+ return false;
77
+ }
78
+ const v = value;
79
+ if (v.op !== "propose") {
80
+ return false;
81
+ }
82
+ if (!isRecord(v.data)) {
83
+ return false;
84
+ }
85
+ const d = v.data;
86
+ if (!isString(d.proposer)) {
87
+ return false;
88
+ }
89
+ if (!isArray(d.members)) {
90
+ return false;
91
+ }
92
+ const membersOk = d.members.every((m) => {
93
+ if (!isRecord(m)) {
94
+ return false;
95
+ }
96
+ const mr = m;
97
+ if (!isString(mr.account)) {
98
+ return false;
99
+ }
100
+ if (!("priority" in mr) || !isNumber(mr.priority)) {
101
+ return false;
102
+ }
103
+ if ("announce_seq" in mr && mr.announce_seq !== void 0 && mr.announce_seq !== null && !isNumber(mr.announce_seq)) {
104
+ return false;
105
+ }
106
+ return true;
107
+ });
108
+ if (!membersOk) {
109
+ return false;
110
+ }
111
+ if (!isRecord(d.config)) {
112
+ return false;
113
+ }
114
+ const cfg = d.config;
115
+ if (!isString(cfg.name) || !isNumber(cfg.threshold)) {
116
+ return false;
117
+ }
118
+ return true;
119
+ }
120
+ function isRespondMessage(value) {
121
+ if (!isDiscoveryMessage(value)) {
122
+ return false;
123
+ }
124
+ const v = value;
125
+ if (v.op !== "respond") {
126
+ return false;
127
+ }
128
+ if (!isRecord(v.data)) {
129
+ return false;
130
+ }
131
+ const d = v.data;
132
+ if (!isString(d.responder)) {
133
+ return false;
134
+ }
135
+ if (!isNumber(d.proposal_seq)) {
136
+ return false;
137
+ }
138
+ if (!isString(d.decision)) {
139
+ return false;
140
+ }
141
+ if (!["accept", "reject"].includes(d.decision)) {
142
+ return false;
143
+ }
144
+ return true;
145
+ }
146
+ function isCompleteMessage(value) {
147
+ if (!isDiscoveryMessage(value)) {
148
+ return false;
149
+ }
150
+ const v = value;
151
+ if (v.op !== "complete") {
152
+ return false;
153
+ }
154
+ if (!isRecord(v.data)) {
155
+ return false;
156
+ }
157
+ const d = v.data;
158
+ if (!isString(d.proposer)) {
159
+ return false;
160
+ }
161
+ if (!isNumber(d.proposal_seq)) {
162
+ return false;
163
+ }
164
+ if (!isString(d.flora_account)) {
165
+ return false;
166
+ }
167
+ if (!isRecord(d.topics)) {
168
+ return false;
169
+ }
170
+ const t = d.topics;
171
+ if (!isString(t.communication) || !isString(t.transaction) || !isString(t.state)) {
172
+ return false;
173
+ }
174
+ return true;
175
+ }
176
+ function isWithdrawMessage(value) {
177
+ if (!isDiscoveryMessage(value)) {
178
+ return false;
179
+ }
180
+ const v = value;
181
+ if (v.op !== "withdraw") {
182
+ return false;
183
+ }
184
+ if (!isRecord(v.data)) {
185
+ return false;
186
+ }
187
+ const d = v.data;
188
+ if (!isString(d.account)) {
189
+ return false;
190
+ }
191
+ if (!isNumber(d.announce_seq)) {
192
+ return false;
193
+ }
194
+ if ("reason" in d && d.reason !== void 0 && d.reason !== null && !isString(d.reason)) {
195
+ return false;
196
+ }
197
+ return true;
198
+ }
199
+ var DiscoveryState = /* @__PURE__ */ ((DiscoveryState2) => {
200
+ DiscoveryState2["IDLE"] = "idle";
201
+ DiscoveryState2["ANNOUNCED"] = "announced";
202
+ DiscoveryState2["PROPOSING"] = "proposing";
203
+ DiscoveryState2["FORMING"] = "forming";
204
+ DiscoveryState2["ACTIVE"] = "active";
205
+ DiscoveryState2["WITHDRAWN"] = "withdrawn";
206
+ return DiscoveryState2;
207
+ })(DiscoveryState || {});
208
+ class DiscoveryError extends Error {
209
+ constructor(message, code) {
210
+ super(message);
211
+ this.code = code;
212
+ this.name = "DiscoveryError";
213
+ }
214
+ }
215
+ const DiscoveryErrorCodes = {
216
+ INVALID_MESSAGE: "INVALID_MESSAGE",
217
+ TIMEOUT: "TIMEOUT",
218
+ INSUFFICIENT_PETALS: "INSUFFICIENT_PETALS",
219
+ FLORA_CREATION_FAILED: "FLORA_CREATION_FAILED",
220
+ ALREADY_IN_DISCOVERY: "ALREADY_IN_DISCOVERY",
221
+ INVALID_STATE: "INVALID_STATE"
222
+ };
27
223
  export {
28
- createLoggerAdapter,
29
- ensureLoggerType,
30
- isConcreteLogger
224
+ DiscoveryError,
225
+ DiscoveryErrorCodes,
226
+ DiscoveryOperation,
227
+ DiscoveryState,
228
+ isAnnounceMessage,
229
+ isCompleteMessage,
230
+ isDiscoveryMessage,
231
+ isProposeMessage,
232
+ isRespondMessage,
233
+ isWithdrawMessage
31
234
  };
32
235
  //# sourceMappingURL=standards-sdk.es100.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es100.js","sources":["../../src/utils/logger-adapter.ts"],"sourcesContent":["import { Logger, ILogger } from './logger';\n\n/**\n * Creates a Logger instance that wraps an ILogger implementation\n * This is needed for compatibility with external libraries that expect the concrete Logger type\n */\nexport function createLoggerAdapter(iLogger: ILogger): Logger {\n const adapter = Object.create(Logger.prototype);\n\n adapter.debug = (...args: any[]) => iLogger.debug(...args);\n adapter.info = (...args: any[]) => iLogger.info(...args);\n adapter.warn = (...args: any[]) => iLogger.warn(...args);\n adapter.error = (...args: any[]) => iLogger.error(...args);\n adapter.trace = (...args: any[]) => iLogger.trace(...args);\n adapter.setLogLevel = (level: any) => iLogger.setLogLevel(level);\n adapter.getLevel = () => iLogger.getLevel();\n adapter.setSilent = (silent: boolean) => iLogger.setSilent(silent);\n adapter.setModule = (module: string) => iLogger.setModule(module);\n\n adapter.logger = { level: iLogger.getLevel() };\n adapter.moduleContext = '';\n adapter.formatArgs = () => ({ msg: '' });\n\n return adapter as Logger;\n}\n\n/**\n * Type guard to check if a logger is the concrete Logger type\n */\nexport function isConcreteLogger(logger: ILogger | Logger): logger is Logger {\n return logger instanceof Logger;\n}\n\n/**\n * Gets a Logger-compatible instance from an ILogger\n * If the ILogger is already a Logger, returns it as-is\n * Otherwise, creates an adapter\n */\nexport function ensureLoggerType(logger: ILogger): Logger {\n if (isConcreteLogger(logger)) {\n return logger;\n }\n return createLoggerAdapter(logger);\n}\n"],"names":[],"mappings":";AAMO,SAAS,oBAAoB,SAA0B;AAC5D,QAAM,UAAU,OAAO,OAAO,OAAO,SAAS;AAE9C,UAAQ,QAAQ,IAAI,SAAgB,QAAQ,MAAM,GAAG,IAAI;AACzD,UAAQ,OAAO,IAAI,SAAgB,QAAQ,KAAK,GAAG,IAAI;AACvD,UAAQ,OAAO,IAAI,SAAgB,QAAQ,KAAK,GAAG,IAAI;AACvD,UAAQ,QAAQ,IAAI,SAAgB,QAAQ,MAAM,GAAG,IAAI;AACzD,UAAQ,QAAQ,IAAI,SAAgB,QAAQ,MAAM,GAAG,IAAI;AACzD,UAAQ,cAAc,CAAC,UAAe,QAAQ,YAAY,KAAK;AAC/D,UAAQ,WAAW,MAAM,QAAQ,SAAA;AACjC,UAAQ,YAAY,CAAC,WAAoB,QAAQ,UAAU,MAAM;AACjE,UAAQ,YAAY,CAAC,WAAmB,QAAQ,UAAU,MAAM;AAEhE,UAAQ,SAAS,EAAE,OAAO,QAAQ,WAAS;AAC3C,UAAQ,gBAAgB;AACxB,UAAQ,aAAa,OAAO,EAAE,KAAK,GAAA;AAEnC,SAAO;AACT;AAKO,SAAS,iBAAiB,QAA4C;AAC3E,SAAO,kBAAkB;AAC3B;AAOO,SAAS,iBAAiB,QAAyB;AACxD,MAAI,iBAAiB,MAAM,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,SAAO,oBAAoB,MAAM;AACnC;"}
1
+ {"version":3,"file":"standards-sdk.es100.js","sources":["../../src/hcs-18/types.ts"],"sourcesContent":["/**\n * HCS-18 Flora Discovery Protocol Types\n * Standard for Flora discovery and formation\n */\n\nimport { TopicId } from '@hashgraph/sdk';\n\n/**\n * HCS-18 Operation types\n */\nexport enum DiscoveryOperation {\n ANNOUNCE = 'announce',\n PROPOSE = 'propose',\n RESPOND = 'respond',\n COMPLETE = 'complete',\n WITHDRAW = 'withdraw',\n}\n\n/**\n * Base HCS-18 message structure\n */\nexport interface DiscoveryMessage {\n p: 'hcs-18';\n op: DiscoveryOperation;\n data: any;\n}\n\n/**\n * Announce operation data\n */\nexport interface AnnounceData {\n account: string;\n petal: {\n name: string;\n priority: number;\n };\n capabilities: {\n protocols: string[];\n resources?: {\n compute?: 'high' | 'medium' | 'low';\n storage?: 'high' | 'medium' | 'low';\n bandwidth?: 'high' | 'medium' | 'low';\n };\n group_preferences?: {\n sizes?: number[];\n threshold_ratios?: number[];\n };\n };\n valid_for?: number;\n}\n\n/**\n * Propose operation data\n */\nexport interface ProposeData {\n proposer: string;\n members: Array<{\n account: string;\n announce_seq?: number;\n priority: number;\n status?: 'existing' | 'proposed';\n }>;\n config: {\n name: string;\n threshold: number;\n purpose?: string;\n reason?: string;\n };\n existing_flora?: string;\n}\n\n/**\n * Respond operation data\n */\nexport interface RespondData {\n responder: string;\n proposal_seq: number;\n decision: 'accept' | 'reject';\n reason?: string;\n accepted_seq?: number;\n}\n\n/**\n * Complete operation data\n */\nexport interface CompleteData {\n proposal_seq: number;\n flora_account: string;\n topics: {\n communication: string;\n transaction: string;\n state: string;\n };\n proposer?: string;\n}\n\n/**\n * Withdraw operation data\n */\nexport interface WithdrawData {\n account: string;\n announce_seq: number;\n reason?: string;\n}\n\n/**\n * Typed message operations\n */\nexport interface AnnounceMessage extends DiscoveryMessage {\n op: DiscoveryOperation.ANNOUNCE;\n data: AnnounceData;\n}\n\nexport interface ProposeMessage extends DiscoveryMessage {\n op: DiscoveryOperation.PROPOSE;\n data: ProposeData;\n}\n\nexport interface RespondMessage extends DiscoveryMessage {\n op: DiscoveryOperation.RESPOND;\n data: RespondData;\n}\n\nexport interface CompleteMessage extends DiscoveryMessage {\n op: DiscoveryOperation.COMPLETE;\n data: CompleteData;\n}\n\nexport interface WithdrawMessage extends DiscoveryMessage {\n op: DiscoveryOperation.WITHDRAW;\n data: WithdrawData;\n}\n\n/**\n * Type guard utilities for HCS-18 discovery messages\n */\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nfunction isNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n return Array.isArray(value);\n}\n\nfunction isArrayOfStrings(value: unknown): value is string[] {\n return Array.isArray(value) && value.every(isString);\n}\n\nexport function isDiscoveryMessage(value: unknown): value is DiscoveryMessage {\n if (!isRecord(value)) {\n return false;\n }\n if (value.p !== 'hcs-18') {\n return false;\n }\n if (!isString((value as Record<string, unknown>).op)) {\n return false;\n }\n const op = (value as Record<string, unknown>).op as string;\n if (\n !['announce', 'propose', 'respond', 'complete', 'withdraw'].includes(op)\n ) {\n return false;\n }\n return 'data' in value;\n}\n\nexport function isAnnounceMessage(value: unknown): value is AnnounceMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.ANNOUNCE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.account)) {\n return false;\n }\n if (!isRecord(d.petal)) {\n return false;\n }\n const petal = d.petal as Record<string, unknown>;\n if (!isString(petal.name) || !isNumber(petal.priority)) {\n return false;\n }\n if (!isRecord(d.capabilities)) {\n return false;\n }\n const caps = d.capabilities as Record<string, unknown>;\n if (!isArrayOfStrings(caps.protocols)) {\n return false;\n }\n if (\n 'valid_for' in d &&\n d.valid_for !== undefined &&\n d.valid_for !== null &&\n !isNumber(d.valid_for)\n ) {\n return false;\n }\n return true;\n}\n\nexport function isProposeMessage(value: unknown): value is ProposeMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.PROPOSE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.proposer)) {\n return false;\n }\n if (!isArray(d.members)) {\n return false;\n }\n const membersOk = (d.members as unknown[]).every(m => {\n if (!isRecord(m)) {\n return false;\n }\n const mr = m as Record<string, unknown>;\n if (!isString(mr.account)) {\n return false;\n }\n if (!('priority' in mr) || !isNumber(mr.priority)) {\n return false;\n }\n if (\n 'announce_seq' in mr &&\n mr.announce_seq !== undefined &&\n mr.announce_seq !== null &&\n !isNumber(mr.announce_seq)\n ) {\n return false;\n }\n return true;\n });\n if (!membersOk) {\n return false;\n }\n if (!isRecord(d.config)) {\n return false;\n }\n const cfg = d.config as Record<string, unknown>;\n if (!isString(cfg.name) || !isNumber(cfg.threshold)) {\n return false;\n }\n return true;\n}\n\nexport function isRespondMessage(value: unknown): value is RespondMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.RESPOND) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.responder)) {\n return false;\n }\n if (!isNumber(d.proposal_seq)) {\n return false;\n }\n if (!isString(d.decision)) {\n return false;\n }\n if (!['accept', 'reject'].includes(d.decision as string)) {\n return false;\n }\n return true;\n}\n\nexport function isCompleteMessage(value: unknown): value is CompleteMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.COMPLETE) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.proposer)) {\n return false;\n }\n if (!isNumber(d.proposal_seq)) {\n return false;\n }\n if (!isString(d.flora_account)) {\n return false;\n }\n if (!isRecord(d.topics)) {\n return false;\n }\n const t = d.topics as Record<string, unknown>;\n if (\n !isString(t.communication) ||\n !isString(t.transaction) ||\n !isString(t.state)\n ) {\n return false;\n }\n return true;\n}\n\nexport function isWithdrawMessage(value: unknown): value is WithdrawMessage {\n if (!isDiscoveryMessage(value)) {\n return false;\n }\n const v = value as DiscoveryMessage;\n if (v.op !== DiscoveryOperation.WITHDRAW) {\n return false;\n }\n if (!isRecord(v.data)) {\n return false;\n }\n const d = v.data as Record<string, unknown>;\n if (!isString(d.account)) {\n return false;\n }\n if (!isNumber(d.announce_seq)) {\n return false;\n }\n if (\n 'reason' in d &&\n d.reason !== undefined &&\n d.reason !== null &&\n !isString(d.reason)\n ) {\n return false;\n }\n return true;\n}\n\n/**\n * Discovery phase states\n */\nexport enum DiscoveryState {\n IDLE = 'idle',\n ANNOUNCED = 'announced',\n PROPOSING = 'proposing',\n FORMING = 'forming',\n ACTIVE = 'active',\n WITHDRAWN = 'withdrawn',\n}\n\n/**\n * Tracked announcement with HCS metadata\n */\nexport interface TrackedAnnouncement {\n account: string;\n sequenceNumber: number;\n consensusTimestamp: string;\n data: AnnounceData;\n}\n\n/**\n * Tracked proposal with HCS metadata\n */\nexport interface TrackedProposal {\n sequenceNumber: number;\n consensusTimestamp: string;\n proposer: string;\n data: ProposeData;\n responses: Map<string, RespondData>;\n}\n\n/**\n * Flora formation result\n */\nexport interface FloraFormation {\n proposalSeq: number;\n floraAccountId: string;\n topics: {\n communication: string;\n transaction: string;\n state: string;\n };\n members: Array<{\n account: string;\n priority: number;\n }>;\n threshold: number;\n createdAt: Date;\n}\n\n/**\n * Discovery event types for monitoring\n */\nexport interface DiscoveryEvent {\n type:\n | 'announcement_received'\n | 'proposal_received'\n | 'response_received'\n | 'formation_complete'\n | 'withdrawal_received'\n | 'discovery_timeout';\n sequenceNumber?: number;\n timestamp: Date;\n data: any;\n}\n\n/**\n * Discovery configuration\n */\nexport interface DiscoveryConfig {\n discoveryTopicId: string | TopicId;\n accountId: string;\n petalName: string;\n priority: number;\n capabilities: {\n protocols: string[];\n resources?: AnnounceData['capabilities']['resources'];\n group_preferences?: AnnounceData['capabilities']['group_preferences'];\n };\n autoAcceptFilter?: (proposal: TrackedProposal) => boolean;\n onDiscoveryEvent?: (event: DiscoveryEvent) => void;\n memberPrivateKeys?: Map<string, string>;\n}\n\n/**\n * HCS-18 Errors\n */\nexport class DiscoveryError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n ) {\n super(message);\n this.name = 'DiscoveryError';\n }\n}\n\nexport const DiscoveryErrorCodes = {\n INVALID_MESSAGE: 'INVALID_MESSAGE',\n TIMEOUT: 'TIMEOUT',\n INSUFFICIENT_PETALS: 'INSUFFICIENT_PETALS',\n FLORA_CREATION_FAILED: 'FLORA_CREATION_FAILED',\n ALREADY_IN_DISCOVERY: 'ALREADY_IN_DISCOVERY',\n INVALID_STATE: 'INVALID_STATE',\n} as const;\n"],"names":["DiscoveryOperation","DiscoveryState"],"mappings":"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"}
@@ -1,25 +1,116 @@
1
- import { HederaMirrorNode } from "./standards-sdk.es120.js";
2
- async function accountIdsToExemptKeys(accountIds, network, logger) {
3
- const mirrorNode = new HederaMirrorNode(
4
- network,
5
- logger
6
- );
7
- const exemptKeys = [];
8
- for (const accountId of accountIds) {
1
+ import { Client } from "@hashgraph/sdk";
2
+ import { Logger } from "./standards-sdk.es105.js";
3
+ import { createNodeOperatorContext } from "./standards-sdk.es135.js";
4
+ import { buildHcs18CreateDiscoveryTopicTx, buildHcs18AnnounceMessage, buildHcs18SubmitDiscoveryMessageTx, buildHcs18ProposeMessage, buildHcs18RespondMessage, buildHcs18CompleteMessage, buildHcs18WithdrawMessage } from "./standards-sdk.es103.js";
5
+ import { HCS18BaseClient } from "./standards-sdk.es104.js";
6
+ class HCS18Client extends HCS18BaseClient {
7
+ constructor(config) {
8
+ super({
9
+ network: config.network,
10
+ logger: Logger.getInstance({
11
+ level: config.logLevel || "info",
12
+ module: "HCS-18",
13
+ silent: config.silent
14
+ })
15
+ });
16
+ this.operatorCtx = createNodeOperatorContext({
17
+ network: this.network,
18
+ operatorId: config.operatorId,
19
+ operatorKey: config.operatorKey,
20
+ mirrorNode: this.mirrorNode,
21
+ logger: this.logger,
22
+ client: Client.forName(this.network)
23
+ });
24
+ this.client = this.operatorCtx.client;
25
+ }
26
+ async ensureInitialized() {
27
+ await this.operatorCtx.ensureInitialized();
28
+ }
29
+ async createDiscoveryTopic(options) {
30
+ await this.ensureInitialized();
31
+ const ttl = options?.ttlSeconds;
32
+ let operatorPublicKey;
9
33
  try {
10
- const publicKey = await mirrorNode.getPublicKey(accountId);
11
- exemptKeys.push(publicKey);
12
- } catch (error) {
13
- if (logger) {
14
- logger.warn(
15
- `Could not get public key for account ${accountId}: ${error}`
16
- );
17
- }
34
+ operatorPublicKey = this.operatorCtx.operatorKey.publicKey;
35
+ } catch {
36
+ operatorPublicKey = void 0;
18
37
  }
38
+ const tx = buildHcs18CreateDiscoveryTopicTx({
39
+ ttlSeconds: ttl,
40
+ adminKey: options?.adminKey,
41
+ submitKey: options?.submitKey,
42
+ operatorPublicKey,
43
+ memoOverride: options?.memoOverride
44
+ });
45
+ const resp = await tx.execute(this.client);
46
+ const receipt = await resp.getReceipt(this.client);
47
+ const topicId = receipt.topicId?.toString();
48
+ if (!topicId) {
49
+ throw new Error("Failed to create discovery topic");
50
+ }
51
+ return { topicId, receipt };
52
+ }
53
+ async announce(params) {
54
+ await this.ensureInitialized();
55
+ const message = buildHcs18AnnounceMessage(params.data);
56
+ const tx = buildHcs18SubmitDiscoveryMessageTx({
57
+ topicId: params.discoveryTopicId,
58
+ message,
59
+ transactionMemo: params.memo
60
+ });
61
+ const resp = await tx.execute(this.client);
62
+ const receipt = await resp.getReceipt(this.client);
63
+ const seq = receipt.topicSequenceNumber.toNumber();
64
+ return { receipt, sequenceNumber: seq };
65
+ }
66
+ async propose(params) {
67
+ await this.ensureInitialized();
68
+ const message = buildHcs18ProposeMessage(params.data);
69
+ const tx = buildHcs18SubmitDiscoveryMessageTx({
70
+ topicId: params.discoveryTopicId,
71
+ message,
72
+ transactionMemo: params.memo
73
+ });
74
+ const resp = await tx.execute(this.client);
75
+ const receipt = await resp.getReceipt(this.client);
76
+ const seq = receipt.topicSequenceNumber.toNumber();
77
+ return { receipt, sequenceNumber: seq };
78
+ }
79
+ async respond(params) {
80
+ await this.ensureInitialized();
81
+ const message = buildHcs18RespondMessage(params.data);
82
+ const tx = buildHcs18SubmitDiscoveryMessageTx({
83
+ topicId: params.discoveryTopicId,
84
+ message,
85
+ transactionMemo: params.memo
86
+ });
87
+ const resp = await tx.execute(this.client);
88
+ return await resp.getReceipt(this.client);
89
+ }
90
+ async complete(params) {
91
+ await this.ensureInitialized();
92
+ const message = buildHcs18CompleteMessage(params.data);
93
+ const tx = buildHcs18SubmitDiscoveryMessageTx({
94
+ topicId: params.discoveryTopicId,
95
+ message,
96
+ transactionMemo: params.memo
97
+ });
98
+ const resp = await tx.execute(this.client);
99
+ return await resp.getReceipt(this.client);
100
+ }
101
+ async withdraw(params) {
102
+ await this.ensureInitialized();
103
+ const message = buildHcs18WithdrawMessage(params.data);
104
+ const tx = buildHcs18SubmitDiscoveryMessageTx({
105
+ topicId: params.discoveryTopicId,
106
+ message,
107
+ transactionMemo: params.memo
108
+ });
109
+ const resp = await tx.execute(this.client);
110
+ return await resp.getReceipt(this.client);
19
111
  }
20
- return exemptKeys;
21
112
  }
22
113
  export {
23
- accountIdsToExemptKeys
114
+ HCS18Client
24
115
  };
25
116
  //# sourceMappingURL=standards-sdk.es101.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es101.js","sources":["../../src/utils/topic-fee-utils.ts"],"sourcesContent":["import { PublicKey } from '@hashgraph/sdk';\nimport { ILogger } from './logger';\nimport { HederaMirrorNode } from '../services/mirror-node';\n\n/**\n * Converts account IDs to public keys for fee exemption\n * @param client Hedera client instance\n * @param accountIds Array of account IDs to convert to public keys\n * @param network The network to use for retrieving public keys\n * @param logger Optional logger instance\n * @returns Array of public keys\n */\nexport async function accountIdsToExemptKeys(\n accountIds: string[],\n network: string,\n logger?: ILogger,\n): Promise<PublicKey[]> {\n const mirrorNode = new HederaMirrorNode(\n network as 'mainnet' | 'testnet',\n logger,\n );\n const exemptKeys: PublicKey[] = [];\n\n for (const accountId of accountIds) {\n try {\n const publicKey = await mirrorNode.getPublicKey(accountId);\n exemptKeys.push(publicKey);\n } catch (error) {\n if (logger) {\n logger.warn(\n `Could not get public key for account ${accountId}: ${error}`,\n );\n }\n }\n }\n\n return exemptKeys;\n}\n"],"names":[],"mappings":";AAYA,eAAsB,uBACpB,YACA,SACA,QACsB;AACtB,QAAM,aAAa,IAAI;AAAA,IACrB;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,aAA0B,CAAA;AAEhC,aAAW,aAAa,YAAY;AAClC,QAAI;AACF,YAAM,YAAY,MAAM,WAAW,aAAa,SAAS;AACzD,iBAAW,KAAK,SAAS;AAAA,IAC3B,SAAS,OAAO;AACd,UAAI,QAAQ;AACV,eAAO;AAAA,UACL,wCAAwC,SAAS,KAAK,KAAK;AAAA,QAAA;AAAA,MAE/D;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;"}
1
+ {"version":3,"file":"standards-sdk.es101.js","sources":["../../src/hcs-18/sdk.ts"],"sourcesContent":["import {\n Client,\n TopicCreateTransaction,\n TransactionReceipt,\n} from '@hashgraph/sdk';\nimport { Logger } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport {\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport type { MaybeKey } from '../common/tx/tx-utils';\nimport { buildHcs18CreateDiscoveryTopicTx } from './tx';\nimport { HCS18BaseClient } from './base-client';\nimport type {\n AnnounceData,\n ProposeData,\n RespondData,\n CompleteMessage,\n WithdrawMessage,\n DiscoveryMessage,\n} from './types';\nimport {\n buildHcs18SubmitDiscoveryMessageTx,\n buildHcs18AnnounceMessage,\n buildHcs18ProposeMessage,\n buildHcs18RespondMessage,\n buildHcs18CompleteMessage,\n buildHcs18WithdrawMessage,\n} from './tx';\n\nexport interface SDKHCS18ClientConfig {\n network: NetworkType;\n operatorId: string;\n operatorKey: string | import('@hashgraph/sdk').PrivateKey;\n logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent';\n silent?: boolean;\n}\n\nexport class HCS18Client extends HCS18BaseClient {\n private readonly operatorCtx: NodeOperatorContext;\n private readonly client: Client;\n\n constructor(config: SDKHCS18ClientConfig) {\n super({\n network: config.network,\n logger: Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS-18',\n silent: config.silent,\n }),\n });\n this.operatorCtx = createNodeOperatorContext({\n network: this.network,\n operatorId: config.operatorId,\n operatorKey: config.operatorKey,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client: Client.forName(this.network),\n });\n this.client = this.operatorCtx.client;\n }\n\n private async ensureInitialized(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n async createDiscoveryTopic(options?: {\n ttlSeconds?: number;\n adminKey?: MaybeKey;\n submitKey?: MaybeKey;\n memoOverride?: string;\n }): Promise<{ topicId: string; receipt: TransactionReceipt }> {\n await this.ensureInitialized();\n const ttl = options?.ttlSeconds;\n\n let operatorPublicKey: import('@hashgraph/sdk').PublicKey | undefined;\n try {\n operatorPublicKey = this.operatorCtx.operatorKey.publicKey;\n } catch {\n operatorPublicKey = undefined;\n }\n const tx: TopicCreateTransaction = buildHcs18CreateDiscoveryTopicTx({\n ttlSeconds: ttl,\n adminKey: options?.adminKey,\n submitKey: options?.submitKey,\n operatorPublicKey,\n memoOverride: options?.memoOverride,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const topicId = receipt.topicId?.toString();\n if (!topicId) {\n throw new Error('Failed to create discovery topic');\n }\n return { topicId, receipt };\n }\n\n async announce(params: {\n discoveryTopicId: string;\n data: AnnounceData;\n memo?: string;\n }): Promise<{ receipt: TransactionReceipt; sequenceNumber: number }> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18AnnounceMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const seq = receipt.topicSequenceNumber.toNumber();\n return { receipt, sequenceNumber: seq };\n }\n\n async propose(params: {\n discoveryTopicId: string;\n data: ProposeData;\n memo?: string;\n }): Promise<{ receipt: TransactionReceipt; sequenceNumber: number }> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18ProposeMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const seq = receipt.topicSequenceNumber.toNumber();\n return { receipt, sequenceNumber: seq };\n }\n\n async respond(params: {\n discoveryTopicId: string;\n data: RespondData;\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18RespondMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n async complete(params: {\n discoveryTopicId: string;\n data: CompleteMessage['data'];\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18CompleteMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n async withdraw(params: {\n discoveryTopicId: string;\n data: WithdrawMessage['data'];\n memo?: string;\n }): Promise<TransactionReceipt> {\n await this.ensureInitialized();\n const message: DiscoveryMessage = buildHcs18WithdrawMessage(params.data);\n const tx = buildHcs18SubmitDiscoveryMessageTx({\n topicId: params.discoveryTopicId,\n message,\n transactionMemo: params.memo,\n });\n const resp = await tx.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,163 +1,37 @@
1
- import { Logger } from "./standards-sdk.es99.js";
2
- class ProgressReporter {
3
- constructor(options = {}) {
4
- this.module = options.module || "Progress";
5
- this.callback = options.callback;
6
- this.logger = options.logger || new Logger({
7
- level: "info",
8
- module: "ProgressReporter"
9
- });
10
- this.logProgress = options.logProgress ?? true;
11
- this.minPercent = options.minPercent ?? 0;
12
- this.maxPercent = options.maxPercent ?? 100;
13
- this.lastReportedPercent = -1;
14
- this.lastReportedTime = 0;
15
- this.throttleMs = 100;
16
- }
17
- static getInstance(options = {}) {
18
- if (!ProgressReporter.instance) {
19
- ProgressReporter.instance = new ProgressReporter(options);
20
- } else {
21
- if (options.callback) {
22
- ProgressReporter.instance.setCallback(options.callback);
23
- }
24
- if (options.module) {
25
- ProgressReporter.instance.setModule(options.module);
26
- }
27
- if (options.logger) {
28
- ProgressReporter.instance.setLogger(options.logger);
29
- }
30
- if (options.minPercent !== void 0) {
31
- ProgressReporter.instance.setMinPercent(options.minPercent);
32
- }
33
- if (options.maxPercent !== void 0) {
34
- ProgressReporter.instance.setMaxPercent(options.maxPercent);
35
- }
36
- }
37
- return ProgressReporter.instance;
38
- }
39
- setCallback(callback) {
40
- this.callback = callback;
41
- }
42
- setModule(module) {
43
- this.module = module;
44
- }
45
- setLogger(logger) {
46
- this.logger = logger;
47
- }
48
- setMinPercent(minPercent) {
49
- this.minPercent = minPercent;
50
- }
51
- setMaxPercent(maxPercent) {
52
- this.maxPercent = maxPercent;
53
- }
54
- createSubProgress(options) {
55
- const subReporter = new ProgressReporter({
56
- module: this.module,
57
- logger: this.logger,
58
- logProgress: this.logProgress,
59
- minPercent: options.minPercent,
60
- maxPercent: options.maxPercent
61
- });
62
- const logPrefix = options.logPrefix || "";
63
- subReporter.setCallback((data) => {
64
- const scaledPercent = this.scalePercent(
65
- data.progressPercent,
66
- options.minPercent,
67
- options.maxPercent
68
- );
69
- let formattedMessage = data.message;
70
- if (logPrefix && !formattedMessage.startsWith(logPrefix)) {
71
- formattedMessage = `${logPrefix}: ${formattedMessage}`;
72
- }
73
- this.report({
74
- stage: data.stage,
75
- message: formattedMessage,
76
- progressPercent: scaledPercent,
77
- details: data.details
78
- });
79
- });
80
- return subReporter;
81
- }
82
- report(data) {
83
- const rawPercent = data.progressPercent;
84
- const percent = Math.max(0, Math.min(100, rawPercent));
85
- const scaledPercent = this.scalePercent(percent, 0, 100);
86
- const now = Date.now();
87
- if (scaledPercent === this.lastReportedPercent && now - this.lastReportedTime < this.throttleMs && data.stage !== "completed" && data.stage !== "failed") {
88
- return;
89
- }
90
- this.lastReportedPercent = scaledPercent;
91
- this.lastReportedTime = now;
92
- const progressData = {
93
- ...data,
94
- progressPercent: scaledPercent
95
- };
96
- if (this.logProgress) {
97
- this.logger.debug(
98
- `[${this.module}] [${data.stage.toUpperCase()}] ${data.message} (${scaledPercent.toFixed(1)}%)`,
99
- data.details
100
- );
101
- }
102
- if (this.callback) {
103
- try {
104
- this.callback(progressData);
105
- } catch (err) {
106
- this.logger.warn(`Error in progress callback: ${err}`);
107
- }
108
- }
109
- }
110
- scalePercent(percent, sourceMin, sourceMax) {
111
- const range = this.maxPercent - this.minPercent;
112
- const sourceRange = sourceMax - sourceMin;
113
- const scaleFactor = range / sourceRange;
114
- return this.minPercent + (percent - sourceMin) * scaleFactor;
115
- }
116
- preparing(message, percent, details) {
117
- this.report({
118
- stage: "preparing",
119
- message,
120
- progressPercent: percent,
121
- details
122
- });
123
- }
124
- submitting(message, percent, details) {
125
- this.report({
126
- stage: "submitting",
127
- message,
128
- progressPercent: percent,
129
- details
130
- });
131
- }
132
- confirming(message, percent, details) {
133
- this.report({
134
- stage: "confirming",
135
- message,
136
- progressPercent: percent,
137
- details
138
- });
139
- }
140
- verifying(message, percent, details) {
141
- this.report({
142
- stage: "verifying",
143
- message,
144
- progressPercent: percent,
145
- details
146
- });
147
- }
148
- completed(message, details) {
149
- this.report({ stage: "completed", message, progressPercent: 100, details });
150
- }
151
- failed(message, details) {
152
- this.report({
153
- stage: "failed",
154
- message,
155
- progressPercent: this.lastReportedPercent,
156
- details
157
- });
1
+ import { buildHcs18AnnounceMessage, buildHcs18ProposeMessage, buildHcs18RespondMessage, buildHcs18CompleteMessage, buildHcs18WithdrawMessage } from "./standards-sdk.es103.js";
2
+ class HCS18BrowserClient {
3
+ constructor(config) {
4
+ this.hwc = config.hwc;
5
+ }
6
+ async submit(discoveryTopicId, message) {
7
+ const receipt = await this.hwc.submitMessageToTopic(
8
+ discoveryTopicId,
9
+ JSON.stringify(message)
10
+ );
11
+ return receipt;
12
+ }
13
+ async announce(params) {
14
+ const message = buildHcs18AnnounceMessage(params.data);
15
+ return this.submit(params.discoveryTopicId, message);
16
+ }
17
+ async propose(params) {
18
+ const message = buildHcs18ProposeMessage(params.data);
19
+ return this.submit(params.discoveryTopicId, message);
20
+ }
21
+ async respond(params) {
22
+ const message = buildHcs18RespondMessage(params.data);
23
+ return this.submit(params.discoveryTopicId, message);
24
+ }
25
+ async complete(params) {
26
+ const message = buildHcs18CompleteMessage(params.data);
27
+ return this.submit(params.discoveryTopicId, message);
28
+ }
29
+ async withdraw(params) {
30
+ const message = buildHcs18WithdrawMessage(params.data);
31
+ return this.submit(params.discoveryTopicId, message);
158
32
  }
159
33
  }
160
34
  export {
161
- ProgressReporter
35
+ HCS18BrowserClient
162
36
  };
163
37
  //# sourceMappingURL=standards-sdk.es102.js.map