@hashgraphonline/standards-sdk 0.0.50 → 0.0.52

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 (183) hide show
  1. package/dist/es/hcs-10/base-client.d.ts +56 -1
  2. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  3. package/dist/es/hcs-10/browser.d.ts +9 -20
  4. package/dist/es/hcs-10/browser.d.ts.map +1 -1
  5. package/dist/es/hcs-10/sdk.d.ts +7 -79
  6. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  7. package/dist/es/hcs-10/types.d.ts +7 -0
  8. package/dist/es/hcs-10/types.d.ts.map +1 -1
  9. package/dist/es/hcs-11/index.d.ts +1 -1
  10. package/dist/es/hcs-11/index.d.ts.map +1 -1
  11. package/dist/es/inscribe/types.d.ts +1 -1
  12. package/dist/es/inscribe/types.d.ts.map +1 -1
  13. package/dist/es/services/mirror-node.d.ts.map +1 -1
  14. package/dist/es/standards-sdk.es10.js +122 -115
  15. package/dist/es/standards-sdk.es10.js.map +1 -1
  16. package/dist/es/standards-sdk.es101.js +1 -1
  17. package/dist/es/standards-sdk.es102.js +6 -6
  18. package/dist/es/standards-sdk.es103.js +3 -3
  19. package/dist/es/standards-sdk.es110.js +1 -1
  20. package/dist/es/standards-sdk.es111.js +2 -2
  21. package/dist/es/standards-sdk.es12.js.map +1 -1
  22. package/dist/es/standards-sdk.es13.js +1 -1
  23. package/dist/es/standards-sdk.es16.js +7 -7
  24. package/dist/es/standards-sdk.es16.js.map +1 -1
  25. package/dist/es/standards-sdk.es17.js +3 -5
  26. package/dist/es/standards-sdk.es17.js.map +1 -1
  27. package/dist/es/standards-sdk.es18.js.map +1 -1
  28. package/dist/es/standards-sdk.es21.js +10 -10
  29. package/dist/es/standards-sdk.es22.js +36 -6624
  30. package/dist/es/standards-sdk.es22.js.map +1 -1
  31. package/dist/es/standards-sdk.es23.js +48 -36
  32. package/dist/es/standards-sdk.es23.js.map +1 -1
  33. package/dist/es/standards-sdk.es24.js +6597 -21
  34. package/dist/es/standards-sdk.es24.js.map +1 -1
  35. package/dist/es/standards-sdk.es25.js +5 -2
  36. package/dist/es/standards-sdk.es25.js.map +1 -1
  37. package/dist/es/standards-sdk.es26.js +2 -5
  38. package/dist/es/standards-sdk.es26.js.map +1 -1
  39. package/dist/es/standards-sdk.es30.js +1 -1
  40. package/dist/es/standards-sdk.es33.js +419 -2
  41. package/dist/es/standards-sdk.es33.js.map +1 -1
  42. package/dist/es/standards-sdk.es34.js +2 -195
  43. package/dist/es/standards-sdk.es34.js.map +1 -1
  44. package/dist/es/standards-sdk.es35.js +111 -429
  45. package/dist/es/standards-sdk.es35.js.map +1 -1
  46. package/dist/es/standards-sdk.es36.js +2 -25
  47. package/dist/es/standards-sdk.es36.js.map +1 -1
  48. package/dist/es/standards-sdk.es37.js +24 -134
  49. package/dist/es/standards-sdk.es37.js.map +1 -1
  50. package/dist/es/standards-sdk.es38.js +356 -12
  51. package/dist/es/standards-sdk.es38.js.map +1 -1
  52. package/dist/es/standards-sdk.es39.js +5 -28
  53. package/dist/es/standards-sdk.es39.js.map +1 -1
  54. package/dist/es/standards-sdk.es40.js +173 -23
  55. package/dist/es/standards-sdk.es40.js.map +1 -1
  56. package/dist/es/standards-sdk.es41.js +75 -15
  57. package/dist/es/standards-sdk.es41.js.map +1 -1
  58. package/dist/es/standards-sdk.es42.js +109 -39
  59. package/dist/es/standards-sdk.es42.js.map +1 -1
  60. package/dist/es/standards-sdk.es43.js +48 -14
  61. package/dist/es/standards-sdk.es43.js.map +1 -1
  62. package/dist/es/standards-sdk.es44.js +9 -60
  63. package/dist/es/standards-sdk.es44.js.map +1 -1
  64. package/dist/es/standards-sdk.es45.js +73 -1265
  65. package/dist/es/standards-sdk.es45.js.map +1 -1
  66. package/dist/es/standards-sdk.es46.js +3 -147
  67. package/dist/es/standards-sdk.es46.js.map +1 -1
  68. package/dist/es/standards-sdk.es47.js +2 -91
  69. package/dist/es/standards-sdk.es47.js.map +1 -1
  70. package/dist/es/standards-sdk.es48.js +101 -73
  71. package/dist/es/standards-sdk.es48.js.map +1 -1
  72. package/dist/es/standards-sdk.es49.js +71 -29
  73. package/dist/es/standards-sdk.es49.js.map +1 -1
  74. package/dist/es/standards-sdk.es5.js +112 -444
  75. package/dist/es/standards-sdk.es5.js.map +1 -1
  76. package/dist/es/standards-sdk.es50.js +5 -5
  77. package/dist/es/standards-sdk.es50.js.map +1 -1
  78. package/dist/es/standards-sdk.es51.js +4 -158
  79. package/dist/es/standards-sdk.es51.js.map +1 -1
  80. package/dist/es/standards-sdk.es52.js +219 -21
  81. package/dist/es/standards-sdk.es52.js.map +1 -1
  82. package/dist/es/standards-sdk.es53.js +53 -788
  83. package/dist/es/standards-sdk.es53.js.map +1 -1
  84. package/dist/es/standards-sdk.es54.js +68 -142
  85. package/dist/es/standards-sdk.es54.js.map +1 -1
  86. package/dist/es/standards-sdk.es55.js +179 -158
  87. package/dist/es/standards-sdk.es55.js.map +1 -1
  88. package/dist/es/standards-sdk.es56.js +395 -376
  89. package/dist/es/standards-sdk.es56.js.map +1 -1
  90. package/dist/es/standards-sdk.es57.js +25 -2
  91. package/dist/es/standards-sdk.es57.js.map +1 -1
  92. package/dist/es/standards-sdk.es58.js +131 -112
  93. package/dist/es/standards-sdk.es58.js.map +1 -1
  94. package/dist/es/standards-sdk.es59.js +11 -14
  95. package/dist/es/standards-sdk.es59.js.map +1 -1
  96. package/dist/es/standards-sdk.es60.js +26 -24
  97. package/dist/es/standards-sdk.es60.js.map +1 -1
  98. package/dist/es/standards-sdk.es61.js +27 -24
  99. package/dist/es/standards-sdk.es61.js.map +1 -1
  100. package/dist/es/standards-sdk.es62.js +19 -36
  101. package/dist/es/standards-sdk.es62.js.map +1 -1
  102. package/dist/es/standards-sdk.es63.js +42 -27
  103. package/dist/es/standards-sdk.es63.js.map +1 -1
  104. package/dist/es/standards-sdk.es64.js +13 -357
  105. package/dist/es/standards-sdk.es64.js.map +1 -1
  106. package/dist/es/standards-sdk.es65.js +60 -5
  107. package/dist/es/standards-sdk.es65.js.map +1 -1
  108. package/dist/es/standards-sdk.es66.js +1270 -160
  109. package/dist/es/standards-sdk.es66.js.map +1 -1
  110. package/dist/es/standards-sdk.es67.js +137 -70
  111. package/dist/es/standards-sdk.es67.js.map +1 -1
  112. package/dist/es/standards-sdk.es68.js +87 -110
  113. package/dist/es/standards-sdk.es68.js.map +1 -1
  114. package/dist/es/standards-sdk.es69.js +78 -46
  115. package/dist/es/standards-sdk.es69.js.map +1 -1
  116. package/dist/es/standards-sdk.es70.js +31 -9
  117. package/dist/es/standards-sdk.es70.js.map +1 -1
  118. package/dist/es/standards-sdk.es71.js +5 -96
  119. package/dist/es/standards-sdk.es71.js.map +1 -1
  120. package/dist/es/standards-sdk.es72.js +158 -3
  121. package/dist/es/standards-sdk.es72.js.map +1 -1
  122. package/dist/es/standards-sdk.es73.js +23 -2
  123. package/dist/es/standards-sdk.es73.js.map +1 -1
  124. package/dist/es/standards-sdk.es74.js +782 -101
  125. package/dist/es/standards-sdk.es74.js.map +1 -1
  126. package/dist/es/standards-sdk.es75.js +138 -69
  127. package/dist/es/standards-sdk.es75.js.map +1 -1
  128. package/dist/es/standards-sdk.es76.js +173 -5
  129. package/dist/es/standards-sdk.es76.js.map +1 -1
  130. package/dist/es/standards-sdk.es77.js +31 -4
  131. package/dist/es/standards-sdk.es77.js.map +1 -1
  132. package/dist/es/standards-sdk.es78.js +54 -212
  133. package/dist/es/standards-sdk.es78.js.map +1 -1
  134. package/dist/es/standards-sdk.es79.js +47 -55
  135. package/dist/es/standards-sdk.es79.js.map +1 -1
  136. package/dist/es/standards-sdk.es8.js +169 -2
  137. package/dist/es/standards-sdk.es8.js.map +1 -1
  138. package/dist/es/standards-sdk.es80.js +10 -69
  139. package/dist/es/standards-sdk.es80.js.map +1 -1
  140. package/dist/es/standards-sdk.es81.js +60 -27
  141. package/dist/es/standards-sdk.es81.js.map +1 -1
  142. package/dist/es/standards-sdk.es82.js +6 -63
  143. package/dist/es/standards-sdk.es82.js.map +1 -1
  144. package/dist/es/standards-sdk.es83.js +12 -47
  145. package/dist/es/standards-sdk.es83.js.map +1 -1
  146. package/dist/es/standards-sdk.es84.js +7 -10
  147. package/dist/es/standards-sdk.es84.js.map +1 -1
  148. package/dist/es/standards-sdk.es85.js +41 -61
  149. package/dist/es/standards-sdk.es85.js.map +1 -1
  150. package/dist/es/standards-sdk.es86.js +2 -6
  151. package/dist/es/standards-sdk.es86.js.map +1 -1
  152. package/dist/es/standards-sdk.es87.js +134 -13
  153. package/dist/es/standards-sdk.es87.js.map +1 -1
  154. package/dist/es/standards-sdk.es88.js +171 -6
  155. package/dist/es/standards-sdk.es88.js.map +1 -1
  156. package/dist/es/standards-sdk.es89.js +21 -45
  157. package/dist/es/standards-sdk.es89.js.map +1 -1
  158. package/dist/es/standards-sdk.es9.js +1 -1
  159. package/dist/es/standards-sdk.es90.js +27 -2
  160. package/dist/es/standards-sdk.es90.js.map +1 -1
  161. package/dist/es/standards-sdk.es91.js +26 -136
  162. package/dist/es/standards-sdk.es91.js.map +1 -1
  163. package/dist/es/standards-sdk.es92.js +38 -172
  164. package/dist/es/standards-sdk.es92.js.map +1 -1
  165. package/dist/es/standards-sdk.es93.js +1 -1
  166. package/dist/es/standards-sdk.es94.js +3 -3
  167. package/dist/es/standards-sdk.es99.js +1 -1
  168. package/dist/umd/hcs-10/base-client.d.ts +56 -1
  169. package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
  170. package/dist/umd/hcs-10/browser.d.ts +9 -20
  171. package/dist/umd/hcs-10/browser.d.ts.map +1 -1
  172. package/dist/umd/hcs-10/sdk.d.ts +7 -79
  173. package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
  174. package/dist/umd/hcs-10/types.d.ts +7 -0
  175. package/dist/umd/hcs-10/types.d.ts.map +1 -1
  176. package/dist/umd/hcs-11/index.d.ts +1 -1
  177. package/dist/umd/hcs-11/index.d.ts.map +1 -1
  178. package/dist/umd/inscribe/types.d.ts +1 -1
  179. package/dist/umd/inscribe/types.d.ts.map +1 -1
  180. package/dist/umd/services/mirror-node.d.ts.map +1 -1
  181. package/dist/umd/standards-sdk.umd.js +2 -2
  182. package/dist/umd/standards-sdk.umd.js.map +1 -1
  183. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  import { KeyList, TopicCreateTransaction, Transaction, TopicMessageSubmitTransaction } from "@hashgraph/sdk";
2
2
  import { Logger } from "./standards-sdk.es13.js";
3
- import { InscriptionSDK } from "./standards-sdk.es22.js";
4
3
  import { HCS10BaseClient } from "./standards-sdk.es8.js";
5
4
  import { m as mimeTypesExports } from "./standards-sdk.es19.js";
6
5
  import { HCS11Client } from "./standards-sdk.es12.js";
7
6
  import { ProgressReporter } from "./standards-sdk.es15.js";
7
+ import { inscribeWithSigner } from "./standards-sdk.es16.js";
8
8
  const isBrowser = typeof window !== "undefined";
9
9
  class BrowserHCSClient extends HCS10BaseClient {
10
10
  constructor(config) {
@@ -41,45 +41,6 @@ class BrowserHCSClient extends HCS10BaseClient {
41
41
  );
42
42
  }
43
43
  }
44
- async sendMessage(connectionTopicId, operatorId, data, memo) {
45
- this.logger.info("Sending message");
46
- const payload = {
47
- p: "hcs-10",
48
- op: "message",
49
- operator_id: operatorId,
50
- data,
51
- m: memo
52
- };
53
- const payloadString = JSON.stringify(payload);
54
- const isLargePayload = Buffer.from(payloadString).length > 1e3;
55
- if (isLargePayload) {
56
- this.logger.info(
57
- "Message payload exceeds 1000 bytes, storing via inscription"
58
- );
59
- try {
60
- const contentBuffer = Buffer.from(data);
61
- const fileName = `message-${Date.now()}.json`;
62
- const inscriptionResult = await this.inscribeFile(
63
- contentBuffer,
64
- fileName
65
- );
66
- if (inscriptionResult?.topic_id) {
67
- payload.data = `hcs://1/${inscriptionResult.topic_id}`;
68
- this.logger.info(
69
- `Large message inscribed with topic ID: ${inscriptionResult.topic_id}`
70
- );
71
- } else {
72
- throw new Error("Failed to inscribe large message content");
73
- }
74
- } catch (error) {
75
- this.logger.error("Error inscribing large message:", error);
76
- throw new Error(
77
- `Failed to handle large message: ${error instanceof Error ? error.message : "Unknown error"}`
78
- );
79
- }
80
- }
81
- await this.submitPayload(connectionTopicId, payload);
82
- }
83
44
  async submitConnectionRequest(inboundTopicId, requestingAccountId, operatorId, memo) {
84
45
  this.logger.info("Submitting connection request");
85
46
  const connectionRequestMessage = {
@@ -110,7 +71,7 @@ class BrowserHCSClient extends HCS10BaseClient {
110
71
  this.logger.info(
111
72
  `Retrieved outbound topic ID: ${outboundTopic.outboundTopic} for account ID: ${requestingAccountId}`
112
73
  );
113
- const responseSequenceNumber = response?.result?.topicSequenceNumber?.toNumber();
74
+ const responseSequenceNumber = response?.topicSequenceNumber?.toNumber();
114
75
  if (!responseSequenceNumber) {
115
76
  throw new Error("Failed to get response sequence number");
116
77
  }
@@ -119,27 +80,7 @@ class BrowserHCSClient extends HCS10BaseClient {
119
80
  outbound_topic_id: inboundTopicId,
120
81
  connection_request_id: responseSequenceNumber
121
82
  });
122
- return response.result;
123
- }
124
- async recordOutboundConnectionConfirmation({
125
- outboundTopicId,
126
- connectionRequestId,
127
- confirmedRequestId,
128
- connectionTopicId,
129
- operatorId,
130
- memo
131
- }) {
132
- const payload = {
133
- p: "hcs-10",
134
- op: "connection_created",
135
- connection_topic_id: connectionTopicId,
136
- outbound_topic_id: outboundTopicId,
137
- confirmed_request_id: confirmedRequestId,
138
- connection_request_id: connectionRequestId,
139
- operator_id: operatorId,
140
- m: memo
141
- };
142
- return await this.submitPayload(outboundTopicId, payload);
83
+ return response;
143
84
  }
144
85
  async getPublicKey(accountId) {
145
86
  return await this.mirrorNode.getPublicKey(accountId);
@@ -161,20 +102,20 @@ class BrowserHCSClient extends HCS10BaseClient {
161
102
  const memo = `hcs-10:${inboundTopicId}:${connectionId}`;
162
103
  const transaction = new TopicCreateTransaction().setTopicMemo(memo).setAdminKey(thresholdKey).setSubmitKey(thresholdKey);
163
104
  this.logger.debug("Executing topic creation transaction");
164
- const receipt = await this.hwc.executeTransactionWithErrorHandling(
105
+ const txResponse = await this.hwc.executeTransactionWithErrorHandling(
165
106
  transaction,
166
107
  false
167
108
  );
168
- if (receipt.error) {
169
- this.logger.error(receipt.error);
170
- throw new Error(receipt.error);
109
+ if (txResponse.error) {
110
+ this.logger.error(txResponse.error);
111
+ throw new Error(txResponse.error);
171
112
  }
172
- const result = receipt.result;
173
- if (!result?.topicId) {
113
+ const resultReceipt = txResponse.result;
114
+ if (!resultReceipt?.topicId) {
174
115
  this.logger.error("Failed to create topic: topicId is null");
175
116
  throw new Error("Failed to create topic: topicId is null");
176
117
  }
177
- const connectionTopicId = result.topicId.toString();
118
+ const connectionTopicId = resultReceipt.topicId.toString();
178
119
  const operatorId = `${inboundTopicId}@${userAccountId}`;
179
120
  const confirmedConnectionSequenceNumber = await this.confirmConnection(
180
121
  inboundTopicId,
@@ -205,13 +146,13 @@ class BrowserHCSClient extends HCS10BaseClient {
205
146
  inboundTopicId,
206
147
  payload
207
148
  );
208
- if (!transactionResponse?.result?.topicSequenceNumber) {
149
+ if (!transactionResponse?.topicSequenceNumber) {
209
150
  this.logger.error(
210
151
  "Failed to confirm connection: sequence number is null"
211
152
  );
212
153
  throw new Error("Failed to confirm connection: sequence number is null");
213
154
  }
214
- return transactionResponse.result.topicSequenceNumber.toNumber();
155
+ return transactionResponse.topicSequenceNumber.toNumber();
215
156
  }
216
157
  async submitMessage(topicId, content, metadata = {}, memo = "") {
217
158
  this.logger.info("Submitting message");
@@ -338,7 +279,10 @@ class BrowserHCSClient extends HCS10BaseClient {
338
279
  stage: data.stage,
339
280
  message: data.message,
340
281
  progressPercent: data.progressPercent || 0,
341
- details: { ...data.details, state }
282
+ details: {
283
+ ...data.details,
284
+ state: data?.details?.state ? data.details.state : state
285
+ }
342
286
  });
343
287
  }
344
288
  });
@@ -411,7 +355,10 @@ class BrowserHCSClient extends HCS10BaseClient {
411
355
  stage: data.stage,
412
356
  message: data.message,
413
357
  progressPercent: data.progressPercent || 0,
414
- details: { ...data.details, state }
358
+ details: {
359
+ ...data.details,
360
+ state: data.details && data.details.state ? data.details.state : state
361
+ }
415
362
  });
416
363
  }
417
364
  }
@@ -626,7 +573,7 @@ class BrowserHCSClient extends HCS10BaseClient {
626
573
  progressPercent: adjustedPercent,
627
574
  details: {
628
575
  ...progress.details,
629
- state: progress.details?.state || state
576
+ state: progress.details && progress.details.state ? progress.details.state : state
630
577
  }
631
578
  });
632
579
  },
@@ -665,7 +612,7 @@ class BrowserHCSClient extends HCS10BaseClient {
665
612
  progressPercent: adjustedPercent,
666
613
  details: {
667
614
  ...progress.details,
668
- state: progress.details?.state || state
615
+ state: progress.details && progress.details.state ? progress.details.state : state
669
616
  }
670
617
  });
671
618
  },
@@ -817,8 +764,8 @@ class BrowserHCSClient extends HCS10BaseClient {
817
764
  {
818
765
  alias: agentName.toLowerCase().replace(/\s+/g, "_"),
819
766
  bio: agentDescription,
820
- profileImage: pfpTopicId ? `hcs://1/${pfpTopicId}` : void 0,
821
- socials: formattedSocials.length > 0 ? formattedSocials : void 0,
767
+ profileImage: void 0,
768
+ socials: void 0,
822
769
  properties: {
823
770
  description: agentDescription,
824
771
  version: metadata.version || "1.0.0",
@@ -835,6 +782,12 @@ class BrowserHCSClient extends HCS10BaseClient {
835
782
  creator: metadata.creator
836
783
  }
837
784
  );
785
+ if (pfpTopicId) {
786
+ profile.profileImage = `hcs://1/${pfpTopicId}`;
787
+ }
788
+ if (formattedSocials.length > 0) {
789
+ profile.socials = formattedSocials;
790
+ }
838
791
  const profileProgress = progressReporter.createSubProgress({
839
792
  minPercent: 65,
840
793
  maxPercent: 100,
@@ -894,10 +847,7 @@ class BrowserHCSClient extends HCS10BaseClient {
894
847
  if (submitKey && publicKey) {
895
848
  transaction.setSubmitKey(publicKey);
896
849
  }
897
- const transactionResponse = await this.hwc.executeTransactionWithErrorHandling(
898
- transaction,
899
- false
900
- );
850
+ const transactionResponse = await this.hwc.executeTransactionWithErrorHandling(transaction, false);
901
851
  const error = transactionResponse.error;
902
852
  if (error) {
903
853
  this.logger.error(error);
@@ -906,8 +856,8 @@ class BrowserHCSClient extends HCS10BaseClient {
906
856
  error
907
857
  };
908
858
  }
909
- const result = transactionResponse.result;
910
- if (!result?.topicId) {
859
+ const resultReceipt = transactionResponse.result;
860
+ if (!resultReceipt?.topicId) {
911
861
  this.logger.error("Failed to create topic: topicId is null");
912
862
  return {
913
863
  success: false,
@@ -916,51 +866,108 @@ class BrowserHCSClient extends HCS10BaseClient {
916
866
  }
917
867
  return {
918
868
  success: true,
919
- topicId: result.topicId.toString()
869
+ topicId: resultReceipt.topicId.toString()
920
870
  };
921
871
  }
922
- async submitPayload(topicId, payload) {
923
- this.logger.debug("Submitting payload");
924
- const transaction = new TopicMessageSubmitTransaction().setTopicId(topicId).setMessage(JSON.stringify(payload));
925
- return await this.hwc.executeTransactionWithErrorHandling(
872
+ async submitPayload(topicId, payload, _submitKey, _requiresFee) {
873
+ this.logger.debug(`Submitting payload to topic ${topicId}`);
874
+ let message;
875
+ if (typeof payload === "string") {
876
+ message = payload;
877
+ } else {
878
+ message = JSON.stringify(payload);
879
+ }
880
+ const transaction = new TopicMessageSubmitTransaction().setTopicId(topicId).setMessage(message);
881
+ const txResponse = await this.hwc.executeTransactionWithErrorHandling(
926
882
  transaction,
927
883
  false
928
884
  );
885
+ if (txResponse.error) {
886
+ this.logger.error(`Failed to submit payload: ${txResponse.error}`);
887
+ throw new Error(`Failed to submit payload: ${txResponse.error}`);
888
+ }
889
+ if (!txResponse.result) {
890
+ this.logger.error(
891
+ "Failed to submit message: receipt is null or undefined"
892
+ );
893
+ throw new Error("Failed to submit message: receipt is null or undefined");
894
+ }
895
+ this.logger.debug("Payload submitted successfully via HWC");
896
+ return txResponse.result;
929
897
  }
930
- async inscribeFile(buffer, fileName) {
898
+ async inscribeFile(buffer, fileName, options) {
931
899
  const { accountId, signer } = this.getAccountAndSigner();
932
- const mimeType = mimeTypesExports.lookup(fileName) || "application/octet-stream";
933
- const sdk = await InscriptionSDK.createWithAuth({
934
- type: "client",
935
- accountId,
936
- signer,
937
- network: this.network
900
+ let mimeType = "application/octet-stream";
901
+ try {
902
+ const detectedType = mimeTypesExports.lookup(fileName);
903
+ if (detectedType) {
904
+ mimeType = detectedType;
905
+ }
906
+ } catch (error) {
907
+ this.logger.warn(`Error detecting MIME type, using default: ${error}`);
908
+ }
909
+ this.logger.info(`Inscribing file: ${fileName} (${mimeType})`);
910
+ const progressReporter = new ProgressReporter({
911
+ module: "FileInscriber",
912
+ logger: this.logger,
913
+ callback: options?.progressCallback
938
914
  });
939
- const result = await sdk.inscribe(
940
- {
941
- file: {
942
- type: "base64",
943
- base64: buffer.toString("base64"),
915
+ progressReporter.preparing("Preparing file for inscription", 10, {
916
+ fileName,
917
+ size: buffer.length,
918
+ mimeType
919
+ });
920
+ try {
921
+ const response = await inscribeWithSigner(
922
+ {
923
+ type: "buffer",
924
+ buffer,
944
925
  fileName,
945
926
  mimeType
946
927
  },
947
- holderId: accountId.toString(),
948
- mode: "file",
949
- network: this.network
950
- },
951
- signer
952
- );
953
- if (!result.transactionId || !result.jobId) {
954
- this.logger.error("Failed to inscribe, no transaction ID or job ID.");
955
- throw new Error("Failed to inscribe, no transaction ID or job ID.");
956
- }
957
- if (result.transactionId && result.jobId) {
958
- this.logger.info(
959
- `Transaction ID: ${result.transactionId}, Job ID: ${result.jobId}`
928
+ signer,
929
+ {
930
+ mode: "file",
931
+ network: this.network,
932
+ waitForConfirmation: true,
933
+ waitMaxAttempts: options && options.waitMaxAttempts ? options.waitMaxAttempts : 30,
934
+ waitIntervalMs: options && options.waitIntervalMs ? options.waitIntervalMs : 4e3,
935
+ progressCallback: (data) => {
936
+ const stageName = data.stage || "preparing";
937
+ const message = data.message || "Processing file inscription";
938
+ const percent = data.progressPercent || 50;
939
+ progressReporter.report({
940
+ stage: stageName,
941
+ message,
942
+ progressPercent: 10 + percent * 0.9,
943
+ // Scale from 10% to 100%
944
+ details: data.details || {}
945
+ });
946
+ },
947
+ logging: {
948
+ level: "debug"
949
+ }
950
+ }
960
951
  );
952
+ if (!response.confirmed) {
953
+ throw new Error("Failed to inscribe file: inscription not confirmed");
954
+ }
955
+ const inscription = response.inscription;
956
+ progressReporter.completed("File successfully inscribed", {
957
+ fileName,
958
+ topicId: inscription.topic_id,
959
+ transactionId: inscription.transactionId
960
+ });
961
+ return inscription;
962
+ } catch (error) {
963
+ let errorMessage = String(error);
964
+ if (error instanceof Error) {
965
+ errorMessage = error.message;
966
+ }
967
+ progressReporter.failed(`Failed to inscribe file: ${errorMessage}`);
968
+ this.logger.error(`Error inscribing file: ${error}`);
969
+ throw error;
961
970
  }
962
- const status = await sdk.waitForInscription(result.jobId, 30, 4e3, true);
963
- return status;
964
971
  }
965
972
  getAccountAndSigner() {
966
973
  const accountInfo = this.hwc.getAccountInfo();