@tonappchain/sdk 0.7.2-payload-builder-0.2 → 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 (49) 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/CrossChainLayer.compiled.json +1 -1
  16. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -1
  17. package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +1 -1
  18. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  19. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  20. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -1
  21. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  22. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +13 -1
  23. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +45 -7
  24. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +6 -2
  25. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +9 -2
  26. package/dist/src/assets/AssetFactory.js +2 -8
  27. package/dist/src/assets/FT.d.ts +10 -0
  28. package/dist/src/assets/FT.js +47 -0
  29. package/dist/src/assets/TON.d.ts +1 -2
  30. package/dist/src/assets/TON.js +0 -1
  31. package/dist/src/interfaces/Asset.d.ts +1 -2
  32. package/dist/src/interfaces/ISimulator.d.ts +0 -7
  33. package/dist/src/interfaces/ITONTransactionManager.d.ts +1 -20
  34. package/dist/src/interfaces/ITacSDK.d.ts +1 -10
  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 +0 -1
  40. package/dist/src/sdk/StartTracking.js +33 -55
  41. package/dist/src/sdk/TONTransactionManager.d.ts +3 -4
  42. package/dist/src/sdk/TONTransactionManager.js +0 -23
  43. package/dist/src/sdk/TacSdk.d.ts +1 -2
  44. package/dist/src/sdk/TacSdk.js +0 -4
  45. package/dist/src/sdk/Utils.d.ts +5 -0
  46. package/dist/src/sdk/Utils.js +11 -0
  47. package/dist/src/structs/InternalStruct.d.ts +0 -3
  48. package/dist/src/structs/Struct.d.ts +1 -7
  49. package/package.json +2 -1
@@ -1,8 +1,11 @@
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");
@@ -157,60 +160,35 @@ function formatExecutionStages(stages) {
157
160
  bytesError: data.exists && data.stageData && data.stageData.note != null ? data.stageData.note.internalBytesError : '-',
158
161
  }));
159
162
  }
160
- /**
161
- * Simple table formatter that works in both browser and Node.js without external dependencies
162
- */
163
- function createSimpleTable(headers, rows, colWidths) {
164
- const lines = [];
165
- // Helper to truncate and pad text to fit column width
166
- const fitToWidth = (text, width) => {
167
- // Handle multi-line text by taking only the first line for table cell
168
- const firstLine = text.split('\n')[0];
169
- if (firstLine.length > width - 2) {
170
- return firstLine.substring(0, width - 5) + '...';
171
- }
172
- return firstLine.padEnd(width, ' ');
173
- };
174
- // Create separator line
175
- const separator = '+' + colWidths.map((w) => '-'.repeat(w)).join('+') + '+';
176
- // Create header row
177
- const headerRow = '|' + headers.map((h, i) => fitToWidth(h, colWidths[i])).join('|') + '|';
178
- lines.push(separator);
179
- lines.push(headerRow);
180
- lines.push(separator);
181
- // Create data rows
182
- rows.forEach((row) => {
183
- const dataRow = '|' + row.map((cell, i) => fitToWidth(cell, colWidths[i])).join('|') + '|';
184
- lines.push(dataRow);
185
- });
186
- lines.push(separator);
187
- return lines.join('\n');
188
- }
189
163
  function printExecutionStagesTable(stages, logger) {
190
- const headers = [
191
- 'Stage',
192
- 'Exists',
193
- 'Success',
194
- 'Timestamp',
195
- 'Transactions',
196
- 'NoteContent',
197
- 'ErrorName',
198
- 'InternalMsg',
199
- 'BytesError',
200
- ];
201
- 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
+ });
202
179
  const tableData = formatExecutionStages(stages);
203
- const rows = tableData.map((row) => [
204
- row.stage,
205
- row.exists,
206
- row.success,
207
- row.timestamp,
208
- row.transactions,
209
- row.noteContent,
210
- row.errorName,
211
- row.internalMsg,
212
- row.bytesError,
213
- ]);
214
- const table = createSimpleTable(headers, rows, colWidths);
215
- 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());
216
194
  }
@@ -1,18 +1,17 @@
1
- import { Asset, IConfiguration, ILogger, IOperationTracker, ISimulator, ITONTransactionManager } from '../interfaces';
1
+ import { IConfiguration, ILogger, IOperationTracker, ISimulator, ITONTransactionManager } from '../interfaces';
2
2
  import type { SenderAbstraction } from '../sender';
3
- import { BatchCrossChainTx, CrossChainPayloadResult, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EvmProxyMsg, FeeParams, TransactionLinkerWithOperationId } from '../structs/Struct';
3
+ import { BatchCrossChainTx, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EvmProxyMsg, FeeParams, TransactionLinkerWithOperationId } from '../structs/Struct';
4
4
  export declare class TONTransactionManager implements ITONTransactionManager {
5
5
  private readonly config;
6
6
  private readonly simulator;
7
7
  private readonly operationTracker;
8
8
  private readonly logger;
9
9
  constructor(config: IConfiguration, simulator: ISimulator, operationTracker: IOperationTracker, logger?: ILogger);
10
- buildFeeParams(options: CrossChainTransactionOptions, evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<FeeParams>;
10
+ protected buildFeeParams(options: CrossChainTransactionOptions, evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<FeeParams>;
11
11
  private prepareCrossChainTransaction;
12
12
  private generateCrossChainMessages;
13
13
  sendCrossChainTransaction(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<TransactionLinkerWithOperationId>;
14
14
  sendCrossChainTransactions(sender: SenderAbstraction, txs: BatchCrossChainTx[], options?: CrossChainTransactionsOptions): Promise<TransactionLinkerWithOperationId[]>;
15
15
  private prepareBatchTransactions;
16
16
  private waitForOperationIds;
17
- prepareCrossChainTransactionPayload(evmProxyMsg: EvmProxyMsg, senderAddress: string, assets?: Asset[], options?: CrossChainTransactionOptions): Promise<CrossChainPayloadResult[]>;
18
17
  }
@@ -111,9 +111,6 @@ class TONTransactionManager {
111
111
  address: this.config.TONParams.crossChainLayerAddress,
112
112
  value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
113
113
  payload: await ton.generatePayload({ excessReceiver: caller, evmData, feeParams }),
114
- extra: {
115
- networkFeeIncluded: Consts_1.TRANSACTION_TON_AMOUNT,
116
- },
117
114
  },
118
115
  ];
119
116
  }
@@ -132,9 +129,6 @@ class TONTransactionManager {
132
129
  address,
133
130
  value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
134
131
  payload,
135
- extra: {
136
- networkFeeIncluded: Consts_1.TRANSACTION_TON_AMOUNT,
137
- },
138
132
  });
139
133
  crossChainTonAmount = 0n;
140
134
  feeTonAmount = 0n;
@@ -222,22 +216,5 @@ class TONTransactionManager {
222
216
  return transactionLinkers;
223
217
  }
224
218
  }
225
- async prepareCrossChainTransactionPayload(evmProxyMsg, senderAddress, assets = [], options) {
226
- this.logger.debug('Preparing cross-chain transaction payload');
227
- const mockSender = {
228
- getSenderAddress: () => senderAddress,
229
- sendShardTransaction: async () => ({ success: true }),
230
- sendShardTransactions: async () => [],
231
- getBalance: async () => 0n,
232
- getBalanceOf: async () => 0n,
233
- };
234
- const result = await this.prepareCrossChainTransaction(evmProxyMsg, mockSender, assets, options, true);
235
- return result.transaction.messages.map((r) => ({
236
- body: r.payload,
237
- destinationAddress: r.address,
238
- tonAmount: r.value,
239
- networkFee: r.extra.networkFeeIncluded,
240
- }));
241
- }
242
219
  }
243
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
  }
@@ -177,9 +177,5 @@ class TacSdk {
177
177
  getOperationTracker() {
178
178
  return this.operationTracker;
179
179
  }
180
- async prepareCrossChainTransactionPayload(evmProxyMsg, senderAddress, assets = [], options) {
181
- const normalizedAssets = await (0, Utils_1.normalizeAssets)(this.config, assets);
182
- return this.tonTransactionManager.prepareCrossChainTransactionPayload(evmProxyMsg, senderAddress, normalizedAssets, options);
183
- }
184
180
  }
185
181
  exports.TacSdk = TacSdk;
@@ -32,3 +32,8 @@ export declare function normalizeAssets(config: IConfiguration, assets?: AssetLi
32
32
  export declare function getAddressString(cell?: Cell): string;
33
33
  export declare function getNumber(len: number, cell?: Cell): number;
34
34
  export declare function getString(cell?: Cell): string;
35
+ /**
36
+ * Multiply-divide with rounding (muldivr)
37
+ * Calculates (a * b + c / 2) / c with proper rounding
38
+ */
39
+ export declare function muldivr(a: bigint, b: bigint, c: bigint): bigint;
@@ -19,6 +19,7 @@ exports.normalizeAssets = normalizeAssets;
19
19
  exports.getAddressString = getAddressString;
20
20
  exports.getNumber = getNumber;
21
21
  exports.getString = getString;
22
+ exports.muldivr = muldivr;
22
23
  const ton_1 = require("@ton/ton");
23
24
  const ethers_1 = require("ethers");
24
25
  const ton_crypto_1 = require("ton-crypto");
@@ -299,3 +300,13 @@ function getNumber(len, cell) {
299
300
  function getString(cell) {
300
301
  return cell?.beginParse().loadStringTail() ?? '';
301
302
  }
303
+ /**
304
+ * Multiply-divide with rounding (muldivr)
305
+ * Calculates (a * b + c / 2) / c with proper rounding
306
+ */
307
+ function muldivr(a, b, c) {
308
+ if (c === 0n) {
309
+ throw new Error('Division by zero in muldivr');
310
+ }
311
+ return (a * b + c / 2n) / c;
312
+ }
@@ -7,9 +7,6 @@ export type ShardMessage = {
7
7
  address: string;
8
8
  value: bigint;
9
9
  payload: Cell;
10
- extra: {
11
- networkFeeIncluded: bigint;
12
- };
13
10
  };
14
11
  export type ShardTransaction = {
15
12
  validUntil: number;
@@ -1,5 +1,5 @@
1
1
  import { SandboxContract } from '@ton/sandbox';
2
- import { Cell, OpenedContract } from '@ton/ton';
2
+ import { OpenedContract } from '@ton/ton';
3
3
  import { AbstractProvider } from 'ethers';
4
4
  import { JettonMinter, JettonMinterData } from '../../artifacts/tonTypes';
5
5
  import type { FT, NFT } from '../assets';
@@ -418,9 +418,3 @@ export type FTOriginAndData = {
418
418
  evmAddress?: string;
419
419
  jettonData?: JettonMinterData;
420
420
  };
421
- export type CrossChainPayloadResult = {
422
- body: Cell;
423
- destinationAddress: string;
424
- tonAmount: bigint;
425
- networkFee: bigint;
426
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonappchain/sdk",
3
- "version": "0.7.2-payload-builder-0.2",
3
+ "version": "0.7.2-scaled-ui-support-1",
4
4
  "repository": "https://github.com/TacBuild/tac-sdk.git",
5
5
  "author": "TAC. <developers@tac>",
6
6
  "license": "MIT",
@@ -73,6 +73,7 @@
73
73
  "@tonappchain/ton-lite-client": "3.0.6",
74
74
  "@tonconnect/ui": "^2.0.11",
75
75
  "bn.js": "^5.2.1",
76
+ "cli-table3": "^0.6.5",
76
77
  "dotenv": "^16.4.7",
77
78
  "ethers": "^6.13.5",
78
79
  "ton-crypto": "^3.2.0"