@hashgraphonline/standards-sdk 0.0.107 → 0.0.108-canary.1
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/standards-sdk.es100.js +24 -60
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +21 -6
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +41 -12
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +18 -7
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +60 -44
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +1289 -2
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +28 -132
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +6 -172
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +159 -13
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +793 -13
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +172 -30
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +142 -14
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +3 -4
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +2 -4
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +2 -16
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +33 -4
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +33 -39
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +9 -40
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +33 -36
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +17 -74
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es120.js +27 -3
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +26 -2
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +38 -2
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +96 -29
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +2 -33
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +16 -9
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +405 -30
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +2285 -0
- package/dist/es/standards-sdk.es127.js.map +1 -0
- package/dist/es/standards-sdk.es128.js +7139 -0
- package/dist/es/standards-sdk.es128.js.map +1 -0
- package/dist/es/standards-sdk.es129.js +13 -0
- package/dist/es/standards-sdk.es129.js.map +1 -0
- package/dist/es/standards-sdk.es13.js +3 -3
- package/dist/es/standards-sdk.es130.js +14 -0
- package/dist/es/standards-sdk.es130.js.map +1 -0
- package/dist/es/standards-sdk.es131.js +21 -0
- package/dist/es/standards-sdk.es131.js.map +1 -0
- package/dist/es/standards-sdk.es132.js +9 -0
- package/dist/es/standards-sdk.es132.js.map +1 -0
- package/dist/es/standards-sdk.es133.js +12 -0
- package/dist/es/standards-sdk.es133.js.map +1 -0
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es18.js +2 -2
- package/dist/es/standards-sdk.es19.js +216 -386
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es20.js +2 -2
- package/dist/es/standards-sdk.es21.js +3 -3
- package/dist/es/standards-sdk.es24.js +10 -10
- package/dist/es/standards-sdk.es25.js +5 -1769
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +36 -3
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +48 -4168
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +122 -5543
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +500 -8
- package/dist/es/standards-sdk.es29.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +109 -2
- package/dist/es/standards-sdk.es30.js.map +1 -1
- package/dist/es/standards-sdk.es31.js +66 -36
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +63 -47
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +27 -5
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +9 -8
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +10 -2
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +7167 -78
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +3 -2
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +8 -15
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +2 -409
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es40.js +4167 -2281
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +399 -144
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +2 -23
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +112 -166
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +350 -77
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +4 -193
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +158 -417
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +75 -19
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +103 -128
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +48 -14
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es5.js +1 -1
- package/dist/es/standards-sdk.es50.js +9 -28
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +91 -23
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +3 -20
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +2 -44
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +108 -13
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +71 -58
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +4 -1287
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +4 -147
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +211 -74
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +55 -29
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +69 -6
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +3 -158
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +41 -792
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +3 -143
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +159 -22
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +29 -23
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +61 -36
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +46 -17
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +10 -3
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +64 -3
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +4 -4
- package/dist/es/standards-sdk.es70.js +6 -7136
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +14 -9
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +7 -11
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +44 -17
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +2 -6
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +136 -9
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +156 -403
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +2 -2
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +13 -120
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +12 -363
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +3 -3
- package/dist/es/standards-sdk.es80.js +30 -4
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +14 -178
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +3 -80
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +3 -113
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +14 -50
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +4 -9
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +38 -96
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +40 -4
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +37 -2
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +70 -105
- 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 +80 -70
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +22 -5
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +147 -4
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +78 -208
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +189 -52
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +437 -68
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +20 -27
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +131 -55
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +14 -46
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +28 -9
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/dist/es/utils/parsers/crypto-parser.d.ts +10 -0
- package/dist/es/utils/parsers/crypto-parser.d.ts.map +1 -0
- package/dist/es/utils/parsers/file-parser.d.ts +9 -0
- package/dist/es/utils/parsers/file-parser.d.ts.map +1 -0
- package/dist/es/utils/parsers/hcs-parser.d.ts +9 -0
- package/dist/es/utils/parsers/hcs-parser.d.ts.map +1 -0
- package/dist/es/utils/parsers/hts-parser.d.ts +20 -0
- package/dist/es/utils/parsers/hts-parser.d.ts.map +1 -0
- package/dist/es/utils/parsers/parser-utils.d.ts +3 -0
- package/dist/es/utils/parsers/parser-utils.d.ts.map +1 -0
- package/dist/es/utils/parsers/scs-parser.d.ts +6 -0
- package/dist/es/utils/parsers/scs-parser.d.ts.map +1 -0
- package/dist/es/utils/parsers/util-parser.d.ts +6 -0
- package/dist/es/utils/parsers/util-parser.d.ts.map +1 -0
- package/dist/es/utils/transaction-parser-types.d.ts +226 -0
- package/dist/es/utils/transaction-parser-types.d.ts.map +1 -0
- package/dist/es/utils/transaction-parser.d.ts +1 -178
- package/dist/es/utils/transaction-parser.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/dist/umd/utils/parsers/crypto-parser.d.ts +10 -0
- package/dist/umd/utils/parsers/crypto-parser.d.ts.map +1 -0
- package/dist/umd/utils/parsers/file-parser.d.ts +9 -0
- package/dist/umd/utils/parsers/file-parser.d.ts.map +1 -0
- package/dist/umd/utils/parsers/hcs-parser.d.ts +9 -0
- package/dist/umd/utils/parsers/hcs-parser.d.ts.map +1 -0
- package/dist/umd/utils/parsers/hts-parser.d.ts +20 -0
- package/dist/umd/utils/parsers/hts-parser.d.ts.map +1 -0
- package/dist/umd/utils/parsers/parser-utils.d.ts +3 -0
- package/dist/umd/utils/parsers/parser-utils.d.ts.map +1 -0
- package/dist/umd/utils/parsers/scs-parser.d.ts +6 -0
- package/dist/umd/utils/parsers/scs-parser.d.ts.map +1 -0
- package/dist/umd/utils/parsers/util-parser.d.ts +6 -0
- package/dist/umd/utils/parsers/util-parser.d.ts.map +1 -0
- package/dist/umd/utils/transaction-parser-types.d.ts +226 -0
- package/dist/umd/utils/transaction-parser-types.d.ts.map +1 -0
- package/dist/umd/utils/transaction-parser.d.ts +1 -178
- package/dist/umd/utils/transaction-parser.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { proto } from "@hashgraph/proto";
|
|
2
|
-
import { Buffer as Buffer$1 } from "./standards-sdk.
|
|
3
|
-
import { Hbar, Long, HbarUnit
|
|
4
|
-
import {
|
|
2
|
+
import { Buffer as Buffer$1 } from "./standards-sdk.es28.js";
|
|
3
|
+
import { Hbar, Long, HbarUnit } from "@hashgraph/sdk";
|
|
4
|
+
import { HTSParser } from "./standards-sdk.es29.js";
|
|
5
|
+
import { HCSParser } from "./standards-sdk.es30.js";
|
|
6
|
+
import { FileParser } from "./standards-sdk.es31.js";
|
|
7
|
+
import { CryptoParser } from "./standards-sdk.es32.js";
|
|
8
|
+
import { SCSParser } from "./standards-sdk.es33.js";
|
|
9
|
+
import { UtilParser } from "./standards-sdk.es34.js";
|
|
10
|
+
import { decodeBase64 } from "./standards-sdk.es35.js";
|
|
5
11
|
class TransactionParser {
|
|
6
12
|
/**
|
|
7
13
|
* Parse a base64 encoded transaction body and return structured data
|
|
@@ -30,29 +36,115 @@ class TransactionParser {
|
|
|
30
36
|
result.transactionFee = hbarAmount.toString(HbarUnit.Hbar);
|
|
31
37
|
}
|
|
32
38
|
if (txBody.cryptoTransfer) {
|
|
33
|
-
|
|
39
|
+
CryptoParser.parseCryptoTransfers(txBody.cryptoTransfer, result);
|
|
40
|
+
}
|
|
41
|
+
if (txBody.cryptoDelete) {
|
|
42
|
+
result.cryptoDelete = CryptoParser.parseCryptoDelete(
|
|
43
|
+
txBody.cryptoDelete
|
|
44
|
+
);
|
|
34
45
|
}
|
|
35
46
|
if (txBody.contractCall) {
|
|
36
|
-
|
|
47
|
+
result.contractCall = SCSParser.parseContractCall(txBody.contractCall);
|
|
48
|
+
}
|
|
49
|
+
if (txBody.tokenCreation) {
|
|
50
|
+
result.tokenCreation = HTSParser.parseTokenCreate(txBody.tokenCreation);
|
|
37
51
|
}
|
|
38
52
|
if (txBody.tokenMint) {
|
|
39
|
-
|
|
53
|
+
result.tokenMint = HTSParser.parseTokenMint(txBody.tokenMint);
|
|
40
54
|
}
|
|
41
55
|
if (txBody.tokenBurn) {
|
|
42
|
-
|
|
56
|
+
result.tokenBurn = HTSParser.parseTokenBurn(txBody.tokenBurn);
|
|
43
57
|
}
|
|
44
|
-
if (txBody.
|
|
45
|
-
|
|
58
|
+
if (txBody.tokenUpdate) {
|
|
59
|
+
result.tokenUpdate = HTSParser.parseTokenUpdate(txBody.tokenUpdate);
|
|
60
|
+
}
|
|
61
|
+
if (txBody.tokenFeeScheduleUpdate) {
|
|
62
|
+
result.tokenFeeScheduleUpdate = HTSParser.parseTokenFeeScheduleUpdate(
|
|
63
|
+
txBody.tokenFeeScheduleUpdate
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
if (txBody.tokenFreeze) {
|
|
67
|
+
result.tokenFreeze = HTSParser.parseTokenFreeze(txBody.tokenFreeze);
|
|
68
|
+
}
|
|
69
|
+
if (txBody.tokenUnfreeze) {
|
|
70
|
+
result.tokenUnfreeze = HTSParser.parseTokenUnfreeze(
|
|
71
|
+
txBody.tokenUnfreeze
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
if (txBody.tokenGrantKyc) {
|
|
75
|
+
result.tokenGrantKyc = HTSParser.parseTokenGrantKyc(
|
|
76
|
+
txBody.tokenGrantKyc
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
if (txBody.tokenRevokeKyc) {
|
|
80
|
+
result.tokenRevokeKyc = HTSParser.parseTokenRevokeKyc(
|
|
81
|
+
txBody.tokenRevokeKyc
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
if (txBody.tokenPause) {
|
|
85
|
+
result.tokenPause = HTSParser.parseTokenPause(txBody.tokenPause);
|
|
86
|
+
}
|
|
87
|
+
if (txBody.tokenUnpause) {
|
|
88
|
+
result.tokenUnpause = HTSParser.parseTokenUnpause(txBody.tokenUnpause);
|
|
89
|
+
}
|
|
90
|
+
if (txBody.tokenWipe) {
|
|
91
|
+
result.tokenWipeAccount = HTSParser.parseTokenWipeAccount(
|
|
92
|
+
txBody.tokenWipe
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
if (txBody.tokenDeletion) {
|
|
96
|
+
result.tokenDelete = HTSParser.parseTokenDelete(txBody.tokenDeletion);
|
|
97
|
+
}
|
|
98
|
+
if (txBody.tokenAssociate) {
|
|
99
|
+
result.tokenAssociate = HTSParser.parseTokenAssociate(
|
|
100
|
+
txBody.tokenAssociate
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
if (txBody.tokenDissociate) {
|
|
104
|
+
result.tokenDissociate = HTSParser.parseTokenDissociate(
|
|
105
|
+
txBody.tokenDissociate
|
|
106
|
+
);
|
|
46
107
|
}
|
|
47
108
|
if (txBody.consensusCreateTopic) {
|
|
48
|
-
|
|
109
|
+
result.consensusCreateTopic = HCSParser.parseConsensusCreateTopic(
|
|
110
|
+
txBody.consensusCreateTopic
|
|
111
|
+
);
|
|
49
112
|
}
|
|
50
113
|
if (txBody.consensusSubmitMessage) {
|
|
51
|
-
|
|
114
|
+
result.consensusSubmitMessage = HCSParser.parseConsensusSubmitMessage(
|
|
115
|
+
txBody.consensusSubmitMessage
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
if (txBody.consensusUpdateTopic) {
|
|
119
|
+
result.consensusUpdateTopic = HCSParser.parseConsensusUpdateTopic(
|
|
120
|
+
txBody.consensusUpdateTopic
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
if (txBody.consensusDeleteTopic) {
|
|
124
|
+
result.consensusDeleteTopic = HCSParser.parseConsensusDeleteTopic(
|
|
125
|
+
txBody.consensusDeleteTopic
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
if (txBody.fileCreate) {
|
|
129
|
+
result.fileCreate = FileParser.parseFileCreate(txBody.fileCreate);
|
|
130
|
+
}
|
|
131
|
+
if (txBody.fileAppend) {
|
|
132
|
+
result.fileAppend = FileParser.parseFileAppend(txBody.fileAppend);
|
|
133
|
+
}
|
|
134
|
+
if (txBody.fileUpdate) {
|
|
135
|
+
result.fileUpdate = FileParser.parseFileUpdate(txBody.fileUpdate);
|
|
136
|
+
}
|
|
137
|
+
if (txBody.fileDelete) {
|
|
138
|
+
result.fileDelete = FileParser.parseFileDelete(txBody.fileDelete);
|
|
139
|
+
}
|
|
140
|
+
if (txBody.utilPrng) {
|
|
141
|
+
result.utilPrng = UtilParser.parseUtilPrng(txBody.utilPrng);
|
|
52
142
|
}
|
|
53
143
|
return result;
|
|
54
144
|
} catch (error) {
|
|
55
|
-
throw new Error(
|
|
145
|
+
throw new Error(
|
|
146
|
+
`Failed to parse transaction body: ${error instanceof Error ? error.message : String(error)}`
|
|
147
|
+
);
|
|
56
148
|
}
|
|
57
149
|
}
|
|
58
150
|
/**
|
|
@@ -143,12 +235,8 @@ class TransactionParser {
|
|
|
143
235
|
transactionType = "tokenUnpause";
|
|
144
236
|
} else if (txBody.tokenWipe) {
|
|
145
237
|
transactionType = "tokenWipe";
|
|
146
|
-
} else if (txBody.
|
|
147
|
-
transactionType = "
|
|
148
|
-
} else if (txBody.systemDelete) {
|
|
149
|
-
transactionType = "systemDelete";
|
|
150
|
-
} else if (txBody.systemUndelete) {
|
|
151
|
-
transactionType = "systemUndelete";
|
|
238
|
+
} else if (txBody.utilPrng) {
|
|
239
|
+
transactionType = "utilPrng";
|
|
152
240
|
}
|
|
153
241
|
return transactionType;
|
|
154
242
|
}
|
|
@@ -195,10 +283,8 @@ class TransactionParser {
|
|
|
195
283
|
tokenUnpause: "Unpause Token",
|
|
196
284
|
tokenWipe: "Wipe Token",
|
|
197
285
|
scheduleCreate: "Create Schedule",
|
|
198
|
-
scheduleDelete: "Delete Schedule",
|
|
199
286
|
scheduleSign: "Sign Schedule",
|
|
200
|
-
|
|
201
|
-
systemUndelete: "System Undelete",
|
|
287
|
+
utilPrng: "Generate Random Number",
|
|
202
288
|
unknown: "Unknown Transaction"
|
|
203
289
|
};
|
|
204
290
|
let result;
|
|
@@ -209,362 +295,12 @@ class TransactionParser {
|
|
|
209
295
|
}
|
|
210
296
|
return result;
|
|
211
297
|
}
|
|
212
|
-
/**
|
|
213
|
-
* Parse crypto transfers from the transaction
|
|
214
|
-
* @param cryptoTransfer - The crypto transfer transaction body
|
|
215
|
-
* @param result - The parsed transaction
|
|
216
|
-
*/
|
|
217
|
-
static parseCryptoTransfers(cryptoTransfer, result) {
|
|
218
|
-
if (cryptoTransfer.transfers) {
|
|
219
|
-
if (cryptoTransfer.transfers.accountAmounts) {
|
|
220
|
-
result.transfers = cryptoTransfer.transfers.accountAmounts.map(
|
|
221
|
-
(amount) => {
|
|
222
|
-
const shard = amount.accountID?.shardNum ? Long.fromValue(amount.accountID.shardNum).toNumber() : 0;
|
|
223
|
-
const realm = amount.accountID?.realmNum ? Long.fromValue(amount.accountID.realmNum).toNumber() : 0;
|
|
224
|
-
const accountNum = amount.accountID?.accountNum ? Long.fromValue(amount.accountID.accountNum).toNumber() : 0;
|
|
225
|
-
const accountId = AccountId.fromString(
|
|
226
|
-
`${shard}.${realm}.${accountNum}`
|
|
227
|
-
);
|
|
228
|
-
const hbarValue = amount.amount ? Long.fromValue(amount.amount) : Long.ZERO;
|
|
229
|
-
const hbarAmount = Hbar.fromTinybars(hbarValue);
|
|
230
|
-
return {
|
|
231
|
-
accountId: accountId.toString(),
|
|
232
|
-
amount: hbarAmount.toString(HbarUnit.Hbar),
|
|
233
|
-
isDecimal: true
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
if (cryptoTransfer.tokenTransfers) {
|
|
240
|
-
for (const tokenTransfer of cryptoTransfer.tokenTransfers) {
|
|
241
|
-
const shard = tokenTransfer.token?.shardNum ? Long.fromValue(tokenTransfer.token.shardNum).toNumber() : 0;
|
|
242
|
-
const realm = tokenTransfer.token?.realmNum ? Long.fromValue(tokenTransfer.token.realmNum).toNumber() : 0;
|
|
243
|
-
const tokenNum = tokenTransfer.token?.tokenNum ? Long.fromValue(tokenTransfer.token.tokenNum).toNumber() : 0;
|
|
244
|
-
const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);
|
|
245
|
-
if (tokenTransfer.transfers) {
|
|
246
|
-
for (const transfer of tokenTransfer.transfers) {
|
|
247
|
-
const accShard = transfer.accountID?.shardNum ? Long.fromValue(transfer.accountID.shardNum).toNumber() : 0;
|
|
248
|
-
const accRealm = transfer.accountID?.realmNum ? Long.fromValue(transfer.accountID.realmNum).toNumber() : 0;
|
|
249
|
-
const accNum = transfer.accountID?.accountNum ? Long.fromValue(transfer.accountID.accountNum).toNumber() : 0;
|
|
250
|
-
const accountId = AccountId.fromString(
|
|
251
|
-
`${accShard}.${accRealm}.${accNum}`
|
|
252
|
-
);
|
|
253
|
-
const tokenAmount = transfer.amount ? Long.fromValue(transfer.amount).toNumber() : 0;
|
|
254
|
-
result.tokenTransfers.push({
|
|
255
|
-
tokenId: tokenId.toString(),
|
|
256
|
-
accountId: accountId.toString(),
|
|
257
|
-
amount: tokenAmount
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Parse contract call transaction data
|
|
266
|
-
* @param contractCall - The contract call transaction body
|
|
267
|
-
* @param result - The parsed transaction
|
|
268
|
-
*/
|
|
269
|
-
static parseContractCall(contractCall, result) {
|
|
270
|
-
if (contractCall) {
|
|
271
|
-
const shard = contractCall.contractID?.shardNum ? Long.fromValue(contractCall.contractID.shardNum).toNumber() : 0;
|
|
272
|
-
const realm = contractCall.contractID?.realmNum ? Long.fromValue(contractCall.contractID.realmNum).toNumber() : 0;
|
|
273
|
-
const contractNum = contractCall.contractID?.contractNum ? Long.fromValue(contractCall.contractID.contractNum).toNumber() : 0;
|
|
274
|
-
const contractId = ContractId.fromString(
|
|
275
|
-
`${shard}.${realm}.${contractNum}`
|
|
276
|
-
);
|
|
277
|
-
const gasLimit = contractCall.gas ? Long.fromValue(contractCall.gas).toNumber() : 0;
|
|
278
|
-
let amount = 0;
|
|
279
|
-
if (contractCall.amount) {
|
|
280
|
-
const hbar = Hbar.fromTinybars(Long.fromValue(contractCall.amount));
|
|
281
|
-
amount = parseFloat(hbar.toString(HbarUnit.Hbar));
|
|
282
|
-
}
|
|
283
|
-
const functionParameters = contractCall.functionParameters ? Buffer$1.from(contractCall.functionParameters).toString("hex") : void 0;
|
|
284
|
-
let functionName;
|
|
285
|
-
if (functionParameters && functionParameters.length >= 8) {
|
|
286
|
-
functionName = functionParameters.substring(0, 8);
|
|
287
|
-
}
|
|
288
|
-
result.contractCall = {
|
|
289
|
-
contractId: contractId.toString(),
|
|
290
|
-
gas: gasLimit,
|
|
291
|
-
amount,
|
|
292
|
-
functionParameters,
|
|
293
|
-
functionName
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Parse token mint transaction data
|
|
299
|
-
* @param tokenMint - The token mint transaction body
|
|
300
|
-
* @param result - The parsed transaction
|
|
301
|
-
*/
|
|
302
|
-
static parseTokenMint(tokenMint, result) {
|
|
303
|
-
if (tokenMint) {
|
|
304
|
-
const shard = tokenMint.token?.shardNum ? Long.fromValue(tokenMint.token.shardNum).toNumber() : 0;
|
|
305
|
-
const realm = tokenMint.token?.realmNum ? Long.fromValue(tokenMint.token.realmNum).toNumber() : 0;
|
|
306
|
-
const tokenNum = tokenMint.token?.tokenNum ? Long.fromValue(tokenMint.token.tokenNum).toNumber() : 0;
|
|
307
|
-
const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);
|
|
308
|
-
const amount = tokenMint.amount ? Long.fromValue(tokenMint.amount).toNumber() : 0;
|
|
309
|
-
const metadata = [];
|
|
310
|
-
if (tokenMint.metadata) {
|
|
311
|
-
for (const meta of tokenMint.metadata) {
|
|
312
|
-
if (meta) {
|
|
313
|
-
metadata.push(Buffer$1.from(meta).toString("base64"));
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
result.tokenMint = {
|
|
318
|
-
tokenId: tokenId.toString(),
|
|
319
|
-
amount,
|
|
320
|
-
metadata: metadata.length > 0 ? metadata : void 0
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Parse token burn transaction data
|
|
326
|
-
* @param tokenBurn - The token burn transaction body
|
|
327
|
-
* @param result - The parsed transaction
|
|
328
|
-
*/
|
|
329
|
-
static parseTokenBurn(tokenBurn, result) {
|
|
330
|
-
if (tokenBurn) {
|
|
331
|
-
const shard = tokenBurn.token?.shardNum ? Long.fromValue(tokenBurn.token.shardNum).toNumber() : 0;
|
|
332
|
-
const realm = tokenBurn.token?.realmNum ? Long.fromValue(tokenBurn.token.realmNum).toNumber() : 0;
|
|
333
|
-
const tokenNum = tokenBurn.token?.tokenNum ? Long.fromValue(tokenBurn.token.tokenNum).toNumber() : 0;
|
|
334
|
-
const tokenId = TokenId.fromString(`${shard}.${realm}.${tokenNum}`);
|
|
335
|
-
const amount = tokenBurn.amount ? Long.fromValue(tokenBurn.amount).toNumber() : 0;
|
|
336
|
-
const serialNumbers = [];
|
|
337
|
-
if (tokenBurn.serialNumbers) {
|
|
338
|
-
for (const serial of tokenBurn.serialNumbers) {
|
|
339
|
-
if (serial) {
|
|
340
|
-
serialNumbers.push(Long.fromValue(serial).toNumber());
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
result.tokenBurn = {
|
|
345
|
-
tokenId: tokenId.toString(),
|
|
346
|
-
amount,
|
|
347
|
-
serialNumbers: serialNumbers.length > 0 ? serialNumbers : void 0
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Parse token creation transaction data
|
|
353
|
-
* @param tokenCreation - The token creation transaction body
|
|
354
|
-
* @param result - The parsed transaction
|
|
355
|
-
*/
|
|
356
|
-
static parseTokenCreation(tokenCreation, result) {
|
|
357
|
-
if (tokenCreation) {
|
|
358
|
-
const creationData = {};
|
|
359
|
-
if (tokenCreation.name) creationData.tokenName = tokenCreation.name;
|
|
360
|
-
if (tokenCreation.symbol) creationData.tokenSymbol = tokenCreation.symbol;
|
|
361
|
-
if (tokenCreation.treasury) {
|
|
362
|
-
const t = tokenCreation.treasury;
|
|
363
|
-
creationData.treasuryAccountId = new AccountId(
|
|
364
|
-
t.shardNum ? Long.fromValue(t.shardNum).toNumber() : 0,
|
|
365
|
-
t.realmNum ? Long.fromValue(t.realmNum).toNumber() : 0,
|
|
366
|
-
t.accountNum ? Long.fromValue(t.accountNum).toNumber() : 0
|
|
367
|
-
).toString();
|
|
368
|
-
}
|
|
369
|
-
if (tokenCreation.initialSupply) {
|
|
370
|
-
creationData.initialSupply = Long.fromValue(
|
|
371
|
-
tokenCreation.initialSupply
|
|
372
|
-
).toString();
|
|
373
|
-
}
|
|
374
|
-
if (tokenCreation.decimals !== void 0 && tokenCreation.decimals !== null) {
|
|
375
|
-
creationData.decimals = Long.fromValue(
|
|
376
|
-
tokenCreation.decimals
|
|
377
|
-
).toNumber();
|
|
378
|
-
}
|
|
379
|
-
if (tokenCreation.maxSupply) {
|
|
380
|
-
creationData.maxSupply = Long.fromValue(
|
|
381
|
-
tokenCreation.maxSupply
|
|
382
|
-
).toString();
|
|
383
|
-
}
|
|
384
|
-
if (tokenCreation.memo) creationData.memo = tokenCreation.memo;
|
|
385
|
-
if (tokenCreation.tokenType !== null && tokenCreation.tokenType !== void 0) {
|
|
386
|
-
creationData.tokenType = proto.TokenType[tokenCreation.tokenType];
|
|
387
|
-
}
|
|
388
|
-
if (tokenCreation.supplyType !== null && tokenCreation.supplyType !== void 0) {
|
|
389
|
-
creationData.supplyType = proto.TokenSupplyType[tokenCreation.supplyType];
|
|
390
|
-
}
|
|
391
|
-
creationData.adminKey = tokenCreation.adminKey ? "Present" : "Not Present";
|
|
392
|
-
creationData.kycKey = tokenCreation.kycKey ? "Present" : "Not Present";
|
|
393
|
-
creationData.freezeKey = tokenCreation.freezeKey ? "Present" : "Not Present";
|
|
394
|
-
creationData.wipeKey = tokenCreation.wipeKey ? "Present" : "Not Present";
|
|
395
|
-
creationData.supplyKey = tokenCreation.supplyKey ? "Present" : "Not Present";
|
|
396
|
-
creationData.feeScheduleKey = tokenCreation.feeScheduleKey ? "Present" : "Not Present";
|
|
397
|
-
creationData.pauseKey = tokenCreation.pauseKey ? "Present" : "Not Present";
|
|
398
|
-
if (tokenCreation.autoRenewAccount) {
|
|
399
|
-
const ara = tokenCreation.autoRenewAccount;
|
|
400
|
-
creationData.autoRenewAccount = new AccountId(
|
|
401
|
-
ara.shardNum ? Long.fromValue(ara.shardNum).toNumber() : 0,
|
|
402
|
-
ara.realmNum ? Long.fromValue(ara.realmNum).toNumber() : 0,
|
|
403
|
-
ara.accountNum ? Long.fromValue(ara.accountNum).toNumber() : 0
|
|
404
|
-
).toString();
|
|
405
|
-
}
|
|
406
|
-
if (tokenCreation.autoRenewPeriod && tokenCreation.autoRenewPeriod.seconds) {
|
|
407
|
-
creationData.autoRenewPeriod = Long.fromValue(
|
|
408
|
-
tokenCreation.autoRenewPeriod.seconds
|
|
409
|
-
).toString();
|
|
410
|
-
}
|
|
411
|
-
if (tokenCreation.customFees && tokenCreation.customFees.length > 0) {
|
|
412
|
-
creationData.customFees = tokenCreation.customFees.map((fee) => {
|
|
413
|
-
const feeCollectorAccountId = fee.feeCollectorAccountId ? new AccountId(
|
|
414
|
-
fee.feeCollectorAccountId.shardNum ?? 0,
|
|
415
|
-
fee.feeCollectorAccountId.realmNum ?? 0,
|
|
416
|
-
fee.feeCollectorAccountId.accountNum ?? 0
|
|
417
|
-
).toString() : "Not Set";
|
|
418
|
-
const commonFeeData = {
|
|
419
|
-
feeCollectorAccountId,
|
|
420
|
-
allCollectorsAreExempt: fee.allCollectorsAreExempt || false
|
|
421
|
-
};
|
|
422
|
-
if (fee.fixedFee) {
|
|
423
|
-
return {
|
|
424
|
-
...commonFeeData,
|
|
425
|
-
feeType: "FIXED_FEE",
|
|
426
|
-
fixedFee: {
|
|
427
|
-
amount: Long.fromValue(fee.fixedFee.amount || 0).toString(),
|
|
428
|
-
denominatingTokenId: fee.fixedFee.denominatingTokenId ? new TokenId(
|
|
429
|
-
fee.fixedFee.denominatingTokenId.shardNum ?? 0,
|
|
430
|
-
fee.fixedFee.denominatingTokenId.realmNum ?? 0,
|
|
431
|
-
fee.fixedFee.denominatingTokenId.tokenNum ?? 0
|
|
432
|
-
).toString() : void 0
|
|
433
|
-
}
|
|
434
|
-
};
|
|
435
|
-
} else if (fee.fractionalFee) {
|
|
436
|
-
return {
|
|
437
|
-
...commonFeeData,
|
|
438
|
-
feeType: "FRACTIONAL_FEE",
|
|
439
|
-
fractionalFee: {
|
|
440
|
-
numerator: Long.fromValue(
|
|
441
|
-
fee.fractionalFee.fractionalAmount?.numerator || 0
|
|
442
|
-
).toString(),
|
|
443
|
-
denominator: Long.fromValue(
|
|
444
|
-
fee.fractionalFee.fractionalAmount?.denominator || 1
|
|
445
|
-
).toString(),
|
|
446
|
-
minimumAmount: Long.fromValue(
|
|
447
|
-
fee.fractionalFee.minimumAmount || 0
|
|
448
|
-
).toString(),
|
|
449
|
-
maximumAmount: Long.fromValue(
|
|
450
|
-
fee.fractionalFee.maximumAmount || 0
|
|
451
|
-
).toString(),
|
|
452
|
-
netOfTransfers: fee.fractionalFee.netOfTransfers || false
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
} else if (fee.royaltyFee) {
|
|
456
|
-
let fallbackFeeData = void 0;
|
|
457
|
-
if (fee.royaltyFee.fallbackFee) {
|
|
458
|
-
fallbackFeeData = {
|
|
459
|
-
amount: Long.fromValue(
|
|
460
|
-
fee.royaltyFee.fallbackFee.amount || 0
|
|
461
|
-
).toString(),
|
|
462
|
-
denominatingTokenId: fee.royaltyFee.fallbackFee.denominatingTokenId ? new TokenId(
|
|
463
|
-
fee.royaltyFee.fallbackFee.denominatingTokenId.shardNum ?? 0,
|
|
464
|
-
fee.royaltyFee.fallbackFee.denominatingTokenId.realmNum ?? 0,
|
|
465
|
-
fee.royaltyFee.fallbackFee.denominatingTokenId.tokenNum ?? 0
|
|
466
|
-
).toString() : void 0
|
|
467
|
-
};
|
|
468
|
-
}
|
|
469
|
-
return {
|
|
470
|
-
...commonFeeData,
|
|
471
|
-
feeType: "ROYALTY_FEE",
|
|
472
|
-
royaltyFee: {
|
|
473
|
-
numerator: Long.fromValue(
|
|
474
|
-
fee.royaltyFee.exchangeValueFraction?.numerator || 0
|
|
475
|
-
).toString(),
|
|
476
|
-
denominator: Long.fromValue(
|
|
477
|
-
fee.royaltyFee.exchangeValueFraction?.denominator || 1
|
|
478
|
-
).toString(),
|
|
479
|
-
fallbackFee: fallbackFeeData
|
|
480
|
-
}
|
|
481
|
-
};
|
|
482
|
-
}
|
|
483
|
-
return {
|
|
484
|
-
...commonFeeData,
|
|
485
|
-
feeType: "FIXED_FEE",
|
|
486
|
-
fixedFee: { amount: "0" }
|
|
487
|
-
};
|
|
488
|
-
});
|
|
489
|
-
}
|
|
490
|
-
result.tokenCreation = creationData;
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
/**
|
|
494
|
-
* Parse consensus create topic transaction data
|
|
495
|
-
* @param createTopicBody - The consensus create topic transaction body
|
|
496
|
-
* @param result - The parsed transaction
|
|
497
|
-
*/
|
|
498
|
-
static parseConsensusCreateTopic(createTopicBody, result) {
|
|
499
|
-
if (createTopicBody) {
|
|
500
|
-
const topicData = {};
|
|
501
|
-
if (createTopicBody.memo) topicData.memo = createTopicBody.memo;
|
|
502
|
-
topicData.adminKey = createTopicBody.adminKey ? "Present" : "Not Present";
|
|
503
|
-
topicData.submitKey = createTopicBody.submitKey ? "Present" : "Not Present";
|
|
504
|
-
if (createTopicBody.autoRenewAccount) {
|
|
505
|
-
const ara = createTopicBody.autoRenewAccount;
|
|
506
|
-
topicData.autoRenewAccountId = new AccountId(
|
|
507
|
-
ara.shardNum ? Long.fromValue(ara.shardNum).toNumber() : 0,
|
|
508
|
-
ara.realmNum ? Long.fromValue(ara.realmNum).toNumber() : 0,
|
|
509
|
-
ara.accountNum ? Long.fromValue(ara.accountNum).toNumber() : 0
|
|
510
|
-
).toString();
|
|
511
|
-
}
|
|
512
|
-
if (createTopicBody.autoRenewPeriod && createTopicBody.autoRenewPeriod.seconds) {
|
|
513
|
-
topicData.autoRenewPeriod = Long.fromValue(
|
|
514
|
-
createTopicBody.autoRenewPeriod.seconds
|
|
515
|
-
).toString();
|
|
516
|
-
}
|
|
517
|
-
result.consensusCreateTopic = topicData;
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
/**
|
|
521
|
-
* Parse consensus submit message transaction data
|
|
522
|
-
* @param submitMessageBody - The consensus submit message transaction body
|
|
523
|
-
* @param result - The parsed transaction
|
|
524
|
-
*/
|
|
525
|
-
static parseConsensusSubmitMessage(submitMessageBody, result) {
|
|
526
|
-
if (submitMessageBody) {
|
|
527
|
-
const messageData = {};
|
|
528
|
-
if (submitMessageBody.topicID) {
|
|
529
|
-
const tid = submitMessageBody.topicID;
|
|
530
|
-
messageData.topicId = `${tid.shardNum ? Long.fromValue(tid.shardNum).toNumber() : 0}.${tid.realmNum ? Long.fromValue(tid.realmNum).toNumber() : 0}.${tid.topicNum ? Long.fromValue(tid.topicNum).toNumber() : 0}`;
|
|
531
|
-
}
|
|
532
|
-
if (submitMessageBody.message && submitMessageBody.message.length > 0) {
|
|
533
|
-
const messageBuffer = Buffer$1.from(submitMessageBody.message);
|
|
534
|
-
const utf8String = messageBuffer.toString("utf8");
|
|
535
|
-
if (/[--]/.test(utf8String) || utf8String.includes("�")) {
|
|
536
|
-
messageData.message = messageBuffer.toString("base64");
|
|
537
|
-
messageData.messageEncoding = "base64";
|
|
538
|
-
} else {
|
|
539
|
-
messageData.message = utf8String;
|
|
540
|
-
messageData.messageEncoding = "utf8";
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
if (submitMessageBody.chunkInfo) {
|
|
544
|
-
if (submitMessageBody.chunkInfo.initialTransactionID) {
|
|
545
|
-
const txId = submitMessageBody.chunkInfo.initialTransactionID.accountID;
|
|
546
|
-
const taValidStart = submitMessageBody.chunkInfo.initialTransactionID.transactionValidStart;
|
|
547
|
-
if (txId && taValidStart) {
|
|
548
|
-
messageData.chunkInfoInitialTransactionID = `${txId.shardNum ? Long.fromValue(txId.shardNum).toNumber() : 0}.${txId.realmNum ? Long.fromValue(txId.realmNum).toNumber() : 0}.${txId.accountNum ? Long.fromValue(txId.accountNum).toNumber() : 0}@${taValidStart.seconds ? Long.fromValue(taValidStart.seconds).toNumber() : 0}.${taValidStart.nanos ? Long.fromValue(taValidStart.nanos).toNumber() : 0}`;
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
if (submitMessageBody.chunkInfo.number !== void 0 && submitMessageBody.chunkInfo.number !== null) {
|
|
552
|
-
messageData.chunkInfoNumber = submitMessageBody.chunkInfo.number;
|
|
553
|
-
}
|
|
554
|
-
if (submitMessageBody.chunkInfo.total !== void 0 && submitMessageBody.chunkInfo.total !== null) {
|
|
555
|
-
messageData.chunkInfoTotal = submitMessageBody.chunkInfo.total;
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
result.consensusSubmitMessage = messageData;
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
298
|
/**
|
|
562
299
|
* Get a human-readable summary of the transaction
|
|
563
300
|
* @param parsedTx - The parsed transaction
|
|
564
301
|
* @returns The human-readable summary of the transaction
|
|
565
302
|
*/
|
|
566
303
|
static getTransactionSummary(parsedTx) {
|
|
567
|
-
let summary;
|
|
568
304
|
if (parsedTx.type === "cryptoTransfer") {
|
|
569
305
|
const senders = [];
|
|
570
306
|
const receivers = [];
|
|
@@ -582,11 +318,11 @@ class TransactionParser {
|
|
|
582
318
|
}
|
|
583
319
|
}
|
|
584
320
|
if (senders.length > 0 && receivers.length > 0) {
|
|
585
|
-
|
|
321
|
+
return `Transfer of HBAR from ${senders.join(", ")} to ${receivers.join(
|
|
586
322
|
", "
|
|
587
|
-
)}
|
|
323
|
+
)}`;
|
|
588
324
|
} else {
|
|
589
|
-
|
|
325
|
+
return parsedTx.humanReadableType;
|
|
590
326
|
}
|
|
591
327
|
} else if (parsedTx.contractCall) {
|
|
592
328
|
let contractCallSummary = `Contract call to ${parsedTx.contractCall.contractId} with ${parsedTx.contractCall.gas} gas`;
|
|
@@ -596,19 +332,20 @@ class TransactionParser {
|
|
|
596
332
|
if (parsedTx.contractCall.functionName) {
|
|
597
333
|
contractCallSummary += ` calling function ${parsedTx.contractCall.functionName}`;
|
|
598
334
|
}
|
|
599
|
-
|
|
335
|
+
return contractCallSummary;
|
|
600
336
|
} else if (parsedTx.tokenMint) {
|
|
601
|
-
|
|
337
|
+
return `Mint ${parsedTx.tokenMint.amount} tokens for token ${parsedTx.tokenMint.tokenId}`;
|
|
602
338
|
} else if (parsedTx.tokenBurn) {
|
|
603
|
-
|
|
339
|
+
return `Burn ${parsedTx.tokenBurn.amount} tokens for token ${parsedTx.tokenBurn.tokenId}`;
|
|
604
340
|
} else if (parsedTx.tokenCreation) {
|
|
605
|
-
summary = `Create token ${parsedTx.tokenCreation.tokenName || "(No Name)"} (${parsedTx.tokenCreation.tokenSymbol || "(No Symbol)"})`;
|
|
341
|
+
let summary = `Create token ${parsedTx.tokenCreation.tokenName || "(No Name)"} (${parsedTx.tokenCreation.tokenSymbol || "(No Symbol)"})`;
|
|
606
342
|
if (parsedTx.tokenCreation.initialSupply) {
|
|
607
343
|
summary += ` with initial supply ${parsedTx.tokenCreation.initialSupply}`;
|
|
608
344
|
}
|
|
609
|
-
if (parsedTx.tokenCreation.customFees
|
|
345
|
+
if (parsedTx.tokenCreation.customFees?.length) {
|
|
610
346
|
summary += ` including ${parsedTx.tokenCreation.customFees.length} custom fee(s)`;
|
|
611
347
|
}
|
|
348
|
+
return summary;
|
|
612
349
|
} else if (parsedTx.tokenTransfers.length > 0) {
|
|
613
350
|
const tokenGroups = {};
|
|
614
351
|
for (const transfer of parsedTx.tokenTransfers) {
|
|
@@ -642,20 +379,21 @@ class TransactionParser {
|
|
|
642
379
|
}
|
|
643
380
|
}
|
|
644
381
|
if (tokenSummaries.length > 0) {
|
|
645
|
-
|
|
382
|
+
return tokenSummaries.join("; ");
|
|
646
383
|
} else {
|
|
647
|
-
|
|
384
|
+
return parsedTx.humanReadableType;
|
|
648
385
|
}
|
|
649
386
|
} else if (parsedTx.consensusCreateTopic) {
|
|
650
|
-
summary = `Create new topic`;
|
|
387
|
+
let summary = `Create new topic`;
|
|
651
388
|
if (parsedTx.consensusCreateTopic.memo) {
|
|
652
389
|
summary += ` with memo "${parsedTx.consensusCreateTopic.memo}"`;
|
|
653
390
|
}
|
|
654
391
|
if (parsedTx.consensusCreateTopic.autoRenewAccountId) {
|
|
655
392
|
summary += `, auto-renew by ${parsedTx.consensusCreateTopic.autoRenewAccountId}`;
|
|
656
393
|
}
|
|
394
|
+
return summary;
|
|
657
395
|
} else if (parsedTx.consensusSubmitMessage) {
|
|
658
|
-
summary = `Submit message`;
|
|
396
|
+
let summary = `Submit message`;
|
|
659
397
|
if (parsedTx.consensusSubmitMessage.topicId) {
|
|
660
398
|
summary += ` to topic ${parsedTx.consensusSubmitMessage.topicId}`;
|
|
661
399
|
}
|
|
@@ -670,10 +408,102 @@ class TransactionParser {
|
|
|
670
408
|
if (parsedTx.consensusSubmitMessage.chunkInfoNumber && parsedTx.consensusSubmitMessage.chunkInfoTotal) {
|
|
671
409
|
summary += ` (chunk ${parsedTx.consensusSubmitMessage.chunkInfoNumber}/${parsedTx.consensusSubmitMessage.chunkInfoTotal})`;
|
|
672
410
|
}
|
|
673
|
-
|
|
674
|
-
|
|
411
|
+
return summary;
|
|
412
|
+
} else if (parsedTx.fileCreate) {
|
|
413
|
+
let summary = "Create File";
|
|
414
|
+
if (parsedTx.fileCreate.memo) {
|
|
415
|
+
summary += ` with memo "${parsedTx.fileCreate.memo}"`;
|
|
416
|
+
}
|
|
417
|
+
if (parsedTx.fileCreate.contents) {
|
|
418
|
+
summary += ` (includes content)`;
|
|
419
|
+
}
|
|
420
|
+
return summary;
|
|
421
|
+
} else if (parsedTx.fileAppend) {
|
|
422
|
+
return `Append to File ${parsedTx.fileAppend.fileId || "(Unknown ID)"}`;
|
|
423
|
+
} else if (parsedTx.fileUpdate) {
|
|
424
|
+
return `Update File ${parsedTx.fileUpdate.fileId || "(Unknown ID)"}`;
|
|
425
|
+
} else if (parsedTx.fileDelete) {
|
|
426
|
+
return `Delete File ${parsedTx.fileDelete.fileId || "(Unknown ID)"}`;
|
|
427
|
+
} else if (parsedTx.consensusUpdateTopic) {
|
|
428
|
+
return `Update Topic ${parsedTx.consensusUpdateTopic.topicId || "(Unknown ID)"}`;
|
|
429
|
+
} else if (parsedTx.consensusDeleteTopic) {
|
|
430
|
+
return `Delete Topic ${parsedTx.consensusDeleteTopic.topicId || "(Unknown ID)"}`;
|
|
431
|
+
} else if (parsedTx.tokenUpdate) {
|
|
432
|
+
return `Update Token ${parsedTx.tokenUpdate.tokenId || "(Unknown ID)"}`;
|
|
433
|
+
} else if (parsedTx.tokenFeeScheduleUpdate) {
|
|
434
|
+
return `Update Fee Schedule for Token ${parsedTx.tokenFeeScheduleUpdate.tokenId || "(Unknown ID)"}`;
|
|
435
|
+
} else if (parsedTx.utilPrng) {
|
|
436
|
+
let summary = "Generate Random Number";
|
|
437
|
+
if (parsedTx.utilPrng.range && parsedTx.utilPrng.range > 0) {
|
|
438
|
+
summary += ` (range up to ${parsedTx.utilPrng.range - 1})`;
|
|
439
|
+
}
|
|
440
|
+
return summary;
|
|
441
|
+
} else if (parsedTx.tokenFreeze) {
|
|
442
|
+
return `Freeze Token ${parsedTx.tokenFreeze.tokenId} for Account ${parsedTx.tokenFreeze.accountId}`;
|
|
443
|
+
} else if (parsedTx.tokenUnfreeze) {
|
|
444
|
+
return `Unfreeze Token ${parsedTx.tokenUnfreeze.tokenId} for Account ${parsedTx.tokenUnfreeze.accountId}`;
|
|
445
|
+
} else if (parsedTx.tokenGrantKyc) {
|
|
446
|
+
return `Grant KYC for Token ${parsedTx.tokenGrantKyc.tokenId} to Account ${parsedTx.tokenGrantKyc.accountId}`;
|
|
447
|
+
} else if (parsedTx.tokenRevokeKyc) {
|
|
448
|
+
return `Revoke KYC for Token ${parsedTx.tokenRevokeKyc.tokenId} from Account ${parsedTx.tokenRevokeKyc.accountId}`;
|
|
449
|
+
} else if (parsedTx.tokenPause) {
|
|
450
|
+
return `Pause Token ${parsedTx.tokenPause.tokenId}`;
|
|
451
|
+
} else if (parsedTx.tokenUnpause) {
|
|
452
|
+
return `Unpause Token ${parsedTx.tokenUnpause.tokenId}`;
|
|
453
|
+
} else if (parsedTx.tokenWipeAccount) {
|
|
454
|
+
let summary = `Wipe Token ${parsedTx.tokenWipeAccount.tokenId} from Account ${parsedTx.tokenWipeAccount.accountId}`;
|
|
455
|
+
if (parsedTx.tokenWipeAccount.serialNumbers?.length) {
|
|
456
|
+
summary += ` (Serials: ${parsedTx.tokenWipeAccount.serialNumbers.join(
|
|
457
|
+
", "
|
|
458
|
+
)})`;
|
|
459
|
+
}
|
|
460
|
+
if (parsedTx.tokenWipeAccount.amount) {
|
|
461
|
+
summary += ` (Amount: ${parsedTx.tokenWipeAccount.amount})`;
|
|
462
|
+
}
|
|
463
|
+
return summary;
|
|
464
|
+
} else if (parsedTx.tokenDelete) {
|
|
465
|
+
return `Delete Token ${parsedTx.tokenDelete.tokenId}`;
|
|
466
|
+
} else if (parsedTx.tokenAssociate) {
|
|
467
|
+
return `Associate Account ${parsedTx.tokenAssociate.accountId} with Tokens: ${parsedTx.tokenAssociate.tokenIds?.join(", ")}`;
|
|
468
|
+
} else if (parsedTx.tokenDissociate) {
|
|
469
|
+
return `Dissociate Account ${parsedTx.tokenDissociate.accountId} from Tokens: ${parsedTx.tokenDissociate.tokenIds?.join(", ")}`;
|
|
470
|
+
} else if (parsedTx.cryptoDelete) {
|
|
471
|
+
return `Delete Account ${parsedTx.cryptoDelete.deleteAccountId}`;
|
|
472
|
+
}
|
|
473
|
+
if (parsedTx.humanReadableType && parsedTx.humanReadableType !== "Unknown Transaction") {
|
|
474
|
+
return parsedTx.humanReadableType;
|
|
475
|
+
}
|
|
476
|
+
if (parsedTx.tokenTransfers.length > 0) {
|
|
477
|
+
const tokenGroups = {};
|
|
478
|
+
for (const transfer of parsedTx.tokenTransfers) {
|
|
479
|
+
if (!tokenGroups[transfer.tokenId]) {
|
|
480
|
+
tokenGroups[transfer.tokenId] = [];
|
|
481
|
+
}
|
|
482
|
+
tokenGroups[transfer.tokenId].push(transfer);
|
|
483
|
+
}
|
|
484
|
+
const tokenSummaries = [];
|
|
485
|
+
for (const [tokenId, transfers] of Object.entries(tokenGroups)) {
|
|
486
|
+
const tokenSenders = transfers.filter((t) => t.amount < 0).map((t) => `${t.accountId} (${Math.abs(t.amount)})`);
|
|
487
|
+
const tokenReceivers = transfers.filter((t) => t.amount > 0).map((t) => `${t.accountId} (${t.amount})`);
|
|
488
|
+
if (tokenSenders.length > 0 && tokenReceivers.length > 0) {
|
|
489
|
+
tokenSummaries.push(
|
|
490
|
+
`Transfer of token ${tokenId} from ${tokenSenders.join(
|
|
491
|
+
", "
|
|
492
|
+
)} to ${tokenReceivers.join(", ")}`
|
|
493
|
+
);
|
|
494
|
+
} else if (tokenReceivers.length > 0) {
|
|
495
|
+
tokenSummaries.push(
|
|
496
|
+
`Token ${tokenId} received by ${tokenReceivers.join(", ")}`
|
|
497
|
+
);
|
|
498
|
+
} else if (tokenSenders.length > 0) {
|
|
499
|
+
tokenSummaries.push(
|
|
500
|
+
`Token ${tokenId} sent from ${tokenSenders.join(", ")}`
|
|
501
|
+
);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
if (tokenSummaries.length > 0) return tokenSummaries.join("; ");
|
|
675
505
|
}
|
|
676
|
-
return
|
|
506
|
+
return "Unknown Transaction";
|
|
677
507
|
}
|
|
678
508
|
}
|
|
679
509
|
export {
|