@tonappchain/sdk 0.7.1-frost-test-1 → 0.7.2-alpha-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 (72) hide show
  1. package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  2. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -1
  3. package/dist/artifacts/dev/ton/internal/build/JettonMinter.compiled.json +1 -1
  4. package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -1
  5. package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -1
  6. package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -1
  7. package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -1
  8. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +1 -0
  9. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +15 -5
  10. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +2 -2
  11. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +2 -2
  12. package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  13. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -1
  14. package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +1 -1
  15. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  16. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  17. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -1
  18. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  19. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +13 -1
  20. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +45 -7
  21. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +2 -2
  22. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +2 -2
  23. package/dist/src/adapters/contractOpener.d.ts +4 -0
  24. package/dist/src/adapters/contractOpener.js +165 -1
  25. package/dist/src/adapters/retryableContractOpener.d.ts +5 -1
  26. package/dist/src/adapters/retryableContractOpener.js +36 -7
  27. package/dist/src/assets/AssetFactory.js +8 -2
  28. package/dist/src/assets/FT.d.ts +1 -1
  29. package/dist/src/assets/FT.js +1 -1
  30. package/dist/src/assets/NFT.d.ts +1 -1
  31. package/dist/src/assets/NFT.js +1 -1
  32. package/dist/src/assets/TON.d.ts +3 -2
  33. package/dist/src/assets/TON.js +2 -1
  34. package/dist/src/errors/instances.d.ts +2 -0
  35. package/dist/src/errors/instances.js +3 -1
  36. package/dist/src/index.d.ts +1 -1
  37. package/dist/src/index.js +2 -4
  38. package/dist/src/interfaces/Asset.d.ts +4 -9
  39. package/dist/src/interfaces/ContractOpener.d.ts +5 -1
  40. package/dist/src/interfaces/ISimulator.d.ts +15 -1
  41. package/dist/src/interfaces/ITONTransactionManager.d.ts +20 -1
  42. package/dist/src/interfaces/ITacSDK.d.ts +10 -1
  43. package/dist/src/interfaces/ITxFinalizer.d.ts +5 -0
  44. package/dist/src/interfaces/ITxFinalizer.js +2 -0
  45. package/dist/src/interfaces/WalletInstanse.d.ts +4 -8
  46. package/dist/src/sdk/Consts.d.ts +50 -1
  47. package/dist/src/sdk/Consts.js +52 -2
  48. package/dist/src/sdk/Simulator.d.ts +11 -2
  49. package/dist/src/sdk/Simulator.js +190 -0
  50. package/dist/src/sdk/StartTracking.d.ts +5 -3
  51. package/dist/src/sdk/StartTracking.js +60 -40
  52. package/dist/src/sdk/TONTransactionManager.d.ts +8 -5
  53. package/dist/src/sdk/TONTransactionManager.js +49 -6
  54. package/dist/src/sdk/TacSdk.d.ts +2 -1
  55. package/dist/src/sdk/TacSdk.js +7 -1
  56. package/dist/src/sdk/TxFinalizer.d.ts +15 -4
  57. package/dist/src/sdk/TxFinalizer.js +102 -23
  58. package/dist/src/sdk/Utils.d.ts +10 -1
  59. package/dist/src/sdk/Utils.js +48 -0
  60. package/dist/src/sender/BatchSender.js +19 -0
  61. package/dist/src/sender/MockSender.d.ts +2 -0
  62. package/dist/src/sender/MockSender.js +13 -0
  63. package/dist/src/sender/RawSender.js +34 -1
  64. package/dist/src/sender/SenderFactory.js +1 -1
  65. package/dist/src/sender/TonConnectSender.js +2 -0
  66. package/dist/src/sender/index.d.ts +1 -0
  67. package/dist/src/sender/index.js +1 -0
  68. package/dist/src/structs/InternalStruct.d.ts +45 -1
  69. package/dist/src/structs/Struct.d.ts +29 -2
  70. package/dist/src/wrappers/HighloadWalletV3.d.ts +5 -3
  71. package/dist/src/wrappers/HighloadWalletV3.js +14 -3
  72. package/package.json +3 -4
@@ -1,4 +1,4 @@
1
- import { Cell } from '@ton/ton';
1
+ import { Address, Cell } from '@ton/ton';
2
2
  import { AbstractProvider, ethers } from 'ethers';
3
3
  import { ICrossChainLayer, ISAFactory, ISettings, ITokenUtils } from '../../artifacts/tacTypes';
4
4
  import { ContractOpener } from '../interfaces';
@@ -7,6 +7,10 @@ export type ShardMessage = {
7
7
  address: string;
8
8
  value: bigint;
9
9
  payload: Cell;
10
+ extra: {
11
+ tonNetworkFee: bigint;
12
+ tacEstimatedGas?: bigint;
13
+ };
10
14
  };
11
15
  export type ShardTransaction = {
12
16
  validUntil: number;
@@ -61,6 +65,7 @@ export type OperationIdWithLogIndex = {
61
65
  export type OperationIdWithLogIndexResponse = ResponseBase<OperationIdWithLogIndex>;
62
66
  export interface SendResult {
63
67
  success: boolean;
68
+ boc: string;
64
69
  result?: unknown;
65
70
  error?: Error;
66
71
  lastMessageIndex?: number;
@@ -88,6 +93,7 @@ export type ToncenterTransaction = {
88
93
  }[];
89
94
  };
90
95
  export type TransactionDepth = {
96
+ address?: Address;
91
97
  hash: string;
92
98
  depth: number;
93
99
  };
@@ -114,3 +120,41 @@ export type ConvertedCurrencyRawResult = {
114
120
  tacPrice: USDPriceInfoRaw;
115
121
  tonPrice: USDPriceInfoRaw;
116
122
  };
123
+ export type GetTransactionsOptions = {
124
+ limit: number;
125
+ lt?: string;
126
+ hash?: string;
127
+ to_lt?: string;
128
+ inclusive?: boolean;
129
+ archival?: boolean;
130
+ timeoutMs?: number;
131
+ retryDelayMs?: number;
132
+ };
133
+ export type AddressInformation = {
134
+ lastTransaction: {
135
+ lt: string;
136
+ hash: string;
137
+ };
138
+ };
139
+ export type TONFeeCalculationParams = {
140
+ accountBits: number;
141
+ accountCells: number;
142
+ timeDelta: number;
143
+ msgBits: number;
144
+ msgCells: number;
145
+ gasUsed: number;
146
+ bitPricePs?: number;
147
+ cellPricePs?: number;
148
+ lumpPrice?: number;
149
+ gasPrice?: number;
150
+ firstFrac?: number;
151
+ ihrPriceFactor?: number;
152
+ };
153
+ export type TransactionFeeCalculationStep = {
154
+ accountBits: number;
155
+ accountCells: number;
156
+ gasUsed: number;
157
+ msgBits: number;
158
+ msgCells: number;
159
+ timeDelta: number;
160
+ };
@@ -1,9 +1,11 @@
1
1
  import { SandboxContract } from '@ton/sandbox';
2
- import { OpenedContract } from '@ton/ton';
2
+ import { Cell, 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';
6
6
  import type { Asset, ContractOpener, ILogger } from '../interfaces';
7
+ import { ITxFinalizer } from '../interfaces/ITxFinalizer';
8
+ import { SendResult } from './InternalStruct';
7
9
  export type ContractState = {
8
10
  balance: bigint;
9
11
  state: 'active' | 'uninitialized' | 'frozen';
@@ -59,6 +61,10 @@ export type TONParams = {
59
61
  * Address of TON settings contract. Use only for tests.
60
62
  */
61
63
  settingsAddress?: string;
64
+ /**
65
+ * TxFinalizer for tracking transaction tree
66
+ */
67
+ txFinalizer?: ITxFinalizer;
62
68
  };
63
69
  export type SDKParams = {
64
70
  /**
@@ -110,7 +116,7 @@ export type TransactionLinker = {
110
116
  shardCount: number;
111
117
  shardsKey: string;
112
118
  timestamp: number;
113
- sendTransactionResult?: unknown;
119
+ sendTransactionResult?: SendResult;
114
120
  };
115
121
  export type TransactionLinkerWithOperationId = TransactionLinker & {
116
122
  operationId?: string;
@@ -279,6 +285,7 @@ export type FeeParams = {
279
285
  protocolFee: bigint;
280
286
  evmExecutorFee: bigint;
281
287
  tvmExecutorFee: bigint;
288
+ evmEstimatedGas?: bigint;
282
289
  };
283
290
  export type CrossChainTransactionOptions = {
284
291
  allowSimulationError?: boolean;
@@ -367,6 +374,11 @@ export interface WaitOptions<T = unknown, TContext = unknown> {
367
374
  * Receives both the result and optional context with additional parameters
368
375
  */
369
376
  onSuccess?: (result: T, context?: TContext) => Promise<void> | void;
377
+ /**
378
+ * Ensure that TON transaction is succesful
379
+ * @default true
380
+ */
381
+ ensureTxExecuted?: boolean;
370
382
  }
371
383
  export declare const defaultWaitOptions: WaitOptions;
372
384
  export declare enum Origin {
@@ -418,3 +430,18 @@ export type FTOriginAndData = {
418
430
  evmAddress?: string;
419
431
  jettonData?: JettonMinterData;
420
432
  };
433
+ export type CrossChainPayloadResult = {
434
+ body: Cell;
435
+ destinationAddress: string;
436
+ tonAmount: bigint;
437
+ tonNetworkFee: bigint;
438
+ tacEstimatedGas?: bigint;
439
+ transactionLinker: TransactionLinker;
440
+ };
441
+ export type GeneratePayloadParams = {
442
+ excessReceiver: string;
443
+ evmData: Cell;
444
+ crossChainTonAmount?: bigint;
445
+ forwardFeeTonAmount?: bigint;
446
+ feeParams?: FeeParams;
447
+ };
@@ -25,6 +25,8 @@ export declare class HighloadWalletV3 implements WalletInstanse {
25
25
  data: Cell;
26
26
  } | undefined);
27
27
  getSeqno(): Promise<number>;
28
+ send(provider: ContractProvider, msg: Cell): Promise<void>;
29
+ createTransfer(): Cell;
28
30
  sendTransfer(provider: ContractProvider, args: {
29
31
  seqno?: number;
30
32
  secretKey: Buffer;
@@ -33,7 +35,7 @@ export declare class HighloadWalletV3 implements WalletInstanse {
33
35
  timeout?: number;
34
36
  subwalletId?: number;
35
37
  createdAt?: number;
36
- }): Promise<void>;
38
+ }): Promise<string>;
37
39
  static create(config: HighloadWalletV3Config, code?: Cell, workchain?: number): HighloadWalletV3;
38
40
  static generateCreatedAt(): number;
39
41
  sendExternalMessage(provider: ContractProvider, secretKey: Buffer, opts: {
@@ -43,8 +45,8 @@ export declare class HighloadWalletV3 implements WalletInstanse {
43
45
  createdAt: number;
44
46
  subwalletId: number;
45
47
  timeout: number;
46
- }): Promise<void>;
47
- sendBatch(provider: ContractProvider, secretKey: Buffer, messages: OutActionSendMsg[], subwallet: number, timeout: number, createdAt?: number, value?: bigint): Promise<void>;
48
+ }): Promise<string>;
49
+ sendBatch(provider: ContractProvider, secretKey: Buffer, messages: OutActionSendMsg[], subwallet: number, timeout: number, createdAt?: number, value?: bigint): Promise<string>;
48
50
  getQueryIdFromCreatedAt(createdAt: number): HighloadQueryId;
49
51
  getExternalMessage(messages: MessageRelaxed[], sendMode: SendMode, value: bigint, queryId: HighloadQueryId): MessageRelaxed;
50
52
  static createInternalTransferBody(opts: {
@@ -30,9 +30,15 @@ class HighloadWalletV3 {
30
30
  async getSeqno() {
31
31
  return 0; // will not be used
32
32
  }
33
+ async send(provider, msg) {
34
+ await provider.external(msg);
35
+ }
36
+ createTransfer() {
37
+ throw new Error('Not implemented. Use sendTransfer instead - it returns the BOC as a string');
38
+ }
33
39
  async sendTransfer(provider, args) {
34
40
  if (!args.messages.length) {
35
- return;
41
+ return '';
36
42
  }
37
43
  const state = await provider.getState();
38
44
  const isActive = state.state.type === 'active';
@@ -43,7 +49,7 @@ class HighloadWalletV3 {
43
49
  mode: args.sendMode,
44
50
  outMsg: msg,
45
51
  }));
46
- await this.sendBatch(provider, args.secretKey, actions, subwalletId, timeout, args.createdAt);
52
+ return await this.sendBatch(provider, args.secretKey, actions, subwalletId, timeout, args.createdAt);
47
53
  }
48
54
  static create(config, code = HIGHLOAD_V3_CODE, workchain = 0) {
49
55
  const data = highloadWalletV3ConfigToCell(config);
@@ -72,7 +78,12 @@ class HighloadWalletV3 {
72
78
  .storeUint(opts.createdAt, exports.TIMESTAMP_SIZE)
73
79
  .storeUint(opts.timeout, exports.TIMEOUT_SIZE)
74
80
  .endCell();
75
- await provider.external((0, ton_1.beginCell)().storeBuffer((0, ton_crypto_1.sign)(messageInner.hash(), secretKey)).storeRef(messageInner).endCell());
81
+ const externalMessage = (0, ton_1.beginCell)()
82
+ .storeBuffer((0, ton_crypto_1.sign)(messageInner.hash(), secretKey))
83
+ .storeRef(messageInner)
84
+ .endCell();
85
+ await provider.external(externalMessage);
86
+ return externalMessage.toBoc().toString('base64');
76
87
  }
77
88
  async sendBatch(provider, secretKey, messages, subwallet, timeout, createdAt, value = 0n) {
78
89
  if (createdAt == undefined) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonappchain/sdk",
3
- "version": "0.7.1-frost-test-1",
3
+ "version": "0.7.2-alpha-1",
4
4
  "repository": "https://github.com/TacBuild/tac-sdk.git",
5
5
  "author": "TAC. <developers@tac>",
6
6
  "license": "MIT",
@@ -69,11 +69,10 @@
69
69
  "dependencies": {
70
70
  "@aws-crypto/sha256-js": "^5.2.0",
71
71
  "@orbs-network/ton-access": "^2.3.3",
72
- "@ton/ton": "15.1.0",
72
+ "@ton/ton": "^16.1.0",
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",
77
76
  "dotenv": "^16.4.7",
78
77
  "ethers": "^6.13.5",
79
78
  "ton-crypto": "^3.2.0"
@@ -114,4 +113,4 @@
114
113
  }
115
114
  },
116
115
  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
117
- }
116
+ }