@hashgraphonline/standards-sdk 0.1.143-feat-adapter-registry.canary.fb173dc.54 → 0.1.143-feat-adapter-registry.canary.2e9e1c4.55

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 (45) hide show
  1. package/dist/cjs/standards-sdk.cjs.map +1 -1
  2. package/dist/es/standards-sdk.es111.js +5 -5
  3. package/dist/es/standards-sdk.es121.js +1 -1
  4. package/dist/es/standards-sdk.es122.js +1 -1
  5. package/dist/es/standards-sdk.es123.js +5 -5
  6. package/dist/es/standards-sdk.es125.js +1 -1
  7. package/dist/es/standards-sdk.es126.js +1 -1
  8. package/dist/es/standards-sdk.es128.js +1 -1
  9. package/dist/es/standards-sdk.es131.js +1 -1
  10. package/dist/es/standards-sdk.es138.js +1 -1
  11. package/dist/es/standards-sdk.es147.js +12 -12282
  12. package/dist/es/standards-sdk.es147.js.map +1 -1
  13. package/dist/es/standards-sdk.es148.js +168 -13
  14. package/dist/es/standards-sdk.es148.js.map +1 -1
  15. package/dist/es/standards-sdk.es149.js +321 -55
  16. package/dist/es/standards-sdk.es149.js.map +1 -1
  17. package/dist/es/standards-sdk.es150.js +331 -67
  18. package/dist/es/standards-sdk.es150.js.map +1 -1
  19. package/dist/es/standards-sdk.es151.js +410 -129
  20. package/dist/es/standards-sdk.es151.js.map +1 -1
  21. package/dist/es/standards-sdk.es152.js +209 -200
  22. package/dist/es/standards-sdk.es152.js.map +1 -1
  23. package/dist/es/standards-sdk.es153.js +64 -334
  24. package/dist/es/standards-sdk.es153.js.map +1 -1
  25. package/dist/es/standards-sdk.es154.js +12229 -395
  26. package/dist/es/standards-sdk.es154.js.map +1 -1
  27. package/dist/es/standards-sdk.es155.js +55 -330
  28. package/dist/es/standards-sdk.es155.js.map +1 -1
  29. package/dist/es/standards-sdk.es156.js +66 -60
  30. package/dist/es/standards-sdk.es156.js.map +1 -1
  31. package/dist/es/standards-sdk.es19.js +1 -1
  32. package/dist/es/standards-sdk.es20.js +1 -1
  33. package/dist/es/standards-sdk.es28.js +1 -1
  34. package/dist/es/standards-sdk.es31.js +1 -1
  35. package/dist/es/standards-sdk.es32.js +1 -1
  36. package/dist/es/standards-sdk.es36.js +1 -1
  37. package/dist/es/standards-sdk.es37.js +1 -1
  38. package/dist/es/standards-sdk.es38.js +1 -1
  39. package/dist/es/standards-sdk.es57.js +1 -1
  40. package/dist/es/standards-sdk.es59.js +1 -1
  41. package/dist/es/standards-sdk.es60.js +1 -1
  42. package/dist/es/standards-sdk.es63.js +1 -1
  43. package/dist/es/standards-sdk.es65.js +1 -1
  44. package/dist/es/standards-sdk.es66.js +1 -1
  45. package/package.json +3 -1
@@ -1,334 +1,59 @@
1
- import { proto } from "@hashgraph/proto";
2
- import { Long, FileId, ContractId } from "@hashgraph/sdk";
3
- import { hasTransactionType } from "./standards-sdk.es156.js";
4
- class UtilParser {
5
- /**
6
- * Parse Utility/System Service transaction using unified dual-branch approach
7
- * This handles both regular transactions and signed transaction variants
8
- */
9
- static parseUtilTransaction(transaction, originalBytes) {
10
- try {
11
- if (originalBytes || transaction.toBytes) {
12
- try {
13
- const bytesToParse = originalBytes || transaction.toBytes();
14
- const decoded = proto.TransactionList.decode(bytesToParse);
15
- if (decoded.transactionList && decoded.transactionList.length > 0) {
16
- const tx = decoded.transactionList[0];
17
- let txBody = null;
18
- if (tx.bodyBytes && tx.bodyBytes.length > 0) {
19
- txBody = proto.TransactionBody.decode(tx.bodyBytes);
20
- } else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
21
- const signedTx = proto.SignedTransaction.decode(
22
- tx.signedTransactionBytes
23
- );
24
- if (signedTx.bodyBytes) {
25
- txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
26
- }
27
- }
28
- if (txBody) {
29
- const protoResult = this.parseFromProtobufTxBody(txBody);
30
- if (protoResult.type && protoResult.type !== "UNKNOWN") {
31
- return protoResult;
32
- }
33
- }
34
- }
35
- } catch (protoError) {
36
- }
37
- }
38
- return this.parseFromTransactionInternals(transaction);
39
- } catch (error) {
40
- return {
41
- type: "UNKNOWN",
42
- humanReadableType: "Unknown Utility Transaction"
43
- };
44
- }
45
- }
46
- /**
47
- * Parse utility transaction from protobuf TransactionBody
48
- * Handles all utility operations from decoded protobuf data
49
- */
50
- static parseFromProtobufTxBody(txBody) {
51
- if (txBody.utilPrng) {
52
- const utilPrng = this.parseUtilPrng(txBody.utilPrng);
53
- if (utilPrng) {
54
- return {
55
- type: "PRNG",
56
- humanReadableType: "Pseudo Random Number",
57
- utilPrng
58
- };
59
- }
60
- }
61
- if (txBody.freeze) {
62
- const networkFreeze = this.parseNetworkFreezeFromProto(txBody.freeze);
63
- if (networkFreeze) {
64
- return {
65
- type: "FREEZE",
66
- humanReadableType: "Network Freeze",
67
- freeze: networkFreeze
68
- };
69
- }
70
- }
71
- if (txBody.systemDelete) {
72
- const systemDelete = this.parseSystemDeleteFromProto(txBody.systemDelete);
73
- if (systemDelete) {
74
- return {
75
- type: "SYSTEMDELETE",
76
- humanReadableType: "System Delete",
77
- systemDelete
78
- };
79
- }
80
- }
81
- if (txBody.systemUndelete) {
82
- const systemUndelete = this.parseSystemUndeleteFromProto(
83
- txBody.systemUndelete
84
- );
85
- if (systemUndelete) {
86
- return {
87
- type: "SYSTEMUNDELETE",
88
- humanReadableType: "System Undelete",
89
- systemUndelete
90
- };
91
- }
92
- }
93
- if (txBody.nodeCreate) {
94
- const nodeCreate = this.parseNodeCreateFromProto(txBody.nodeCreate);
95
- if (nodeCreate) {
96
- return {
97
- type: "NODECREATE",
98
- humanReadableType: "Node Create",
99
- nodeCreate
100
- };
101
- }
102
- }
103
- if (txBody.nodeUpdate) {
104
- const nodeUpdate = this.parseNodeUpdateFromProto(txBody.nodeUpdate);
105
- if (nodeUpdate) {
106
- return {
107
- type: "NODEUPDATE",
108
- humanReadableType: "Node Update",
109
- nodeUpdate
110
- };
111
- }
112
- }
113
- if (txBody.nodeDelete) {
114
- const nodeDelete = this.parseNodeDeleteFromProto(txBody.nodeDelete);
115
- if (nodeDelete) {
116
- return {
117
- type: "NODEDELETE",
118
- humanReadableType: "Node Delete",
119
- nodeDelete
120
- };
121
- }
122
- }
123
- return {};
124
- }
125
- /**
126
- * Extract utility data from Transaction internal fields
127
- * This handles cases where data is stored in Transaction object internals
128
- */
129
- static parseFromTransactionInternals(transaction) {
130
- try {
131
- const tx = transaction;
132
- if (hasTransactionType(transaction, "utilPrng")) {
133
- const utilPrng = {};
134
- if (tx._range && tx._range !== 0) {
135
- utilPrng.range = tx._range;
136
- }
137
- return {
138
- type: "PRNG",
139
- humanReadableType: "Pseudo Random Number",
140
- utilPrng
141
- };
142
- }
143
- if (hasTransactionType(transaction, "freeze")) {
144
- const networkFreeze = {};
145
- if (tx._startTime) {
146
- networkFreeze.startTime = tx._startTime.toString();
147
- }
148
- if (tx._endTime) {
149
- networkFreeze.endTime = tx._endTime.toString();
150
- }
151
- if (tx._updateFile) {
152
- networkFreeze.updateFile = tx._updateFile.toString();
153
- }
154
- if (tx._fileHash) {
155
- networkFreeze.fileHash = Buffer.from(tx._fileHash).toString("hex");
156
- }
157
- if (tx._freezeType) {
158
- networkFreeze.freezeType = tx._freezeType;
159
- }
160
- return {
161
- type: "FREEZE",
162
- humanReadableType: "Network Freeze",
163
- freeze: networkFreeze
164
- };
165
- }
166
- if (hasTransactionType(transaction, "systemDelete")) {
167
- const systemDelete = {};
168
- if (tx._fileId) {
169
- systemDelete.fileId = tx._fileId.toString();
170
- } else if (tx._contractId) {
171
- systemDelete.contractId = tx._contractId.toString();
172
- }
173
- if (tx._expirationTime) {
174
- systemDelete.expirationTime = tx._expirationTime.toString();
175
- }
176
- return {
177
- type: "SYSTEMDELETE",
178
- humanReadableType: "System Delete",
179
- systemDelete
180
- };
181
- }
182
- if (hasTransactionType(transaction, "systemUndelete")) {
183
- const systemUndelete = {};
184
- if (tx._fileId) {
185
- systemUndelete.fileId = tx._fileId.toString();
186
- } else if (tx._contractId) {
187
- systemUndelete.contractId = tx._contractId.toString();
188
- }
189
- return {
190
- type: "SYSTEMUNDELETE",
191
- humanReadableType: "System Undelete",
192
- systemUndelete
193
- };
194
- }
195
- return {};
196
- } catch (error) {
197
- return {};
198
- }
199
- }
200
- /**
201
- * Parse Network Freeze from protobuf data
202
- */
203
- static parseNetworkFreezeFromProto(body) {
204
- if (!body) return void 0;
205
- const data = {};
206
- if (body.startTime?.seconds) {
207
- data.startTime = `${Long.fromValue(
208
- body.startTime.seconds
209
- ).toString()}.${body.startTime.nanos ?? 0}`;
210
- }
211
- if (body.updateFile) {
212
- data.updateFile = new FileId(
213
- body.updateFile.shardNum ?? 0,
214
- body.updateFile.realmNum ?? 0,
215
- body.updateFile.fileNum ?? 0
216
- ).toString();
217
- }
218
- if (body.fileHash && body.fileHash.length > 0) {
219
- data.fileHash = Buffer.from(body.fileHash).toString("hex");
220
- }
221
- if (body.freezeType !== void 0) {
222
- const freezeTypes = [
223
- "FREEZE_ONLY",
224
- "PREPARE_UPGRADE",
225
- "FREEZE_UPGRADE",
226
- "FREEZE_ABORT"
227
- ];
228
- data.freezeType = freezeTypes[body.freezeType] || "FREEZE_ONLY";
229
- }
230
- return data;
231
- }
232
- /**
233
- * Parse System Delete from protobuf data
234
- */
235
- static parseSystemDeleteFromProto(body) {
236
- if (!body) return void 0;
237
- const data = {};
238
- if (body.fileID) {
239
- data.fileId = new FileId(
240
- body.fileID.shardNum ?? 0,
241
- body.fileID.realmNum ?? 0,
242
- body.fileID.fileNum ?? 0
243
- ).toString();
244
- } else if (body.contractID) {
245
- data.contractId = new ContractId(
246
- body.contractID.shardNum ?? 0,
247
- body.contractID.realmNum ?? 0,
248
- body.contractID.contractNum ?? 0
249
- ).toString();
250
- }
251
- if (body.expirationTime?.seconds) {
252
- data.expirationTime = Long.fromValue(
253
- body.expirationTime.seconds
254
- ).toString();
255
- }
256
- return data;
257
- }
258
- /**
259
- * Parse System Undelete from protobuf data
260
- */
261
- static parseSystemUndeleteFromProto(body) {
262
- if (!body) return void 0;
263
- const data = {};
264
- if (body.fileID) {
265
- data.fileId = new FileId(
266
- body.fileID.shardNum ?? 0,
267
- body.fileID.realmNum ?? 0,
268
- body.fileID.fileNum ?? 0
269
- ).toString();
270
- } else if (body.contractID) {
271
- data.contractId = new ContractId(
272
- body.contractID.shardNum ?? 0,
273
- body.contractID.realmNum ?? 0,
274
- body.contractID.contractNum ?? 0
275
- ).toString();
276
- }
277
- return data;
278
- }
279
- /**
280
- * Parse Node Create from protobuf data
281
- */
282
- static parseNodeCreateFromProto(body) {
283
- if (!body) return void 0;
284
- const data = {};
285
- if (body.nodeId !== void 0) {
286
- data.nodeId = Long.fromValue(body.nodeId).toNumber();
287
- }
288
- return data;
289
- }
290
- /**
291
- * Parse Node Update from protobuf data
292
- */
293
- static parseNodeUpdateFromProto(body) {
294
- if (!body) return void 0;
295
- const data = {};
296
- if (body.nodeId !== void 0) {
297
- data.nodeId = Long.fromValue(body.nodeId).toNumber();
298
- }
299
- return data;
300
- }
301
- /**
302
- * Parse Node Delete from protobuf data
303
- */
304
- static parseNodeDeleteFromProto(body) {
305
- if (!body) return void 0;
306
- const data = {};
307
- if (body.nodeId !== void 0) {
308
- data.nodeId = Long.fromValue(body.nodeId).toNumber();
309
- }
310
- return data;
311
- }
312
- static parseUtilPrng(body) {
313
- if (!body) return void 0;
314
- const data = {};
315
- if (body.range && body.range !== 0) {
316
- data.range = body.range;
317
- }
318
- return data;
319
- }
320
- static parseFreeze(body) {
321
- return this.parseNetworkFreezeFromProto(body);
322
- }
323
- /**
324
- * Parse Utility/System Service transaction from Transaction object
325
- * This is the unified entry point that delegates to the comprehensive parsing logic
326
- */
327
- static parseFromTransactionObject(transaction) {
328
- return this.parseUtilTransaction(transaction);
329
- }
1
+ const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
2
+ const BASE = 58;
3
+ function base58Encode(bytes) {
4
+ if (bytes.length === 0) return "";
5
+ let zeros = 0;
6
+ while (zeros < bytes.length && bytes[zeros] === 0) zeros++;
7
+ if (zeros === bytes.length) return "1".repeat(zeros);
8
+ const digits = [0];
9
+ for (let i = zeros; i < bytes.length; i++) {
10
+ let carry = bytes[i];
11
+ for (let j = 0; j < digits.length; j++) {
12
+ const val = (digits[j] << 8) + carry;
13
+ digits[j] = val % BASE;
14
+ carry = val / BASE | 0;
15
+ }
16
+ while (carry > 0) {
17
+ digits.push(carry % BASE);
18
+ carry = carry / BASE | 0;
19
+ }
20
+ }
21
+ let result = "";
22
+ for (let i = 0; i < zeros; i++) result += "1";
23
+ for (let i = digits.length - 1; i >= 0; i--) result += ALPHABET[digits[i]];
24
+ return result;
25
+ }
26
+ function base58Decode(text) {
27
+ if (text.length === 0) return new Uint8Array(0);
28
+ let zeros = 0;
29
+ while (zeros < text.length && text[zeros] === "1") zeros++;
30
+ const b256 = [];
31
+ for (let i = zeros; i < text.length; i++) {
32
+ const ch = text[i];
33
+ const val = ALPHABET.indexOf(ch);
34
+ if (val === -1) throw new Error("Invalid Base58 character");
35
+ let carry = val;
36
+ for (let j = 0; j < b256.length; j++) {
37
+ const x = b256[j] * BASE + carry;
38
+ b256[j] = x & 255;
39
+ carry = x >> 8;
40
+ }
41
+ while (carry > 0) {
42
+ b256.push(carry & 255);
43
+ carry >>= 8;
44
+ }
45
+ }
46
+ for (let i = 0; i < zeros; i++) b256.push(0);
47
+ b256.reverse();
48
+ return Uint8Array.from(b256);
49
+ }
50
+ function multibaseB58btcDecode(zText) {
51
+ if (!zText.startsWith("z")) throw new Error("Invalid multibase base58btc");
52
+ return base58Decode(zText.slice(1));
330
53
  }
331
54
  export {
332
- UtilParser
55
+ base58Decode,
56
+ base58Encode,
57
+ multibaseB58btcDecode
333
58
  };
334
59
  //# sourceMappingURL=standards-sdk.es155.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es155.js","sources":["../../src/utils/parsers/util-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { Transaction, Long, FileId, ContractId } from '@hashgraph/sdk';\nimport {\n UtilPrngData,\n NetworkFreezeData,\n SystemDeleteData,\n SystemUndeleteData,\n NodeCreateData,\n NodeUpdateData,\n NodeDeleteData,\n} from '../transaction-parser-types';\nimport {\n parseKey,\n extractTransactionBody,\n hasTransactionType,\n} from './parser-utils';\n\n/**\n * Utility and System Operations Parser\n *\n * Handles parsing for utility and system transaction types including:\n * - Pseudo-random number generation (PRNG)\n * - Network freeze operations\n * - System delete/undelete operations\n * - Node management operations\n * - Proper dual-branch parsing (regular vs signed transactions)\n * - Comprehensive protobuf extraction\n */\nexport class UtilParser {\n /**\n * Parse Utility/System Service transaction using unified dual-branch approach\n * This handles both regular transactions and signed transaction variants\n */\n static parseUtilTransaction(\n transaction: Transaction,\n originalBytes?: Uint8Array,\n ): {\n type?: string;\n humanReadableType?: string;\n utilPrng?: UtilPrngData;\n networkFreeze?: NetworkFreezeData;\n systemDelete?: SystemDeleteData;\n systemUndelete?: SystemUndeleteData;\n nodeCreate?: NodeCreateData;\n nodeUpdate?: NodeUpdateData;\n nodeDelete?: NodeDeleteData;\n [key: string]: unknown;\n } {\n try {\n if (originalBytes || transaction.toBytes) {\n try {\n const bytesToParse = originalBytes || transaction.toBytes();\n const decoded = proto.TransactionList.decode(bytesToParse);\n\n if (decoded.transactionList && decoded.transactionList.length > 0) {\n const tx = decoded.transactionList[0];\n let txBody: proto.ITransactionBody | null = null;\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n txBody = proto.TransactionBody.decode(tx.bodyBytes);\n } else if (\n tx.signedTransactionBytes &&\n tx.signedTransactionBytes.length > 0\n ) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n txBody = proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n if (txBody) {\n const protoResult = this.parseFromProtobufTxBody(txBody);\n if (protoResult.type && protoResult.type !== 'UNKNOWN') {\n return protoResult;\n }\n }\n }\n } catch (protoError) {}\n }\n\n return this.parseFromTransactionInternals(transaction);\n } catch (error) {\n return {\n type: 'UNKNOWN',\n humanReadableType: 'Unknown Utility Transaction',\n };\n }\n }\n\n /**\n * Parse utility transaction from protobuf TransactionBody\n * Handles all utility operations from decoded protobuf data\n */\n private static parseFromProtobufTxBody(txBody: proto.ITransactionBody): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n if (txBody.utilPrng) {\n const utilPrng = this.parseUtilPrng(txBody.utilPrng);\n if (utilPrng) {\n return {\n type: 'PRNG',\n humanReadableType: 'Pseudo Random Number',\n utilPrng,\n };\n }\n }\n\n if (txBody.freeze) {\n const networkFreeze = this.parseNetworkFreezeFromProto(txBody.freeze);\n if (networkFreeze) {\n return {\n type: 'FREEZE',\n humanReadableType: 'Network Freeze',\n freeze: networkFreeze,\n };\n }\n }\n\n if (txBody.systemDelete) {\n const systemDelete = this.parseSystemDeleteFromProto(txBody.systemDelete);\n if (systemDelete) {\n return {\n type: 'SYSTEMDELETE',\n humanReadableType: 'System Delete',\n systemDelete,\n };\n }\n }\n\n if (txBody.systemUndelete) {\n const systemUndelete = this.parseSystemUndeleteFromProto(\n txBody.systemUndelete,\n );\n if (systemUndelete) {\n return {\n type: 'SYSTEMUNDELETE',\n humanReadableType: 'System Undelete',\n systemUndelete,\n };\n }\n }\n\n if (txBody.nodeCreate) {\n const nodeCreate = this.parseNodeCreateFromProto(txBody.nodeCreate);\n if (nodeCreate) {\n return {\n type: 'NODECREATE',\n humanReadableType: 'Node Create',\n nodeCreate,\n };\n }\n }\n\n if (txBody.nodeUpdate) {\n const nodeUpdate = this.parseNodeUpdateFromProto(txBody.nodeUpdate);\n if (nodeUpdate) {\n return {\n type: 'NODEUPDATE',\n humanReadableType: 'Node Update',\n nodeUpdate,\n };\n }\n }\n\n if (txBody.nodeDelete) {\n const nodeDelete = this.parseNodeDeleteFromProto(txBody.nodeDelete);\n if (nodeDelete) {\n return {\n type: 'NODEDELETE',\n humanReadableType: 'Node Delete',\n nodeDelete,\n };\n }\n }\n\n return {};\n }\n\n /**\n * Extract utility data from Transaction internal fields\n * This handles cases where data is stored in Transaction object internals\n */\n private static parseFromTransactionInternals(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n try {\n const tx = transaction as unknown as {\n _range?: number;\n _startTime?: { toString(): string };\n _endTime?: { toString(): string };\n _updateFile?: { toString(): string };\n _fileHash?: Uint8Array;\n _freezeType?: string;\n _fileId?: { toString(): string };\n _contractId?: { toString(): string };\n _expirationTime?: { toString(): string };\n _nodeId?: number;\n _accountId?: { toString(): string };\n _description?: string;\n _gossipEndpoint?: Array<unknown>;\n _serviceEndpoint?: Array<unknown>;\n _gossipCaCertificate?: Uint8Array;\n _grpcCertificateHash?: Uint8Array;\n _adminKey?: unknown;\n constructor?: { name?: string };\n };\n\n if (hasTransactionType(transaction, 'utilPrng')) {\n const utilPrng: UtilPrngData = {};\n if (tx._range && tx._range !== 0) {\n utilPrng.range = tx._range;\n }\n\n return {\n type: 'PRNG',\n humanReadableType: 'Pseudo Random Number',\n utilPrng,\n };\n }\n\n if (hasTransactionType(transaction, 'freeze')) {\n const networkFreeze: NetworkFreezeData = {};\n\n if (tx._startTime) {\n networkFreeze.startTime = tx._startTime.toString();\n }\n if (tx._endTime) {\n networkFreeze.endTime = tx._endTime.toString();\n }\n if (tx._updateFile) {\n networkFreeze.updateFile = tx._updateFile.toString();\n }\n if (tx._fileHash) {\n networkFreeze.fileHash = Buffer.from(tx._fileHash).toString('hex');\n }\n if (tx._freezeType) {\n networkFreeze.freezeType = tx._freezeType as any;\n }\n\n return {\n type: 'FREEZE',\n humanReadableType: 'Network Freeze',\n freeze: networkFreeze,\n };\n }\n\n if (hasTransactionType(transaction, 'systemDelete')) {\n const systemDelete: SystemDeleteData = {};\n\n if (tx._fileId) {\n systemDelete.fileId = tx._fileId.toString();\n } else if (tx._contractId) {\n systemDelete.contractId = tx._contractId.toString();\n }\n\n if (tx._expirationTime) {\n systemDelete.expirationTime = tx._expirationTime.toString();\n }\n\n return {\n type: 'SYSTEMDELETE',\n humanReadableType: 'System Delete',\n systemDelete,\n };\n }\n\n if (hasTransactionType(transaction, 'systemUndelete')) {\n const systemUndelete: SystemUndeleteData = {};\n\n if (tx._fileId) {\n systemUndelete.fileId = tx._fileId.toString();\n } else if (tx._contractId) {\n systemUndelete.contractId = tx._contractId.toString();\n }\n\n return {\n type: 'SYSTEMUNDELETE',\n humanReadableType: 'System Undelete',\n systemUndelete,\n };\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Parse Network Freeze from protobuf data\n */\n private static parseNetworkFreezeFromProto(\n body: proto.IFreezeTransactionBody,\n ): NetworkFreezeData | undefined {\n if (!body) return undefined;\n\n const data: NetworkFreezeData = {};\n\n if (body.startTime?.seconds) {\n data.startTime = `${Long.fromValue(\n body.startTime.seconds,\n ).toString()}.${body.startTime.nanos ?? 0}`;\n }\n\n if (body.updateFile) {\n data.updateFile = new FileId(\n body.updateFile.shardNum ?? 0,\n body.updateFile.realmNum ?? 0,\n body.updateFile.fileNum ?? 0,\n ).toString();\n }\n\n if (body.fileHash && body.fileHash.length > 0) {\n data.fileHash = Buffer.from(body.fileHash).toString('hex');\n }\n\n if (body.freezeType !== undefined) {\n const freezeTypes = [\n 'FREEZE_ONLY',\n 'PREPARE_UPGRADE',\n 'FREEZE_UPGRADE',\n 'FREEZE_ABORT',\n ];\n data.freezeType = (freezeTypes[body.freezeType] as any) || 'FREEZE_ONLY';\n }\n\n return data;\n }\n\n /**\n * Parse System Delete from protobuf data\n */\n private static parseSystemDeleteFromProto(\n body: proto.ISystemDeleteTransactionBody,\n ): SystemDeleteData | undefined {\n if (!body) return undefined;\n\n const data: SystemDeleteData = {};\n\n if (body.fileID) {\n data.fileId = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0,\n ).toString();\n } else if (body.contractID) {\n data.contractId = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n\n if (body.expirationTime?.seconds) {\n data.expirationTime = Long.fromValue(\n body.expirationTime.seconds,\n ).toString();\n }\n\n return data;\n }\n\n /**\n * Parse System Undelete from protobuf data\n */\n private static parseSystemUndeleteFromProto(\n body: proto.ISystemUndeleteTransactionBody,\n ): SystemUndeleteData | undefined {\n if (!body) return undefined;\n\n const data: SystemUndeleteData = {};\n\n if (body.fileID) {\n data.fileId = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0,\n ).toString();\n } else if (body.contractID) {\n data.contractId = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n\n return data;\n }\n\n /**\n * Parse Node Create from protobuf data\n */\n private static parseNodeCreateFromProto(\n body: any,\n ): NodeCreateData | undefined {\n if (!body) return undefined;\n\n const data: NodeCreateData = {};\n\n if (body.nodeId !== undefined) {\n data.nodeId = Long.fromValue(body.nodeId).toNumber();\n }\n\n return data;\n }\n\n /**\n * Parse Node Update from protobuf data\n */\n private static parseNodeUpdateFromProto(\n body: any,\n ): NodeUpdateData | undefined {\n if (!body) return undefined;\n\n const data: NodeUpdateData = {};\n\n if (body.nodeId !== undefined) {\n data.nodeId = Long.fromValue(body.nodeId).toNumber();\n }\n\n return data;\n }\n\n /**\n * Parse Node Delete from protobuf data\n */\n private static parseNodeDeleteFromProto(\n body: any,\n ): NodeDeleteData | undefined {\n if (!body) return undefined;\n\n const data: NodeDeleteData = {};\n\n if (body.nodeId !== undefined) {\n data.nodeId = Long.fromValue(body.nodeId).toNumber();\n }\n\n return data;\n }\n\n static parseUtilPrng(\n body: proto.IUtilPrngTransactionBody,\n ): UtilPrngData | undefined {\n if (!body) return undefined;\n const data: UtilPrngData = {};\n if (body.range && body.range !== 0) {\n data.range = body.range;\n }\n return data;\n }\n\n static parseFreeze(\n body: proto.IFreezeTransactionBody,\n ): NetworkFreezeData | undefined {\n return this.parseNetworkFreezeFromProto(body);\n }\n\n /**\n * Parse Utility/System Service transaction from Transaction object\n * This is the unified entry point that delegates to the comprehensive parsing logic\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n return this.parseUtilTransaction(transaction);\n }\n}\n"],"names":[],"mappings":";;;AA4BO,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtB,OAAO,qBACL,aACA,eAYA;AACA,QAAI;AACF,UAAI,iBAAiB,YAAY,SAAS;AACxC,YAAI;AACF,gBAAM,eAAe,iBAAiB,YAAY,QAAA;AAClD,gBAAM,UAAU,MAAM,gBAAgB,OAAO,YAAY;AAEzD,cAAI,QAAQ,mBAAmB,QAAQ,gBAAgB,SAAS,GAAG;AACjE,kBAAM,KAAK,QAAQ,gBAAgB,CAAC;AACpC,gBAAI,SAAwC;AAE5C,gBAAI,GAAG,aAAa,GAAG,UAAU,SAAS,GAAG;AAC3C,uBAAS,MAAM,gBAAgB,OAAO,GAAG,SAAS;AAAA,YACpD,WACE,GAAG,0BACH,GAAG,uBAAuB,SAAS,GACnC;AACA,oBAAM,WAAW,MAAM,kBAAkB;AAAA,gBACvC,GAAG;AAAA,cAAA;AAEL,kBAAI,SAAS,WAAW;AACtB,yBAAS,MAAM,gBAAgB,OAAO,SAAS,SAAS;AAAA,cAC1D;AAAA,YACF;AAEA,gBAAI,QAAQ;AACV,oBAAM,cAAc,KAAK,wBAAwB,MAAM;AACvD,kBAAI,YAAY,QAAQ,YAAY,SAAS,WAAW;AACtD,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,QACF,SAAS,YAAY;AAAA,QAAC;AAAA,MACxB;AAEA,aAAO,KAAK,8BAA8B,WAAW;AAAA,IACvD,SAAS,OAAO;AACd,aAAO;AAAA,QACL,MAAM;AAAA,QACN,mBAAmB;AAAA,MAAA;AAAA,IAEvB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAe,wBAAwB,QAIrC;AACA,QAAI,OAAO,UAAU;AACnB,YAAM,WAAW,KAAK,cAAc,OAAO,QAAQ;AACnD,UAAI,UAAU;AACZ,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,QAAQ;AACjB,YAAM,gBAAgB,KAAK,4BAA4B,OAAO,MAAM;AACpE,UAAI,eAAe;AACjB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB,QAAQ;AAAA,QAAA;AAAA,MAEZ;AAAA,IACF;AAEA,QAAI,OAAO,cAAc;AACvB,YAAM,eAAe,KAAK,2BAA2B,OAAO,YAAY;AACxE,UAAI,cAAc;AAChB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,gBAAgB;AACzB,YAAM,iBAAiB,KAAK;AAAA,QAC1B,OAAO;AAAA,MAAA;AAET,UAAI,gBAAgB;AAClB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,YAAY;AACrB,YAAM,aAAa,KAAK,yBAAyB,OAAO,UAAU;AAClE,UAAI,YAAY;AACd,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,YAAY;AACrB,YAAM,aAAa,KAAK,yBAAyB,OAAO,UAAU;AAClE,UAAI,YAAY;AACd,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,OAAO,YAAY;AACrB,YAAM,aAAa,KAAK,yBAAyB,OAAO,UAAU;AAClE,UAAI,YAAY;AACd,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,WAAO,CAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAe,8BAA8B,aAI3C;AACA,QAAI;AACF,YAAM,KAAK;AAqBX,UAAI,mBAAmB,aAAa,UAAU,GAAG;AAC/C,cAAM,WAAyB,CAAA;AAC/B,YAAI,GAAG,UAAU,GAAG,WAAW,GAAG;AAChC,mBAAS,QAAQ,GAAG;AAAA,QACtB;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAEA,UAAI,mBAAmB,aAAa,QAAQ,GAAG;AAC7C,cAAM,gBAAmC,CAAA;AAEzC,YAAI,GAAG,YAAY;AACjB,wBAAc,YAAY,GAAG,WAAW,SAAA;AAAA,QAC1C;AACA,YAAI,GAAG,UAAU;AACf,wBAAc,UAAU,GAAG,SAAS,SAAA;AAAA,QACtC;AACA,YAAI,GAAG,aAAa;AAClB,wBAAc,aAAa,GAAG,YAAY,SAAA;AAAA,QAC5C;AACA,YAAI,GAAG,WAAW;AAChB,wBAAc,WAAW,OAAO,KAAK,GAAG,SAAS,EAAE,SAAS,KAAK;AAAA,QACnE;AACA,YAAI,GAAG,aAAa;AAClB,wBAAc,aAAa,GAAG;AAAA,QAChC;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB,QAAQ;AAAA,QAAA;AAAA,MAEZ;AAEA,UAAI,mBAAmB,aAAa,cAAc,GAAG;AACnD,cAAM,eAAiC,CAAA;AAEvC,YAAI,GAAG,SAAS;AACd,uBAAa,SAAS,GAAG,QAAQ,SAAA;AAAA,QACnC,WAAW,GAAG,aAAa;AACzB,uBAAa,aAAa,GAAG,YAAY,SAAA;AAAA,QAC3C;AAEA,YAAI,GAAG,iBAAiB;AACtB,uBAAa,iBAAiB,GAAG,gBAAgB,SAAA;AAAA,QACnD;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAEA,UAAI,mBAAmB,aAAa,gBAAgB,GAAG;AACrD,cAAM,iBAAqC,CAAA;AAE3C,YAAI,GAAG,SAAS;AACd,yBAAe,SAAS,GAAG,QAAQ,SAAA;AAAA,QACrC,WAAW,GAAG,aAAa;AACzB,yBAAe,aAAa,GAAG,YAAY,SAAA;AAAA,QAC7C;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,mBAAmB;AAAA,UACnB;AAAA,QAAA;AAAA,MAEJ;AAEA,aAAO,CAAA;AAAA,IACT,SAAS,OAAO;AACd,aAAO,CAAA;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,4BACb,MAC+B;AAC/B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAA0B,CAAA;AAEhC,QAAI,KAAK,WAAW,SAAS;AAC3B,WAAK,YAAY,GAAG,KAAK;AAAA,QACvB,KAAK,UAAU;AAAA,MAAA,EACf,SAAA,CAAU,IAAI,KAAK,UAAU,SAAS,CAAC;AAAA,IAC3C;AAEA,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa,IAAI;AAAA,QACpB,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,WAAW;AAAA,MAAA,EAC3B,SAAA;AAAA,IACJ;AAEA,QAAI,KAAK,YAAY,KAAK,SAAS,SAAS,GAAG;AAC7C,WAAK,WAAW,OAAO,KAAK,KAAK,QAAQ,EAAE,SAAS,KAAK;AAAA,IAC3D;AAEA,QAAI,KAAK,eAAe,QAAW;AACjC,YAAM,cAAc;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAEF,WAAK,aAAc,YAAY,KAAK,UAAU,KAAa;AAAA,IAC7D;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,2BACb,MAC8B;AAC9B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAyB,CAAA;AAE/B,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,IAAI;AAAA,QAChB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,WAAW;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ,WAAW,KAAK,YAAY;AAC1B,WAAK,aAAa,IAAI;AAAA,QACpB,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,eAAe;AAAA,MAAA,EAC/B,SAAA;AAAA,IACJ;AAEA,QAAI,KAAK,gBAAgB,SAAS;AAChC,WAAK,iBAAiB,KAAK;AAAA,QACzB,KAAK,eAAe;AAAA,MAAA,EACpB,SAAA;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,6BACb,MACgC;AAChC,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAA2B,CAAA;AAEjC,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,IAAI;AAAA,QAChB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,YAAY;AAAA,QACxB,KAAK,OAAO,WAAW;AAAA,MAAA,EACvB,SAAA;AAAA,IACJ,WAAW,KAAK,YAAY;AAC1B,WAAK,aAAa,IAAI;AAAA,QACpB,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,YAAY;AAAA,QAC5B,KAAK,WAAW,eAAe;AAAA,MAAA,EAC/B,SAAA;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,yBACb,MAC4B;AAC5B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAuB,CAAA;AAE7B,QAAI,KAAK,WAAW,QAAW;AAC7B,WAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,yBACb,MAC4B;AAC5B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAuB,CAAA;AAE7B,QAAI,KAAK,WAAW,QAAW;AAC7B,WAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,yBACb,MAC4B;AAC5B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAuB,CAAA;AAE7B,QAAI,KAAK,WAAW,QAAW;AAC7B,WAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,SAAA;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,cACL,MAC0B;AAC1B,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,OAAqB,CAAA;AAC3B,QAAI,KAAK,SAAS,KAAK,UAAU,GAAG;AAClC,WAAK,QAAQ,KAAK;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,YACL,MAC+B;AAC/B,WAAO,KAAK,4BAA4B,IAAI;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,2BAA2B,aAIhC;AACA,WAAO,KAAK,qBAAqB,WAAW;AAAA,EAC9C;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es155.js","sources":["../../src/hcs-14/base58.ts"],"sourcesContent":["/**\n * Minimal Base58 encoder/decoder (Bitcoin alphabet) with no external dependencies.\n */\n\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nconst BASE = 58;\n\nfunction countLeadingZeros(bytes: Uint8Array): number {\n let zeros = 0;\n for (let i = 0; i < bytes.length && bytes[i] === 0; i++) {\n zeros++;\n }\n return zeros;\n}\n\nexport function base58Encode(bytes: Uint8Array): string {\n if (bytes.length === 0) return '';\n\n let zeros = 0;\n while (zeros < bytes.length && bytes[zeros] === 0) zeros++;\n\n if (zeros === bytes.length) return '1'.repeat(zeros);\n\n const digits: number[] = [0];\n for (let i = zeros; i < bytes.length; i++) {\n let carry = bytes[i];\n for (let j = 0; j < digits.length; j++) {\n const val = (digits[j] << 8) + carry;\n digits[j] = val % BASE;\n carry = (val / BASE) | 0;\n }\n while (carry > 0) {\n digits.push(carry % BASE);\n carry = (carry / BASE) | 0;\n }\n }\n\n let result = '';\n for (let i = 0; i < zeros; i++) result += '1';\n for (let i = digits.length - 1; i >= 0; i--) result += ALPHABET[digits[i]];\n return result;\n}\n\nexport function base58Decode(text: string): Uint8Array {\n if (text.length === 0) return new Uint8Array(0);\n\n let zeros = 0;\n while (zeros < text.length && text[zeros] === '1') zeros++;\n\n const b256: number[] = [];\n for (let i = zeros; i < text.length; i++) {\n const ch = text[i];\n const val = ALPHABET.indexOf(ch);\n if (val === -1) throw new Error('Invalid Base58 character');\n\n let carry = val;\n for (let j = 0; j < b256.length; j++) {\n const x = b256[j] * BASE + carry;\n b256[j] = x & 0xff;\n carry = x >> 8;\n }\n while (carry > 0) {\n b256.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n for (let i = 0; i < zeros; i++) b256.push(0);\n b256.reverse();\n return Uint8Array.from(b256);\n}\n\nexport function multibaseB58btcDecode(zText: string): Uint8Array {\n if (!zText.startsWith('z')) throw new Error('Invalid multibase base58btc');\n return base58Decode(zText.slice(1));\n}\n"],"names":[],"mappings":"AAIA,MAAM,WAAW;AACjB,MAAM,OAAO;AAUN,SAAS,aAAa,OAA2B;AACtD,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,MAAI,QAAQ;AACZ,SAAO,QAAQ,MAAM,UAAU,MAAM,KAAK,MAAM,EAAG;AAEnD,MAAI,UAAU,MAAM,OAAQ,QAAO,IAAI,OAAO,KAAK;AAEnD,QAAM,SAAmB,CAAC,CAAC;AAC3B,WAAS,IAAI,OAAO,IAAI,MAAM,QAAQ,KAAK;AACzC,QAAI,QAAQ,MAAM,CAAC;AACnB,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,YAAM,OAAO,OAAO,CAAC,KAAK,KAAK;AAC/B,aAAO,CAAC,IAAI,MAAM;AAClB,cAAS,MAAM,OAAQ;AAAA,IACzB;AACA,WAAO,QAAQ,GAAG;AAChB,aAAO,KAAK,QAAQ,IAAI;AACxB,cAAS,QAAQ,OAAQ;AAAA,IAC3B;AAAA,EACF;AAEA,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,OAAO,IAAK,WAAU;AAC1C,WAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,IAAK,WAAU,SAAS,OAAO,CAAC,CAAC;AACzE,SAAO;AACT;AAEO,SAAS,aAAa,MAA0B;AACrD,MAAI,KAAK,WAAW,EAAG,QAAO,IAAI,WAAW,CAAC;AAE9C,MAAI,QAAQ;AACZ,SAAO,QAAQ,KAAK,UAAU,KAAK,KAAK,MAAM,IAAK;AAEnD,QAAM,OAAiB,CAAA;AACvB,WAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,KAAK;AACxC,UAAM,KAAK,KAAK,CAAC;AACjB,UAAM,MAAM,SAAS,QAAQ,EAAE;AAC/B,QAAI,QAAQ,GAAI,OAAM,IAAI,MAAM,0BAA0B;AAE1D,QAAI,QAAQ;AACZ,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,IAAI,KAAK,CAAC,IAAI,OAAO;AAC3B,WAAK,CAAC,IAAI,IAAI;AACd,cAAQ,KAAK;AAAA,IACf;AACA,WAAO,QAAQ,GAAG;AAChB,WAAK,KAAK,QAAQ,GAAI;AACtB,gBAAU;AAAA,IACZ;AAAA,EACF;AAEA,WAAS,IAAI,GAAG,IAAI,OAAO,IAAK,MAAK,KAAK,CAAC;AAC3C,OAAK,QAAA;AACL,SAAO,WAAW,KAAK,IAAI;AAC7B;AAEO,SAAS,sBAAsB,OAA2B;AAC/D,MAAI,CAAC,MAAM,WAAW,GAAG,EAAG,OAAM,IAAI,MAAM,6BAA6B;AACzE,SAAO,aAAa,MAAM,MAAM,CAAC,CAAC;AACpC;"}
@@ -1,79 +1,85 @@
1
- import { proto } from "@hashgraph/proto";
2
- import { ContractId } from "@hashgraph/sdk";
3
- import { Buffer } from "buffer";
4
- function parseKey(key) {
5
- if (!key) {
6
- return void 0;
1
+ import { isBrowser } from "./standards-sdk.es119.js";
2
+ let nodeRequire;
3
+ function isModuleNotFound(specifier, error) {
4
+ if (!error || typeof error !== "object") {
5
+ return false;
7
6
  }
8
- if (key.contractID) {
9
- return `ContractID: ${new ContractId(
10
- key.contractID.shardNum ?? 0,
11
- key.contractID.realmNum ?? 0,
12
- key.contractID.contractNum ?? 0
13
- ).toString()}`;
7
+ const code = Reflect.get(error, "code");
8
+ const message = Reflect.get(error, "message");
9
+ const messageText = typeof message === "string" ? message : "";
10
+ if (typeof code === "string" && code.includes("MODULE_NOT_FOUND")) {
11
+ return messageText.includes(specifier);
14
12
  }
15
- if (key.ed25519) {
16
- return `ED25519: ${Buffer.from(key.ed25519).toString("hex")}`;
17
- }
18
- if (key.ECDSASecp256k1) {
19
- return `ECDSA_secp256k1: ${Buffer.from(key.ECDSASecp256k1).toString(
20
- "hex"
21
- )}`;
22
- }
23
- if (key?.keyList?.keys?.length > 0) {
24
- const keys = key.keyList.keys.map((k) => parseKey(k)).filter(Boolean);
25
- return `KeyList (${keys.length} keys): [${keys.join(", ")}]`;
13
+ if (messageText) {
14
+ const lowered = messageText.toLowerCase();
15
+ if (lowered.includes("cannot find module") || lowered.includes("module not found") || lowered.includes("cannot find package")) {
16
+ return lowered.includes(specifier.toLowerCase());
17
+ }
26
18
  }
27
- if (key?.thresholdKey?.keys?.keys?.length > 0) {
28
- const keys = key.thresholdKey.keys.keys.map((k) => parseKey(k)).filter(Boolean);
29
- return `ThresholdKey (${key.thresholdKey.threshold} of ${keys.length}): [${keys.join(", ")}]`;
19
+ return false;
20
+ }
21
+ async function resolveNodeRequire() {
22
+ if (nodeRequire !== void 0) {
23
+ return nodeRequire;
30
24
  }
31
- if (key.delegatableContractId) {
32
- return `DelegatableContractID: ${new ContractId(
33
- key.delegatableContractId.shardNum ?? 0,
34
- key.delegatableContractId.realmNum ?? 0,
35
- key.delegatableContractId.contractNum ?? 0
36
- ).toString()}`;
25
+ if (isBrowser) {
26
+ nodeRequire = null;
27
+ return nodeRequire;
37
28
  }
38
- if (Object.keys(key).length === 0) {
39
- return "Empty Key Structure";
29
+ try {
30
+ const globalObject = typeof global !== "undefined" ? global : globalThis;
31
+ const req = globalObject.process?.mainModule?.require ?? globalObject.require;
32
+ nodeRequire = typeof req === "function" && typeof req.resolve === "function" ? req : null;
33
+ } catch {
34
+ nodeRequire = null;
40
35
  }
41
- return "Unknown or Unset Key Type";
36
+ return nodeRequire;
42
37
  }
43
- function extractTransactionBody(transaction) {
38
+ async function dynamicImport(specifier) {
44
39
  try {
45
- const bytes = transaction.toBytes ? transaction.toBytes() : void 0;
46
- if (!bytes) {
47
- return null;
48
- }
49
- const decoded = proto.TransactionList.decode(bytes);
50
- if (!decoded.transactionList || decoded.transactionList.length === 0) {
40
+ return await import(specifier);
41
+ } catch (error) {
42
+ if (isModuleNotFound(specifier, error)) {
51
43
  return null;
52
44
  }
53
- const tx = decoded.transactionList[0];
54
- if (tx.bodyBytes && tx.bodyBytes.length > 0) {
55
- return proto.TransactionBody.decode(tx.bodyBytes);
56
- }
57
- if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
58
- const signedTx = proto.SignedTransaction.decode(
59
- tx.signedTransactionBytes
60
- );
61
- if (signedTx.bodyBytes) {
62
- return proto.TransactionBody.decode(signedTx.bodyBytes);
45
+ throw error;
46
+ }
47
+ }
48
+ async function optionalImport(specifier) {
49
+ if (isBrowser) {
50
+ return dynamicImport(specifier);
51
+ }
52
+ const requireFn = await resolveNodeRequire();
53
+ if (requireFn) {
54
+ try {
55
+ return requireFn(specifier);
56
+ } catch (error) {
57
+ if (!isModuleNotFound(specifier, error)) {
58
+ throw error;
63
59
  }
64
60
  }
61
+ }
62
+ return dynamicImport(specifier);
63
+ }
64
+ function optionalImportSync(specifier) {
65
+ if (isBrowser) {
65
66
  return null;
67
+ }
68
+ try {
69
+ const globalObject = typeof global !== "undefined" ? global : globalThis;
70
+ const req = globalObject.process?.mainModule?.require ?? globalObject.require;
71
+ if (typeof req === "function" && typeof req.resolve === "function") {
72
+ return req(specifier);
73
+ }
66
74
  } catch (error) {
67
- return null;
75
+ if (!isModuleNotFound(specifier, error)) {
76
+ throw error;
77
+ }
68
78
  }
69
- }
70
- function hasTransactionType(transaction, transactionField) {
71
- const txBody = extractTransactionBody(transaction);
72
- return !!(txBody && txBody[transactionField]);
79
+ return null;
73
80
  }
74
81
  export {
75
- extractTransactionBody,
76
- hasTransactionType,
77
- parseKey
82
+ optionalImport,
83
+ optionalImportSync
78
84
  };
79
85
  //# sourceMappingURL=standards-sdk.es156.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es156.js","sources":["../../src/utils/parsers/parser-utils.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Transaction } from '@hashgraph/sdk';\nimport { Buffer } from 'buffer';\n\nexport function parseKey(\n key: proto.IKey | null | undefined,\n): string | undefined {\n if (!key) {\n return undefined;\n }\n\n if (key.contractID) {\n return `ContractID: ${new ContractId(\n key.contractID.shardNum ?? 0,\n key.contractID.realmNum ?? 0,\n key.contractID.contractNum ?? 0,\n ).toString()}`;\n }\n if (key.ed25519) {\n return `ED25519: ${Buffer.from(key.ed25519).toString('hex')}`;\n }\n if (key.ECDSASecp256k1) {\n return `ECDSA_secp256k1: ${Buffer.from(key.ECDSASecp256k1).toString(\n 'hex',\n )}`;\n }\n if (key?.keyList?.keys?.length > 0) {\n const keys = key.keyList.keys.map(k => parseKey(k)).filter(Boolean);\n return `KeyList (${keys.length} keys): [${keys.join(', ')}]`;\n }\n if (key?.thresholdKey?.keys?.keys?.length > 0) {\n const keys = key.thresholdKey.keys.keys\n .map(k => parseKey(k))\n .filter(Boolean);\n return `ThresholdKey (${key.thresholdKey.threshold} of ${\n keys.length\n }): [${keys.join(', ')}]`;\n }\n if (key.delegatableContractId) {\n return `DelegatableContractID: ${new ContractId(\n key.delegatableContractId.shardNum ?? 0,\n key.delegatableContractId.realmNum ?? 0,\n key.delegatableContractId.contractNum ?? 0,\n ).toString()}`;\n }\n if (Object.keys(key).length === 0) {\n return 'Empty Key Structure';\n }\n\n return 'Unknown or Unset Key Type';\n}\n\n/**\n * Extract TransactionBody from Transaction object using protobuf parsing\n * This replaces fragile constructor name checking with reliable protobuf data\n */\nexport function extractTransactionBody(\n transaction: Transaction,\n): proto.ITransactionBody | null {\n try {\n const bytes = transaction.toBytes ? transaction.toBytes() : undefined;\n if (!bytes) {\n return null;\n }\n\n const decoded = proto.TransactionList.decode(bytes);\n if (!decoded.transactionList || decoded.transactionList.length === 0) {\n return null;\n }\n\n const tx = decoded.transactionList[0];\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n return proto.TransactionBody.decode(tx.bodyBytes);\n }\n\n if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n return proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n return null;\n } catch (error) {\n return null;\n }\n}\n\n/**\n * Check if transaction has specific transaction type using protobuf data\n * This replaces constructor name checking with reliable protobuf field detection\n */\nexport function hasTransactionType(\n transaction: Transaction,\n transactionField: keyof proto.ITransactionBody,\n): boolean {\n const txBody = extractTransactionBody(transaction);\n return !!(txBody && txBody[transactionField]);\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,SACd,KACoB;AACpB,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,YAAY;AAClB,WAAO,eAAe,IAAI;AAAA,MACxB,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,eAAe;AAAA,IAAA,EAC9B,UAAU;AAAA,EACd;AACA,MAAI,IAAI,SAAS;AACf,WAAO,YAAY,OAAO,KAAK,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC;AAAA,EAC7D;AACA,MAAI,IAAI,gBAAgB;AACtB,WAAO,oBAAoB,OAAO,KAAK,IAAI,cAAc,EAAE;AAAA,MACzD;AAAA,IAAA,CACD;AAAA,EACH;AACA,MAAI,KAAK,SAAS,MAAM,SAAS,GAAG;AAClC,UAAM,OAAO,IAAI,QAAQ,KAAK,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EAAE,OAAO,OAAO;AAClE,WAAO,YAAY,KAAK,MAAM,YAAY,KAAK,KAAK,IAAI,CAAC;AAAA,EAC3D;AACA,MAAI,KAAK,cAAc,MAAM,MAAM,SAAS,GAAG;AAC7C,UAAM,OAAO,IAAI,aAAa,KAAK,KAChC,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EACpB,OAAO,OAAO;AACjB,WAAO,iBAAiB,IAAI,aAAa,SAAS,OAChD,KAAK,MACP,OAAO,KAAK,KAAK,IAAI,CAAC;AAAA,EACxB;AACA,MAAI,IAAI,uBAAuB;AAC7B,WAAO,0BAA0B,IAAI;AAAA,MACnC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,eAAe;AAAA,IAAA,EACzC,UAAU;AAAA,EACd;AACA,MAAI,OAAO,KAAK,GAAG,EAAE,WAAW,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAMO,SAAS,uBACd,aAC+B;AAC/B,MAAI;AACF,UAAM,QAAQ,YAAY,UAAU,YAAY,YAAY;AAC5D,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,MAAM,gBAAgB,OAAO,KAAK;AAClD,QAAI,CAAC,QAAQ,mBAAmB,QAAQ,gBAAgB,WAAW,GAAG;AACpE,aAAO;AAAA,IACT;AAEA,UAAM,KAAK,QAAQ,gBAAgB,CAAC;AAEpC,QAAI,GAAG,aAAa,GAAG,UAAU,SAAS,GAAG;AAC3C,aAAO,MAAM,gBAAgB,OAAO,GAAG,SAAS;AAAA,IAClD;AAEA,QAAI,GAAG,0BAA0B,GAAG,uBAAuB,SAAS,GAAG;AACrE,YAAM,WAAW,MAAM,kBAAkB;AAAA,QACvC,GAAG;AAAA,MAAA;AAEL,UAAI,SAAS,WAAW;AACtB,eAAO,MAAM,gBAAgB,OAAO,SAAS,SAAS;AAAA,MACxD;AAAA,IACF;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AAMO,SAAS,mBACd,aACA,kBACS;AACT,QAAM,SAAS,uBAAuB,WAAW;AACjD,SAAO,CAAC,EAAE,UAAU,OAAO,gBAAgB;AAC7C;"}
1
+ {"version":3,"file":"standards-sdk.es156.js","sources":["../../src/utils/dynamic-import.ts"],"sourcesContent":["import { isBrowser } from './is-browser';\n\nlet nodeRequire: NodeRequire | null | undefined;\n\nfunction isModuleNotFound(specifier: string, error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n const code = Reflect.get(error, 'code');\n const message = Reflect.get(error, 'message');\n const messageText = typeof message === 'string' ? message : '';\n\n if (typeof code === 'string' && code.includes('MODULE_NOT_FOUND')) {\n return messageText.includes(specifier);\n }\n\n if (messageText) {\n const lowered = messageText.toLowerCase();\n if (\n lowered.includes('cannot find module') ||\n lowered.includes('module not found') ||\n lowered.includes('cannot find package')\n ) {\n return lowered.includes(specifier.toLowerCase());\n }\n }\n\n return false;\n}\n\nasync function resolveNodeRequire(): Promise<NodeRequire | null> {\n if (nodeRequire !== undefined) {\n return nodeRequire;\n }\n\n if (isBrowser) {\n nodeRequire = null;\n return nodeRequire;\n }\n\n try {\n const globalObject =\n typeof global !== 'undefined'\n ? (global as typeof globalThis)\n : globalThis;\n const req =\n globalObject.process?.mainModule?.require ??\n (globalObject as { require?: NodeRequire }).require;\n\n nodeRequire =\n typeof req === 'function' &&\n typeof (req as NodeRequire).resolve === 'function'\n ? (req as NodeRequire)\n : null;\n } catch {\n nodeRequire = null;\n }\n\n return nodeRequire;\n}\n\nasync function dynamicImport<T>(specifier: string): Promise<T | null> {\n try {\n return (await import(specifier)) as T;\n } catch (error) {\n if (isModuleNotFound(specifier, error)) {\n return null;\n }\n throw error as Error;\n }\n}\n\nexport async function optionalImport<T>(specifier: string): Promise<T | null> {\n if (isBrowser) {\n return dynamicImport<T>(specifier);\n }\n\n const requireFn = await resolveNodeRequire();\n if (requireFn) {\n try {\n return requireFn(specifier) as T;\n } catch (error) {\n if (!isModuleNotFound(specifier, error)) {\n throw error as Error;\n }\n }\n }\n\n return dynamicImport<T>(specifier);\n}\n\nexport function optionalImportSync<T>(specifier: string): T | null {\n if (isBrowser) {\n return null;\n }\n\n try {\n const globalObject =\n typeof global !== 'undefined'\n ? (global as typeof globalThis)\n : globalThis;\n const req =\n globalObject.process?.mainModule?.require ??\n (globalObject as { require?: NodeRequire }).require;\n\n if (\n typeof req === 'function' &&\n typeof (req as NodeRequire).resolve === 'function'\n ) {\n return req(specifier) as T;\n }\n } catch (error) {\n if (!isModuleNotFound(specifier, error)) {\n throw error as Error;\n }\n }\n\n return null;\n}\n"],"names":[],"mappings":";AAEA,IAAI;AAEJ,SAAS,iBAAiB,WAAmB,OAAyB;AACpE,MAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,WAAO;AAAA,EACT;AACA,QAAM,OAAO,QAAQ,IAAI,OAAO,MAAM;AACtC,QAAM,UAAU,QAAQ,IAAI,OAAO,SAAS;AAC5C,QAAM,cAAc,OAAO,YAAY,WAAW,UAAU;AAE5D,MAAI,OAAO,SAAS,YAAY,KAAK,SAAS,kBAAkB,GAAG;AACjE,WAAO,YAAY,SAAS,SAAS;AAAA,EACvC;AAEA,MAAI,aAAa;AACf,UAAM,UAAU,YAAY,YAAA;AAC5B,QACE,QAAQ,SAAS,oBAAoB,KACrC,QAAQ,SAAS,kBAAkB,KACnC,QAAQ,SAAS,qBAAqB,GACtC;AACA,aAAO,QAAQ,SAAS,UAAU,YAAA,CAAa;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AACT;AAEA,eAAe,qBAAkD;AAC/D,MAAI,gBAAgB,QAAW;AAC7B,WAAO;AAAA,EACT;AAEA,MAAI,WAAW;AACb,kBAAc;AACd,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,eACJ,OAAO,WAAW,cACb,SACD;AACN,UAAM,MACJ,aAAa,SAAS,YAAY,WACjC,aAA2C;AAE9C,kBACE,OAAO,QAAQ,cACf,OAAQ,IAAoB,YAAY,aACnC,MACD;AAAA,EACR,QAAQ;AACN,kBAAc;AAAA,EAChB;AAEA,SAAO;AACT;AAEA,eAAe,cAAiB,WAAsC;AACpE,MAAI;AACF,WAAQ,MAAM,OAAO;AAAA,EACvB,SAAS,OAAO;AACd,QAAI,iBAAiB,WAAW,KAAK,GAAG;AACtC,aAAO;AAAA,IACT;AACA,UAAM;AAAA,EACR;AACF;AAEA,eAAsB,eAAkB,WAAsC;AAC5E,MAAI,WAAW;AACb,WAAO,cAAiB,SAAS;AAAA,EACnC;AAEA,QAAM,YAAY,MAAM,mBAAA;AACxB,MAAI,WAAW;AACb,QAAI;AACF,aAAO,UAAU,SAAS;AAAA,IAC5B,SAAS,OAAO;AACd,UAAI,CAAC,iBAAiB,WAAW,KAAK,GAAG;AACvC,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,cAAiB,SAAS;AACnC;AAEO,SAAS,mBAAsB,WAA6B;AACjE,MAAI,WAAW;AACb,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,eACJ,OAAO,WAAW,cACb,SACD;AACN,UAAM,MACJ,aAAa,SAAS,YAAY,WACjC,aAA2C;AAE9C,QACE,OAAO,QAAQ,cACf,OAAQ,IAAoB,YAAY,YACxC;AACA,aAAO,IAAI,SAAS;AAAA,IACtB;AAAA,EACF,SAAS,OAAO;AACd,QAAI,CAAC,iBAAiB,WAAW,KAAK,GAAG;AACvC,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AACT;"}
@@ -1,7 +1,7 @@
1
1
  import "./standards-sdk.es2.js";
2
2
  import { Client, PrivateKey, AccountCreateTransaction, Hbar, CustomFixedFee, AccountId, TokenId, KeyList, TopicMessageSubmitTransaction, Transaction, ScheduleCreateTransaction, Timestamp } from "@hashgraph/sdk";
3
3
  import { AccountCreationError, TopicCreationError, ConnectionConfirmationError, PayloadSizeError } from "./standards-sdk.es18.js";
4
- import { InscriptionSDK } from "./standards-sdk.es147.js";
4
+ import { InscriptionSDK } from "./standards-sdk.es154.js";
5
5
  import { Logger } from "./standards-sdk.es106.js";
6
6
  import { accountIdsToExemptKeys } from "./standards-sdk.es108.js";
7
7
  import { ProgressReporter } from "./standards-sdk.es109.js";
@@ -22,7 +22,7 @@ import "ethers";
22
22
  import "./standards-sdk.es123.js";
23
23
  import "./standards-sdk.es114.js";
24
24
  import { getTopicId } from "./standards-sdk.es115.js";
25
- import { InscriptionSDK } from "./standards-sdk.es147.js";
25
+ import { InscriptionSDK } from "./standards-sdk.es154.js";
26
26
  import { HCS10BaseClient, Hcs10MemoType } from "./standards-sdk.es17.js";
27
27
  import * as mime from "mime-types";
28
28
  import { AgentBuilder } from "./standards-sdk.es24.js";