@tonappchain/sdk 0.7.2-payload-builder-0.3 → 0.7.2-scaled-ui-support-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.
Files changed (59) hide show
  1. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -1
  2. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +4 -0
  3. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +7 -0
  4. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  5. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -1
  6. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -1
  7. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  8. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  9. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -1
  10. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  11. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +13 -1
  12. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +45 -7
  13. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +6 -2
  14. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +9 -2
  15. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -1
  16. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +4 -0
  17. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +7 -0
  18. package/dist/src/adapters/contractOpener.d.ts +0 -4
  19. package/dist/src/adapters/contractOpener.js +1 -165
  20. package/dist/src/adapters/retryableContractOpener.d.ts +1 -5
  21. package/dist/src/adapters/retryableContractOpener.js +4 -22
  22. package/dist/src/assets/AssetFactory.js +2 -8
  23. package/dist/src/assets/FT.d.ts +10 -0
  24. package/dist/src/assets/FT.js +47 -0
  25. package/dist/src/assets/TON.d.ts +1 -2
  26. package/dist/src/assets/TON.js +0 -1
  27. package/dist/src/index.d.ts +1 -0
  28. package/dist/src/index.js +4 -1
  29. package/dist/src/interfaces/Asset.d.ts +1 -2
  30. package/dist/src/interfaces/ContractOpener.d.ts +1 -5
  31. package/dist/src/interfaces/ISimulator.d.ts +0 -7
  32. package/dist/src/interfaces/ITONTransactionManager.d.ts +1 -20
  33. package/dist/src/interfaces/ITacSDK.d.ts +1 -10
  34. package/dist/src/interfaces/WalletInstanse.d.ts +8 -4
  35. package/dist/src/sdk/Consts.d.ts +0 -1
  36. package/dist/src/sdk/Consts.js +1 -2
  37. package/dist/src/sdk/Simulator.d.ts +1 -20
  38. package/dist/src/sdk/Simulator.js +0 -160
  39. package/dist/src/sdk/StartTracking.d.ts +3 -5
  40. package/dist/src/sdk/StartTracking.js +40 -60
  41. package/dist/src/sdk/TONTransactionManager.d.ts +4 -7
  42. package/dist/src/sdk/TONTransactionManager.js +2 -38
  43. package/dist/src/sdk/TacSdk.d.ts +1 -2
  44. package/dist/src/sdk/TacSdk.js +1 -7
  45. package/dist/src/sdk/TxFinalizer.d.ts +4 -15
  46. package/dist/src/sdk/TxFinalizer.js +23 -102
  47. package/dist/src/sdk/Utils.d.ts +6 -6
  48. package/dist/src/sdk/Utils.js +9 -35
  49. package/dist/src/sender/BatchSender.js +0 -19
  50. package/dist/src/sender/RawSender.js +1 -34
  51. package/dist/src/sender/SenderFactory.js +1 -1
  52. package/dist/src/sender/TonConnectSender.js +0 -2
  53. package/dist/src/structs/InternalStruct.d.ts +1 -22
  54. package/dist/src/structs/Struct.d.ts +2 -20
  55. package/dist/src/wrappers/HighloadWalletV3.d.ts +3 -5
  56. package/dist/src/wrappers/HighloadWalletV3.js +3 -14
  57. package/package.json +3 -2
  58. package/dist/src/interfaces/ITxFinalizer.d.ts +0 -5
  59. package/dist/src/interfaces/ITxFinalizer.js +0 -2
@@ -2,71 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Simulator = void 0;
4
4
  const ton_1 = require("@ton/ton");
5
- const assets_1 = require("../assets");
6
- const errors_1 = require("../errors");
7
- const Struct_1 = require("../structs/Struct");
8
5
  const Logger_1 = require("./Logger");
9
6
  const Utils_1 = require("./Utils");
10
7
  const Validator_1 = require("./Validator");
11
8
  class Simulator {
12
9
  constructor(config, operationTracker, logger = new Logger_1.NoopLogger()) {
13
- this.TON_FEE_CONSTANTS = {
14
- messageSizes: {
15
- jetton: { bits: 1500, cells: 4 },
16
- nft: { bits: 1300, cells: 4 },
17
- ton: { bits: 500, cells: 1 },
18
- },
19
- walletSendTokenPrice: 0.006 * 10 ** 9, // 0.006 TON in nanotons
20
- storageTimeDelta: 1 * 24 * 3600, // 1 day in seconds
21
- messageOverhead: { bits: 847, cells: 3 },
22
- };
23
- this.TRANSACTION_STEPS = {
24
- crossChainLayer: {
25
- accountBits: 34534,
26
- accountCells: 85,
27
- gasUsed: 13636,
28
- },
29
- jettonWallet: {
30
- accountBits: 949,
31
- accountCells: 3,
32
- gasUsed: 11000,
33
- },
34
- jettonWalletTransfer: {
35
- accountBits: 949,
36
- accountCells: 3,
37
- gasUsed: 12000,
38
- },
39
- jettonWalletBurn: {
40
- accountBits: 949,
41
- accountCells: 3,
42
- gasUsed: 8653,
43
- },
44
- jettonProxy: {
45
- accountBits: 7760,
46
- accountCells: 16,
47
- gasUsed: 8515,
48
- },
49
- jettonMinter: {
50
- accountBits: 10208,
51
- accountCells: 28,
52
- gasUsed: 10357,
53
- },
54
- nftItem: {
55
- accountBits: 1422,
56
- accountCells: 5,
57
- gasUsed: 11722,
58
- },
59
- nftItemBurn: {
60
- accountBits: 1422,
61
- accountCells: 5,
62
- gasUsed: 11552,
63
- },
64
- nftProxy: {
65
- accountBits: 7512,
66
- accountCells: 15,
67
- gasUsed: 7688,
68
- },
69
- };
70
10
  this.config = config;
71
11
  this.operationTracker = operationTracker;
72
12
  this.logger = logger;
@@ -126,105 +66,5 @@ class Simulator {
126
66
  }
127
67
  return { feeParams, simulation };
128
68
  }
129
- calculateTONFees({
130
- // Contract usage
131
- accountBits, accountCells, timeDelta,
132
- // Message size
133
- msgBits, msgCells,
134
- // Gas and computation
135
- gasUsed,
136
- // Config values (defaults for BaseChain)
137
- bitPricePs = 1, cellPricePs = 500, lumpPrice = 400000, gasPrice = 400, firstFrac = 21845, ihrPriceFactor = 0, }) {
138
- // Storage Fee (nanotons)
139
- const storageFee = Math.ceil(((accountBits * bitPricePs + accountCells * cellPricePs) * timeDelta) / 2 ** 16);
140
- // Computation Fee (nanotons)
141
- const computeFee = gasUsed * gasPrice;
142
- // Forwarding Fee (nanotons)
143
- const msgFwdFees = lumpPrice + Math.ceil((bitPricePs * msgBits + cellPricePs * msgCells) / 2 ** 16);
144
- const ihrFwdFees = Math.ceil((msgFwdFees * ihrPriceFactor) / 2 ** 16);
145
- const totalFwdFees = msgFwdFees + ihrFwdFees;
146
- // Action Fee (nanotons)
147
- const actionFee = Math.floor((msgFwdFees * firstFrac) / 2 ** 16);
148
- // Combine all fees
149
- const totalFees = storageFee + computeFee + actionFee + totalFwdFees;
150
- return totalFees;
151
- }
152
- calculateStepFee(step, messageSize) {
153
- return this.calculateTONFees({
154
- ...step,
155
- timeDelta: this.TON_FEE_CONSTANTS.storageTimeDelta,
156
- msgBits: messageSize.bits,
157
- msgCells: messageSize.cells,
158
- });
159
- }
160
- calculateTransactionPipeline(steps) {
161
- return steps.reduce((total, { step, messageSize }) => total + this.calculateStepFee(step, messageSize), this.TON_FEE_CONSTANTS.walletSendTokenPrice);
162
- }
163
- estimateTONFees(assets) {
164
- const { messageSizes, messageOverhead } = this.TON_FEE_CONSTANTS;
165
- return assets.reduce((totalFees, asset) => {
166
- const assetFee = (() => {
167
- switch (asset.type) {
168
- case Struct_1.AssetType.FT:
169
- if (asset instanceof assets_1.TON) {
170
- // Pipeline: wallet -> ccl -> log
171
- return this.calculateTransactionPipeline([
172
- { step: this.TRANSACTION_STEPS.crossChainLayer, messageSize: messageSizes.ton },
173
- ]);
174
- }
175
- if (asset.origin === Struct_1.Origin.TON) {
176
- // Pipeline: wallet -> jetton wallet -> jetton wallet -> jetton proxy -> ccl -> log
177
- return this.calculateTransactionPipeline([
178
- {
179
- step: this.TRANSACTION_STEPS.jettonWallet,
180
- messageSize: {
181
- bits: messageSizes.jetton.bits + messageOverhead.bits,
182
- cells: messageSizes.jetton.cells + messageOverhead.cells,
183
- },
184
- },
185
- { step: this.TRANSACTION_STEPS.jettonWalletTransfer, messageSize: messageSizes.jetton },
186
- { step: this.TRANSACTION_STEPS.jettonProxy, messageSize: messageSizes.jetton },
187
- { step: this.TRANSACTION_STEPS.crossChainLayer, messageSize: messageSizes.jetton },
188
- ]);
189
- }
190
- if (asset.origin === Struct_1.Origin.TAC) {
191
- // Pipeline: wallet -> jetton wallet -> jetton minter -> ccl -> log
192
- return this.calculateTransactionPipeline([
193
- {
194
- step: this.TRANSACTION_STEPS.jettonWalletBurn,
195
- messageSize: {
196
- bits: messageSizes.jetton.bits + messageOverhead.bits,
197
- cells: messageSizes.jetton.cells + messageOverhead.cells,
198
- },
199
- },
200
- { step: this.TRANSACTION_STEPS.jettonMinter, messageSize: messageSizes.jetton },
201
- { step: this.TRANSACTION_STEPS.crossChainLayer, messageSize: messageSizes.jetton },
202
- ]);
203
- }
204
- return 0;
205
- case Struct_1.AssetType.NFT:
206
- if (asset.origin === Struct_1.Origin.TON) {
207
- // Pipeline: wallet -> nft item -> nft proxy -> ccl -> log
208
- return this.calculateTransactionPipeline([
209
- { step: this.TRANSACTION_STEPS.nftItem, messageSize: messageSizes.nft },
210
- { step: this.TRANSACTION_STEPS.nftProxy, messageSize: messageSizes.nft },
211
- { step: this.TRANSACTION_STEPS.crossChainLayer, messageSize: messageSizes.nft },
212
- ]);
213
- }
214
- if (asset.origin === Struct_1.Origin.TAC) {
215
- // Pipeline: wallet -> nft item -> ccl -> log
216
- return this.calculateTransactionPipeline([
217
- { step: this.TRANSACTION_STEPS.nftItemBurn, messageSize: messageSizes.nft },
218
- { step: this.TRANSACTION_STEPS.crossChainLayer, messageSize: messageSizes.nft },
219
- ]);
220
- }
221
- return 0;
222
- default:
223
- throw (0, errors_1.unknownTokenTypeError)(asset.type);
224
- }
225
- })();
226
- return totalFees + assetFee;
227
- }, 0);
228
- }
229
69
  }
230
70
  exports.Simulator = Simulator;
@@ -1,5 +1,5 @@
1
1
  import { ILogger } from '../interfaces';
2
- import { ITxFinalizer } from '../interfaces/ITxFinalizer';
2
+ import { TxFinalizerConfig } from '../structs/InternalStruct';
3
3
  import { ExecutionStages, Network, TransactionLinker } from '../structs/Struct';
4
4
  export declare function startTracking(transactionLinker: TransactionLinker, network: Network, options?: {
5
5
  customLiteSequencerEndpoints?: string[];
@@ -7,9 +7,8 @@ export declare function startTracking(transactionLinker: TransactionLinker, netw
7
7
  maxIterationCount?: number;
8
8
  returnValue?: boolean;
9
9
  tableView?: boolean;
10
+ txFinalizerConfig?: TxFinalizerConfig;
10
11
  logger?: ILogger;
11
- txFinalizer?: ITxFinalizer;
12
- cclAddress?: string;
13
12
  }): Promise<void | ExecutionStages>;
14
13
  export declare function startTrackingMultiple(transactionLinkers: TransactionLinker[], network: Network, options?: {
15
14
  customLiteSequencerEndpoints?: string[];
@@ -17,7 +16,6 @@ export declare function startTrackingMultiple(transactionLinkers: TransactionLin
17
16
  maxIterationCount?: number;
18
17
  returnValue?: boolean;
19
18
  tableView?: boolean;
19
+ txFinalizerConfig?: TxFinalizerConfig;
20
20
  logger?: ILogger;
21
- txFinalizer?: ITxFinalizer;
22
21
  }): Promise<void | ExecutionStages[]>;
23
- export declare function printExecutionStagesTable(stages: ExecutionStages, logger: ILogger): void;
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.startTracking = startTracking;
4
7
  exports.startTrackingMultiple = startTrackingMultiple;
5
- exports.printExecutionStagesTable = printExecutionStagesTable;
8
+ const cli_table3_1 = __importDefault(require("cli-table3"));
6
9
  const Struct_1 = require("../structs/Struct");
7
10
  const Consts_1 = require("./Consts");
8
11
  const Logger_1 = require("./Logger");
9
12
  const OperationTracker_1 = require("./OperationTracker");
13
+ const TxFinalizer_1 = require("./TxFinalizer");
10
14
  const Utils_1 = require("./Utils");
11
15
  async function startTracking(transactionLinker, network, options) {
12
- const { customLiteSequencerEndpoints, delay = 10, maxIterationCount = Consts_1.MAX_ITERATION_COUNT, returnValue = false, tableView = true, logger = new Logger_1.NoopLogger(), txFinalizer, cclAddress, } = options || {};
16
+ const { customLiteSequencerEndpoints, delay = 10, maxIterationCount = Consts_1.MAX_ITERATION_COUNT, returnValue = false, tableView = true, txFinalizerConfig, logger = new Logger_1.NoopLogger(), } = options || {};
13
17
  const tracker = new OperationTracker_1.OperationTracker(network, customLiteSequencerEndpoints, logger);
14
18
  logger.debug('Start tracking operation');
15
19
  logger.debug('caller: ' + transactionLinker.caller);
@@ -66,12 +70,13 @@ async function startTracking(transactionLinker, network, options) {
66
70
  // Check if EXECUTED_IN_TON stage exists and use TxFinalizer to verify transaction success
67
71
  if (profilingData.executedInTON.exists && profilingData.executedInTON.stageData?.transactions) {
68
72
  logger.debug('EXECUTED_IN_TON stage found, verifying transaction success in TON...');
69
- if (txFinalizer && cclAddress) {
73
+ if (txFinalizerConfig) {
74
+ const txFinalizer = new TxFinalizer_1.TonTxFinalizer(txFinalizerConfig, logger);
70
75
  const transactions = profilingData.executedInTON.stageData.transactions;
71
76
  for (const tx of transactions) {
72
77
  try {
73
78
  logger.debug(`Verifying transaction: ${tx.hash}`);
74
- await txFinalizer.trackTransactionTree(cclAddress, tx.hash, { maxDepth: 10 });
79
+ await txFinalizer.trackTransactionTree(tx.hash);
75
80
  logger.debug(`Transaction ${tx.hash} verified successfully in TON`);
76
81
  }
77
82
  catch (error) {
@@ -99,7 +104,7 @@ async function startTracking(transactionLinker, network, options) {
99
104
  }
100
105
  }
101
106
  async function startTrackingMultiple(transactionLinkers, network, options) {
102
- const { customLiteSequencerEndpoints, delay = 10, maxIterationCount = Consts_1.MAX_ITERATION_COUNT, returnValue = false, tableView = true, txFinalizer, logger = new Logger_1.NoopLogger(), } = options || {};
107
+ const { customLiteSequencerEndpoints, delay = 10, maxIterationCount = Consts_1.MAX_ITERATION_COUNT, returnValue = false, tableView = true, txFinalizerConfig, logger = new Logger_1.NoopLogger(), } = options || {};
103
108
  logger.debug(`Start tracking ${transactionLinkers.length} operations`);
104
109
  const results = await Promise.all(transactionLinkers.map((linker, index) => {
105
110
  logger.debug(`\nProcessing operation ${index + 1}/${transactionLinkers.length}`);
@@ -109,7 +114,7 @@ async function startTrackingMultiple(transactionLinkers, network, options) {
109
114
  maxIterationCount,
110
115
  returnValue: true,
111
116
  tableView: false,
112
- txFinalizer,
117
+ txFinalizerConfig,
113
118
  logger,
114
119
  });
115
120
  }));
@@ -155,60 +160,35 @@ function formatExecutionStages(stages) {
155
160
  bytesError: data.exists && data.stageData && data.stageData.note != null ? data.stageData.note.internalBytesError : '-',
156
161
  }));
157
162
  }
158
- /**
159
- * Simple table formatter that works in both browser and Node.js without external dependencies
160
- */
161
- function createSimpleTable(headers, rows, colWidths) {
162
- const lines = [];
163
- // Helper to truncate and pad text to fit column width
164
- const fitToWidth = (text, width) => {
165
- // Handle multi-line text by taking only the first line for table cell
166
- const firstLine = text.split('\n')[0];
167
- if (firstLine.length > width - 2) {
168
- return firstLine.substring(0, width - 5) + '...';
169
- }
170
- return firstLine.padEnd(width, ' ');
171
- };
172
- // Create separator line
173
- const separator = '+' + colWidths.map((w) => '-'.repeat(w)).join('+') + '+';
174
- // Create header row
175
- const headerRow = '|' + headers.map((h, i) => fitToWidth(h, colWidths[i])).join('|') + '|';
176
- lines.push(separator);
177
- lines.push(headerRow);
178
- lines.push(separator);
179
- // Create data rows
180
- rows.forEach((row) => {
181
- const dataRow = '|' + row.map((cell, i) => fitToWidth(cell, colWidths[i])).join('|') + '|';
182
- lines.push(dataRow);
183
- });
184
- lines.push(separator);
185
- return lines.join('\n');
186
- }
187
163
  function printExecutionStagesTable(stages, logger) {
188
- const headers = [
189
- 'Stage',
190
- 'Exists',
191
- 'Success',
192
- 'Timestamp',
193
- 'Transactions',
194
- 'NoteContent',
195
- 'ErrorName',
196
- 'InternalMsg',
197
- 'BytesError',
198
- ];
199
- const colWidths = [30, 8, 9, 13, 70, 13, 13, 13, 13];
164
+ const table = new cli_table3_1.default({
165
+ head: [
166
+ 'Stage',
167
+ 'Exists',
168
+ 'Success',
169
+ 'Timestamp',
170
+ 'Transactions',
171
+ 'NoteContent',
172
+ 'ErrorName',
173
+ 'InternalMsg',
174
+ 'BytesError',
175
+ ],
176
+ colWidths: [30, 8, 9, 13, 70, 13, 13, 13, 13],
177
+ wordWrap: true,
178
+ });
200
179
  const tableData = formatExecutionStages(stages);
201
- const rows = tableData.map((row) => [
202
- row.stage,
203
- row.exists,
204
- row.success,
205
- row.timestamp,
206
- row.transactions,
207
- row.noteContent,
208
- row.errorName,
209
- row.internalMsg,
210
- row.bytesError,
211
- ]);
212
- const table = createSimpleTable(headers, rows, colWidths);
213
- logger.debug(table);
180
+ tableData.forEach((row) => {
181
+ table.push([
182
+ row.stage,
183
+ row.exists,
184
+ row.success,
185
+ row.timestamp,
186
+ row.transactions,
187
+ row.noteContent,
188
+ row.errorName,
189
+ row.internalMsg,
190
+ row.bytesError,
191
+ ]);
192
+ });
193
+ logger.debug(table.toString());
214
194
  }
@@ -1,20 +1,17 @@
1
- import { Asset, IConfiguration, ILogger, IOperationTracker, ISimulator, ITONTransactionManager } from '../interfaces';
2
- import { ITxFinalizer } from '../interfaces/ITxFinalizer';
1
+ import { IConfiguration, ILogger, IOperationTracker, ISimulator, ITONTransactionManager } from '../interfaces';
3
2
  import type { SenderAbstraction } from '../sender';
4
- import { BatchCrossChainTx, CrossChainPayloadResult, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EvmProxyMsg, FeeParams, TransactionLinkerWithOperationId } from '../structs/Struct';
3
+ import { BatchCrossChainTx, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EvmProxyMsg, FeeParams, TransactionLinkerWithOperationId } from '../structs/Struct';
5
4
  export declare class TONTransactionManager implements ITONTransactionManager {
6
5
  private readonly config;
7
6
  private readonly simulator;
8
7
  private readonly operationTracker;
9
8
  private readonly logger;
10
- private readonly txFinalizer;
11
- constructor(config: IConfiguration, simulator: ISimulator, operationTracker: IOperationTracker, logger: ILogger | undefined, txFinalizer: ITxFinalizer);
12
- buildFeeParams(options: CrossChainTransactionOptions, evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<FeeParams>;
9
+ constructor(config: IConfiguration, simulator: ISimulator, operationTracker: IOperationTracker, logger?: ILogger);
10
+ protected buildFeeParams(options: CrossChainTransactionOptions, evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<FeeParams>;
13
11
  private prepareCrossChainTransaction;
14
12
  private generateCrossChainMessages;
15
13
  sendCrossChainTransaction(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<TransactionLinkerWithOperationId>;
16
14
  sendCrossChainTransactions(sender: SenderAbstraction, txs: BatchCrossChainTx[], options?: CrossChainTransactionsOptions): Promise<TransactionLinkerWithOperationId[]>;
17
15
  private prepareBatchTransactions;
18
16
  private waitForOperationIds;
19
- prepareCrossChainTransactionPayload(evmProxyMsg: EvmProxyMsg, senderAddress: string, assets?: Asset[], options?: CrossChainTransactionOptions): Promise<CrossChainPayloadResult[]>;
20
17
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TONTransactionManager = void 0;
4
- const ton_1 = require("@ton/ton");
5
4
  const assets_1 = require("../assets");
6
5
  const errors_1 = require("../errors");
7
6
  const instances_1 = require("../errors/instances");
@@ -10,12 +9,11 @@ const Logger_1 = require("./Logger");
10
9
  const Utils_1 = require("./Utils");
11
10
  const Validator_1 = require("./Validator");
12
11
  class TONTransactionManager {
13
- constructor(config, simulator, operationTracker, logger = new Logger_1.NoopLogger(), txFinalizer) {
12
+ constructor(config, simulator, operationTracker, logger = new Logger_1.NoopLogger()) {
14
13
  this.config = config;
15
14
  this.simulator = simulator;
16
15
  this.operationTracker = operationTracker;
17
16
  this.logger = logger;
18
- this.txFinalizer = txFinalizer;
19
17
  }
20
18
  async buildFeeParams(options, evmProxyMsg, sender, tx) {
21
19
  const { withoutSimulation, protocolFee, evmExecutorFee, tvmExecutorFee, isRoundTrip } = options;
@@ -113,9 +111,6 @@ class TONTransactionManager {
113
111
  address: this.config.TONParams.crossChainLayerAddress,
114
112
  value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
115
113
  payload: await ton.generatePayload({ excessReceiver: caller, evmData, feeParams }),
116
- extra: {
117
- networkFeeIncluded: Consts_1.TRANSACTION_TON_AMOUNT,
118
- },
119
114
  },
120
115
  ];
121
116
  }
@@ -134,9 +129,6 @@ class TONTransactionManager {
134
129
  address,
135
130
  value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
136
131
  payload,
137
- extra: {
138
- networkFeeIncluded: Consts_1.TRANSACTION_TON_AMOUNT,
139
- },
140
132
  });
141
133
  crossChainTonAmount = 0n;
142
134
  feeTonAmount = 0n;
@@ -157,17 +149,7 @@ class TONTransactionManager {
157
149
  if (!shouldWaitForOperationId) {
158
150
  return { sendTransactionResult, ...transactionLinker };
159
151
  }
160
- const waitOptions = tx.options?.waitOptions ?? {
161
- ensureTxExecuted: true,
162
- };
163
- if (waitOptions.ensureTxExecuted && sendTransactionResult.boc) {
164
- const hash = (0, Utils_1.getNormalizedExtMessageHash)((0, ton_1.loadMessage)(ton_1.Cell.fromBase64(sendTransactionResult.boc).beginParse()));
165
- this.logger.info(`Tracking transaction tree for hash: ${hash}`);
166
- await this.txFinalizer.trackTransactionTree(sender.getSenderAddress(), hash, {
167
- maxDepth: 10,
168
- });
169
- this.logger.info(`Transaction tree successful`);
170
- }
152
+ const waitOptions = tx.options?.waitOptions ?? {};
171
153
  waitOptions.successCheck = waitOptions.successCheck ?? ((id) => !!id);
172
154
  waitOptions.logger = waitOptions.logger ?? this.logger;
173
155
  const operationId = await this.operationTracker
@@ -234,23 +216,5 @@ class TONTransactionManager {
234
216
  return transactionLinkers;
235
217
  }
236
218
  }
237
- async prepareCrossChainTransactionPayload(evmProxyMsg, senderAddress, assets = [], options) {
238
- this.logger.debug('Preparing cross-chain transaction payload');
239
- const mockSender = {
240
- getSenderAddress: () => senderAddress,
241
- sendShardTransaction: async () => ({ success: true, boc: '' }),
242
- sendShardTransactions: async () => [],
243
- getBalance: async () => 0n,
244
- getBalanceOf: async () => 0n,
245
- };
246
- const result = await this.prepareCrossChainTransaction(evmProxyMsg, mockSender, assets, options, true);
247
- return result.transaction.messages.map((r) => ({
248
- body: r.payload,
249
- destinationAddress: r.address,
250
- tonAmount: r.value,
251
- networkFee: r.extra.networkFeeIncluded,
252
- transactionLinker: result.transactionLinker,
253
- }));
254
- }
255
219
  }
256
220
  exports.TONTransactionManager = TONTransactionManager;
@@ -3,7 +3,7 @@ import { JettonMinterData, NFTItemData } from '../../artifacts/tonTypes';
3
3
  import { FT, NFT } from '../assets';
4
4
  import { IConfiguration, ILogger, IOperationTracker, ITacSDK } from '../interfaces';
5
5
  import type { SenderAbstraction } from '../sender';
6
- import { AssetFromFTArg, AssetFromNFTCollectionArg, AssetFromNFTItemArg, AssetLike, BatchCrossChainTxWithAssetLike, CrossChainPayloadResult, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EVMAddress, EvmProxyMsg, ExecutionFeeEstimationResult, NFTAddressType, SDKParams, SuggestedTVMExecutorFee, TACSimulationParams, TACSimulationResult, TransactionLinkerWithOperationId, TVMAddress, UserWalletBalanceExtended } from '../structs/Struct';
6
+ import { AssetFromFTArg, AssetFromNFTCollectionArg, AssetFromNFTItemArg, AssetLike, BatchCrossChainTxWithAssetLike, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EVMAddress, EvmProxyMsg, ExecutionFeeEstimationResult, NFTAddressType, SDKParams, SuggestedTVMExecutorFee, TACSimulationParams, TACSimulationResult, TransactionLinkerWithOperationId, TVMAddress, UserWalletBalanceExtended } from '../structs/Struct';
7
7
  export declare class TacSdk implements ITacSDK {
8
8
  readonly config: IConfiguration;
9
9
  readonly operationTracker: IOperationTracker;
@@ -41,5 +41,4 @@ export declare class TacSdk implements ITacSDK {
41
41
  getTVMNFTAddress(evmNFTAddress: string, tokenId?: number | bigint): Promise<string>;
42
42
  getEVMNFTAddress(tvmNFTAddress: string, addressType: NFTAddressType): Promise<string>;
43
43
  getOperationTracker(): IOperationTracker;
44
- prepareCrossChainTransactionPayload(evmProxyMsg: EvmProxyMsg, senderAddress: string, assets?: AssetLike[], options?: CrossChainTransactionOptions): Promise<CrossChainPayloadResult[]>;
45
44
  }
@@ -11,7 +11,6 @@ const OperationTracker_1 = require("./OperationTracker");
11
11
  const Simulator_1 = require("./Simulator");
12
12
  const TACTransactionManager_1 = require("./TACTransactionManager");
13
13
  const TONTransactionManager_1 = require("./TONTransactionManager");
14
- const TxFinalizer_1 = require("./TxFinalizer");
15
14
  const Utils_1 = require("./Utils");
16
15
  class TacSdk {
17
16
  constructor(config, simulator, tonTransactionManager, tacTransactionManager, operationTracker) {
@@ -41,8 +40,7 @@ class TacSdk {
41
40
  const config = await Configuration_1.Configuration.create(network, artifacts, sdkParams.TONParams, sdkParams.TACParams, sdkParams.customLiteSequencerEndpoints, delay);
42
41
  const operationTracker = new OperationTracker_1.OperationTracker(network, config.liteSequencerEndpoints);
43
42
  const simulator = new Simulator_1.Simulator(config, operationTracker, logger);
44
- const txFinalizer = sdkParams.TONParams?.txFinalizer ?? new TxFinalizer_1.TonTxFinalizer(config.TONParams.contractOpener, logger);
45
- const tonTransactionManager = new TONTransactionManager_1.TONTransactionManager(config, simulator, operationTracker, logger, txFinalizer);
43
+ const tonTransactionManager = new TONTransactionManager_1.TONTransactionManager(config, simulator, operationTracker, logger);
46
44
  const tacTransactionManager = new TACTransactionManager_1.TACTransactionManager(config, operationTracker, logger);
47
45
  return new TacSdk(config, simulator, tonTransactionManager, tacTransactionManager, operationTracker);
48
46
  }
@@ -179,9 +177,5 @@ class TacSdk {
179
177
  getOperationTracker() {
180
178
  return this.operationTracker;
181
179
  }
182
- async prepareCrossChainTransactionPayload(evmProxyMsg, senderAddress, assets = [], options) {
183
- const normalizedAssets = await (0, Utils_1.normalizeAssets)(this.config, assets);
184
- return this.tonTransactionManager.prepareCrossChainTransactionPayload(evmProxyMsg, senderAddress, normalizedAssets, options);
185
- }
186
180
  }
187
181
  exports.TacSdk = TacSdk;
@@ -1,22 +1,11 @@
1
- import { ContractOpener, IHttpClient, ILogger } from '../interfaces';
2
- import { ITxFinalizer } from '../interfaces/ITxFinalizer';
1
+ import { IHttpClient, ILogger } from '../interfaces';
3
2
  import { TxFinalizerConfig } from '../structs/InternalStruct';
4
- export declare class TonTxFinalizer implements ITxFinalizer {
5
- private logger;
6
- private contractOpener;
7
- constructor(contractOpener: ContractOpener, logger?: ILogger);
8
- private fetchAdjacentTransactions;
9
- trackTransactionTree(address: string, hash: string, params: {
10
- maxDepth?: number;
11
- }): Promise<void>;
12
- }
13
- export declare class TonTxFinalizerV3 implements ITxFinalizer {
3
+ export declare class TonTxFinalizer {
14
4
  private logger;
15
5
  private apiConfig;
16
6
  private readonly httpClient;
17
7
  constructor(apiConfig: TxFinalizerConfig, logger?: ILogger, httpClient?: IHttpClient);
8
+ private logHashFormats;
18
9
  private fetchAdjacentTransactions;
19
- trackTransactionTree(_: string, hash: string, params?: {
20
- maxDepth?: number;
21
- }): Promise<void>;
10
+ trackTransactionTree(hash: string, maxDepth?: number): Promise<void>;
22
11
  }