@tonappchain/sdk 0.7.2-scaled-ui-support-2 → 0.7.2

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 (171) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +198 -198
  3. package/dist/artifacts/dev/index.d.ts +2 -2
  4. package/dist/artifacts/dev/index.js +2 -1
  5. package/dist/artifacts/dev/tac/endpoints.d.ts +1 -0
  6. package/dist/artifacts/dev/tac/endpoints.js +2 -1
  7. package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  8. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -1
  9. package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -1
  10. package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -1
  11. package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -1
  12. package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -1
  13. package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -1
  14. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +53 -6
  15. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +130 -17
  16. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +2 -0
  17. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +3 -1
  18. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +9 -0
  19. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +10 -1
  20. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.d.ts +7 -0
  21. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +9 -2
  22. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +9 -0
  23. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +9 -0
  24. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +7 -0
  25. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +7 -0
  26. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +7 -0
  27. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +8 -1
  28. package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +1 -0
  29. package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +1 -0
  30. package/dist/artifacts/dev/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
  31. package/dist/artifacts/dev/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
  32. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
  33. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
  34. package/dist/artifacts/mainnet/index.d.ts +2 -2
  35. package/dist/artifacts/mainnet/index.js +2 -1
  36. package/dist/artifacts/mainnet/tac/endpoints.d.ts +1 -0
  37. package/dist/artifacts/mainnet/tac/endpoints.js +2 -1
  38. package/dist/artifacts/mainnet/ton/endpoints.d.ts +1 -1
  39. package/dist/artifacts/mainnet/ton/endpoints.js +1 -1
  40. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  41. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -1
  42. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -1
  43. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  44. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  45. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -1
  46. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  47. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +1 -13
  48. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +7 -45
  49. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +2 -2
  50. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +2 -2
  51. package/dist/artifacts/testnet/index.d.ts +2 -2
  52. package/dist/artifacts/testnet/index.js +2 -1
  53. package/dist/artifacts/testnet/tac/endpoints.d.ts +1 -0
  54. package/dist/artifacts/testnet/tac/endpoints.js +2 -1
  55. package/dist/artifacts/testnet/ton/endpoints.d.ts +1 -1
  56. package/dist/artifacts/testnet/ton/endpoints.js +1 -1
  57. package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  58. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -1
  59. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  60. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  61. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -1
  62. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  63. package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -1
  64. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +53 -6
  65. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +130 -17
  66. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +2 -0
  67. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +3 -1
  68. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +9 -0
  69. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +10 -1
  70. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +7 -0
  71. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +9 -2
  72. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +9 -0
  73. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +9 -0
  74. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +7 -0
  75. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +7 -0
  76. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +7 -0
  77. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +8 -1
  78. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +1 -0
  79. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +1 -0
  80. package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
  81. package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
  82. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
  83. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
  84. package/dist/src/adapters/BaseContractOpener.d.ts +76 -0
  85. package/dist/src/adapters/BaseContractOpener.js +440 -0
  86. package/dist/src/adapters/LiteClientOpener.d.ts +38 -0
  87. package/dist/src/adapters/LiteClientOpener.js +141 -0
  88. package/dist/src/adapters/OpenerUtils.d.ts +3 -0
  89. package/dist/src/adapters/OpenerUtils.js +40 -0
  90. package/dist/src/adapters/RetryableContractOpener.d.ts +40 -0
  91. package/dist/src/adapters/RetryableContractOpener.js +290 -0
  92. package/dist/src/adapters/SandboxOpener.d.ts +15 -0
  93. package/dist/src/adapters/SandboxOpener.js +35 -0
  94. package/dist/src/adapters/TonClient4Opener.d.ts +24 -0
  95. package/dist/src/adapters/TonClient4Opener.js +95 -0
  96. package/dist/src/adapters/TonClientOpener.d.ts +19 -0
  97. package/dist/src/adapters/TonClientOpener.js +82 -0
  98. package/dist/src/adapters/index.d.ts +7 -2
  99. package/dist/src/adapters/index.js +7 -2
  100. package/dist/src/assets/AssetCache.d.ts +8 -8
  101. package/dist/src/assets/AssetCache.js +3 -0
  102. package/dist/src/assets/AssetFactory.js +8 -2
  103. package/dist/src/assets/FT.d.ts +2 -3
  104. package/dist/src/assets/FT.js +4 -7
  105. package/dist/src/assets/NFT.d.ts +1 -1
  106. package/dist/src/assets/NFT.js +1 -1
  107. package/dist/src/assets/TON.d.ts +3 -2
  108. package/dist/src/assets/TON.js +2 -1
  109. package/dist/src/errors/errors.d.ts +12 -1
  110. package/dist/src/errors/errors.js +66 -2
  111. package/dist/src/errors/index.d.ts +2 -2
  112. package/dist/src/errors/index.js +4 -1
  113. package/dist/src/errors/instances.d.ts +7 -2
  114. package/dist/src/errors/instances.js +67 -2
  115. package/dist/src/index.d.ts +3 -1
  116. package/dist/src/index.js +6 -4
  117. package/dist/src/interfaces/Asset.d.ts +4 -9
  118. package/dist/src/interfaces/ContractOpener.d.ts +76 -2
  119. package/dist/src/interfaces/IOperationTracker.d.ts +22 -22
  120. package/dist/src/interfaces/ISimulator.d.ts +9 -1
  121. package/dist/src/interfaces/ITONTransactionManager.d.ts +20 -1
  122. package/dist/src/interfaces/ITacExplorerClient.d.ts +8 -0
  123. package/dist/src/interfaces/ITacExplorerClient.js +2 -0
  124. package/dist/src/interfaces/ITacSDK.d.ts +25 -1
  125. package/dist/src/interfaces/ITxFinalizer.d.ts +4 -0
  126. package/dist/src/interfaces/ITxFinalizer.js +2 -0
  127. package/dist/src/interfaces/WalletInstanse.d.ts +4 -8
  128. package/dist/src/interfaces/index.d.ts +1 -0
  129. package/dist/src/interfaces/index.js +1 -0
  130. package/dist/src/sdk/Configuration.d.ts +5 -3
  131. package/dist/src/sdk/Configuration.js +54 -7
  132. package/dist/src/sdk/Consts.d.ts +18 -1
  133. package/dist/src/sdk/Consts.js +21 -2
  134. package/dist/src/sdk/Fees.d.ts +21 -0
  135. package/dist/src/sdk/Fees.js +201 -0
  136. package/dist/src/sdk/LiteSequencerClient.d.ts +1 -0
  137. package/dist/src/sdk/LiteSequencerClient.js +39 -17
  138. package/dist/src/sdk/OperationTracker.d.ts +11 -11
  139. package/dist/src/sdk/OperationTracker.js +46 -94
  140. package/dist/src/sdk/Simulator.d.ts +10 -2
  141. package/dist/src/sdk/Simulator.js +102 -0
  142. package/dist/src/sdk/StartTracking.d.ts +12 -7
  143. package/dist/src/sdk/StartTracking.js +75 -49
  144. package/dist/src/sdk/TONTransactionManager.d.ts +5 -4
  145. package/dist/src/sdk/TONTransactionManager.js +63 -8
  146. package/dist/src/sdk/TacExplorerClient.d.ts +8 -0
  147. package/dist/src/sdk/TacExplorerClient.js +22 -0
  148. package/dist/src/sdk/TacSdk.d.ts +8 -2
  149. package/dist/src/sdk/TacSdk.js +27 -4
  150. package/dist/src/sdk/TxFinalizer.d.ts +4 -3
  151. package/dist/src/sdk/TxFinalizer.js +41 -41
  152. package/dist/src/sdk/Utils.d.ts +20 -1
  153. package/dist/src/sdk/Utils.js +158 -10
  154. package/dist/src/sender/BatchSender.js +19 -0
  155. package/dist/src/sender/MockSender.d.ts +2 -0
  156. package/dist/src/sender/MockSender.js +13 -0
  157. package/dist/src/sender/RawSender.js +34 -1
  158. package/dist/src/sender/SenderFactory.js +1 -1
  159. package/dist/src/sender/TonConnectSender.js +2 -0
  160. package/dist/src/sender/index.d.ts +1 -0
  161. package/dist/src/sender/index.js +1 -0
  162. package/dist/src/structs/InternalStruct.d.ts +98 -4
  163. package/dist/src/structs/Struct.d.ts +183 -7
  164. package/dist/src/structs/Struct.js +4 -3
  165. package/dist/src/wrappers/HighloadWalletV3.d.ts +5 -3
  166. package/dist/src/wrappers/HighloadWalletV3.js +14 -3
  167. package/package.json +121 -117
  168. package/dist/src/adapters/contractOpener.d.ts +0 -20
  169. package/dist/src/adapters/contractOpener.js +0 -126
  170. package/dist/src/adapters/retryableContractOpener.d.ts +0 -24
  171. package/dist/src/adapters/retryableContractOpener.js +0 -111
@@ -1,6 +1,7 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender, Slice } from '@ton/core';
2
2
  import { StorageStats } from './utils/GasUtils';
3
3
  import { MerkleRoot } from './utils/MerkleRoots';
4
+ import { CrossChainLayerPayload } from './utils/CrossChainLayerPayload';
4
5
  export type CrossChainLayerConfig = {
5
6
  adminAddress: string;
6
7
  newAdminAddress?: string;
@@ -17,6 +18,8 @@ export type CrossChainLayerConfig = {
17
18
  tacProtocolFee?: number;
18
19
  protocolFeeSupply?: number;
19
20
  executorCode: Cell;
21
+ stakingAdapterAddress?: string;
22
+ stakedTonSupply?: number;
20
23
  };
21
24
  export type EpochInfo = {
22
25
  lastMerkleRoot: bigint;
@@ -32,6 +35,10 @@ export type ExecutorData = {
32
35
  address: Address;
33
36
  stateInit: Cell;
34
37
  };
38
+ export type StakingInfo = {
39
+ stakingAdapterAddress: Address;
40
+ stakedTonSupply: bigint;
41
+ };
35
42
  export declare enum MsgType {
36
43
  tonTransfer = 1255570643,
37
44
  jettonTransfer = 688302850,
@@ -41,14 +48,14 @@ export declare enum MsgType {
41
48
  }
42
49
  export declare const CrossChainLayerOpCodes: {
43
50
  anyone_tvmMsgToEVM: number;
44
- anyone_errorNotification: number;
51
+ anyone_tvmMsgToEvmErrorNotification: number;
45
52
  anyone_excesses: number;
46
53
  anyone_addProtocolFee: number;
47
54
  anyone_collectProtocolFee: number;
48
55
  anyone_collectProtocolFeeNotification: number;
49
56
  executor_evmMsgToTVM: number;
50
- executor_revertSpentParam: number;
51
57
  executor_errorNotification: number;
58
+ executor_evmMsgToTvmErrorNotification: number;
52
59
  admin_changeAdminAddress: number;
53
60
  admin_cancelChangingAdminAddress: number;
54
61
  admin_updateCode: number;
@@ -56,28 +63,44 @@ export declare const CrossChainLayerOpCodes: {
56
63
  admin_updateEpochDelay: number;
57
64
  admin_updateTonProtocolFee: number;
58
65
  admin_updateTacProtocolFee: number;
66
+ admin_changeStakingAdapterAddress: number;
67
+ admin_stake: number;
68
+ admin_unstake: number;
59
69
  newAdmin_confirmChangingAdminAddress: number;
60
70
  sequencerMultisig_changeSequencerMultisigAddress: number;
61
71
  sequencerMultisig_updateMerkleRoot: number;
62
72
  sequencerMultisig_updateGroupPublicKey: number;
73
+ stakingAdapter_manualUnstakeRequest: number;
74
+ stakingAdapter_automaticUnstakeRequest: number;
75
+ stakingAdapter_stakeRequest: number;
76
+ stakingAdapter_reportUnstakeResult: number;
77
+ stakingAdapter_reportUnstakeResultError: number;
78
+ jettonMinter_mint: number;
79
+ jettonWallet_transferNotification: number;
80
+ jettonWallet_burn: number;
63
81
  };
64
82
  export declare const CrossChainLayerErrors: {
65
83
  noErrors: number;
84
+ invalidSenderSignature: number;
66
85
  systemNotEnoughTon: number;
67
86
  notFromAdmin: number;
68
87
  notFromExecutor: number;
69
88
  notFromSequencerMultisig: number;
70
89
  notFromNewAdmin: number;
90
+ notFromStakingAdapter: number;
71
91
  newAdminAddressIsNone: number;
72
92
  notEnoughTon: number;
73
93
  insufficientBalance: number;
94
+ insufficientStakedBalance: number;
74
95
  zeroFeeSupply: number;
75
96
  invalidProof: number;
76
97
  votingNotActive: number;
77
98
  messageCollectEndTimeLow: number;
78
99
  notEnoughProtocolFee: number;
79
100
  messageCollectEndTimeHigh: number;
80
- invalidSenderSignature: number;
101
+ feeCalculationUnsupported: number;
102
+ stakeAmountTooHigh: number;
103
+ unstakeAmountTooHigh: number;
81
104
  unknownOp: number;
82
105
  };
83
106
  export declare function crossChainLayerConfigToCell(config: CrossChainLayerConfig): Cell;
@@ -87,9 +110,14 @@ export declare class CrossChainLayer implements Contract {
87
110
  code: Cell;
88
111
  data: Cell;
89
112
  } | undefined;
113
+ static tvmMsgToEvmGasConsumption: bigint;
114
+ static feeMinterGasConsumption: bigint;
115
+ static collectionMintGasConsumption: bigint;
90
116
  static minStorageDuration: number;
91
117
  static storageStats: StorageStats;
92
118
  static addFeeGasConsumption: bigint;
119
+ static reserveFee: bigint;
120
+ static reportUnstakeResultGasConsumption: bigint;
93
121
  constructor(address: Address, init?: {
94
122
  code: Cell;
95
123
  data: Cell;
@@ -114,7 +142,7 @@ export declare class CrossChainLayer implements Contract {
114
142
  }): Promise<void>;
115
143
  sendErrorNotification(provider: ContractProvider, via: Sender, value: bigint, opts: {
116
144
  queryId?: number;
117
- payload: Cell;
145
+ operationId: bigint;
118
146
  responseAddress: Address;
119
147
  }): Promise<void>;
120
148
  sendUpdateGroupPublicKey(provider: ContractProvider, via: Sender, value: bigint, opts: {
@@ -168,9 +196,28 @@ export declare class CrossChainLayer implements Contract {
168
196
  queryId?: number;
169
197
  code: Cell;
170
198
  }): Promise<void>;
199
+ sendExcesses(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
200
+ sendChangeStakingAdapter(provider: ContractProvider, via: Sender, value: bigint, opts: {
201
+ queryId?: number;
202
+ stakingAdapterAddress: string;
203
+ }): Promise<void>;
204
+ sendStake(provider: ContractProvider, via: Sender, value: bigint, opts: {
205
+ queryId?: number;
206
+ stakeAmount: number | bigint;
207
+ }): Promise<void>;
208
+ sendUnstake(provider: ContractProvider, via: Sender, value: bigint, opts: {
209
+ queryId?: number;
210
+ unstakeAmount: number | bigint;
211
+ }): Promise<void>;
212
+ sendReportUnstakeResult(provider: ContractProvider, via: Sender, value: bigint, opts: {
213
+ queryId?: number;
214
+ payload: CrossChainLayerPayload;
215
+ }): Promise<void>;
171
216
  getFullData(provider: ContractProvider): Promise<CrossChainLayerConfig>;
172
217
  getCurrentEpochInfo(provider: ContractProvider): Promise<EpochInfo>;
173
- getExecutorAddress(provider: ContractProvider, payload: Cell): Promise<Address>;
174
- getExecutorData(provider: ContractProvider, payload: Cell): Promise<ExecutorData>;
218
+ getStakingInfo(provider: ContractProvider): Promise<StakingInfo>;
219
+ getExecutorAddress(provider: ContractProvider, operationId: bigint): Promise<Address>;
220
+ getStorageFee(provider: ContractProvider, merkleRoots: Cell): Promise<bigint>;
221
+ getExecutorData(provider: ContractProvider, operationId: bigint): Promise<ExecutorData>;
175
222
  getEvmMsgToTvmFees(provider: ContractProvider, payload: Cell, proofBits: bigint, proofCells: bigint, executorFeeAmount: bigint, executorFeeToken: Address): Promise<bigint>;
176
223
  }
@@ -7,6 +7,7 @@ const crypto_1 = require("@ton/crypto");
7
7
  const Constants_1 = require("./Constants");
8
8
  const GasUtils_1 = require("./utils/GasUtils");
9
9
  const MerkleRoots_1 = require("./utils/MerkleRoots");
10
+ const CrossChainLayerPayload_1 = require("./utils/CrossChainLayerPayload");
10
11
  var MsgType;
11
12
  (function (MsgType) {
12
13
  MsgType[MsgType["tonTransfer"] = 1255570643] = "tonTransfer";
@@ -17,43 +18,59 @@ var MsgType;
17
18
  })(MsgType || (exports.MsgType = MsgType = {}));
18
19
  exports.CrossChainLayerOpCodes = {
19
20
  anyone_tvmMsgToEVM: 0x6c582059,
20
- anyone_errorNotification: 0xae7df95b,
21
+ anyone_tvmMsgToEvmErrorNotification: 0xae7df95b,
21
22
  anyone_excesses: 0xd53276db,
22
23
  anyone_addProtocolFee: 0x48e660b5,
23
24
  anyone_collectProtocolFee: 0x1f95f86c,
24
25
  anyone_collectProtocolFeeNotification: 0xf358b6d0,
25
- executor_evmMsgToTVM: 0x0e50d313,
26
- executor_revertSpentParam: 0x959f183a,
27
- executor_errorNotification: 0xcf6a5da4,
26
+ executor_evmMsgToTVM: 0x497dae1d,
27
+ executor_errorNotification: 0xcda6f261,
28
+ executor_evmMsgToTvmErrorNotification: 0x86f27385,
28
29
  admin_changeAdminAddress: 0x581879bc,
29
30
  admin_cancelChangingAdminAddress: 0x60094a1b,
30
- admin_updateCode: 0x20faec53,
31
+ admin_updateCode: 0x6e7145f9,
31
32
  admin_updateExecutorCode: 0x7ee5a6d0,
32
33
  admin_updateEpochDelay: 0xe97250b7,
33
34
  admin_updateTonProtocolFee: 0x063199b7,
34
35
  admin_updateTacProtocolFee: 0x3531465c,
36
+ admin_changeStakingAdapterAddress: 0x74db6fbd,
37
+ admin_stake: 0x149c7a93,
38
+ admin_unstake: 0x461d3038,
35
39
  newAdmin_confirmChangingAdminAddress: 0x6a4fbe34,
36
40
  sequencerMultisig_changeSequencerMultisigAddress: 0x5cec6be0,
37
41
  sequencerMultisig_updateMerkleRoot: 0x4b19e42a,
38
42
  sequencerMultisig_updateGroupPublicKey: 0x74cd76b2,
43
+ stakingAdapter_manualUnstakeRequest: 0x0659627f,
44
+ stakingAdapter_automaticUnstakeRequest: 0x3c497a61,
45
+ stakingAdapter_stakeRequest: 0x58d9b21b,
46
+ stakingAdapter_reportUnstakeResult: 0x46a47169,
47
+ stakingAdapter_reportUnstakeResultError: 0x49e26543,
48
+ jettonMinter_mint: 0xd7b9c06e,
49
+ jettonWallet_transferNotification: 0x7362d09c,
50
+ jettonWallet_burn: 0x595f07bc,
39
51
  };
40
52
  exports.CrossChainLayerErrors = {
41
53
  noErrors: 0,
54
+ invalidSenderSignature: 32,
42
55
  systemNotEnoughTon: 37,
43
56
  notFromAdmin: 70,
44
57
  notFromExecutor: 71,
45
58
  notFromSequencerMultisig: 72,
46
59
  notFromNewAdmin: 73,
60
+ notFromStakingAdapter: 74,
47
61
  newAdminAddressIsNone: 80,
48
62
  notEnoughTon: 100,
49
63
  insufficientBalance: 101,
64
+ insufficientStakedBalance: 102,
50
65
  zeroFeeSupply: 200,
51
66
  invalidProof: 201,
52
67
  votingNotActive: 202,
53
68
  messageCollectEndTimeLow: 203,
54
69
  notEnoughProtocolFee: 204,
55
70
  messageCollectEndTimeHigh: 205,
56
- invalidSenderSignature: 32,
71
+ feeCalculationUnsupported: 206,
72
+ stakeAmountTooHigh: 207,
73
+ unstakeAmountTooHigh: 208,
57
74
  unknownOp: 0xfffff,
58
75
  };
59
76
  function crossChainLayerConfigToCell(config) {
@@ -62,14 +79,14 @@ function crossChainLayerConfigToCell(config) {
62
79
  .storeAddress(config.newAdminAddress ? core_1.Address.parse(config.newAdminAddress) : null)
63
80
  .storeAddress(core_1.Address.parse(config.sequencerMultisigAddress))
64
81
  .storeRef((0, core_1.beginCell)()
65
- .storeUint(config.groupPublicKey ? config.groupPublicKey : 0n, Constants_1.Params.bitsize.hash)
66
- .endCell())
67
- .storeRef((0, core_1.beginCell)()
68
82
  .storeCoins(config.tacProtocolFee ? (0, core_1.toNano)(config.tacProtocolFee.toFixed(9)) : 0)
69
83
  .storeCoins(config.tonProtocolFee ? (0, core_1.toNano)(config.tonProtocolFee.toFixed(9)) : 0)
70
84
  .storeCoins(config.protocolFeeSupply ? (0, core_1.toNano)(config.protocolFeeSupply.toFixed(9)) : 0)
71
85
  .endCell())
86
+ .storeRef((0, core_1.beginCell)()
87
+ .storeUint(config.groupPublicKey ? config.groupPublicKey : 0n, Constants_1.Params.bitsize.hash)
72
88
  .storeRef(config.executorCode)
89
+ .endCell())
73
90
  .storeRef((0, core_1.beginCell)()
74
91
  .storeUint(config.epochDelay, Constants_1.Params.bitsize.time)
75
92
  .storeUint(config.prevEpoch ? config.prevEpoch : 0, Constants_1.Params.bitsize.time)
@@ -77,7 +94,11 @@ function crossChainLayerConfigToCell(config) {
77
94
  .storeUint(config.messageCollectEndTime ? config.messageCollectEndTime : 0, Constants_1.Params.bitsize.time)
78
95
  .storeUint(config.nextVotingTime ? config.nextVotingTime : 0, Constants_1.Params.bitsize.time)
79
96
  .storeUint(config.maxRootsSize, 4)
80
- .storeDict((0, MerkleRoots_1.arrayToCell)(config.merkleRoots ?? []))
97
+ .storeDict((0, MerkleRoots_1.arrayToDict)(config.merkleRoots ?? []))
98
+ .endCell())
99
+ .storeRef((0, core_1.beginCell)()
100
+ .storeAddress(config.stakingAdapterAddress ? core_1.Address.parse(config.stakingAdapterAddress) : null)
101
+ .storeCoins(config.stakedTonSupply ? (0, core_1.toNano)(config.stakedTonSupply.toFixed(9)) : 0)
81
102
  .endCell())
82
103
  .endCell();
83
104
  }
@@ -137,7 +158,7 @@ class CrossChainLayer {
137
158
  body: (0, core_1.beginCell)()
138
159
  .storeUint(exports.CrossChainLayerOpCodes.executor_errorNotification, 32)
139
160
  .storeUint(opts.queryId || 0, 64)
140
- .storeRef(opts.payload)
161
+ .storeUint(opts.operationId, Constants_1.Params.bitsize.hash)
141
162
  .storeAddress(opts.responseAddress)
142
163
  .endCell(),
143
164
  });
@@ -288,6 +309,71 @@ class CrossChainLayer {
288
309
  .endCell(),
289
310
  });
290
311
  }
312
+ async sendExcesses(provider, via, value) {
313
+ await provider.internal(via, {
314
+ value,
315
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
316
+ body: (0, core_1.beginCell)().endCell(),
317
+ });
318
+ }
319
+ async sendChangeStakingAdapter(provider, via, value, opts) {
320
+ await provider.internal(via, {
321
+ value,
322
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
323
+ body: (0, core_1.beginCell)()
324
+ .storeUint(exports.CrossChainLayerOpCodes.admin_changeStakingAdapterAddress, Constants_1.Params.bitsize.op)
325
+ .storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
326
+ .storeAddress(core_1.Address.parse(opts.stakingAdapterAddress))
327
+ .endCell(),
328
+ });
329
+ }
330
+ async sendStake(provider, via, value, opts) {
331
+ let stakeAmount;
332
+ if (typeof opts.stakeAmount === 'bigint') {
333
+ stakeAmount = opts.stakeAmount;
334
+ }
335
+ else {
336
+ stakeAmount = (0, core_1.toNano)(opts.stakeAmount.toFixed(9));
337
+ }
338
+ await provider.internal(via, {
339
+ value,
340
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
341
+ body: (0, core_1.beginCell)()
342
+ .storeUint(exports.CrossChainLayerOpCodes.admin_stake, Constants_1.Params.bitsize.op)
343
+ .storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
344
+ .storeCoins(stakeAmount)
345
+ .endCell(),
346
+ });
347
+ }
348
+ async sendUnstake(provider, via, value, opts) {
349
+ let unstakeAmount;
350
+ if (typeof opts.unstakeAmount === 'bigint') {
351
+ unstakeAmount = opts.unstakeAmount;
352
+ }
353
+ else {
354
+ unstakeAmount = (0, core_1.toNano)(opts.unstakeAmount.toFixed(9));
355
+ }
356
+ await provider.internal(via, {
357
+ value,
358
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
359
+ body: (0, core_1.beginCell)()
360
+ .storeUint(exports.CrossChainLayerOpCodes.admin_unstake, Constants_1.Params.bitsize.op)
361
+ .storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
362
+ .storeCoins(unstakeAmount)
363
+ .endCell(),
364
+ });
365
+ }
366
+ async sendReportUnstakeResult(provider, via, value, opts) {
367
+ await provider.internal(via, {
368
+ value,
369
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
370
+ body: (0, core_1.beginCell)()
371
+ .storeUint(exports.CrossChainLayerOpCodes.stakingAdapter_reportUnstakeResult, Constants_1.Params.bitsize.op)
372
+ .storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
373
+ .storeMaybeRef((0, CrossChainLayerPayload_1.CrossChainLayerPayloadToCell)(opts.payload))
374
+ .endCell(),
375
+ });
376
+ }
291
377
  async getFullData(provider) {
292
378
  const result = await provider.get('get_full_data', []);
293
379
  const adminAddress = result.stack.readAddress().toString();
@@ -305,6 +391,12 @@ class CrossChainLayer {
305
391
  const protocolFeeSupply = Number((0, core_1.fromNano)(result.stack.readNumber()));
306
392
  const executorCode = result.stack.readCell();
307
393
  const groupPublicKey = result.stack.readBigNumber();
394
+ let stakingAdapterAddress;
395
+ let stakedTonSupply;
396
+ if (result.stack.remaining > 0) {
397
+ stakingAdapterAddress = result.stack.readAddressOpt()?.toString();
398
+ stakedTonSupply = Number((0, core_1.fromNano)(result.stack.readBigNumber()));
399
+ }
308
400
  return {
309
401
  adminAddress,
310
402
  newAdminAddress,
@@ -321,6 +413,8 @@ class CrossChainLayer {
321
413
  tonProtocolFee,
322
414
  protocolFeeSupply,
323
415
  executorCode,
416
+ stakingAdapterAddress,
417
+ stakedTonSupply,
324
418
  };
325
419
  }
326
420
  async getCurrentEpochInfo(provider) {
@@ -344,12 +438,25 @@ class CrossChainLayer {
344
438
  groupPublicKey,
345
439
  };
346
440
  }
347
- async getExecutorAddress(provider, payload) {
348
- const result = await provider.get('get_executor_address', [{ type: 'cell', cell: payload }]);
441
+ async getStakingInfo(provider) {
442
+ const result = await provider.get('get_staking_info', []);
443
+ const stakingAdapterAddress = result.stack.readAddress();
444
+ const stakedTonSupply = result.stack.readBigNumber();
445
+ return {
446
+ stakingAdapterAddress,
447
+ stakedTonSupply,
448
+ };
449
+ }
450
+ async getExecutorAddress(provider, operationId) {
451
+ const result = await provider.get('get_executor_address', [{ type: 'int', value: operationId }]);
349
452
  return result.stack.readAddress();
350
453
  }
351
- async getExecutorData(provider, payload) {
352
- const result = await provider.get('get_executor_data', [{ type: 'cell', cell: payload }]);
454
+ async getStorageFee(provider, merkleRoots) {
455
+ const result = await provider.get('get_ccl_storage_fee', [{ type: 'cell', cell: merkleRoots }]);
456
+ return result.stack.readBigNumber();
457
+ }
458
+ async getExecutorData(provider, operationId) {
459
+ const result = await provider.get('get_executor_data', [{ type: 'int', value: operationId }]);
353
460
  const address = result.stack.readAddress();
354
461
  const stateInit = result.stack.readCell();
355
462
  return {
@@ -369,6 +476,12 @@ class CrossChainLayer {
369
476
  }
370
477
  }
371
478
  exports.CrossChainLayer = CrossChainLayer;
479
+ CrossChainLayer.tvmMsgToEvmGasConsumption = 15505n;
480
+ CrossChainLayer.feeMinterGasConsumption = 9904n;
481
+ CrossChainLayer.collectionMintGasConsumption = 9018n;
372
482
  CrossChainLayer.minStorageDuration = 365 * 24 * 3600; //1 year
373
- CrossChainLayer.storageStats = new GasUtils_1.StorageStats(36550n, 90n);
374
- CrossChainLayer.addFeeGasConsumption = 7525n;
483
+ CrossChainLayer.storageStats = new GasUtils_1.StorageStats(49195n, 102n);
484
+ // Gas consumption constants from contracts/imports/precompiled_gas_const/ccl_gas_utils.fc
485
+ CrossChainLayer.addFeeGasConsumption = 8429n;
486
+ CrossChainLayer.reserveFee = 100n;
487
+ CrossChainLayer.reportUnstakeResultGasConsumption = 13170n;
@@ -1,5 +1,6 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/ton';
2
2
  import { Maybe } from '@ton/core/dist/utils/maybe';
3
+ import { StorageStats } from './utils/GasUtils';
3
4
  export declare const JettonMinterOpCodes: {
4
5
  mint: number;
5
6
  changeAdmin: number;
@@ -39,6 +40,7 @@ export declare class JettonMinter implements Contract {
39
40
  code: Cell;
40
41
  data: Cell;
41
42
  } | undefined;
43
+ static storageStats: StorageStats;
42
44
  constructor(address: Address, init?: {
43
45
  code: Cell;
44
46
  data: Cell;
@@ -6,6 +6,7 @@ exports.jettonMinterConfigToCell = jettonMinterConfigToCell;
6
6
  const ton_1 = require("@ton/ton");
7
7
  const CrossChainLayer_1 = require("./CrossChainLayer");
8
8
  const Constants_1 = require("./Constants");
9
+ const GasUtils_1 = require("./utils/GasUtils");
9
10
  exports.JettonMinterOpCodes = {
10
11
  mint: 0xd7b9c06e,
11
12
  changeAdmin: 0x581879bc,
@@ -58,7 +59,7 @@ class JettonMinter {
58
59
  value,
59
60
  sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
60
61
  body: (0, ton_1.beginCell)()
61
- .storeUint(CrossChainLayer_1.CrossChainLayerOpCodes.anyone_errorNotification, 32)
62
+ .storeUint(CrossChainLayer_1.CrossChainLayerOpCodes.anyone_tvmMsgToEvmErrorNotification, 32)
62
63
  .storeUint(params.queryId || 0, 64)
63
64
  .storeUint(params.operation || CrossChainLayer_1.MsgType.jettonBurn, 32)
64
65
  .storeAddress(params.jettonOwnerAddress)
@@ -207,3 +208,4 @@ class JettonMinter {
207
208
  }
208
209
  }
209
210
  exports.JettonMinter = JettonMinter;
211
+ JettonMinter.storageStats = new GasUtils_1.StorageStats(10208n, 28n);
@@ -1,4 +1,5 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ import { StorageStats } from './utils/GasUtils';
2
3
  export type JettonProxyConfig = {
3
4
  crossChainLayerAddress: string;
4
5
  adminAddress: string;
@@ -31,6 +32,14 @@ export declare class JettonProxy implements Contract {
31
32
  code: Cell;
32
33
  data: Cell;
33
34
  } | undefined;
35
+ static estimatedJettonWalletCells: bigint;
36
+ static estimatedJettonWalletBits: bigint;
37
+ static storageStats: StorageStats;
38
+ static msgToTvmGasConsumption: bigint;
39
+ static errorNotificationGasConsumption: bigint;
40
+ static transferNotificationGasConsumption: bigint;
41
+ static estimatedReceiveTransferGasConsumption: bigint;
42
+ static estimatedSendTransferGasConsumption: bigint;
34
43
  constructor(address: Address, init?: {
35
44
  code: Cell;
36
45
  data: Cell;
@@ -5,6 +5,7 @@ exports.jettonProxyConfigToCell = jettonProxyConfigToCell;
5
5
  const core_1 = require("@ton/core");
6
6
  const CrossChainLayer_1 = require("./CrossChainLayer");
7
7
  const Constants_1 = require("./Constants");
8
+ const GasUtils_1 = require("./utils/GasUtils");
8
9
  exports.JettonProxyOpCodes = {
9
10
  jettonWallet_transfer: 0xf8a7ea5,
10
11
  jettonWallet_transferNotification: 0x7362d09c,
@@ -13,7 +14,7 @@ exports.JettonProxyOpCodes = {
13
14
  anyone_tvmMsgToEVM: 0x6c582059,
14
15
  admin_changeAdminAddress: 0x581879bc,
15
16
  admin_cancelChangingAdminAddress: 0x60094a1b,
16
- admin_updateCode: 0x20faec53,
17
+ admin_updateCode: 0x6e7145f9,
17
18
  newAdmin_confirmChangingAdminAddress: 0x6a4fbe34,
18
19
  };
19
20
  exports.JettonProxyErrors = {
@@ -156,3 +157,11 @@ class JettonProxy {
156
157
  }
157
158
  }
158
159
  exports.JettonProxy = JettonProxy;
160
+ JettonProxy.estimatedJettonWalletCells = 25n;
161
+ JettonProxy.estimatedJettonWalletBits = 11000n;
162
+ JettonProxy.storageStats = new GasUtils_1.StorageStats(7760n, 16n);
163
+ JettonProxy.msgToTvmGasConsumption = 5536n;
164
+ JettonProxy.errorNotificationGasConsumption = 5556n;
165
+ JettonProxy.transferNotificationGasConsumption = 8515n;
166
+ JettonProxy.estimatedReceiveTransferGasConsumption = 12000n;
167
+ JettonProxy.estimatedSendTransferGasConsumption = 11000n;
@@ -42,8 +42,15 @@ export declare class JettonWallet implements Contract {
42
42
  code: Cell;
43
43
  data: Cell;
44
44
  } | undefined;
45
+ static mintAfterErrorGasConsumption: bigint;
46
+ static burnNotificationGasConsumption: bigint;
47
+ static nftBurnGasConsumption: bigint;
48
+ static receiveTransferGasConsumption: bigint;
49
+ static sendTransferGasConsumption: bigint;
50
+ static burnGasConsumption: bigint;
45
51
  static storageStats: StorageStats;
46
52
  static stateInitStats: StorageStats;
53
+ static storageDuration: bigint;
47
54
  constructor(address: Address, init?: {
48
55
  code: Cell;
49
56
  data: Cell;
@@ -189,5 +189,12 @@ class JettonWallet {
189
189
  }
190
190
  }
191
191
  exports.JettonWallet = JettonWallet;
192
- JettonWallet.storageStats = new GasUtils_1.StorageStats(949, 3);
193
- JettonWallet.stateInitStats = new GasUtils_1.StorageStats(847, 3);
192
+ JettonWallet.mintAfterErrorGasConsumption = 9654n;
193
+ JettonWallet.burnNotificationGasConsumption = 10357n;
194
+ JettonWallet.nftBurnGasConsumption = 11552n;
195
+ JettonWallet.receiveTransferGasConsumption = 11427n;
196
+ JettonWallet.sendTransferGasConsumption = 10669n;
197
+ JettonWallet.burnGasConsumption = 8653n;
198
+ JettonWallet.storageStats = new GasUtils_1.StorageStats(949n, 3n);
199
+ JettonWallet.stateInitStats = new GasUtils_1.StorageStats(847n, 3n);
200
+ JettonWallet.storageDuration = 5n * 365n * 24n * 3600n;
@@ -1,4 +1,5 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ import { StorageStats } from './utils/GasUtils';
2
3
  export declare const NFTCollectionOpCodes: {
3
4
  admin_deployNFTItem: number;
4
5
  admin_batchDeployNFTItems: number;
@@ -33,6 +34,14 @@ export declare class NFTCollection implements Contract {
33
34
  code: Cell;
34
35
  data: Cell;
35
36
  } | undefined;
37
+ static stateInitStats: StorageStats;
38
+ static handleErrorNotificationGasConsumption: bigint;
39
+ static transferGasConsumption: bigint;
40
+ static burnGasConsumption: bigint;
41
+ static storageStats: StorageStats;
42
+ static initGasConsumption: bigint;
43
+ static nftHandleErrorNotificationGasConsumption: bigint;
44
+ static nftTransferGasConsumption: bigint;
36
45
  constructor(address: Address, init?: {
37
46
  code: Cell;
38
47
  data: Cell;
@@ -4,6 +4,7 @@ exports.NFTCollection = exports.NFTCollectionErrors = exports.NFTCollectionOpCod
4
4
  exports.nftCollectionConfigToCell = nftCollectionConfigToCell;
5
5
  const core_1 = require("@ton/core");
6
6
  const Constants_1 = require("./Constants");
7
+ const GasUtils_1 = require("./utils/GasUtils");
7
8
  exports.NFTCollectionOpCodes = {
8
9
  admin_deployNFTItem: 0xfdba5d5f,
9
10
  admin_batchDeployNFTItems: 0x909d579b,
@@ -149,3 +150,11 @@ class NFTCollection {
149
150
  }
150
151
  }
151
152
  exports.NFTCollection = NFTCollection;
153
+ NFTCollection.stateInitStats = new GasUtils_1.StorageStats(1328n, 5n);
154
+ NFTCollection.handleErrorNotificationGasConsumption = 4638n;
155
+ NFTCollection.transferGasConsumption = 11722n;
156
+ NFTCollection.burnGasConsumption = 11552n;
157
+ NFTCollection.storageStats = new GasUtils_1.StorageStats(7240n, 24n);
158
+ NFTCollection.initGasConsumption = 7546n;
159
+ NFTCollection.nftHandleErrorNotificationGasConsumption = 4638n;
160
+ NFTCollection.nftTransferGasConsumption = 11722n;
@@ -1,4 +1,5 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ import { StorageStats } from './utils/GasUtils';
2
3
  export declare const NFTItemOpCodes: {
3
4
  owner_transfer: number;
4
5
  owner_burn: number;
@@ -41,6 +42,12 @@ export declare class NFTItem implements Contract {
41
42
  code: Cell;
42
43
  data: Cell;
43
44
  } | undefined;
45
+ static stateInitStats: StorageStats;
46
+ static storageStats: StorageStats;
47
+ static handleErrorNotificationGasConsumption: bigint;
48
+ static transferGasConsumption: bigint;
49
+ static burnGasConsumption: bigint;
50
+ static initGasConsumption: bigint;
44
51
  constructor(address: Address, init?: {
45
52
  code: Cell;
46
53
  data: Cell;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NFTItem = exports.NFTItemErrors = exports.NFTItemOpCodes = void 0;
4
4
  exports.nftItemConfigToCell = nftItemConfigToCell;
5
5
  const core_1 = require("@ton/core");
6
+ const GasUtils_1 = require("./utils/GasUtils");
6
7
  exports.NFTItemOpCodes = {
7
8
  owner_transfer: 0x5fcc3d14,
8
9
  owner_burn: 0x3b390ce,
@@ -146,3 +147,9 @@ class NFTItem {
146
147
  }
147
148
  }
148
149
  exports.NFTItem = NFTItem;
150
+ NFTItem.stateInitStats = new GasUtils_1.StorageStats(1328n, 5n);
151
+ NFTItem.storageStats = new GasUtils_1.StorageStats(1422n, 5n);
152
+ NFTItem.handleErrorNotificationGasConsumption = 4638n;
153
+ NFTItem.transferGasConsumption = 11722n;
154
+ NFTItem.burnGasConsumption = 11552n;
155
+ NFTItem.initGasConsumption = 7546n;
@@ -1,4 +1,5 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ import { StorageStats } from './utils/GasUtils';
2
3
  export declare const NFTItemTransferOperation = 2332633442;
3
4
  export declare const NFTProxyOpCodes: {
4
5
  admin_changeAdmin: number;
@@ -32,6 +33,12 @@ export declare class NFTProxy implements Contract {
32
33
  code: Cell;
33
34
  data: Cell;
34
35
  } | undefined;
36
+ static estimatedNftItemCells: bigint;
37
+ static estimatedNftItemBits: bigint;
38
+ static storageStats: StorageStats;
39
+ static ownershipAssignedGasConsumption: bigint;
40
+ static errorNotificationGasConsumption: bigint;
41
+ static msgToTvmGasConsumption: bigint;
35
42
  constructor(address: Address, init?: {
36
43
  code: Cell;
37
44
  data: Cell;
@@ -4,10 +4,11 @@ exports.NFTProxy = exports.NFTProxyErrors = exports.NFTProxyOpCodes = exports.NF
4
4
  exports.nftProxyConfigToCell = nftProxyConfigToCell;
5
5
  const core_1 = require("@ton/core");
6
6
  const Constants_1 = require("./Constants");
7
+ const GasUtils_1 = require("./utils/GasUtils");
7
8
  exports.NFTItemTransferOperation = 0x8b092962;
8
9
  exports.NFTProxyOpCodes = {
9
10
  admin_changeAdmin: 0x581879bc,
10
- admin_updateCode: 0x20faec53,
11
+ admin_updateCode: 0x6e7145f9,
11
12
  ccl_evmMsgToTVMProxy: 0x7817b330,
12
13
  ccl_errorNotification: 0xae7df95b,
13
14
  ccl_tvmMsgToEVM: 0x6c582059,
@@ -155,3 +156,9 @@ class NFTProxy {
155
156
  }
156
157
  }
157
158
  exports.NFTProxy = NFTProxy;
159
+ NFTProxy.estimatedNftItemCells = 25n;
160
+ NFTProxy.estimatedNftItemBits = 9877n;
161
+ NFTProxy.storageStats = new GasUtils_1.StorageStats(7512n, 15n);
162
+ NFTProxy.ownershipAssignedGasConsumption = 7688n;
163
+ NFTProxy.errorNotificationGasConsumption = 4737n;
164
+ NFTProxy.msgToTvmGasConsumption = 5348n;
@@ -52,6 +52,7 @@ export declare class Settings implements Contract {
52
52
  data: Cell;
53
53
  } | undefined;
54
54
  readonly configuration?: SettingsConfig | undefined;
55
+ static storageStats: StorageStats;
55
56
  constructor(address: Address, init?: {
56
57
  code: Cell;
57
58
  data: Cell;
@@ -148,5 +148,6 @@ class Settings {
148
148
  }
149
149
  }
150
150
  exports.Settings = Settings;
151
+ Settings.storageStats = new GasUtils_1.StorageStats(38743n, 118n);
151
152
  Settings.minStorageDuration = 10 * 365 * 24 * 3600; // 10 years
152
153
  Settings.minStorageStats = new GasUtils_1.StorageStats(29557n, 104n);
@@ -0,0 +1,10 @@
1
+ import { Address, Cell } from '@ton/core';
2
+ export type CrossChainLayerPayload = {
3
+ operationId: bigint;
4
+ destinationAddress: Address;
5
+ destinationMsgValue: bigint;
6
+ payload: Cell;
7
+ maybeStateInit?: Cell;
8
+ };
9
+ export declare function CrossChainLayerPayloadToCell(payload: CrossChainLayerPayload): Cell;
10
+ export declare function CrossChainLayerPayloadFromCell(cell: Cell): CrossChainLayerPayload;