@hashgraphonline/standards-sdk 0.0.51 → 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.
- package/dist/es/hcs-10/base-client.d.ts +56 -1
- package/dist/es/hcs-10/base-client.d.ts.map +1 -1
- package/dist/es/hcs-10/browser.d.ts +9 -20
- package/dist/es/hcs-10/browser.d.ts.map +1 -1
- package/dist/es/hcs-10/sdk.d.ts +7 -79
- package/dist/es/hcs-10/sdk.d.ts.map +1 -1
- package/dist/es/hcs-10/types.d.ts +7 -0
- package/dist/es/hcs-10/types.d.ts.map +1 -1
- package/dist/es/hcs-11/index.d.ts +1 -1
- package/dist/es/hcs-11/index.d.ts.map +1 -1
- package/dist/es/inscribe/types.d.ts +1 -1
- package/dist/es/inscribe/types.d.ts.map +1 -1
- package/dist/es/services/mirror-node.d.ts.map +1 -1
- package/dist/es/standards-sdk.es10.js +122 -115
- package/dist/es/standards-sdk.es10.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +1 -1
- package/dist/es/standards-sdk.es102.js +6 -6
- package/dist/es/standards-sdk.es103.js +3 -3
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es111.js +2 -2
- package/dist/es/standards-sdk.es12.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es16.js +1 -1
- package/dist/es/standards-sdk.es17.js +1 -3
- package/dist/es/standards-sdk.es17.js.map +1 -1
- package/dist/es/standards-sdk.es18.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +948 -6531
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es23.js +17 -17
- package/dist/es/standards-sdk.es24.js +6624 -2
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +5 -1041
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +2 -5
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +1 -1
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +2282 -419
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +2 -2
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +412 -113
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +2 -2282
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +120 -2
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +2 -29
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +29 -2
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +346 -68
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +5 -22
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es4.js +1 -1
- package/dist/es/standards-sdk.es40.js +166 -135
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +72 -82
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +105 -165
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +47 -190
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +10 -438
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +91 -19
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +3 -138
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +2 -18
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +105 -22
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +71 -26
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es5.js +112 -444
- package/dist/es/standards-sdk.es5.js.map +1 -1
- package/dist/es/standards-sdk.es50.js +5 -20
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +4 -43
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +216 -13
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +54 -57
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +67 -1287
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +190 -27
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +437 -5
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +21 -155
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +123 -777
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +13 -138
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +26 -24
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +27 -24
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +19 -36
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +39 -357
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +17 -5
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +50 -168
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +1287 -79
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +136 -102
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +85 -46
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +84 -10
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es70.js +26 -91
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +5 -3
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +159 -2
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +21 -110
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +790 -71
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +142 -5
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +173 -4
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +26 -215
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +60 -55
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +50 -69
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +167 -0
- package/dist/es/standards-sdk.es8.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +9 -20
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +60 -27
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +6 -63
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +12 -47
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +7 -10
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +41 -61
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +2 -6
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +134 -13
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +171 -6
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +21 -45
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +1 -1
- package/dist/es/standards-sdk.es90.js +27 -2
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +26 -136
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +38 -172
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +1 -1
- package/dist/es/standards-sdk.es94.js +3 -3
- package/dist/es/standards-sdk.es99.js +1 -1
- package/dist/umd/hcs-10/base-client.d.ts +56 -1
- package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
- package/dist/umd/hcs-10/browser.d.ts +9 -20
- package/dist/umd/hcs-10/browser.d.ts.map +1 -1
- package/dist/umd/hcs-10/sdk.d.ts +7 -79
- package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
- package/dist/umd/hcs-10/types.d.ts +7 -0
- package/dist/umd/hcs-10/types.d.ts.map +1 -1
- package/dist/umd/hcs-11/index.d.ts +1 -1
- package/dist/umd/hcs-11/index.d.ts.map +1 -1
- package/dist/umd/inscribe/types.d.ts +1 -1
- package/dist/umd/inscribe/types.d.ts.map +1 -1
- package/dist/umd/services/mirror-node.d.ts.map +1 -1
- package/dist/umd/standards-sdk.umd.js +1 -1
- package/dist/umd/standards-sdk.umd.js.map +1 -1
- 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.es21.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?.
|
|
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
|
|
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
|
|
105
|
+
const txResponse = await this.hwc.executeTransactionWithErrorHandling(
|
|
165
106
|
transaction,
|
|
166
107
|
false
|
|
167
108
|
);
|
|
168
|
-
if (
|
|
169
|
-
this.logger.error(
|
|
170
|
-
throw new Error(
|
|
109
|
+
if (txResponse.error) {
|
|
110
|
+
this.logger.error(txResponse.error);
|
|
111
|
+
throw new Error(txResponse.error);
|
|
171
112
|
}
|
|
172
|
-
const
|
|
173
|
-
if (!
|
|
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 =
|
|
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?.
|
|
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.
|
|
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: {
|
|
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: {
|
|
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
|
|
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
|
|
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:
|
|
821
|
-
socials:
|
|
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
|
|
910
|
-
if (!
|
|
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:
|
|
869
|
+
topicId: resultReceipt.topicId.toString()
|
|
920
870
|
};
|
|
921
871
|
}
|
|
922
|
-
async submitPayload(topicId, payload) {
|
|
923
|
-
this.logger.debug(
|
|
924
|
-
|
|
925
|
-
|
|
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
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
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
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
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
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
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();
|