@bitgo-beta/sdk-coin-trx 1.0.2-beta.232 → 1.0.2-beta.2321

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 (143) hide show
  1. package/dist/resources/protobuf/Contract.proto +32 -0
  2. package/dist/resources/protobuf/tron.d.ts +1478 -214
  3. package/dist/resources/protobuf/tron.js +6312 -2600
  4. package/dist/resources/protobuf/tron.proto +6 -0
  5. package/dist/src/index.js +6 -2
  6. package/dist/src/lib/accountCreateTxBuilder.d.ts +60 -0
  7. package/dist/src/lib/accountCreateTxBuilder.d.ts.map +1 -0
  8. package/dist/src/lib/accountCreateTxBuilder.js +191 -0
  9. package/dist/src/lib/constants.d.ts +4 -0
  10. package/dist/src/lib/constants.d.ts.map +1 -0
  11. package/dist/src/lib/constants.js +7 -0
  12. package/dist/src/lib/contractCallBuilder.d.ts +1 -35
  13. package/dist/src/lib/contractCallBuilder.d.ts.map +1 -1
  14. package/dist/src/lib/contractCallBuilder.js +13 -76
  15. package/dist/src/lib/delegateResourceTxBuilder.d.ts +27 -0
  16. package/dist/src/lib/delegateResourceTxBuilder.d.ts.map +1 -0
  17. package/dist/src/lib/delegateResourceTxBuilder.js +104 -0
  18. package/dist/src/lib/enum.d.ts +40 -1
  19. package/dist/src/lib/enum.d.ts.map +1 -1
  20. package/dist/src/lib/enum.js +44 -4
  21. package/dist/src/lib/freezeBalanceTxBuilder.d.ts +71 -0
  22. package/dist/src/lib/freezeBalanceTxBuilder.d.ts.map +1 -0
  23. package/dist/src/lib/freezeBalanceTxBuilder.js +217 -0
  24. package/dist/src/lib/iface.d.ts +248 -2
  25. package/dist/src/lib/iface.d.ts.map +1 -1
  26. package/dist/src/lib/iface.js +1 -1
  27. package/dist/src/lib/index.js +23 -9
  28. package/dist/src/lib/keyPair.d.ts +0 -1
  29. package/dist/src/lib/keyPair.d.ts.map +1 -1
  30. package/dist/src/lib/keyPair.js +31 -18
  31. package/dist/src/lib/resourceManagementTxBuilder.d.ts +72 -0
  32. package/dist/src/lib/resourceManagementTxBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/resourceManagementTxBuilder.js +150 -0
  34. package/dist/src/lib/tokenTransferBuilder.d.ts +1 -1
  35. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -1
  36. package/dist/src/lib/tokenTransferBuilder.js +5 -3
  37. package/dist/src/lib/transaction.d.ts +3 -0
  38. package/dist/src/lib/transaction.d.ts.map +1 -1
  39. package/dist/src/lib/transaction.js +115 -6
  40. package/dist/src/lib/transactionBuilder.d.ts +53 -6
  41. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  42. package/dist/src/lib/transactionBuilder.js +121 -22
  43. package/dist/src/lib/undelegateResourceTxBuilder.d.ts +27 -0
  44. package/dist/src/lib/undelegateResourceTxBuilder.d.ts.map +1 -0
  45. package/dist/src/lib/undelegateResourceTxBuilder.js +104 -0
  46. package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts +65 -0
  47. package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts.map +1 -0
  48. package/dist/src/lib/unfreezeBalanceTxBuilder.js +210 -0
  49. package/dist/src/lib/utils.d.ts +115 -8
  50. package/dist/src/lib/utils.d.ts.map +1 -1
  51. package/dist/src/lib/utils.js +534 -55
  52. package/dist/src/lib/voteWitnessTxBuilder.d.ts +62 -0
  53. package/dist/src/lib/voteWitnessTxBuilder.d.ts.map +1 -0
  54. package/dist/src/lib/voteWitnessTxBuilder.js +219 -0
  55. package/dist/src/lib/withdrawBuilder.d.ts +49 -0
  56. package/dist/src/lib/withdrawBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/withdrawBuilder.js +167 -0
  58. package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts +49 -0
  59. package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.js +167 -0
  61. package/dist/src/lib/wrappedBuilder.d.ts +67 -1
  62. package/dist/src/lib/wrappedBuilder.d.ts.map +1 -1
  63. package/dist/src/lib/wrappedBuilder.js +114 -4
  64. package/dist/src/trx.d.ts +146 -8
  65. package/dist/src/trx.d.ts.map +1 -1
  66. package/dist/src/trx.js +705 -160
  67. package/dist/src/trxToken.d.ts +2 -2
  68. package/dist/src/trxToken.d.ts.map +1 -1
  69. package/dist/src/trxToken.js +22 -7
  70. package/dist/test/fixtures.d.ts +40 -0
  71. package/dist/test/fixtures.d.ts.map +1 -0
  72. package/dist/test/fixtures.js +46 -0
  73. package/dist/test/resources.d.ts +614 -0
  74. package/dist/test/resources.d.ts.map +1 -0
  75. package/dist/test/resources.js +782 -0
  76. package/dist/test/unit/index.d.ts +2 -0
  77. package/dist/test/unit/index.d.ts.map +1 -0
  78. package/dist/test/unit/index.js +19 -0
  79. package/dist/test/unit/keyPair.d.ts +2 -0
  80. package/dist/test/unit/keyPair.d.ts.map +1 -0
  81. package/dist/test/unit/keyPair.js +163 -0
  82. package/dist/test/unit/transaction.d.ts +2 -0
  83. package/dist/test/unit/transaction.d.ts.map +1 -0
  84. package/dist/test/unit/transaction.js +38 -0
  85. package/dist/test/unit/transactionBuilder/accountCreateTxBuilder.d.ts +2 -0
  86. package/dist/test/unit/transactionBuilder/accountCreateTxBuilder.d.ts.map +1 -0
  87. package/dist/test/unit/transactionBuilder/accountCreateTxBuilder.js +248 -0
  88. package/dist/test/unit/transactionBuilder/contractCallBuilder.d.ts +2 -0
  89. package/dist/test/unit/transactionBuilder/contractCallBuilder.d.ts.map +1 -0
  90. package/dist/test/unit/transactionBuilder/contractCallBuilder.js +315 -0
  91. package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.d.ts +2 -0
  92. package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.d.ts.map +1 -0
  93. package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.js +339 -0
  94. package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.d.ts +2 -0
  95. package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.d.ts.map +1 -0
  96. package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.js +365 -0
  97. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  98. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  99. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +87 -0
  100. package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.d.ts +2 -0
  101. package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.d.ts.map +1 -0
  102. package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.js +339 -0
  103. package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.d.ts +2 -0
  104. package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.d.ts.map +1 -0
  105. package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.js +336 -0
  106. package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.d.ts +2 -0
  107. package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.d.ts.map +1 -0
  108. package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.js +277 -0
  109. package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.d.ts +2 -0
  110. package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.d.ts.map +1 -0
  111. package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.js +213 -0
  112. package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.d.ts +2 -0
  113. package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.d.ts.map +1 -0
  114. package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.js +213 -0
  115. package/dist/test/unit/transactionBuilder/wrappedBuilder.d.ts +2 -0
  116. package/dist/test/unit/transactionBuilder/wrappedBuilder.d.ts.map +1 -0
  117. package/dist/test/unit/transactionBuilder/wrappedBuilder.js +68 -0
  118. package/dist/test/unit/transactionBuilder.d.ts +2 -0
  119. package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
  120. package/dist/test/unit/transactionBuilder.js +178 -0
  121. package/dist/test/unit/trx.d.ts +2 -0
  122. package/dist/test/unit/trx.d.ts.map +1 -0
  123. package/dist/test/unit/trx.js +843 -0
  124. package/dist/test/unit/trxToken.d.ts +2 -0
  125. package/dist/test/unit/trxToken.d.ts.map +1 -0
  126. package/dist/test/unit/trxToken.js +152 -0
  127. package/dist/test/unit/util.d.ts +2 -0
  128. package/dist/test/unit/util.d.ts.map +1 -0
  129. package/dist/test/unit/util.js +156 -0
  130. package/dist/test/unit/verifyTransaction.d.ts +2 -0
  131. package/dist/test/unit/verifyTransaction.d.ts.map +1 -0
  132. package/dist/test/unit/verifyTransaction.js +695 -0
  133. package/dist/tsconfig.tsbuildinfo +1 -0
  134. package/package.json +22 -16
  135. package/.eslintignore +0 -5
  136. package/.mocharc.yml +0 -8
  137. package/CHANGELOG.md +0 -118
  138. package/resources/README.md +0 -31
  139. package/resources/protobuf/Contract.proto +0 -256
  140. package/resources/protobuf/Discover.proto +0 -44
  141. package/resources/protobuf/tron.d.ts +0 -11205
  142. package/resources/protobuf/tron.js +0 -33480
  143. package/resources/protobuf/tron.proto +0 -677
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnfreezeBalanceTxBuilder = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
6
+ const transactionBuilder_1 = require("./transactionBuilder");
7
+ const transaction_1 = require("./transaction");
8
+ const utils_1 = require("./utils");
9
+ const tron_1 = require("../../resources/protobuf/tron");
10
+ var ContractType = tron_1.protocol.Transaction.Contract.ContractType;
11
+ class UnfreezeBalanceTxBuilder extends transactionBuilder_1.TransactionBuilder {
12
+ constructor(_coinConfig) {
13
+ super(_coinConfig);
14
+ this._signingKeys = [];
15
+ this.transaction = new transaction_1.Transaction(_coinConfig);
16
+ }
17
+ /** @inheritdoc */
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.StakingDeactivate;
20
+ }
21
+ /**
22
+ * Set the unfrozen balance amount
23
+ *
24
+ * @param amount amount in TRX to unfreeze
25
+ * @returns the builder with the new parameter set
26
+ */
27
+ setUnfreezeBalance(amount) {
28
+ this._unfreezeBalance = amount;
29
+ return this;
30
+ }
31
+ /**
32
+ * Set the resource type
33
+ *
34
+ * @param resource resource type to unfreeze
35
+ * @returns the builder with the new parameter set
36
+ */
37
+ setResource(resource) {
38
+ this.validateResource(resource);
39
+ this._resource = resource;
40
+ return this;
41
+ }
42
+ /** @inheritdoc */
43
+ extendValidTo(extensionMs) {
44
+ if (this.transaction.signature && this.transaction.signature.length > 0) {
45
+ throw new sdk_core_1.ExtendTransactionError('Cannot extend a signed transaction');
46
+ }
47
+ if (extensionMs <= 0) {
48
+ throw new Error('Value cannot be below zero');
49
+ }
50
+ if (extensionMs > utils_1.TRANSACTION_MAX_EXPIRATION) {
51
+ throw new sdk_core_1.ExtendTransactionError('The expiration cannot be extended more than one day');
52
+ }
53
+ if (this._expiration) {
54
+ this._expiration = this._expiration + extensionMs;
55
+ }
56
+ else {
57
+ throw new Error('There is not expiration to extend');
58
+ }
59
+ }
60
+ initBuilder(rawTransaction) {
61
+ this.transaction = this.fromImplementation(rawTransaction);
62
+ this.transaction.setTransactionType(this.transactionType);
63
+ this.validateRawTransaction(rawTransaction);
64
+ const tx = this.fromImplementation(rawTransaction);
65
+ this.transaction = tx;
66
+ this._signingKeys = [];
67
+ const rawData = tx.toJson().raw_data;
68
+ this._refBlockBytes = rawData.ref_block_bytes;
69
+ this._refBlockHash = rawData.ref_block_hash;
70
+ this._expiration = rawData.expiration;
71
+ this._timestamp = rawData.timestamp;
72
+ const contractCall = rawData.contract[0];
73
+ this.initUnfreezeContractCall(contractCall);
74
+ return this;
75
+ }
76
+ /**
77
+ * Initialize the freeze contract call specific data
78
+ *
79
+ * @param {UnfreezeBalanceV2Contract} unfreezeContractCall object with freeze txn data
80
+ */
81
+ initUnfreezeContractCall(unfreezeContractCall) {
82
+ const { resource, owner_address, unfreeze_balance } = unfreezeContractCall.parameter.value;
83
+ if (owner_address) {
84
+ this.source({ address: (0, utils_1.getBase58AddressFromHex)(owner_address) });
85
+ }
86
+ if (resource) {
87
+ this.setResource(resource);
88
+ }
89
+ if (unfreeze_balance) {
90
+ this.setUnfreezeBalance(unfreeze_balance.toString());
91
+ }
92
+ }
93
+ async buildImplementation() {
94
+ this.createUnfreezeBalanceTransaction();
95
+ /** @inheritdoccreateTransaction */
96
+ // This method must be extended on child classes
97
+ if (this._signingKeys.length > 0) {
98
+ this.applySignatures();
99
+ }
100
+ if (!this.transaction.id) {
101
+ throw new sdk_core_1.BuildTransactionError('A valid transaction must have an id');
102
+ }
103
+ return Promise.resolve(this.transaction);
104
+ }
105
+ /**
106
+ * Helper method to create the freeze balance transaction
107
+ */
108
+ createUnfreezeBalanceTransaction() {
109
+ const rawDataHex = this.getUnfreezeRawDataHex();
110
+ const rawData = (0, utils_1.decodeTransaction)(rawDataHex);
111
+ const contract = rawData.contract[0];
112
+ const contractParameter = contract.parameter;
113
+ contractParameter.value.owner_address = this._ownerAddress.toLocaleLowerCase();
114
+ contractParameter.value.unfreeze_balance = Number(this._unfreezeBalance);
115
+ contractParameter.value.resource = this._resource;
116
+ contractParameter.type_url = 'type.googleapis.com/protocol.UnfreezeBalanceV2Contract';
117
+ contract.type = 'UnfreezeBalanceV2Contract';
118
+ const hexBuffer = Buffer.from(rawDataHex, 'hex');
119
+ const id = (0, crypto_1.createHash)('sha256').update(hexBuffer).digest('hex');
120
+ const txRecip = {
121
+ raw_data: rawData,
122
+ raw_data_hex: rawDataHex,
123
+ txID: id,
124
+ signature: this.transaction.signature,
125
+ };
126
+ this.transaction = new transaction_1.Transaction(this._coinConfig, txRecip);
127
+ }
128
+ /**
129
+ * Helper method to get the unfreeze balance transaction raw data hex
130
+ *
131
+ * @returns {string} the freeze balance transaction raw data hex
132
+ */
133
+ getUnfreezeRawDataHex() {
134
+ const rawContract = {
135
+ ownerAddress: (0, utils_1.getByteArrayFromHexAddress)(this._ownerAddress),
136
+ unfreezeBalance: this._unfreezeBalance,
137
+ };
138
+ // Only include resource if it's not BANDWIDTH (the default value = 0)
139
+ // In protobuf3, default values are typically not encoded in the wire format.
140
+ // TRON's node re-serializes transactions and omits default values,
141
+ // so we must match that behavior to ensure consistent transaction hashes.
142
+ if (this._resource !== 'BANDWIDTH') {
143
+ rawContract.resource = this._resource;
144
+ }
145
+ const unfreezeContract = tron_1.protocol.UnfreezeBalanceV2Contract.fromObject(rawContract);
146
+ const unfreezeContractBytes = tron_1.protocol.UnfreezeBalanceV2Contract.encode(unfreezeContract).finish();
147
+ const txContract = {
148
+ type: ContractType.UnfreezeBalanceV2Contract,
149
+ parameter: {
150
+ value: unfreezeContractBytes,
151
+ type_url: 'type.googleapis.com/protocol.UnfreezeBalanceV2Contract',
152
+ },
153
+ };
154
+ const raw = {
155
+ refBlockBytes: Buffer.from(this._refBlockBytes, 'hex'),
156
+ refBlockHash: Buffer.from(this._refBlockHash, 'hex'),
157
+ expiration: this._expiration || Date.now() + utils_1.TRANSACTION_DEFAULT_EXPIRATION,
158
+ timestamp: this._timestamp || Date.now(),
159
+ contract: [txContract],
160
+ };
161
+ const rawTx = tron_1.protocol.Transaction.raw.create(raw);
162
+ return Buffer.from(tron_1.protocol.Transaction.raw.encode(rawTx).finish()).toString('hex');
163
+ }
164
+ /** @inheritdoc */
165
+ signImplementation(key) {
166
+ if (this._signingKeys.some((signingKey) => signingKey.key === key.key)) {
167
+ throw new sdk_core_1.SigningError('Duplicated key');
168
+ }
169
+ this._signingKeys.push(key);
170
+ // We keep this return for compatibility but is not meant to be use
171
+ return this.transaction;
172
+ }
173
+ applySignatures() {
174
+ if (!this.transaction.inputs) {
175
+ throw new sdk_core_1.SigningError('Transaction has no inputs');
176
+ }
177
+ this._signingKeys.forEach((key) => this.applySignature(key));
178
+ }
179
+ /**
180
+ * Validates the transaction
181
+ *
182
+ * @param {Transaction} transaction - The transaction to validate
183
+ * @throws {BuildTransactionError} when the transaction is invalid
184
+ */
185
+ validateTransaction(transaction) {
186
+ this.validateFreezeTransactionFields();
187
+ }
188
+ /**
189
+ * Validates if the transaction is a valid unfreeze transaction
190
+ *
191
+ * @param {TransactionReceipt} transaction - The transaction to validate
192
+ * @throws {BuildTransactionError} when the transaction is invalid
193
+ */
194
+ validateFreezeTransactionFields() {
195
+ if (!this._unfreezeBalance) {
196
+ throw new sdk_core_1.BuildTransactionError('Missing parameter: unfreezeBalance');
197
+ }
198
+ if (!this._ownerAddress) {
199
+ throw new sdk_core_1.BuildTransactionError('Missing parameter: source');
200
+ }
201
+ if (!this._resource) {
202
+ throw new sdk_core_1.BuildTransactionError('Missing parameter: resource');
203
+ }
204
+ if (!this._refBlockBytes || !this._refBlockHash) {
205
+ throw new sdk_core_1.BuildTransactionError('Missing block reference information');
206
+ }
207
+ }
208
+ }
209
+ exports.UnfreezeBalanceTxBuilder = UnfreezeBalanceTxBuilder;
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5mcmVlemVCYWxhbmNlVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi91bmZyZWV6ZUJhbGFuY2VUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW9DO0FBQ3BDLG1EQUE2SDtBQUU3SCw2REFBMEQ7QUFDMUQsK0NBQTRDO0FBRTVDLG1DQU1pQjtBQUNqQix3REFBeUQ7QUFFekQsSUFBTyxZQUFZLEdBQUcsZUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBRWpFLE1BQWEsd0JBQXlCLFNBQVEsdUNBQWtCO0lBSzlELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsV0FBbUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEUsTUFBTSxJQUFJLGlDQUFzQixDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELElBQUksV0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsSUFBSSxXQUFXLEdBQUcsa0NBQTBCLEVBQUUsQ0FBQztZQUM3QyxNQUFNLElBQUksaUNBQXNCLENBQUMscURBQXFELENBQUMsQ0FBQztRQUMxRixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNwRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxjQUEyQztRQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUE4QixDQUFDO1FBQ3RFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sd0JBQXdCLENBQUMsb0JBQStDO1FBQ2hGLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUMzRixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBQSwrQkFBdUIsRUFBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ3hDLG1DQUFtQztRQUNuQyxnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNLLGdDQUFnQztRQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFpQixFQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUE4QixDQUFDO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUM3QyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMvRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNsRCxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsd0RBQXdELENBQUM7UUFDdEYsUUFBUSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztRQUM1QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLEVBQUUsR0FBRyxJQUFBLG1CQUFVLEVBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxNQUFNLE9BQU8sR0FBdUI7WUFDbEMsUUFBUSxFQUFFLE9BQU87WUFDakIsWUFBWSxFQUFFLFVBQVU7WUFDeEIsSUFBSSxFQUFFLEVBQUU7WUFDUixTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTO1NBQ3RDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0sscUJBQXFCO1FBQzNCLE1BQU0sV0FBVyxHQUliO1lBQ0YsWUFBWSxFQUFFLElBQUEsa0NBQTBCLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUM1RCxlQUFlLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN2QyxDQUFDO1FBRUYsc0VBQXNFO1FBQ3RFLDZFQUE2RTtRQUM3RSxtRUFBbUU7UUFDbkUsMEVBQTBFO1FBQzFFLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEMsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsZUFBUSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRixNQUFNLHFCQUFxQixHQUFHLGVBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuRyxNQUFNLFVBQVUsR0FBRztZQUNqQixJQUFJLEVBQUUsWUFBWSxDQUFDLHlCQUF5QjtZQUM1QyxTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsUUFBUSxFQUFFLHdEQUF3RDthQUNuRTtTQUNGLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRztZQUNWLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDO1lBQ3RELFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDO1lBQ3BELFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxzQ0FBOEI7WUFDM0UsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN4QyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDdkIsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLGVBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLHVCQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUIsbUVBQW1FO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksdUJBQVksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUFDLFdBQXdCO1FBQzFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLCtCQUErQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF0T0QsNERBc09DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEJhc2VLZXksIEV4dGVuZFRyYW5zYWN0aW9uRXJyb3IsIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgU2lnbmluZ0Vycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVjZWlwdCwgVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHtcbiAgZGVjb2RlVHJhbnNhY3Rpb24sXG4gIGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzLFxuICBnZXRCYXNlNThBZGRyZXNzRnJvbUhleCxcbiAgVFJBTlNBQ1RJT05fTUFYX0VYUElSQVRJT04sXG4gIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBwcm90b2NvbCB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9wcm90b2J1Zi90cm9uJztcblxuaW1wb3J0IENvbnRyYWN0VHlwZSA9IHByb3RvY29sLlRyYW5zYWN0aW9uLkNvbnRyYWN0LkNvbnRyYWN0VHlwZTtcblxuZXhwb3J0IGNsYXNzIFVuZnJlZXplQmFsYW5jZVR4QnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc2lnbmluZ0tleXM6IEJhc2VLZXlbXTtcbiAgcHJpdmF0ZSBfdW5mcmVlemVCYWxhbmNlOiBzdHJpbmc7XG4gIHByaXZhdGUgX3Jlc291cmNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3NpZ25pbmdLZXlzID0gW107XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdW5mcm96ZW4gYmFsYW5jZSBhbW91bnRcbiAgICpcbiAgICogQHBhcmFtIGFtb3VudCBhbW91bnQgaW4gVFJYIHRvIHVuZnJlZXplXG4gICAqIEByZXR1cm5zIHRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBzZXRVbmZyZWV6ZUJhbGFuY2UoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl91bmZyZWV6ZUJhbGFuY2UgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSByZXNvdXJjZSB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZSByZXNvdXJjZSB0eXBlIHRvIHVuZnJlZXplXG4gICAqIEByZXR1cm5zIHRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBzZXRSZXNvdXJjZShyZXNvdXJjZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVJlc291cmNlKHJlc291cmNlKTtcbiAgICB0aGlzLl9yZXNvdXJjZSA9IHJlc291cmNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGV4dGVuZFZhbGlkVG8oZXh0ZW5zaW9uTXM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZSAmJiB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcignQ2Fubm90IGV4dGVuZCBhIHNpZ25lZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGlmIChleHRlbnNpb25NcyA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBiZWxvdyB6ZXJvJyk7XG4gICAgfVxuXG4gICAgaWYgKGV4dGVuc2lvbk1zID4gVFJBTlNBQ1RJT05fTUFYX0VYUElSQVRJT04pIHtcbiAgICAgIHRocm93IG5ldyBFeHRlbmRUcmFuc2FjdGlvbkVycm9yKCdUaGUgZXhwaXJhdGlvbiBjYW5ub3QgYmUgZXh0ZW5kZWQgbW9yZSB0aGFuIG9uZSBkYXknKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZXhwaXJhdGlvbikge1xuICAgICAgdGhpcy5fZXhwaXJhdGlvbiA9IHRoaXMuX2V4cGlyYXRpb24gKyBleHRlbnNpb25NcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBpcyBub3QgZXhwaXJhdGlvbiB0byBleHRlbmQnKTtcbiAgICB9XG4gIH1cblxuICBpbml0QnVpbGRlcihyYXdUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IHRoaXMuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBjb25zdCB0eCA9IHRoaXMuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gdHg7XG4gICAgdGhpcy5fc2lnbmluZ0tleXMgPSBbXTtcbiAgICBjb25zdCByYXdEYXRhID0gdHgudG9Kc29uKCkucmF3X2RhdGE7XG4gICAgdGhpcy5fcmVmQmxvY2tCeXRlcyA9IHJhd0RhdGEucmVmX2Jsb2NrX2J5dGVzO1xuICAgIHRoaXMuX3JlZkJsb2NrSGFzaCA9IHJhd0RhdGEucmVmX2Jsb2NrX2hhc2g7XG4gICAgdGhpcy5fZXhwaXJhdGlvbiA9IHJhd0RhdGEuZXhwaXJhdGlvbjtcbiAgICB0aGlzLl90aW1lc3RhbXAgPSByYXdEYXRhLnRpbWVzdGFtcDtcbiAgICBjb25zdCBjb250cmFjdENhbGwgPSByYXdEYXRhLmNvbnRyYWN0WzBdIGFzIFVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3Q7XG4gICAgdGhpcy5pbml0VW5mcmVlemVDb250cmFjdENhbGwoY29udHJhY3RDYWxsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBmcmVlemUgY29udHJhY3QgY2FsbCBzcGVjaWZpYyBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VW5mcmVlemVCYWxhbmNlVjJDb250cmFjdH0gdW5mcmVlemVDb250cmFjdENhbGwgb2JqZWN0IHdpdGggZnJlZXplIHR4biBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFVuZnJlZXplQ29udHJhY3RDYWxsKHVuZnJlZXplQ29udHJhY3RDYWxsOiBVbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0KTogdm9pZCB7XG4gICAgY29uc3QgeyByZXNvdXJjZSwgb3duZXJfYWRkcmVzcywgdW5mcmVlemVfYmFsYW5jZSB9ID0gdW5mcmVlemVDb250cmFjdENhbGwucGFyYW1ldGVyLnZhbHVlO1xuICAgIGlmIChvd25lcl9hZGRyZXNzKSB7XG4gICAgICB0aGlzLnNvdXJjZSh7IGFkZHJlc3M6IGdldEJhc2U1OEFkZHJlc3NGcm9tSGV4KG93bmVyX2FkZHJlc3MpIH0pO1xuICAgIH1cblxuICAgIGlmIChyZXNvdXJjZSkge1xuICAgICAgdGhpcy5zZXRSZXNvdXJjZShyZXNvdXJjZSk7XG4gICAgfVxuXG4gICAgaWYgKHVuZnJlZXplX2JhbGFuY2UpIHtcbiAgICAgIHRoaXMuc2V0VW5mcmVlemVCYWxhbmNlKHVuZnJlZXplX2JhbGFuY2UudG9TdHJpbmcoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuY3JlYXRlVW5mcmVlemVCYWxhbmNlVHJhbnNhY3Rpb24oKTtcbiAgICAvKiogQGluaGVyaXRkb2NjcmVhdGVUcmFuc2FjdGlvbiAqL1xuICAgIC8vIFRoaXMgbWV0aG9kIG11c3QgYmUgZXh0ZW5kZWQgb24gY2hpbGQgY2xhc3Nlc1xuICAgIGlmICh0aGlzLl9zaWduaW5nS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFwcGx5U2lnbmF0dXJlcygpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5pZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignQSB2YWxpZCB0cmFuc2FjdGlvbiBtdXN0IGhhdmUgYW4gaWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSB0aGUgZnJlZXplIGJhbGFuY2UgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVW5mcmVlemVCYWxhbmNlVHJhbnNhY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgcmF3RGF0YUhleCA9IHRoaXMuZ2V0VW5mcmVlemVSYXdEYXRhSGV4KCk7XG4gICAgY29uc3QgcmF3RGF0YSA9IGRlY29kZVRyYW5zYWN0aW9uKHJhd0RhdGFIZXgpO1xuICAgIGNvbnN0IGNvbnRyYWN0ID0gcmF3RGF0YS5jb250cmFjdFswXSBhcyBVbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0O1xuICAgIGNvbnN0IGNvbnRyYWN0UGFyYW1ldGVyID0gY29udHJhY3QucGFyYW1ldGVyO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLm93bmVyX2FkZHJlc3MgPSB0aGlzLl9vd25lckFkZHJlc3MudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBjb250cmFjdFBhcmFtZXRlci52YWx1ZS51bmZyZWV6ZV9iYWxhbmNlID0gTnVtYmVyKHRoaXMuX3VuZnJlZXplQmFsYW5jZSk7XG4gICAgY29udHJhY3RQYXJhbWV0ZXIudmFsdWUucmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZTtcbiAgICBjb250cmFjdFBhcmFtZXRlci50eXBlX3VybCA9ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QnO1xuICAgIGNvbnRyYWN0LnR5cGUgPSAnVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdCc7XG4gICAgY29uc3QgaGV4QnVmZmVyID0gQnVmZmVyLmZyb20ocmF3RGF0YUhleCwgJ2hleCcpO1xuICAgIGNvbnN0IGlkID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhleEJ1ZmZlcikuZGlnZXN0KCdoZXgnKTtcbiAgICBjb25zdCB0eFJlY2lwOiBUcmFuc2FjdGlvblJlY2VpcHQgPSB7XG4gICAgICByYXdfZGF0YTogcmF3RGF0YSxcbiAgICAgIHJhd19kYXRhX2hleDogcmF3RGF0YUhleCxcbiAgICAgIHR4SUQ6IGlkLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZSxcbiAgICB9O1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgdHhSZWNpcCk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIHVuZnJlZXplIGJhbGFuY2UgdHJhbnNhY3Rpb24gcmF3IGRhdGEgaGV4XG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBmcmVlemUgYmFsYW5jZSB0cmFuc2FjdGlvbiByYXcgZGF0YSBoZXhcbiAgICovXG4gIHByaXZhdGUgZ2V0VW5mcmVlemVSYXdEYXRhSGV4KCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF3Q29udHJhY3Q6IHtcbiAgICAgIG93bmVyQWRkcmVzczogbnVtYmVyW107XG4gICAgICB1bmZyZWV6ZUJhbGFuY2U6IHN0cmluZztcbiAgICAgIHJlc291cmNlPzogc3RyaW5nO1xuICAgIH0gPSB7XG4gICAgICBvd25lckFkZHJlc3M6IGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzKHRoaXMuX293bmVyQWRkcmVzcyksXG4gICAgICB1bmZyZWV6ZUJhbGFuY2U6IHRoaXMuX3VuZnJlZXplQmFsYW5jZSxcbiAgICB9O1xuXG4gICAgLy8gT25seSBpbmNsdWRlIHJlc291cmNlIGlmIGl0J3Mgbm90IEJBTkRXSURUSCAodGhlIGRlZmF1bHQgdmFsdWUgPSAwKVxuICAgIC8vIEluIHByb3RvYnVmMywgZGVmYXVsdCB2YWx1ZXMgYXJlIHR5cGljYWxseSBub3QgZW5jb2RlZCBpbiB0aGUgd2lyZSBmb3JtYXQuXG4gICAgLy8gVFJPTidzIG5vZGUgcmUtc2VyaWFsaXplcyB0cmFuc2FjdGlvbnMgYW5kIG9taXRzIGRlZmF1bHQgdmFsdWVzLFxuICAgIC8vIHNvIHdlIG11c3QgbWF0Y2ggdGhhdCBiZWhhdmlvciB0byBlbnN1cmUgY29uc2lzdGVudCB0cmFuc2FjdGlvbiBoYXNoZXMuXG4gICAgaWYgKHRoaXMuX3Jlc291cmNlICE9PSAnQkFORFdJRFRIJykge1xuICAgICAgcmF3Q29udHJhY3QucmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZTtcbiAgICB9XG5cbiAgICBjb25zdCB1bmZyZWV6ZUNvbnRyYWN0ID0gcHJvdG9jb2wuVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdC5mcm9tT2JqZWN0KHJhd0NvbnRyYWN0KTtcbiAgICBjb25zdCB1bmZyZWV6ZUNvbnRyYWN0Qnl0ZXMgPSBwcm90b2NvbC5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LmVuY29kZSh1bmZyZWV6ZUNvbnRyYWN0KS5maW5pc2goKTtcbiAgICBjb25zdCB0eENvbnRyYWN0ID0ge1xuICAgICAgdHlwZTogQ29udHJhY3RUeXBlLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QsXG4gICAgICBwYXJhbWV0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHVuZnJlZXplQ29udHJhY3RCeXRlcyxcbiAgICAgICAgdHlwZV91cmw6ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHJhdyA9IHtcbiAgICAgIHJlZkJsb2NrQnl0ZXM6IEJ1ZmZlci5mcm9tKHRoaXMuX3JlZkJsb2NrQnl0ZXMsICdoZXgnKSxcbiAgICAgIHJlZkJsb2NrSGFzaDogQnVmZmVyLmZyb20odGhpcy5fcmVmQmxvY2tIYXNoLCAnaGV4JyksXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLl9leHBpcmF0aW9uIHx8IERhdGUubm93KCkgKyBUUkFOU0FDVElPTl9ERUZBVUxUX0VYUElSQVRJT04sXG4gICAgICB0aW1lc3RhbXA6IHRoaXMuX3RpbWVzdGFtcCB8fCBEYXRlLm5vdygpLFxuICAgICAgY29udHJhY3Q6IFt0eENvbnRyYWN0XSxcbiAgICB9O1xuICAgIGNvbnN0IHJhd1R4ID0gcHJvdG9jb2wuVHJhbnNhY3Rpb24ucmF3LmNyZWF0ZShyYXcpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuZW5jb2RlKHJhd1R4KS5maW5pc2goKSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIGlmICh0aGlzLl9zaWduaW5nS2V5cy5zb21lKChzaWduaW5nS2V5KSA9PiBzaWduaW5nS2V5LmtleSA9PT0ga2V5LmtleSkpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0R1cGxpY2F0ZWQga2V5Jyk7XG4gICAgfVxuICAgIHRoaXMuX3NpZ25pbmdLZXlzLnB1c2goa2V5KTtcblxuICAgIC8vIFdlIGtlZXAgdGhpcyByZXR1cm4gZm9yIGNvbXBhdGliaWxpdHkgYnV0IGlzIG5vdCBtZWFudCB0byBiZSB1c2VcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaWduYXR1cmVzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5pbnB1dHMpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ1RyYW5zYWN0aW9uIGhhcyBubyBpbnB1dHMnKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zaWduaW5nS2V5cy5mb3JFYWNoKChrZXkpID0+IHRoaXMuYXBwbHlTaWduYXR1cmUoa2V5KSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIHtCdWlsZFRyYW5zYWN0aW9uRXJyb3J9IHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIGludmFsaWRcbiAgICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUZyZWV6ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyBhIHZhbGlkIHVuZnJlZXplIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25SZWNlaXB0fSB0cmFuc2FjdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIHtCdWlsZFRyYW5zYWN0aW9uRXJyb3J9IHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIGludmFsaWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVGcmVlemVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VuZnJlZXplQmFsYW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IHVuZnJlZXplQmFsYW5jZScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fb3duZXJBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIHBhcmFtZXRlcjogc291cmNlJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9yZXNvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IHJlc291cmNlJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9yZWZCbG9ja0J5dGVzIHx8ICF0aGlzLl9yZWZCbG9ja0hhc2gpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgYmxvY2sgcmVmZXJlbmNlIGluZm9ybWF0aW9uJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,16 +1,42 @@
1
- /// <reference types="node" />
2
- import { TransferContract, RawData, AccountPermissionUpdateContract, TransactionReceipt, TriggerSmartContract } from './iface';
1
+ import { protocol } from '../../resources/protobuf/tron';
2
+ import { TransferContract, RawData, AccountPermissionUpdateContract, TransactionReceipt, TriggerSmartContract, FreezeBalanceContractParameter, VoteWitnessContractParameter, UnfreezeBalanceContractParameter, WithdrawExpireUnfreezeContractParameter, ResourceManagementContractParameter, AccountCreateContract } from './iface';
3
+ export declare const TRANSACTION_MAX_EXPIRATION = 86400000;
4
+ export declare const TRANSACTION_DEFAULT_EXPIRATION = 10800000;
5
+ export type BytesLike = number[] | Uint8Array;
3
6
  export declare const tokenMainnetContractAddresses: string[];
4
7
  export declare const tokenTestnetContractAddresses: string[];
5
8
  /**
6
9
  * Tron-specific helper functions
7
10
  */
8
- export declare type TronBinaryLike = ByteArray | Buffer | Uint8Array | string;
9
- export declare type ByteArray = number[];
11
+ export type ByteArray = number[];
12
+ export type TronBinaryLike = ByteArray | Buffer | Uint8Array | string;
13
+ export declare const VALID_RESOURCE_TYPES: string[];
14
+ export declare const BASE58_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
15
+ /**
16
+ * Returns an array of unique characters in the input string that do not belong to the Base58 alphabet.
17
+ *
18
+ * @param value
19
+ */
20
+ export declare function getNonBase58Characters(value: string): string[];
10
21
  /**
11
22
  * @param address
12
23
  */
13
24
  export declare function isBase58Address(address: string): boolean;
25
+ /**
26
+ * Detects hex representations of a TRON address: 0x-prefixed 20-byte EVM-style,
27
+ * or 41-prefixed 21-byte form. Bare 20-byte hex (no 0x/41) is rejected — it is not
28
+ * an on-chain / API address encoding.
29
+ *
30
+ * @param address
31
+ */
32
+ export declare function isHexAddress(address: string): boolean;
33
+ /**
34
+ * Converts any valid TRON address representation (base58, 0x-prefixed hex,
35
+ * or 41-prefixed hex) to the canonical base58 form.
36
+ *
37
+ * @param address
38
+ */
39
+ export declare function getBase58AddressFromHexAddress(address: string): string;
14
40
  /**
15
41
  * @param str
16
42
  */
@@ -19,6 +45,7 @@ export declare function getByteArrayFromHexAddress(str: string): ByteArray;
19
45
  * @param arr
20
46
  */
21
47
  export declare function getHexAddressFromByteArray(arr: ByteArray): string;
48
+ export declare function getHexAddressFromBase58Address(base58: string): string;
22
49
  /**
23
50
  * @param messageToVerify
24
51
  * @param base58Address
@@ -26,10 +53,6 @@ export declare function getHexAddressFromByteArray(arr: ByteArray): string;
26
53
  * @param useTronHeader
27
54
  */
28
55
  export declare function verifySignature(messageToVerify: string, base58Address: string, sigHex: string, useTronHeader?: boolean): boolean;
29
- /**
30
- * @param base58
31
- */
32
- export declare function getHexAddressFromBase58Address(base58: string): string;
33
56
  /**
34
57
  * @param privateKey
35
58
  */
@@ -82,6 +105,13 @@ export declare function decodeRawTransaction(hexString: string): {
82
105
  blockHash: string;
83
106
  feeLimit: string;
84
107
  };
108
+ /**
109
+ * Converts a base64 encoded string to hex
110
+ *
111
+ * @param base64 - The base64 encoded string to convert
112
+ * @returns {string} - The hex representation
113
+ */
114
+ export declare function getHexFromBase64(base64: string): string;
85
115
  /**
86
116
  * Indicates whether the passed string is a safe hex string for tron's purposes.
87
117
  *
@@ -108,6 +138,63 @@ export declare function decodeTriggerSmartContract(base64: string): TriggerSmart
108
138
  * @returns {AccountPermissionUpdateContract}
109
139
  */
110
140
  export declare function decodeAccountPermissionUpdateContract(base64: string): AccountPermissionUpdateContract;
141
+ /**
142
+ * Deserialize the segment of the txHex corresponding with freeze balance contract
143
+ *
144
+ * @param {string} base64 - The base64 encoded contract data
145
+ * @returns {FreezeBalanceContractParameter[]} - Array containing the decoded freeze contract
146
+ */
147
+ export declare function decodeFreezeBalanceV2Contract(base64: string): FreezeBalanceContractParameter[];
148
+ /**
149
+ * Deserialize the segment of the txHex corresponding with vote witness contract
150
+ *
151
+ * @param {string} base64 - The base64 encoded contract data
152
+ * @returns {VoteWitnessContractParameter[]} - Array containing the decoded vote witness contract
153
+ */
154
+ export declare function decodeVoteWitnessContract(base64: string): VoteWitnessContractParameter[];
155
+ /**
156
+ * Deserialize the segment of the txHex corresponding with unfreeze balance contract
157
+ *
158
+ * @param {string} base64 - The base64 encoded contract data
159
+ * @returns {UnfreezeBalanceContractParameter[]} - Array containing the decoded unfreeze contract
160
+ */
161
+ export declare function decodeUnfreezeBalanceV2Contract(base64: string): UnfreezeBalanceContractParameter[];
162
+ /**
163
+ * Deserialize the segment of the txHex corresponding with withdraw balance contract
164
+ * Decoded contract is the same as withdraw expire unfreeze
165
+ *
166
+ * @param {string} base64 - The base64 encoded contract data
167
+ * @returns {WithdrawExpireUnfreezeContractParameter[]} - Array containing the decoded withdraw contract
168
+ */
169
+ export declare function decodeWithdrawBalanceContract(base64: string): WithdrawExpireUnfreezeContractParameter[];
170
+ /**
171
+ * Deserialize the segment of the txHex corresponding with withdraw expire unfreeze contract
172
+ *
173
+ * @param {string} base64 - The base64 encoded contract data
174
+ * @returns {WithdrawExpireUnfreezeContractParameter[]} - Array containing the decoded withdraw contract
175
+ */
176
+ export declare function decodeWithdrawExpireUnfreezeContract(base64: string): WithdrawExpireUnfreezeContractParameter[];
177
+ /**
178
+ * Deserialize the segment of the txHex corresponding with delegate resource contract
179
+ *
180
+ * @param {string} base64 - The base64 encoded contract data
181
+ * @returns {ResourceManagementContractParameter[]} - Array containing the decoded delegate resource contract
182
+ */
183
+ export declare function decodeDelegateResourceContract(base64: string): ResourceManagementContractParameter[];
184
+ /**
185
+ * Deserialize the segment of the txHex corresponding with undelegate resource contract
186
+ *
187
+ * @param {string} base64 - The base64 encoded contract data
188
+ * @returns {ResourceManagementContractParameter[]} - Array containing the decoded undelegate resource contract
189
+ */
190
+ export declare function decodeUnDelegateResourceContract(base64: string): ResourceManagementContractParameter[];
191
+ /**
192
+ * Deserialize the segment of the txHex corresponding with the account create contract
193
+ *
194
+ * @param {Uint8Array} value - The raw protobuf bytes from the contract parameter
195
+ * @returns {AccountCreateContract[]} - Array containing the decoded account create contract
196
+ */
197
+ export declare function decodeAccountCreateContract(base64: string): AccountCreateContract[];
111
198
  /**
112
199
  * @param rawTransaction
113
200
  */
@@ -141,4 +228,24 @@ export declare function encodeDataParams(types: string[], values: any[], methodI
141
228
  * @param data - encoded string
142
229
  */
143
230
  export declare function decodeDataParams(types: string[], data: string): any[];
231
+ /**
232
+ * Generate raw_data_hex for a TRON transaction
233
+ *
234
+ * @param {Object} rawData - The transaction raw data object containing:
235
+ * @param {Array} rawData.contract - Array of contract objects
236
+ * @param {string} rawData.refBlockBytes - Reference block bytes
237
+ * @param {string} rawData.refBlockHash - Reference block hash
238
+ * @param {number} rawData.expiration - Transaction expiration timestamp
239
+ * @param {number} rawData.timestamp - Transaction creation timestamp
240
+ * @param {number} [rawData.feeLimit] - Optional fee limit for smart contracts
241
+ * @returns {string} The hex string representation of the encoded transaction data
242
+ */
243
+ export declare function generateRawDataHex(rawData?: {
244
+ contract?: protocol.Transaction.Contract[];
245
+ refBlockBytes?: string;
246
+ refBlockHash?: string;
247
+ expiration?: number;
248
+ timestamp?: number;
249
+ feeLimit?: number;
250
+ }): string;
144
251
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}