@hashgraphonline/standards-sdk 0.0.153 → 0.0.155

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 (44) hide show
  1. package/dist/cjs/hcs-10/base-client.d.ts +10 -2
  2. package/dist/cjs/hcs-10/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-10/browser.d.ts +1 -0
  4. package/dist/cjs/hcs-10/browser.d.ts.map +1 -1
  5. package/dist/cjs/{index-DpgcvPw0.cjs → index-BiqAcECs.cjs} +6 -6
  6. package/dist/cjs/{index-DpgcvPw0.cjs.map → index-BiqAcECs.cjs.map} +1 -1
  7. package/dist/cjs/{index-CyAbgH2f-BDpwZ44m.cjs → index-CyAbgH2f-DdtH7gNZ.cjs} +2 -2
  8. package/dist/cjs/{index-CyAbgH2f-BDpwZ44m.cjs.map → index-CyAbgH2f-DdtH7gNZ.cjs.map} +1 -1
  9. package/dist/cjs/standards-sdk.cjs +1 -1
  10. package/dist/cjs/{standards-sdk.es45-BxAtDqsy-kDQD4Hay.cjs → standards-sdk.es45-BxAtDqsy-Cl6MoCrj.cjs} +2 -2
  11. package/dist/cjs/{standards-sdk.es45-BxAtDqsy-kDQD4Hay.cjs.map → standards-sdk.es45-BxAtDqsy-Cl6MoCrj.cjs.map} +1 -1
  12. package/dist/cjs/{standards-sdk.es46-BI8ACeLM-CM_82nn-.cjs → standards-sdk.es46-BI8ACeLM-BR1WD_Xw.cjs} +2 -2
  13. package/dist/cjs/{standards-sdk.es46-BI8ACeLM-CM_82nn-.cjs.map → standards-sdk.es46-BI8ACeLM-BR1WD_Xw.cjs.map} +1 -1
  14. package/dist/cjs/{standards-sdk.es47-DbkY3FlD-Bfs3OBpF.cjs → standards-sdk.es47-DbkY3FlD-BXROBhk6.cjs} +2 -2
  15. package/dist/cjs/{standards-sdk.es47-DbkY3FlD-Bfs3OBpF.cjs.map → standards-sdk.es47-DbkY3FlD-BXROBhk6.cjs.map} +1 -1
  16. package/dist/cjs/{standards-sdk.es48-DzT9Qc3F-BWFsTC4R.cjs → standards-sdk.es48-DzT9Qc3F-CUBjLzNJ.cjs} +2 -2
  17. package/dist/cjs/{standards-sdk.es48-DzT9Qc3F-BWFsTC4R.cjs.map → standards-sdk.es48-DzT9Qc3F-CUBjLzNJ.cjs.map} +1 -1
  18. package/dist/es/hcs-10/base-client.d.ts +10 -2
  19. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  20. package/dist/es/hcs-10/browser.d.ts +1 -0
  21. package/dist/es/hcs-10/browser.d.ts.map +1 -1
  22. package/dist/es/standards-sdk.es14.js +1 -1
  23. package/dist/es/standards-sdk.es14.js.map +1 -1
  24. package/dist/es/standards-sdk.es18.js +1 -1
  25. package/dist/es/standards-sdk.es30.js +6 -6
  26. package/dist/es/standards-sdk.es39.js +501 -2
  27. package/dist/es/standards-sdk.es39.js.map +1 -1
  28. package/dist/es/standards-sdk.es40.js +64 -456
  29. package/dist/es/standards-sdk.es40.js.map +1 -1
  30. package/dist/es/standards-sdk.es41.js +36 -79
  31. package/dist/es/standards-sdk.es41.js.map +1 -1
  32. package/dist/es/standards-sdk.es42.js +222 -32
  33. package/dist/es/standards-sdk.es42.js.map +1 -1
  34. package/dist/es/standards-sdk.es43.js +100 -183
  35. package/dist/es/standards-sdk.es43.js.map +1 -1
  36. package/dist/es/standards-sdk.es44.js +5 -167
  37. package/dist/es/standards-sdk.es44.js.map +1 -1
  38. package/dist/es/standards-sdk.es45.js +2 -11
  39. package/dist/es/standards-sdk.es45.js.map +1 -1
  40. package/dist/es/standards-sdk.es5.js +87 -53
  41. package/dist/es/standards-sdk.es5.js.map +1 -1
  42. package/dist/es/standards-sdk.es8.js +29 -11
  43. package/dist/es/standards-sdk.es8.js.map +1 -1
  44. package/package.json +1 -1
@@ -1,5 +1,504 @@
1
- const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
1
+ import { proto } from "@hashgraph/proto";
2
+ import { AccountId, Long, TokenId } from "@hashgraph/sdk";
3
+ import { parseKey } from "./standards-sdk.es51.js";
4
+ import { Buffer } from "buffer";
5
+ class HTSParser {
6
+ static parseTokenCreate(body) {
7
+ if (!body) return void 0;
8
+ const data = {};
9
+ if (body.name) {
10
+ data.tokenName = body.name;
11
+ }
12
+ if (body.symbol) {
13
+ data.tokenSymbol = body.symbol;
14
+ }
15
+ if (body.treasury) {
16
+ data.treasuryAccountId = new AccountId(
17
+ body.treasury.shardNum ?? 0,
18
+ body.treasury.realmNum ?? 0,
19
+ body.treasury.accountNum ?? 0
20
+ ).toString();
21
+ }
22
+ if (body.initialSupply) {
23
+ data.initialSupply = Long.fromValue(body.initialSupply).toString();
24
+ }
25
+ if (body.decimals !== void 0 && body.decimals !== null) {
26
+ data.decimals = Long.fromValue(body.decimals).toNumber();
27
+ }
28
+ if (body.maxSupply) {
29
+ data.maxSupply = Long.fromValue(body.maxSupply).toString();
30
+ }
31
+ if (body.memo) {
32
+ data.memo = body.memo;
33
+ }
34
+ if (body.tokenType !== null && body.tokenType !== void 0) {
35
+ data.tokenType = proto.TokenType[body.tokenType];
36
+ }
37
+ if (body.supplyType !== null && body.supplyType !== void 0) {
38
+ data.supplyType = proto.TokenSupplyType[body.supplyType];
39
+ }
40
+ data.adminKey = parseKey(body.adminKey);
41
+ data.kycKey = parseKey(body.kycKey);
42
+ data.freezeKey = parseKey(body.freezeKey);
43
+ data.wipeKey = parseKey(body.wipeKey);
44
+ data.supplyKey = parseKey(body.supplyKey);
45
+ data.feeScheduleKey = parseKey(body.feeScheduleKey);
46
+ data.pauseKey = parseKey(body.pauseKey);
47
+ if (body.autoRenewAccount) {
48
+ data.autoRenewAccount = new AccountId(
49
+ body.autoRenewAccount.shardNum ?? 0,
50
+ body.autoRenewAccount.realmNum ?? 0,
51
+ body.autoRenewAccount.accountNum ?? 0
52
+ ).toString();
53
+ }
54
+ if (body.autoRenewPeriod?.seconds) {
55
+ data.autoRenewPeriod = Long.fromValue(
56
+ body.autoRenewPeriod.seconds
57
+ ).toString();
58
+ }
59
+ if (body.customFees && body.customFees.length > 0) {
60
+ data.customFees = body.customFees.map((fee) => {
61
+ const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
62
+ fee.feeCollectorAccountId.shardNum ?? 0,
63
+ fee.feeCollectorAccountId.realmNum ?? 0,
64
+ fee.feeCollectorAccountId.accountNum ?? 0
65
+ ).toString() : "Not Set";
66
+ const commonFeeData = {
67
+ feeCollectorAccountId,
68
+ allCollectorsAreExempt: fee.allCollectorsAreExempt || false
69
+ };
70
+ if (fee.fixedFee) {
71
+ return {
72
+ ...commonFeeData,
73
+ feeType: "FIXED_FEE",
74
+ fixedFee: {
75
+ amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
76
+ denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
77
+ fee.fixedFee.denominatingTokenId.shardNum ?? 0,
78
+ fee.fixedFee.denominatingTokenId.realmNum ?? 0,
79
+ fee.fixedFee.denominatingTokenId.tokenNum ?? 0
80
+ ).toString() : void 0
81
+ }
82
+ };
83
+ } else if (fee.fractionalFee) {
84
+ return {
85
+ ...commonFeeData,
86
+ feeType: "FRACTIONAL_FEE",
87
+ fractionalFee: {
88
+ numerator: Long.fromValue(
89
+ fee.fractionalFee.fractionalAmount?.numerator || 0
90
+ ).toString(),
91
+ denominator: Long.fromValue(
92
+ fee.fractionalFee.fractionalAmount?.denominator || 1
93
+ ).toString(),
94
+ minimumAmount: Long.fromValue(
95
+ fee.fractionalFee.minimumAmount || 0
96
+ ).toString(),
97
+ maximumAmount: Long.fromValue(
98
+ fee.fractionalFee.maximumAmount || 0
99
+ ).toString(),
100
+ netOfTransfers: fee.fractionalFee.netOfTransfers || false
101
+ }
102
+ };
103
+ } else if (fee.royaltyFee) {
104
+ let fallbackFeeData = void 0;
105
+ if (fee.royaltyFee.fallbackFee) {
106
+ fallbackFeeData = {
107
+ amount: Long.fromValue(
108
+ fee.royaltyFee.fallbackFee.amount || 0
109
+ ).toString(),
110
+ denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
111
+ fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
112
+ fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
113
+ fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
114
+ ).toString() : void 0
115
+ };
116
+ }
117
+ return {
118
+ ...commonFeeData,
119
+ feeType: "ROYALTY_FEE",
120
+ royaltyFee: {
121
+ numerator: Long.fromValue(
122
+ fee.royaltyFee.exchangeValueFraction?.numerator || 0
123
+ ).toString(),
124
+ denominator: Long.fromValue(
125
+ fee.royaltyFee.exchangeValueFraction?.denominator || 1
126
+ ).toString(),
127
+ fallbackFee: fallbackFeeData
128
+ }
129
+ };
130
+ }
131
+ return {
132
+ ...commonFeeData,
133
+ feeType: "FIXED_FEE",
134
+ fixedFee: { amount: "0" }
135
+ };
136
+ });
137
+ }
138
+ return data;
139
+ }
140
+ static parseTokenMint(body) {
141
+ if (!body || !body.token || body.amount === null || body.amount === void 0) {
142
+ return void 0;
143
+ }
144
+ const data = {
145
+ tokenId: new TokenId(
146
+ body.token.shardNum ?? 0,
147
+ body.token.realmNum ?? 0,
148
+ body.token.tokenNum ?? 0
149
+ ).toString(),
150
+ amount: Long.fromValue(body.amount).toNumber()
151
+ };
152
+ if (body.metadata && body.metadata.length > 0) {
153
+ data.metadata = body.metadata.map(
154
+ (meta) => Buffer.from(meta).toString("base64")
155
+ );
156
+ }
157
+ return data;
158
+ }
159
+ static parseTokenBurn(body) {
160
+ if (!body || !body.token || body.amount === null || body.amount === void 0) {
161
+ return void 0;
162
+ }
163
+ const data = {
164
+ tokenId: new TokenId(
165
+ body.token.shardNum ?? 0,
166
+ body.token.realmNum ?? 0,
167
+ body.token.tokenNum ?? 0
168
+ ).toString(),
169
+ amount: Long.fromValue(body.amount).toNumber()
170
+ };
171
+ if (body.serialNumbers && body.serialNumbers.length > 0) {
172
+ data.serialNumbers = body.serialNumbers.map(
173
+ (sn) => Long.fromValue(sn).toNumber()
174
+ );
175
+ }
176
+ return data;
177
+ }
178
+ static parseTokenUpdate(body) {
179
+ if (!body) return void 0;
180
+ const data = {};
181
+ if (body.token) {
182
+ data.tokenId = new TokenId(
183
+ body.token.shardNum ?? 0,
184
+ body.token.realmNum ?? 0,
185
+ body.token.tokenNum ?? 0
186
+ ).toString();
187
+ }
188
+ if (body.name) {
189
+ data.name = body.name;
190
+ }
191
+ if (body.symbol) {
192
+ data.symbol = body.symbol;
193
+ }
194
+ if (body.treasury) {
195
+ data.treasuryAccountId = new AccountId(
196
+ body.treasury.shardNum ?? 0,
197
+ body.treasury.realmNum ?? 0,
198
+ body.treasury.accountNum ?? 0
199
+ ).toString();
200
+ }
201
+ data.adminKey = parseKey(body.adminKey);
202
+ data.kycKey = parseKey(body.kycKey);
203
+ data.freezeKey = parseKey(body.freezeKey);
204
+ data.wipeKey = parseKey(body.wipeKey);
205
+ data.supplyKey = parseKey(body.supplyKey);
206
+ data.feeScheduleKey = parseKey(body.feeScheduleKey);
207
+ data.pauseKey = parseKey(body.pauseKey);
208
+ if (body.autoRenewAccount) {
209
+ data.autoRenewAccountId = new AccountId(
210
+ body.autoRenewAccount.shardNum ?? 0,
211
+ body.autoRenewAccount.realmNum ?? 0,
212
+ body.autoRenewAccount.accountNum ?? 0
213
+ ).toString();
214
+ }
215
+ if (body.autoRenewPeriod?.seconds) {
216
+ data.autoRenewPeriod = Long.fromValue(
217
+ body.autoRenewPeriod.seconds
218
+ ).toString();
219
+ }
220
+ if (body.memo?.value !== void 0) {
221
+ data.memo = body.memo.value;
222
+ }
223
+ if (body.expiry?.seconds) {
224
+ data.expiry = `${Long.fromValue(body.expiry.seconds).toString()}.${body.expiry.nanos}`;
225
+ }
226
+ return data;
227
+ }
228
+ static parseTokenFeeScheduleUpdate(body) {
229
+ if (!body) return void 0;
230
+ const data = {};
231
+ if (body.tokenId) {
232
+ data.tokenId = new TokenId(
233
+ body.tokenId.shardNum ?? 0,
234
+ body.tokenId.realmNum ?? 0,
235
+ body.tokenId.tokenNum ?? 0
236
+ ).toString();
237
+ }
238
+ if (body.customFees && body.customFees.length > 0) {
239
+ data.customFees = body.customFees.map((fee) => {
240
+ const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
241
+ fee.feeCollectorAccountId.shardNum ?? 0,
242
+ fee.feeCollectorAccountId.realmNum ?? 0,
243
+ fee.feeCollectorAccountId.accountNum ?? 0
244
+ ).toString() : "Not Set";
245
+ const commonFeeData = {
246
+ feeCollectorAccountId,
247
+ allCollectorsAreExempt: fee.allCollectorsAreExempt || false
248
+ };
249
+ if (fee.fixedFee) {
250
+ return {
251
+ ...commonFeeData,
252
+ feeType: "FIXED_FEE",
253
+ fixedFee: {
254
+ amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
255
+ denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
256
+ fee.fixedFee.denominatingTokenId.shardNum ?? 0,
257
+ fee.fixedFee.denominatingTokenId.realmNum ?? 0,
258
+ fee.fixedFee.denominatingTokenId.tokenNum ?? 0
259
+ ).toString() : void 0
260
+ }
261
+ };
262
+ } else if (fee.fractionalFee) {
263
+ return {
264
+ ...commonFeeData,
265
+ feeType: "FRACTIONAL_FEE",
266
+ fractionalFee: {
267
+ numerator: Long.fromValue(
268
+ fee.fractionalFee.fractionalAmount?.numerator || 0
269
+ ).toString(),
270
+ denominator: Long.fromValue(
271
+ fee.fractionalFee.fractionalAmount?.denominator || 1
272
+ ).toString(),
273
+ minimumAmount: Long.fromValue(
274
+ fee.fractionalFee.minimumAmount || 0
275
+ ).toString(),
276
+ maximumAmount: Long.fromValue(
277
+ fee.fractionalFee.maximumAmount || 0
278
+ ).toString(),
279
+ netOfTransfers: fee.fractionalFee.netOfTransfers || false
280
+ }
281
+ };
282
+ } else if (fee.royaltyFee) {
283
+ let fallbackFeeData = void 0;
284
+ if (fee.royaltyFee.fallbackFee) {
285
+ fallbackFeeData = {
286
+ amount: Long.fromValue(
287
+ fee.royaltyFee.fallbackFee.amount || 0
288
+ ).toString(),
289
+ denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
290
+ fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
291
+ fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
292
+ fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
293
+ ).toString() : void 0
294
+ };
295
+ }
296
+ return {
297
+ ...commonFeeData,
298
+ feeType: "ROYALTY_FEE",
299
+ royaltyFee: {
300
+ numerator: Long.fromValue(
301
+ fee.royaltyFee.exchangeValueFraction?.numerator || 0
302
+ ).toString(),
303
+ denominator: Long.fromValue(
304
+ fee.royaltyFee.exchangeValueFraction?.denominator || 1
305
+ ).toString(),
306
+ fallbackFee: fallbackFeeData
307
+ }
308
+ };
309
+ }
310
+ return {
311
+ ...commonFeeData,
312
+ feeType: "FIXED_FEE",
313
+ fixedFee: { amount: "0" }
314
+ };
315
+ });
316
+ }
317
+ return data;
318
+ }
319
+ static parseTokenFreeze(body) {
320
+ if (!body) return void 0;
321
+ const data = {};
322
+ if (body.token) {
323
+ data.tokenId = new TokenId(
324
+ body.token.shardNum ?? 0,
325
+ body.token.realmNum ?? 0,
326
+ body.token.tokenNum ?? 0
327
+ ).toString();
328
+ }
329
+ if (body.account) {
330
+ data.accountId = new AccountId(
331
+ body.account.shardNum ?? 0,
332
+ body.account.realmNum ?? 0,
333
+ body.account.accountNum ?? 0
334
+ ).toString();
335
+ }
336
+ return data;
337
+ }
338
+ static parseTokenUnfreeze(body) {
339
+ if (!body) return void 0;
340
+ const data = {};
341
+ if (body.token) {
342
+ data.tokenId = new TokenId(
343
+ body.token.shardNum ?? 0,
344
+ body.token.realmNum ?? 0,
345
+ body.token.tokenNum ?? 0
346
+ ).toString();
347
+ }
348
+ if (body.account) {
349
+ data.accountId = new AccountId(
350
+ body.account.shardNum ?? 0,
351
+ body.account.realmNum ?? 0,
352
+ body.account.accountNum ?? 0
353
+ ).toString();
354
+ }
355
+ return data;
356
+ }
357
+ static parseTokenGrantKyc(body) {
358
+ if (!body) return void 0;
359
+ const data = {};
360
+ if (body.token) {
361
+ data.tokenId = new TokenId(
362
+ body.token.shardNum ?? 0,
363
+ body.token.realmNum ?? 0,
364
+ body.token.tokenNum ?? 0
365
+ ).toString();
366
+ }
367
+ if (body.account) {
368
+ data.accountId = new AccountId(
369
+ body.account.shardNum ?? 0,
370
+ body.account.realmNum ?? 0,
371
+ body.account.accountNum ?? 0
372
+ ).toString();
373
+ }
374
+ return data;
375
+ }
376
+ static parseTokenRevokeKyc(body) {
377
+ if (!body) return void 0;
378
+ const data = {};
379
+ if (body.token) {
380
+ data.tokenId = new TokenId(
381
+ body.token.shardNum ?? 0,
382
+ body.token.realmNum ?? 0,
383
+ body.token.tokenNum ?? 0
384
+ ).toString();
385
+ }
386
+ if (body.account) {
387
+ data.accountId = new AccountId(
388
+ body.account.shardNum ?? 0,
389
+ body.account.realmNum ?? 0,
390
+ body.account.accountNum ?? 0
391
+ ).toString();
392
+ }
393
+ return data;
394
+ }
395
+ static parseTokenPause(body) {
396
+ if (!body) return void 0;
397
+ const data = {};
398
+ if (body.token) {
399
+ data.tokenId = new TokenId(
400
+ body.token.shardNum ?? 0,
401
+ body.token.realmNum ?? 0,
402
+ body.token.tokenNum ?? 0
403
+ ).toString();
404
+ }
405
+ return data;
406
+ }
407
+ static parseTokenUnpause(body) {
408
+ if (!body) return void 0;
409
+ const data = {};
410
+ if (body.token) {
411
+ data.tokenId = new TokenId(
412
+ body.token.shardNum ?? 0,
413
+ body.token.realmNum ?? 0,
414
+ body.token.tokenNum ?? 0
415
+ ).toString();
416
+ }
417
+ return data;
418
+ }
419
+ static parseTokenWipeAccount(body) {
420
+ if (!body) return void 0;
421
+ const data = {};
422
+ if (body.token) {
423
+ data.tokenId = new TokenId(
424
+ body.token.shardNum ?? 0,
425
+ body.token.realmNum ?? 0,
426
+ body.token.tokenNum ?? 0
427
+ ).toString();
428
+ }
429
+ if (body.account) {
430
+ data.accountId = new AccountId(
431
+ body.account.shardNum ?? 0,
432
+ body.account.realmNum ?? 0,
433
+ body.account.accountNum ?? 0
434
+ ).toString();
435
+ }
436
+ if (body.serialNumbers && body.serialNumbers.length > 0) {
437
+ data.serialNumbers = body.serialNumbers.map(
438
+ (sn) => Long.fromValue(sn).toString()
439
+ );
440
+ }
441
+ if (body.amount) {
442
+ data.amount = Long.fromValue(body.amount).toString();
443
+ }
444
+ return data;
445
+ }
446
+ static parseTokenDelete(body) {
447
+ if (!body) return void 0;
448
+ const data = {};
449
+ if (body.token) {
450
+ data.tokenId = new TokenId(
451
+ body.token.shardNum ?? 0,
452
+ body.token.realmNum ?? 0,
453
+ body.token.tokenNum ?? 0
454
+ ).toString();
455
+ }
456
+ return data;
457
+ }
458
+ static parseTokenAssociate(body) {
459
+ if (!body) return void 0;
460
+ const data = {};
461
+ if (body.account) {
462
+ data.accountId = new AccountId(
463
+ body.account.shardNum ?? 0,
464
+ body.account.realmNum ?? 0,
465
+ body.account.accountNum ?? 0
466
+ ).toString();
467
+ }
468
+ if (body.tokens && body.tokens.length > 0) {
469
+ data.tokenIds = body.tokens.map(
470
+ (t) => new TokenId(
471
+ t.shardNum ?? 0,
472
+ t.realmNum ?? 0,
473
+ t.tokenNum ?? 0
474
+ ).toString()
475
+ );
476
+ }
477
+ return data;
478
+ }
479
+ static parseTokenDissociate(body) {
480
+ if (!body) return void 0;
481
+ const data = {};
482
+ if (body.account) {
483
+ data.accountId = new AccountId(
484
+ body.account.shardNum ?? 0,
485
+ body.account.realmNum ?? 0,
486
+ body.account.accountNum ?? 0
487
+ ).toString();
488
+ }
489
+ if (body.tokens && body.tokens.length > 0) {
490
+ data.tokenIds = body.tokens.map(
491
+ (t) => new TokenId(
492
+ t.shardNum ?? 0,
493
+ t.realmNum ?? 0,
494
+ t.tokenNum ?? 0
495
+ ).toString()
496
+ );
497
+ }
498
+ return data;
499
+ }
500
+ }
2
501
  export {
3
- isBrowser
502
+ HTSParser
4
503
  };
5
504
  //# sourceMappingURL=standards-sdk.es39.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es39.js","sources":["../../src/utils/is-browser.ts"],"sourcesContent":["/**\n * Determines if the current environment is a browser\n */\nexport const isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\n"],"names":[],"mappings":"AAGO,MAAM,YACX,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;"}
1
+ {"version":3,"file":"standards-sdk.es39.js","sources":["../../src/utils/parsers/hts-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { AccountId, TokenId, Long } from '@hashgraph/sdk';\nimport {\n TokenCreationData,\n TokenMintData,\n TokenBurnData,\n TokenUpdateData,\n TokenFeeScheduleUpdateData,\n TokenFreezeData,\n TokenUnfreezeData,\n TokenGrantKycData,\n TokenRevokeKycData,\n TokenPauseData,\n TokenUnpauseData,\n TokenWipeAccountData,\n TokenDeleteData,\n TokenAssociateData,\n TokenDissociateData,\n CustomFeeData,\n FixedFeeData,\n FractionalFeeData,\n RoyaltyFeeData,\n} from '../transaction-parser-types';\nimport { parseKey } from './parser-utils';\nimport { Buffer } from 'buffer';\n\nexport class HTSParser {\n static parseTokenCreate(\n body: proto.ITokenCreateTransactionBody,\n ): TokenCreationData | undefined {\n if (!body) return undefined;\n const data: TokenCreationData = {};\n if (body.name) {\n data.tokenName = body.name;\n }\n if (body.symbol) {\n data.tokenSymbol = body.symbol;\n }\n if (body.treasury) {\n data.treasuryAccountId = new AccountId(\n body.treasury.shardNum ?? 0,\n body.treasury.realmNum ?? 0,\n body.treasury.accountNum ?? 0,\n ).toString();\n }\n if (body.initialSupply) {\n data.initialSupply = Long.fromValue(body.initialSupply).toString();\n }\n if (body.decimals !== undefined && body.decimals !== null) {\n data.decimals = Long.fromValue(body.decimals).toNumber();\n }\n if (body.maxSupply) {\n data.maxSupply = Long.fromValue(body.maxSupply).toString();\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n if (body.tokenType !== null && body.tokenType !== undefined) {\n data.tokenType = proto.TokenType[body.tokenType];\n }\n if (body.supplyType !== null && body.supplyType !== undefined) {\n data.supplyType = proto.TokenSupplyType[body.supplyType];\n }\n data.adminKey = parseKey(body.adminKey);\n data.kycKey = parseKey(body.kycKey);\n data.freezeKey = parseKey(body.freezeKey);\n data.wipeKey = parseKey(body.wipeKey);\n data.supplyKey = parseKey(body.supplyKey);\n data.feeScheduleKey = parseKey(body.feeScheduleKey);\n data.pauseKey = parseKey(body.pauseKey);\n if (body.autoRenewAccount) {\n data.autoRenewAccount = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.customFees && body.customFees.length > 0) {\n data.customFees = body.customFees.map(fee => {\n const feeCollectorAccountId = fee.feeCollectorAccountId\n ? new AccountId(\n fee.feeCollectorAccountId.shardNum ?? 0,\n fee.feeCollectorAccountId.realmNum ?? 0,\n fee.feeCollectorAccountId.accountNum ?? 0,\n ).toString()\n : 'Not Set';\n const commonFeeData = {\n feeCollectorAccountId,\n allCollectorsAreExempt: fee.allCollectorsAreExempt || false,\n };\n if (fee.fixedFee) {\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: {\n amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),\n denominatingTokenId: fee.fixedFee.denominatingTokenId\n ? new TokenId(\n fee.fixedFee.denominatingTokenId.shardNum ?? 0,\n fee.fixedFee.denominatingTokenId.realmNum ?? 0,\n fee.fixedFee.denominatingTokenId.tokenNum ?? 0,\n ).toString()\n : undefined,\n },\n };\n } else if (fee.fractionalFee) {\n return {\n ...commonFeeData,\n feeType: 'FRACTIONAL_FEE',\n fractionalFee: {\n numerator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.denominator || 1,\n ).toString(),\n minimumAmount: Long.fromValue(\n fee.fractionalFee.minimumAmount || 0,\n ).toString(),\n maximumAmount: Long.fromValue(\n fee.fractionalFee.maximumAmount || 0,\n ).toString(),\n netOfTransfers: fee.fractionalFee.netOfTransfers || false,\n },\n };\n } else if (fee.royaltyFee) {\n let fallbackFeeData: FixedFeeData | undefined = undefined;\n if (fee.royaltyFee.fallbackFee) {\n fallbackFeeData = {\n amount: Long.fromValue(\n fee.royaltyFee.fallbackFee.amount || 0,\n ).toString(),\n denominatingTokenId: fee.royaltyFee.fallbackFee\n .denominatingTokenId\n ? new TokenId(\n fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ??\n 0,\n ).toString()\n : undefined,\n };\n }\n return {\n ...commonFeeData,\n feeType: 'ROYALTY_FEE',\n royaltyFee: {\n numerator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.denominator || 1,\n ).toString(),\n fallbackFee: fallbackFeeData,\n },\n };\n }\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: { amount: '0' },\n } as CustomFeeData;\n });\n }\n return data;\n }\n\n static parseTokenMint(\n body: proto.ITokenMintTransactionBody,\n ): TokenMintData | undefined {\n if (\n !body ||\n !body.token ||\n body.amount === null ||\n body.amount === undefined\n ) {\n return undefined;\n }\n const data: TokenMintData = {\n tokenId: new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString(),\n amount: Long.fromValue(body.amount).toNumber(),\n };\n if (body.metadata && body.metadata.length > 0) {\n data.metadata = body.metadata.map(meta =>\n Buffer.from(meta).toString('base64'),\n );\n }\n return data;\n }\n\n static parseTokenBurn(\n body: proto.ITokenBurnTransactionBody,\n ): TokenBurnData | undefined {\n if (\n !body ||\n !body.token ||\n body.amount === null ||\n body.amount === undefined\n ) {\n return undefined;\n }\n const data: TokenBurnData = {\n tokenId: new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString(),\n amount: Long.fromValue(body.amount).toNumber(),\n };\n if (body.serialNumbers && body.serialNumbers.length > 0) {\n data.serialNumbers = body.serialNumbers.map(sn =>\n Long.fromValue(sn).toNumber(),\n );\n }\n return data;\n }\n\n static parseTokenUpdate(\n body: proto.ITokenUpdateTransactionBody,\n ): TokenUpdateData | undefined {\n if (!body) return undefined;\n const data: TokenUpdateData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.name) {\n data.name = body.name;\n }\n if (body.symbol) {\n data.symbol = body.symbol;\n }\n if (body.treasury) {\n data.treasuryAccountId = new AccountId(\n body.treasury.shardNum ?? 0,\n body.treasury.realmNum ?? 0,\n body.treasury.accountNum ?? 0,\n ).toString();\n }\n data.adminKey = parseKey(body.adminKey);\n data.kycKey = parseKey(body.kycKey);\n data.freezeKey = parseKey(body.freezeKey);\n data.wipeKey = parseKey(body.wipeKey);\n data.supplyKey = parseKey(body.supplyKey);\n data.feeScheduleKey = parseKey(body.feeScheduleKey);\n data.pauseKey = parseKey(body.pauseKey);\n if (body.autoRenewAccount) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.memo?.value !== undefined) {\n data.memo = body.memo.value;\n }\n if (body.expiry?.seconds) {\n data.expiry = `${Long.fromValue(body.expiry.seconds).toString()}.${\n body.expiry.nanos\n }`;\n }\n return data;\n }\n\n static parseTokenFeeScheduleUpdate(\n body: proto.ITokenFeeScheduleUpdateTransactionBody,\n ): TokenFeeScheduleUpdateData | undefined {\n if (!body) return undefined;\n const data: TokenFeeScheduleUpdateData = {};\n if (body.tokenId) {\n data.tokenId = new TokenId(\n body.tokenId.shardNum ?? 0,\n body.tokenId.realmNum ?? 0,\n body.tokenId.tokenNum ?? 0,\n ).toString();\n }\n if (body.customFees && body.customFees.length > 0) {\n data.customFees = body.customFees.map(fee => {\n const feeCollectorAccountId = fee.feeCollectorAccountId\n ? new AccountId(\n fee.feeCollectorAccountId.shardNum ?? 0,\n fee.feeCollectorAccountId.realmNum ?? 0,\n fee.feeCollectorAccountId.accountNum ?? 0,\n ).toString()\n : 'Not Set';\n const commonFeeData = {\n feeCollectorAccountId,\n allCollectorsAreExempt: fee.allCollectorsAreExempt || false,\n };\n if (fee.fixedFee) {\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: {\n amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),\n denominatingTokenId: fee.fixedFee.denominatingTokenId\n ? new TokenId(\n fee.fixedFee.denominatingTokenId.shardNum ?? 0,\n fee.fixedFee.denominatingTokenId.realmNum ?? 0,\n fee.fixedFee.denominatingTokenId.tokenNum ?? 0,\n ).toString()\n : undefined,\n },\n };\n } else if (fee.fractionalFee) {\n return {\n ...commonFeeData,\n feeType: 'FRACTIONAL_FEE',\n fractionalFee: {\n numerator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.fractionalFee.fractionalAmount?.denominator || 1,\n ).toString(),\n minimumAmount: Long.fromValue(\n fee.fractionalFee.minimumAmount || 0,\n ).toString(),\n maximumAmount: Long.fromValue(\n fee.fractionalFee.maximumAmount || 0,\n ).toString(),\n netOfTransfers: fee.fractionalFee.netOfTransfers || false,\n },\n };\n } else if (fee.royaltyFee) {\n let fallbackFeeData: FixedFeeData | undefined = undefined;\n if (fee.royaltyFee.fallbackFee) {\n fallbackFeeData = {\n amount: Long.fromValue(\n fee.royaltyFee.fallbackFee.amount || 0,\n ).toString(),\n denominatingTokenId: fee.royaltyFee.fallbackFee\n .denominatingTokenId\n ? new TokenId(\n fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ??\n 0,\n fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ??\n 0,\n ).toString()\n : undefined,\n };\n }\n return {\n ...commonFeeData,\n feeType: 'ROYALTY_FEE',\n royaltyFee: {\n numerator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.numerator || 0,\n ).toString(),\n denominator: Long.fromValue(\n fee.royaltyFee.exchangeValueFraction?.denominator || 1,\n ).toString(),\n fallbackFee: fallbackFeeData,\n },\n };\n }\n return {\n ...commonFeeData,\n feeType: 'FIXED_FEE',\n fixedFee: { amount: '0' },\n } as CustomFeeData;\n });\n }\n return data;\n }\n\n static parseTokenFreeze(\n body: proto.ITokenFreezeAccountTransactionBody,\n ): TokenFreezeData | undefined {\n if (!body) return undefined;\n const data: TokenFreezeData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenUnfreeze(\n body: proto.ITokenUnfreezeAccountTransactionBody,\n ): TokenUnfreezeData | undefined {\n if (!body) return undefined;\n const data: TokenUnfreezeData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenGrantKyc(\n body: proto.ITokenGrantKycTransactionBody,\n ): TokenGrantKycData | undefined {\n if (!body) return undefined;\n const data: TokenGrantKycData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenRevokeKyc(\n body: proto.ITokenRevokeKycTransactionBody,\n ): TokenRevokeKycData | undefined {\n if (!body) return undefined;\n const data: TokenRevokeKycData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenPause(\n body: proto.ITokenPauseTransactionBody,\n ): TokenPauseData | undefined {\n if (!body) return undefined;\n const data: TokenPauseData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenUnpause(\n body: proto.ITokenUnpauseTransactionBody,\n ): TokenUnpauseData | undefined {\n if (!body) return undefined;\n const data: TokenUnpauseData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenWipeAccount(\n body: proto.ITokenWipeAccountTransactionBody,\n ): TokenWipeAccountData | undefined {\n if (!body) return undefined;\n const data: TokenWipeAccountData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n if (body.serialNumbers && body.serialNumbers.length > 0) {\n data.serialNumbers = body.serialNumbers.map(sn =>\n Long.fromValue(sn).toString(),\n );\n }\n if (body.amount) {\n data.amount = Long.fromValue(body.amount).toString();\n }\n return data;\n }\n\n static parseTokenDelete(\n body: proto.ITokenDeleteTransactionBody,\n ): TokenDeleteData | undefined {\n if (!body) return undefined;\n const data: TokenDeleteData = {};\n if (body.token) {\n data.tokenId = new TokenId(\n body.token.shardNum ?? 0,\n body.token.realmNum ?? 0,\n body.token.tokenNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseTokenAssociate(\n body: proto.ITokenAssociateTransactionBody,\n ): TokenAssociateData | undefined {\n if (!body) return undefined;\n const data: TokenAssociateData = {};\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n if (body.tokens && body.tokens.length > 0) {\n data.tokenIds = body.tokens.map(t =>\n new TokenId(\n t.shardNum ?? 0,\n t.realmNum ?? 0,\n t.tokenNum ?? 0,\n ).toString(),\n );\n }\n return data;\n }\n\n static parseTokenDissociate(\n body: proto.ITokenDissociateTransactionBody,\n ): TokenDissociateData | undefined {\n if (!body) return undefined;\n const data: TokenDissociateData = {};\n if (body.account) {\n data.accountId = new AccountId(\n body.account.shardNum ?? 0,\n body.account.realmNum ?? 0,\n body.account.accountNum ?? 0,\n ).toString();\n }\n if (body.tokens && body.tokens.length > 0) {\n data.tokenIds = body.tokens.map(t =>\n new TokenId(\n t.shardNum ?? 0,\n t.realmNum ?? 0,\n t.tokenNum ?? 0,\n ).toString(),\n );\n }\n return data;\n }\n}\n"],"names":[],"mappings":"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"}