@tonappchain/sdk 0.7.0-rc24-test-8 → 0.7.0-rc24-test-9

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 (409) hide show
  1. package/dist/{src/adapters → adapters}/contractOpener.d.ts +1 -2
  2. package/dist/{src/adapters → adapters}/contractOpener.js +6 -37
  3. package/dist/{src/adapters → adapters}/retryableContractOpener.d.ts +3 -6
  4. package/dist/{src/adapters → adapters}/retryableContractOpener.js +11 -10
  5. package/dist/{src/assets → assets}/AssetCache.d.ts +1 -1
  6. package/dist/{src/assets → assets}/AssetFactory.d.ts +2 -2
  7. package/dist/{src/assets → assets}/AssetFactory.js +1 -1
  8. package/dist/{src/assets → assets}/FT.d.ts +17 -15
  9. package/dist/{src/assets → assets}/FT.js +56 -103
  10. package/dist/{src/assets → assets}/NFT.d.ts +16 -15
  11. package/dist/{src/assets → assets}/NFT.js +36 -64
  12. package/dist/{src/assets → assets}/TON.d.ts +13 -7
  13. package/dist/{src/assets → assets}/TON.js +20 -22
  14. package/dist/errors/index.d.ts +2 -0
  15. package/dist/{src/errors → errors}/index.js +2 -7
  16. package/dist/{src/errors → errors}/instances.d.ts +1 -8
  17. package/dist/{src/errors → errors}/instances.js +16 -22
  18. package/dist/{src/index.d.ts → index.d.ts} +9 -10
  19. package/dist/{src/index.js → index.js} +18 -14
  20. package/dist/{src/sdk → sdk}/Configuration.d.ts +5 -6
  21. package/dist/sdk/Configuration.js +92 -0
  22. package/dist/{src/sdk → sdk}/Consts.d.ts +0 -3
  23. package/dist/{src/sdk → sdk}/Consts.js +1 -4
  24. package/dist/sdk/LiteSequencerClient.d.ts +13 -0
  25. package/dist/{src/sdk → sdk}/LiteSequencerClient.js +22 -70
  26. package/dist/{src/sdk → sdk}/Logger.d.ts +1 -1
  27. package/dist/{src/sdk → sdk}/OperationTracker.d.ts +13 -5
  28. package/dist/{src/sdk → sdk}/OperationTracker.js +16 -85
  29. package/dist/sdk/Simulator.d.ts +23 -0
  30. package/dist/sdk/Simulator.js +169 -0
  31. package/dist/{src/sdk → sdk}/StartTracking.d.ts +1 -1
  32. package/dist/sdk/TacSdk.d.ts +25 -0
  33. package/dist/sdk/TacSdk.js +104 -0
  34. package/dist/sdk/TransactionManager.d.ts +22 -0
  35. package/dist/sdk/TransactionManager.js +269 -0
  36. package/dist/{src/sdk → sdk}/TxFinalizer.d.ts +2 -3
  37. package/dist/{src/sdk → sdk}/TxFinalizer.js +8 -8
  38. package/dist/{src/sdk → sdk}/Utils.d.ts +5 -12
  39. package/dist/{src/sdk → sdk}/Utils.js +12 -103
  40. package/dist/{src/sdk → sdk}/Validator.d.ts +2 -2
  41. package/dist/{src/sdk → sdk}/Validator.js +6 -6
  42. package/dist/{src/sender → sender}/BatchSender.d.ts +2 -1
  43. package/dist/{src/sender → sender}/RawSender.d.ts +3 -3
  44. package/dist/sender/SenderAbstraction.d.ts +22 -0
  45. package/dist/sender/SenderAbstraction.js +5 -0
  46. package/dist/{src/sender → sender}/SenderFactory.d.ts +1 -1
  47. package/dist/{src/sender → sender}/TonConnectSender.d.ts +2 -2
  48. package/dist/{src/sender → sender}/TonConnectSender.js +2 -2
  49. package/dist/{src/sender → sender}/index.d.ts +1 -1
  50. package/dist/{src/sender → sender}/index.js +1 -1
  51. package/dist/{src/structs → structs}/InternalStruct.d.ts +7 -25
  52. package/dist/structs/Services.d.ts +41 -0
  53. package/dist/{src/structs → structs}/Struct.d.ts +60 -91
  54. package/dist/{src/structs → structs}/Struct.js +1 -7
  55. package/dist/{src/wrappers → wrappers}/HighloadWalletV3.d.ts +2 -2
  56. package/dist/wrappers/JettonMaster.d.ts +24 -0
  57. package/dist/wrappers/JettonMaster.js +53 -0
  58. package/dist/{artifacts/mainnet/ton/internal/wrappers → wrappers}/JettonWallet.d.ts +13 -52
  59. package/dist/wrappers/JettonWallet.js +124 -0
  60. package/dist/wrappers/Settings.d.ts +10 -0
  61. package/dist/wrappers/Settings.js +38 -0
  62. package/package.json +1 -1
  63. package/dist/artifacts/dev/index.d.ts +0 -9
  64. package/dist/artifacts/dev/index.js +0 -52
  65. package/dist/artifacts/dev/tac/addresses.d.ts +0 -4
  66. package/dist/artifacts/dev/tac/addresses.js +0 -8
  67. package/dist/artifacts/dev/tac/artifacts.d.ts +0 -330
  68. package/dist/artifacts/dev/tac/artifacts.js +0 -26
  69. package/dist/artifacts/dev/tac/endpoints.d.ts +0 -2
  70. package/dist/artifacts/dev/tac/endpoints.js +0 -5
  71. package/dist/artifacts/dev/tac/index.d.ts +0 -6
  72. package/dist/artifacts/dev/tac/index.js +0 -43
  73. package/dist/artifacts/dev/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +0 -296
  74. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +0 -1087
  75. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -114
  76. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -194
  77. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -164
  78. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +0 -278
  79. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +0 -380
  80. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +0 -207
  81. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +0 -103
  82. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +0 -181
  83. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.d.ts +0 -4
  84. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.js +0 -18
  85. package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +0 -199
  86. package/dist/artifacts/dev/tac/internal/typechain-types/common.d.ts +0 -50
  87. package/dist/artifacts/dev/tac/internal/typechain-types/common.js +0 -2
  88. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +0 -356
  89. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +0 -2
  90. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +0 -75
  91. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +0 -2
  92. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +0 -123
  93. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.js +0 -2
  94. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +0 -99
  95. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +0 -2
  96. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +0 -182
  97. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +0 -2
  98. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +0 -244
  99. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +0 -2
  100. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +0 -133
  101. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +0 -2
  102. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +0 -77
  103. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +0 -2
  104. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +0 -127
  105. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +0 -2
  106. package/dist/artifacts/dev/tac/multicall.d.ts +0 -1
  107. package/dist/artifacts/dev/tac/multicall.js +0 -22
  108. package/dist/artifacts/dev/tac/structs.d.ts +0 -1
  109. package/dist/artifacts/dev/tac/structs.js +0 -2
  110. package/dist/artifacts/dev/tac/utils.d.ts +0 -1
  111. package/dist/artifacts/dev/tac/utils.js +0 -5
  112. package/dist/artifacts/dev/tac/wrappers.d.ts +0 -9
  113. package/dist/artifacts/dev/tac/wrappers.js +0 -2
  114. package/dist/artifacts/dev/ton/addresses.d.ts +0 -1
  115. package/dist/artifacts/dev/ton/addresses.js +0 -5
  116. package/dist/artifacts/dev/ton/artifacts.d.ts +0 -47
  117. package/dist/artifacts/dev/ton/artifacts.js +0 -26
  118. package/dist/artifacts/dev/ton/endpoints.d.ts +0 -3
  119. package/dist/artifacts/dev/ton/endpoints.js +0 -6
  120. package/dist/artifacts/dev/ton/index.d.ts +0 -3
  121. package/dist/artifacts/dev/ton/index.js +0 -40
  122. package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +0 -1
  123. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +0 -1
  124. package/dist/artifacts/dev/ton/internal/build/JettonMinter.compiled.json +0 -1
  125. package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +0 -1
  126. package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +0 -1
  127. package/dist/artifacts/dev/ton/internal/build/NFTCollection.compiled.json +0 -1
  128. package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +0 -1
  129. package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +0 -1
  130. package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +0 -1
  131. package/dist/artifacts/dev/ton/internal/wrappers/Constants.d.ts +0 -56
  132. package/dist/artifacts/dev/ton/internal/wrappers/Constants.js +0 -62
  133. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +0 -164
  134. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +0 -336
  135. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +0 -94
  136. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +0 -202
  137. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +0 -80
  138. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +0 -158
  139. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.d.ts +0 -95
  140. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +0 -193
  141. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +0 -75
  142. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +0 -151
  143. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +0 -82
  144. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +0 -148
  145. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +0 -84
  146. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +0 -157
  147. package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +0 -80
  148. package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +0 -152
  149. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.d.ts +0 -79
  150. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.js +0 -291
  151. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +0 -7
  152. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +0 -27
  153. package/dist/artifacts/dev/ton/wrappers.d.ts +0 -8
  154. package/dist/artifacts/dev/ton/wrappers.js +0 -27
  155. package/dist/artifacts/index.d.ts +0 -3
  156. package/dist/artifacts/index.js +0 -39
  157. package/dist/artifacts/mainnet/index.d.ts +0 -9
  158. package/dist/artifacts/mainnet/index.js +0 -52
  159. package/dist/artifacts/mainnet/tac/addresses.d.ts +0 -4
  160. package/dist/artifacts/mainnet/tac/addresses.js +0 -7
  161. package/dist/artifacts/mainnet/tac/artifacts.d.ts +0 -330
  162. package/dist/artifacts/mainnet/tac/artifacts.js +0 -26
  163. package/dist/artifacts/mainnet/tac/endpoints.d.ts +0 -2
  164. package/dist/artifacts/mainnet/tac/endpoints.js +0 -5
  165. package/dist/artifacts/mainnet/tac/index.d.ts +0 -6
  166. package/dist/artifacts/mainnet/tac/index.js +0 -43
  167. package/dist/artifacts/mainnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +0 -296
  168. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +0 -1087
  169. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -114
  170. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -194
  171. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -164
  172. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +0 -278
  173. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +0 -380
  174. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +0 -207
  175. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +0 -103
  176. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +0 -181
  177. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.d.ts +0 -4
  178. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.js +0 -18
  179. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +0 -199
  180. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +0 -2
  181. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.d.ts +0 -50
  182. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.js +0 -2
  183. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +0 -356
  184. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +0 -2
  185. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +0 -75
  186. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +0 -2
  187. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +0 -123
  188. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +0 -2
  189. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +0 -99
  190. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +0 -2
  191. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +0 -182
  192. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +0 -2
  193. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +0 -244
  194. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +0 -2
  195. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +0 -133
  196. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +0 -2
  197. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +0 -77
  198. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +0 -2
  199. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +0 -127
  200. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +0 -2
  201. package/dist/artifacts/mainnet/tac/multicall.d.ts +0 -1
  202. package/dist/artifacts/mainnet/tac/multicall.js +0 -22
  203. package/dist/artifacts/mainnet/tac/structs.d.ts +0 -1
  204. package/dist/artifacts/mainnet/tac/structs.js +0 -2
  205. package/dist/artifacts/mainnet/tac/utils.d.ts +0 -1
  206. package/dist/artifacts/mainnet/tac/utils.js +0 -5
  207. package/dist/artifacts/mainnet/tac/wrappers.d.ts +0 -9
  208. package/dist/artifacts/mainnet/tac/wrappers.js +0 -2
  209. package/dist/artifacts/mainnet/ton/addresses.d.ts +0 -1
  210. package/dist/artifacts/mainnet/ton/addresses.js +0 -4
  211. package/dist/artifacts/mainnet/ton/artifacts.d.ts +0 -47
  212. package/dist/artifacts/mainnet/ton/artifacts.js +0 -26
  213. package/dist/artifacts/mainnet/ton/endpoints.d.ts +0 -3
  214. package/dist/artifacts/mainnet/ton/endpoints.js +0 -6
  215. package/dist/artifacts/mainnet/ton/index.d.ts +0 -3
  216. package/dist/artifacts/mainnet/ton/index.js +0 -40
  217. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +0 -1
  218. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +0 -1
  219. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +0 -1
  220. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +0 -1
  221. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +0 -1
  222. package/dist/artifacts/mainnet/ton/internal/build/NFTCollection.compiled.json +0 -1
  223. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +0 -1
  224. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +0 -1
  225. package/dist/artifacts/mainnet/ton/internal/build/Settings.compiled.json +0 -1
  226. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.d.ts +0 -56
  227. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.js +0 -62
  228. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +0 -164
  229. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +0 -336
  230. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +0 -94
  231. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +0 -202
  232. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.d.ts +0 -80
  233. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.js +0 -158
  234. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.js +0 -193
  235. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +0 -75
  236. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.js +0 -151
  237. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.d.ts +0 -82
  238. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.js +0 -148
  239. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.d.ts +0 -84
  240. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.js +0 -157
  241. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.d.ts +0 -80
  242. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.js +0 -152
  243. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.d.ts +0 -79
  244. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.js +0 -291
  245. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +0 -7
  246. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.js +0 -27
  247. package/dist/artifacts/mainnet/ton/wrappers.d.ts +0 -8
  248. package/dist/artifacts/mainnet/ton/wrappers.js +0 -27
  249. package/dist/artifacts/tacTypes.d.ts +0 -13
  250. package/dist/artifacts/tacTypes.js +0 -2
  251. package/dist/artifacts/testnet/index.d.ts +0 -9
  252. package/dist/artifacts/testnet/index.js +0 -52
  253. package/dist/artifacts/testnet/tac/addresses.d.ts +0 -4
  254. package/dist/artifacts/testnet/tac/addresses.js +0 -7
  255. package/dist/artifacts/testnet/tac/artifacts.d.ts +0 -330
  256. package/dist/artifacts/testnet/tac/artifacts.js +0 -26
  257. package/dist/artifacts/testnet/tac/endpoints.d.ts +0 -2
  258. package/dist/artifacts/testnet/tac/endpoints.js +0 -5
  259. package/dist/artifacts/testnet/tac/index.d.ts +0 -6
  260. package/dist/artifacts/testnet/tac/index.js +0 -43
  261. package/dist/artifacts/testnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +0 -296
  262. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +0 -1087
  263. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -114
  264. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -194
  265. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -164
  266. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +0 -278
  267. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +0 -380
  268. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +0 -207
  269. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +0 -103
  270. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +0 -181
  271. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.d.ts +0 -4
  272. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.js +0 -18
  273. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +0 -199
  274. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +0 -2
  275. package/dist/artifacts/testnet/tac/internal/typechain-types/common.d.ts +0 -50
  276. package/dist/artifacts/testnet/tac/internal/typechain-types/common.js +0 -2
  277. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +0 -356
  278. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +0 -2
  279. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +0 -75
  280. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +0 -2
  281. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +0 -123
  282. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +0 -2
  283. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +0 -99
  284. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +0 -2
  285. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +0 -182
  286. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +0 -2
  287. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +0 -244
  288. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +0 -2
  289. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +0 -133
  290. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +0 -2
  291. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +0 -77
  292. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +0 -2
  293. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +0 -127
  294. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +0 -2
  295. package/dist/artifacts/testnet/tac/multicall.d.ts +0 -1
  296. package/dist/artifacts/testnet/tac/multicall.js +0 -22
  297. package/dist/artifacts/testnet/tac/structs.d.ts +0 -1
  298. package/dist/artifacts/testnet/tac/structs.js +0 -2
  299. package/dist/artifacts/testnet/tac/utils.d.ts +0 -1
  300. package/dist/artifacts/testnet/tac/utils.js +0 -5
  301. package/dist/artifacts/testnet/tac/wrappers.d.ts +0 -9
  302. package/dist/artifacts/testnet/tac/wrappers.js +0 -2
  303. package/dist/artifacts/testnet/ton/addresses.d.ts +0 -1
  304. package/dist/artifacts/testnet/ton/addresses.js +0 -4
  305. package/dist/artifacts/testnet/ton/artifacts.d.ts +0 -47
  306. package/dist/artifacts/testnet/ton/artifacts.js +0 -26
  307. package/dist/artifacts/testnet/ton/endpoints.d.ts +0 -3
  308. package/dist/artifacts/testnet/ton/endpoints.js +0 -6
  309. package/dist/artifacts/testnet/ton/index.d.ts +0 -3
  310. package/dist/artifacts/testnet/ton/index.js +0 -40
  311. package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +0 -1
  312. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +0 -1
  313. package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +0 -1
  314. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +0 -1
  315. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +0 -1
  316. package/dist/artifacts/testnet/ton/internal/build/NFTCollection.compiled.json +0 -1
  317. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +0 -1
  318. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +0 -1
  319. package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +0 -1
  320. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.d.ts +0 -56
  321. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.js +0 -62
  322. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +0 -164
  323. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +0 -336
  324. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +0 -94
  325. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +0 -202
  326. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +0 -80
  327. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +0 -158
  328. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +0 -95
  329. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +0 -193
  330. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +0 -75
  331. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +0 -151
  332. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +0 -82
  333. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +0 -148
  334. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +0 -84
  335. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +0 -157
  336. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +0 -80
  337. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +0 -152
  338. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.d.ts +0 -79
  339. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.js +0 -291
  340. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +0 -7
  341. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +0 -27
  342. package/dist/artifacts/testnet/ton/wrappers.d.ts +0 -8
  343. package/dist/artifacts/testnet/ton/wrappers.js +0 -27
  344. package/dist/artifacts/tonTypes.d.ts +0 -20
  345. package/dist/artifacts/tonTypes.js +0 -2
  346. package/dist/src/adapters/index.d.ts +0 -2
  347. package/dist/src/adapters/index.js +0 -18
  348. package/dist/src/agnosticSdk/AgnosticSdk.d.ts +0 -371
  349. package/dist/src/agnosticSdk/AgnosticSdk.js +0 -736
  350. package/dist/src/errors/index.d.ts +0 -2
  351. package/dist/src/interfaces/Asset.d.ts +0 -78
  352. package/dist/src/interfaces/Asset.js +0 -2
  353. package/dist/src/interfaces/ContractOpener.d.ts +0 -21
  354. package/dist/src/interfaces/ContractOpener.js +0 -2
  355. package/dist/src/interfaces/IConfiguration.d.ts +0 -35
  356. package/dist/src/interfaces/IConfiguration.js +0 -2
  357. package/dist/src/interfaces/IHttpClient.d.ts +0 -16
  358. package/dist/src/interfaces/IHttpClient.js +0 -2
  359. package/dist/src/interfaces/ILiteSequencerClient.d.ts +0 -43
  360. package/dist/src/interfaces/ILiteSequencerClient.js +0 -2
  361. package/dist/src/interfaces/ILiteSequencerClientFactory.d.ts +0 -9
  362. package/dist/src/interfaces/ILiteSequencerClientFactory.js +0 -2
  363. package/dist/src/interfaces/ILogger.d.ts +0 -10
  364. package/dist/src/interfaces/ILogger.js +0 -2
  365. package/dist/src/interfaces/IOperationTracker.d.ts +0 -81
  366. package/dist/src/interfaces/IOperationTracker.js +0 -2
  367. package/dist/src/interfaces/ISimulator.d.ts +0 -18
  368. package/dist/src/interfaces/ISimulator.js +0 -2
  369. package/dist/src/interfaces/ITACTransactionManager.d.ts +0 -15
  370. package/dist/src/interfaces/ITACTransactionManager.js +0 -2
  371. package/dist/src/interfaces/ITONTransactionManager.d.ts +0 -21
  372. package/dist/src/interfaces/ITONTransactionManager.js +0 -2
  373. package/dist/src/interfaces/ITacSDK.d.ts +0 -185
  374. package/dist/src/interfaces/ITacSDK.js +0 -2
  375. package/dist/src/interfaces/SenderAbstraction.d.ts +0 -35
  376. package/dist/src/interfaces/SenderAbstraction.js +0 -2
  377. package/dist/src/interfaces/WalletInstanse.d.ts +0 -20
  378. package/dist/src/interfaces/WalletInstanse.js +0 -2
  379. package/dist/src/interfaces/index.d.ts +0 -14
  380. package/dist/src/interfaces/index.js +0 -30
  381. package/dist/src/sdk/AxiosHttpClient.d.ts +0 -12
  382. package/dist/src/sdk/AxiosHttpClient.js +0 -23
  383. package/dist/src/sdk/Configuration.js +0 -189
  384. package/dist/src/sdk/LiteSequencerClient.d.ts +0 -18
  385. package/dist/src/sdk/Simulator.d.ts +0 -11
  386. package/dist/src/sdk/Simulator.js +0 -70
  387. package/dist/src/sdk/TACTransactionManager.d.ts +0 -10
  388. package/dist/src/sdk/TACTransactionManager.js +0 -99
  389. package/dist/src/sdk/TONTransactionManager.d.ts +0 -17
  390. package/dist/src/sdk/TONTransactionManager.js +0 -209
  391. package/dist/src/sdk/TacSdk.d.ts +0 -44
  392. package/dist/src/sdk/TacSdk.js +0 -214
  393. /package/dist/{src/assets → assets}/AssetCache.js +0 -0
  394. /package/dist/{src/assets → assets}/index.d.ts +0 -0
  395. /package/dist/{src/assets → assets}/index.js +0 -0
  396. /package/dist/{src/errors → errors}/errors.d.ts +0 -0
  397. /package/dist/{src/errors → errors}/errors.js +0 -0
  398. /package/dist/{src/sdk → sdk}/Logger.js +0 -0
  399. /package/dist/{src/sdk → sdk}/StartTracking.js +0 -0
  400. /package/dist/{src/sender → sender}/BatchSender.js +0 -0
  401. /package/dist/{src/sender → sender}/RawSender.js +0 -0
  402. /package/dist/{src/sender → sender}/SenderFactory.js +0 -0
  403. /package/dist/{src/structs → structs}/InternalStruct.js +0 -0
  404. /package/dist/{artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js → structs/Services.js} +0 -0
  405. /package/dist/{src/wrappers → wrappers}/ContentUtils.d.ts +0 -0
  406. /package/dist/{src/wrappers → wrappers}/ContentUtils.js +0 -0
  407. /package/dist/{src/wrappers → wrappers}/HighloadQueryId.d.ts +0 -0
  408. /package/dist/{src/wrappers → wrappers}/HighloadQueryId.js +0 -0
  409. /package/dist/{src/wrappers → wrappers}/HighloadWalletV3.js +0 -0
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Simulator = exports.AxiosHttpClient = void 0;
7
+ const ton_1 = require("@ton/ton");
8
+ const axios_1 = __importDefault(require("axios"));
9
+ const errors_1 = require("../errors");
10
+ const Logger_1 = require("./Logger");
11
+ const Utils_1 = require("./Utils");
12
+ const Validator_1 = require("./Validator");
13
+ class AxiosHttpClient {
14
+ async post(url, data, config) {
15
+ return axios_1.default.post(url, data, config);
16
+ }
17
+ }
18
+ exports.AxiosHttpClient = AxiosHttpClient;
19
+ class Simulator {
20
+ constructor(config, logger = new Logger_1.NoopLogger(), httpClient = new AxiosHttpClient()) {
21
+ this.config = config;
22
+ this.logger = logger;
23
+ this.httpClient = httpClient;
24
+ }
25
+ async simulateTACMessage(req) {
26
+ Validator_1.Validator.validateTACSimulationRequest(req);
27
+ this.logger.debug('Simulating TAC message');
28
+ let lastError;
29
+ for (const endpoint of this.config.liteSequencerEndpoints) {
30
+ try {
31
+ const response = await this.httpClient.post(new URL('tac/simulator/simulate-message', endpoint).toString(), req, {
32
+ transformResponse: [Utils_1.toCamelCaseTransformer],
33
+ });
34
+ this.logger.debug('TAC message simulation success');
35
+ return response.data.response;
36
+ }
37
+ catch (error) {
38
+ this.logger.error(`Error while simulating with ${endpoint}: ${error}`);
39
+ lastError = error;
40
+ }
41
+ }
42
+ throw (0, errors_1.simulationError)(lastError);
43
+ }
44
+ async simulateTransactions(sender, txs) {
45
+ this.logger.debug(`Simulating ${txs.length} TAC messages`);
46
+ const results = [];
47
+ for (const tx of txs) {
48
+ const req = await this.buildTACSimulationRequest(sender, tx);
49
+ const result = await this.simulateTACMessage(req);
50
+ results.push(result);
51
+ }
52
+ return results;
53
+ }
54
+ async buildTACSimulationRequest(sender, tx) {
55
+ const { evmProxyMsg, assets = [], options = {} } = tx;
56
+ const { evmValidExecutors = this.config.TACParams.trustedTACExecutors, tvmValidExecutors = this.config.TACParams.trustedTONExecutors, } = options;
57
+ Validator_1.Validator.validateEVMAddresses(evmValidExecutors);
58
+ Validator_1.Validator.validateTVMAddresses(tvmValidExecutors);
59
+ const aggregatedData = await (0, Utils_1.aggregateTokens)(assets);
60
+ const transactionLinkerShardCount = aggregatedData.jettons.length == 0 ? 1 : aggregatedData.jettons.length;
61
+ const transactionLinker = (0, Utils_1.generateTransactionLinker)(sender.getSenderAddress(), transactionLinkerShardCount);
62
+ return {
63
+ tacCallParams: {
64
+ arguments: evmProxyMsg.encodedParameters ?? '0x',
65
+ methodName: (0, Utils_1.formatSolidityMethodName)(evmProxyMsg.methodName),
66
+ target: evmProxyMsg.evmTargetAddress,
67
+ },
68
+ evmValidExecutors: evmValidExecutors,
69
+ tvmValidExecutors: tvmValidExecutors,
70
+ extraData: '0x',
71
+ shardsKey: transactionLinker.shardsKey,
72
+ tonAssets: assets.map((asset) => ({
73
+ amount: asset.rawAmount.toString(),
74
+ tokenAddress: asset.address || '',
75
+ assetType: asset.type,
76
+ })),
77
+ tonCaller: transactionLinker.caller,
78
+ };
79
+ }
80
+ async getTVMExecutorFeeInfo(assets, feeSymbol) {
81
+ this.logger.debug('Getting TVM executor fee info');
82
+ const requestBody = {
83
+ tonAssets: assets.map((asset) => ({
84
+ amount: asset.rawAmount.toString(),
85
+ tokenAddress: asset.address || '',
86
+ assetType: asset.type,
87
+ })),
88
+ feeSymbol: feeSymbol,
89
+ };
90
+ let lastError;
91
+ for (const endpoint of this.config.liteSequencerEndpoints) {
92
+ try {
93
+ const response = await this.httpClient.post(`${endpoint}/ton/calculator/ton-executor-fee`, requestBody);
94
+ return response.data.response;
95
+ }
96
+ catch (error) {
97
+ this.logger.error(`Error while calculating tvm executor fee ${endpoint}: ${error}`);
98
+ lastError = error;
99
+ }
100
+ }
101
+ this.logger.error('Error while calculating tvm executor fee on all endpoints');
102
+ throw (0, errors_1.simulationError)(lastError);
103
+ }
104
+ async getFeeInfo(evmProxyMsg, transactionLinker, assets, allowSimulationError = false, isRoundTrip = true, evmValidExecutors = this.config.TACParams.trustedTACExecutors, tvmValidExecutors = this.config.TACParams.trustedTONExecutors) {
105
+ this.logger.debug('Getting fee info');
106
+ Validator_1.Validator.validateEVMAddress(evmProxyMsg.evmTargetAddress);
107
+ Validator_1.Validator.validateEVMAddresses(evmValidExecutors);
108
+ Validator_1.Validator.validateTVMAddresses(tvmValidExecutors);
109
+ const crossChainLayer = this.config.TONParams.contractOpener.open(this.config.artifacts.ton.wrappers.CrossChainLayer.createFromAddress(ton_1.Address.parse(this.config.TONParams.crossChainLayerAddress)));
110
+ const fullStateCCL = await crossChainLayer.getFullData();
111
+ this.logger.debug(`Full state CCL: ${(0, Utils_1.formatObjectForLogging)(fullStateCCL)}`);
112
+ const tacSimulationBody = {
113
+ tacCallParams: {
114
+ arguments: evmProxyMsg.encodedParameters ?? '0x',
115
+ methodName: (0, Utils_1.formatSolidityMethodName)(evmProxyMsg.methodName),
116
+ target: evmProxyMsg.evmTargetAddress,
117
+ },
118
+ evmValidExecutors: evmValidExecutors,
119
+ tvmValidExecutors: tvmValidExecutors,
120
+ extraData: '0x',
121
+ shardsKey: transactionLinker.shardsKey,
122
+ tonAssets: assets.map((asset) => ({
123
+ amount: asset.rawAmount.toString(),
124
+ tokenAddress: asset.address || '',
125
+ assetType: asset.type,
126
+ })),
127
+ tonCaller: transactionLinker.caller,
128
+ };
129
+ isRoundTrip = isRoundTrip ?? assets.length != 0;
130
+ this.logger.debug(`Is round trip: ${isRoundTrip}`);
131
+ const tacSimulationResult = await this.simulateTACMessage(tacSimulationBody);
132
+ this.logger.debug(`TAC simulation ${tacSimulationResult.simulationStatus ? 'success' : 'failed'}`);
133
+ const protocolFee = BigInt((0, ton_1.toNano)(fullStateCCL.tacProtocolFee)) +
134
+ BigInt(isRoundTrip) * BigInt((0, ton_1.toNano)(fullStateCCL.tonProtocolFee));
135
+ const feeParams = {
136
+ isRoundTrip: isRoundTrip,
137
+ gasLimit: !tacSimulationResult.simulationStatus ? 0n : tacSimulationResult.estimatedGas,
138
+ protocolFee: protocolFee,
139
+ evmExecutorFee: BigInt(tacSimulationResult.suggestedTacExecutionFee),
140
+ tvmExecutorFee: BigInt(tacSimulationResult.suggestedTonExecutionFee) * BigInt(isRoundTrip),
141
+ };
142
+ if (!tacSimulationResult.simulationStatus) {
143
+ if (allowSimulationError) {
144
+ this.logger.info('Force send is true, returning fee params');
145
+ return {
146
+ feeParams,
147
+ simulation: tacSimulationResult,
148
+ };
149
+ }
150
+ throw tacSimulationResult;
151
+ }
152
+ this.logger.debug(`Collected fee params: ${(0, Utils_1.formatObjectForLogging)(feeParams)}`);
153
+ return { feeParams, simulation: tacSimulationResult };
154
+ }
155
+ async getTransactionSimulationInfo(evmProxyMsg, sender, assets) {
156
+ this.logger.debug('Getting transaction simulation info');
157
+ Validator_1.Validator.validateEVMAddress(evmProxyMsg.evmTargetAddress);
158
+ const aggregatedData = await (0, Utils_1.aggregateTokens)(assets);
159
+ const transactionLinkerShardCount = aggregatedData.jettons.length == 0 ? 1 : aggregatedData.jettons.length;
160
+ this.logger.debug(`Transaction linker shard count: ${transactionLinkerShardCount}`);
161
+ const transactionLinker = (0, Utils_1.generateTransactionLinker)(sender.getSenderAddress(), transactionLinkerShardCount);
162
+ this.logger.debug(`Transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
163
+ return await this.getFeeInfo(evmProxyMsg, transactionLinker, assets ?? []);
164
+ }
165
+ async getSimulationInfoForTransaction(evmProxyMsg, transactionLinker, assets, allowSimulationError = false, isRoundTrip, evmValidExecutors, tvmValidExecutors) {
166
+ return await this.getFeeInfo(evmProxyMsg, transactionLinker, assets, allowSimulationError, isRoundTrip, evmValidExecutors, tvmValidExecutors);
167
+ }
168
+ }
169
+ exports.Simulator = Simulator;
@@ -1,5 +1,5 @@
1
- import { ILogger } from '../interfaces';
2
1
  import { TxFinalizerConfig } from '../structs/InternalStruct';
2
+ import { ILogger } from '../structs/Services';
3
3
  import { ExecutionStages, Network, TransactionLinker } from '../structs/Struct';
4
4
  export declare function startTracking(transactionLinker: TransactionLinker, network: Network, options?: {
5
5
  customLiteSequencerEndpoints?: string[];
@@ -0,0 +1,25 @@
1
+ import { Wallet } from 'ethers';
2
+ import type { SenderAbstraction } from '../sender';
3
+ import { IConfiguration, ILogger } from '../structs/Services';
4
+ import { Asset, CrossChainTransactionOptions, CrosschainTx, EvmProxyMsg, ExecutionFeeEstimationResult, OperationIdsByShardsKey, SDKParams, SuggestedTONExecutorFee, TACSimulationRequest, TACSimulationResult, TransactionLinkerWithOperationId, WaitOptions } from '../structs/Struct';
5
+ export declare class TacSdk {
6
+ readonly config: IConfiguration;
7
+ private readonly simulator;
8
+ private readonly transactionManager;
9
+ private constructor();
10
+ static create(sdkParams: SDKParams, logger?: ILogger): Promise<TacSdk>;
11
+ closeConnections(): unknown;
12
+ get nativeTONAddress(): string;
13
+ nativeTACAddress(): Promise<string>;
14
+ get getTrustedTACExecutors(): string[];
15
+ get getTrustedTONExecutors(): string[];
16
+ getTransactionSimulationInfo(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, assets?: Asset[]): Promise<ExecutionFeeEstimationResult>;
17
+ getTVMExecutorFeeInfo(assets: Asset[], feeSymbol: string): Promise<SuggestedTONExecutorFee>;
18
+ sendCrossChainTransaction(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, assets?: Asset[], options?: CrossChainTransactionOptions, waitOptions?: WaitOptions<string>): Promise<TransactionLinkerWithOperationId>;
19
+ getTacSmartAccountAddress(tvmUserAddress: string, evmApplicationAddress: string): Promise<string>;
20
+ sendCrossChainTransactions(sender: SenderAbstraction, txs: CrosschainTx[], waitOptions?: WaitOptions<OperationIdsByShardsKey>): Promise<TransactionLinkerWithOperationId[]>;
21
+ bridgeTokensToTON(signer: Wallet, value: bigint, tonTarget: string, assets?: Asset[], tvmExecutorFee?: bigint): Promise<string>;
22
+ isContractDeployedOnTVM(address: string): Promise<boolean>;
23
+ simulateTACMessage(req: TACSimulationRequest): Promise<TACSimulationResult>;
24
+ simulateTransactions(sender: SenderAbstraction, txs: CrosschainTx[]): Promise<TACSimulationResult[]>;
25
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.TacSdk = void 0;
37
+ const Struct_1 = require("../structs/Struct");
38
+ const Configuration_1 = require("./Configuration");
39
+ const Consts_1 = require("./Consts");
40
+ const Logger_1 = require("./Logger");
41
+ const OperationTracker_1 = require("./OperationTracker");
42
+ const Simulator_1 = require("./Simulator");
43
+ const TransactionManager_1 = require("./TransactionManager");
44
+ class TacSdk {
45
+ constructor(config, simulator, transactionManager) {
46
+ this.config = config;
47
+ this.simulator = simulator;
48
+ this.transactionManager = transactionManager;
49
+ }
50
+ static async create(sdkParams, logger = new Logger_1.NoopLogger()) {
51
+ const network = sdkParams.network;
52
+ const delay = sdkParams.delay ?? Consts_1.DEFAULT_DELAY;
53
+ const { testnet, mainnet } = await Promise.resolve().then(() => __importStar(require('@tonappchain/artifacts')));
54
+ const artifacts = network === Struct_1.Network.TESTNET ? testnet : mainnet;
55
+ const config = await Configuration_1.Configuration.create(network, artifacts, sdkParams.TONParams, sdkParams.TACParams, sdkParams.customLiteSequencerEndpoints, delay);
56
+ const simulator = new Simulator_1.Simulator(config, logger);
57
+ const operationTracker = new OperationTracker_1.OperationTracker(network, config.liteSequencerEndpoints);
58
+ const transactionManager = new TransactionManager_1.TransactionManager(config, simulator, operationTracker, logger);
59
+ return new TacSdk(config, simulator, transactionManager);
60
+ }
61
+ closeConnections() {
62
+ return this.config.closeConnections();
63
+ }
64
+ get nativeTONAddress() {
65
+ return this.config.nativeTONAddress;
66
+ }
67
+ async nativeTACAddress() {
68
+ return this.config.nativeTACAddress();
69
+ }
70
+ get getTrustedTACExecutors() {
71
+ return this.config.getTrustedTACExecutors;
72
+ }
73
+ get getTrustedTONExecutors() {
74
+ return this.config.getTrustedTONExecutors;
75
+ }
76
+ async getTransactionSimulationInfo(evmProxyMsg, sender, assets) {
77
+ return this.simulator.getTransactionSimulationInfo(evmProxyMsg, sender, assets);
78
+ }
79
+ async getTVMExecutorFeeInfo(assets, feeSymbol) {
80
+ return this.simulator.getTVMExecutorFeeInfo(assets, feeSymbol);
81
+ }
82
+ async sendCrossChainTransaction(evmProxyMsg, sender, assets, options, waitOptions) {
83
+ return this.transactionManager.sendCrossChainTransaction(evmProxyMsg, sender, assets, options, waitOptions);
84
+ }
85
+ async getTacSmartAccountAddress(tvmUserAddress, evmApplicationAddress) {
86
+ return await this.config.TACParams.smartAccountFactory.getSmartAccountForApplication(tvmUserAddress, evmApplicationAddress);
87
+ }
88
+ async sendCrossChainTransactions(sender, txs, waitOptions) {
89
+ return this.transactionManager.sendCrossChainTransactions(sender, txs, waitOptions);
90
+ }
91
+ async bridgeTokensToTON(signer, value, tonTarget, assets, tvmExecutorFee) {
92
+ return this.transactionManager.bridgeTokensToTON(signer, value, tonTarget, assets, tvmExecutorFee);
93
+ }
94
+ async isContractDeployedOnTVM(address) {
95
+ return this.config.isContractDeployedOnTVM(address);
96
+ }
97
+ async simulateTACMessage(req) {
98
+ return this.simulator.simulateTACMessage(req);
99
+ }
100
+ async simulateTransactions(sender, txs) {
101
+ return this.simulator.simulateTransactions(sender, txs);
102
+ }
103
+ }
104
+ exports.TacSdk = TacSdk;
@@ -0,0 +1,22 @@
1
+ import { Cell } from '@ton/ton';
2
+ import { Wallet } from 'ethers';
3
+ import type { SenderAbstraction } from '../sender';
4
+ import { IConfiguration, ILogger, IOperationTracker, ISimulator } from '../structs/Services';
5
+ import { Asset, CrossChainTransactionOptions, CrosschainTx, EvmProxyMsg, OperationIdsByShardsKey, TransactionLinker, TransactionLinkerWithOperationId, ValidExecutors, WaitOptions } from '../structs/Struct';
6
+ export declare class TransactionManager {
7
+ private readonly config;
8
+ private readonly simulator;
9
+ private readonly operationTracker;
10
+ private readonly logger;
11
+ private readonly evmDataCellBuilder;
12
+ constructor(config: IConfiguration, simulator: ISimulator, operationTracker: IOperationTracker, logger?: ILogger, options?: {
13
+ evmDataCellBuilder?: (transactionLinker: TransactionLinker, evmProxyMsg: EvmProxyMsg, validExecutors: ValidExecutors) => Cell;
14
+ });
15
+ private prepareCrossChainTransaction;
16
+ private generateCrossChainMessages;
17
+ sendCrossChainTransaction(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, assets?: Asset[], options?: CrossChainTransactionOptions, waitOptions?: WaitOptions<string>): Promise<TransactionLinkerWithOperationId>;
18
+ sendCrossChainTransactions(sender: SenderAbstraction, txs: CrosschainTx[], waitOptions?: WaitOptions<OperationIdsByShardsKey>): Promise<TransactionLinkerWithOperationId[]>;
19
+ private prepareCrossChainTransactions;
20
+ private waitForOperationIds;
21
+ bridgeTokensToTON(signer: Wallet, value: bigint, tonTarget: string, assets?: Asset[], tvmExecutorFee?: bigint): Promise<string>;
22
+ }
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionManager = void 0;
4
+ const assets_1 = require("../assets");
5
+ const Struct_1 = require("../structs/Struct");
6
+ const Consts_1 = require("./Consts");
7
+ const Logger_1 = require("./Logger");
8
+ const Utils_1 = require("./Utils");
9
+ const Validator_1 = require("./Validator");
10
+ class TransactionManager {
11
+ constructor(config, simulator, operationTracker, logger = new Logger_1.NoopLogger(), options) {
12
+ this.config = config;
13
+ this.simulator = simulator;
14
+ this.operationTracker = operationTracker;
15
+ this.logger = logger;
16
+ this.evmDataCellBuilder = options?.evmDataCellBuilder ?? Utils_1.buildEvmDataCell;
17
+ }
18
+ async prepareCrossChainTransaction(evmProxyMsg, caller, assets, options) {
19
+ this.logger.debug('Preparing cross-chain transaction');
20
+ const { allowSimulationError = false, isRoundTrip = undefined, protocolFee = undefined, evmExecutorFee = undefined, tvmExecutorFee = undefined, } = options || {};
21
+ let { evmValidExecutors = [], tvmValidExecutors = [] } = options || {};
22
+ Validator_1.Validator.validateEVMAddress(evmProxyMsg.evmTargetAddress);
23
+ Validator_1.Validator.validateEVMAddresses(options?.evmValidExecutors);
24
+ Validator_1.Validator.validateTVMAddresses(options?.tvmValidExecutors);
25
+ const aggregatedData = await (0, Utils_1.aggregateTokens)(assets);
26
+ await Promise.all(aggregatedData.jettons.map((jetton) => jetton.checkCanBeTransferedBy(caller)));
27
+ await Promise.all(aggregatedData.nfts.map((nft) => nft.checkCanBeTransferedBy(caller)));
28
+ await aggregatedData.ton?.checkCanBeTransferedBy(caller);
29
+ const tokensLength = aggregatedData.jettons.length + aggregatedData.nfts.length;
30
+ this.logger.debug(`Tokens length: ${tokensLength}`);
31
+ const transactionLinkerShardCount = tokensLength == 0 ? 1 : tokensLength;
32
+ this.logger.debug(`Transaction linker shard count: ${transactionLinkerShardCount}`);
33
+ const transactionLinker = (0, Utils_1.generateTransactionLinker)(caller, transactionLinkerShardCount);
34
+ this.logger.debug(`Generated transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
35
+ if (evmValidExecutors.length == 0) {
36
+ evmValidExecutors = this.config.getTrustedTACExecutors;
37
+ }
38
+ if (tvmValidExecutors.length == 0) {
39
+ tvmValidExecutors = this.config.getTrustedTONExecutors;
40
+ }
41
+ const { feeParams } = await this.simulator.getSimulationInfoForTransaction(evmProxyMsg, transactionLinker, assets ?? [], allowSimulationError, isRoundTrip, evmValidExecutors, tvmValidExecutors);
42
+ if (evmProxyMsg.gasLimit == undefined) {
43
+ evmProxyMsg.gasLimit = feeParams.gasLimit;
44
+ }
45
+ if (evmExecutorFee != undefined) {
46
+ feeParams.evmExecutorFee = evmExecutorFee;
47
+ }
48
+ if (feeParams.isRoundTrip && tvmExecutorFee != undefined) {
49
+ feeParams.tvmExecutorFee = tvmExecutorFee;
50
+ }
51
+ if (protocolFee != undefined) {
52
+ feeParams.protocolFee = protocolFee;
53
+ }
54
+ this.logger.debug(`Resulting fee params: ${(0, Utils_1.formatObjectForLogging)(feeParams)}`);
55
+ const validExecutors = {
56
+ tac: evmValidExecutors,
57
+ ton: tvmValidExecutors,
58
+ };
59
+ this.logger.debug(`Valid executors: ${(0, Utils_1.formatObjectForLogging)(validExecutors)}`);
60
+ const evmData = this.evmDataCellBuilder(transactionLinker, evmProxyMsg, validExecutors);
61
+ const messages = await this.generateCrossChainMessages(caller, evmData, aggregatedData, feeParams);
62
+ const transaction = {
63
+ validUntil: +new Date() + 15 * 60 * 1000,
64
+ messages,
65
+ network: this.config.network,
66
+ };
67
+ this.logger.debug('Transaction prepared');
68
+ return { transaction, transactionLinker };
69
+ }
70
+ async generateCrossChainMessages(caller, evmData, aggregatedData, feeParams) {
71
+ this.logger.debug(`Generating cross-chain messages`);
72
+ const { jettons, nfts, ton = assets_1.TON.create(this.config) } = aggregatedData;
73
+ let crossChainTonAmount = ton.rawAmount;
74
+ let feeTonAmount = feeParams.protocolFee + feeParams.evmExecutorFee + feeParams.tvmExecutorFee;
75
+ this.logger.debug(`Crosschain ton amount: ${crossChainTonAmount}`);
76
+ this.logger.debug(`Fee ton amount: ${feeTonAmount}`);
77
+ if (jettons.length == 0 && nfts.length == 0) {
78
+ return [
79
+ {
80
+ address: this.config.TONParams.crossChainLayerAddress,
81
+ value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
82
+ payload: await ton.generatePayload({
83
+ excessReceiver: caller,
84
+ evmData,
85
+ feeParams,
86
+ }),
87
+ },
88
+ ];
89
+ }
90
+ const messages = [];
91
+ let currentFeeParams = feeParams;
92
+ for (const jetton of aggregatedData.jettons) {
93
+ const payload = await jetton.generatePayload({
94
+ excessReceiver: caller,
95
+ evmData,
96
+ crossChainTonAmount,
97
+ forwardFeeTonAmount: feeTonAmount,
98
+ feeParams: currentFeeParams,
99
+ });
100
+ const jettonWalletAddress = await jetton.getUserWalletAddress(caller);
101
+ messages.push({
102
+ address: jettonWalletAddress,
103
+ value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
104
+ payload,
105
+ });
106
+ crossChainTonAmount = 0n;
107
+ feeTonAmount = 0n;
108
+ currentFeeParams = undefined;
109
+ }
110
+ for (const nft of aggregatedData.nfts) {
111
+ const payload = await nft.generatePayload({
112
+ excessReceiver: caller,
113
+ evmData,
114
+ crossChainTonAmount,
115
+ forwardFeeTonAmount: feeTonAmount,
116
+ feeParams: currentFeeParams,
117
+ });
118
+ messages.push({
119
+ address: nft.address,
120
+ value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
121
+ payload,
122
+ });
123
+ crossChainTonAmount = 0n;
124
+ feeTonAmount = 0n;
125
+ currentFeeParams = undefined;
126
+ }
127
+ this.logger.debug('Generating cross-chain messages success');
128
+ return messages;
129
+ }
130
+ async sendCrossChainTransaction(evmProxyMsg, sender, assets, options, waitOptions) {
131
+ const caller = sender.getSenderAddress();
132
+ this.logger.debug(`Caller: ${caller}`);
133
+ const { transaction, transactionLinker } = await this.prepareCrossChainTransaction(evmProxyMsg, caller, assets, options);
134
+ await assets_1.TON.checkBalance(sender, this.config, [transaction]);
135
+ this.logger.debug(`*****Sending transaction: ${(0, Utils_1.formatObjectForLogging)(transaction)}`);
136
+ const sendTransactionResult = await sender.sendShardTransaction(transaction, this.config.network, this.config.TONParams.contractOpener);
137
+ return waitOptions
138
+ ? {
139
+ sendTransactionResult,
140
+ operationId: await this.operationTracker
141
+ .getOperationId(transactionLinker, {
142
+ ...waitOptions,
143
+ successCheck: (operationId) => !!operationId,
144
+ logger: this.logger,
145
+ })
146
+ .catch((error) => {
147
+ this.logger.error(`Error while waiting for operation ID: ${error}`);
148
+ return undefined;
149
+ }),
150
+ ...transactionLinker,
151
+ }
152
+ : { sendTransactionResult, ...transactionLinker };
153
+ }
154
+ async sendCrossChainTransactions(sender, txs, waitOptions) {
155
+ const caller = sender.getSenderAddress();
156
+ this.logger.debug(`Caller: ${caller}`);
157
+ this.logger.debug('Preparing multiple cross-chain transactions');
158
+ const { transactions, transactionLinkers } = await this.prepareCrossChainTransactions(txs, caller);
159
+ await assets_1.TON.checkBalance(sender, this.config, transactions);
160
+ this.logger.debug(`*****Sending transactions: ${(0, Utils_1.formatObjectForLogging)(transactions)}`);
161
+ await sender.sendShardTransactions(transactions, this.config.network, this.config.TONParams.contractOpener);
162
+ if (!waitOptions) {
163
+ return transactionLinkers;
164
+ }
165
+ return await this.waitForOperationIds(transactionLinkers, caller, waitOptions);
166
+ }
167
+ async prepareCrossChainTransactions(txs, caller) {
168
+ const transactions = [];
169
+ const transactionLinkers = [];
170
+ for (const { options, assets, evmProxyMsg } of txs) {
171
+ const { transaction, transactionLinker } = await this.prepareCrossChainTransaction(evmProxyMsg, caller, assets, options);
172
+ transactions.push(transaction);
173
+ transactionLinkers.push(transactionLinker);
174
+ }
175
+ return { transactions, transactionLinkers };
176
+ }
177
+ async waitForOperationIds(transactionLinkers, caller, waitOptions) {
178
+ this.logger.debug(`Waiting for operation IDs`);
179
+ try {
180
+ const operationIds = await this.operationTracker.getOperationIdsByShardsKeys(transactionLinkers.map((linker) => linker.shardsKey), caller, {
181
+ ...waitOptions,
182
+ logger: this.logger,
183
+ successCheck: (operationIds) => Object.keys(operationIds).length == transactionLinkers.length &&
184
+ Object.values(operationIds).every((ids) => ids.operationIds.length > 0),
185
+ });
186
+ this.logger.debug(`Operation IDs: ${(0, Utils_1.formatObjectForLogging)(operationIds)}`);
187
+ return transactionLinkers.map((linker) => ({
188
+ ...linker,
189
+ operationId: operationIds[linker.shardsKey].operationIds.at(0),
190
+ }));
191
+ }
192
+ catch (error) {
193
+ this.logger.error(`Error while waiting for operation IDs: ${error}`);
194
+ return transactionLinkers;
195
+ }
196
+ }
197
+ async bridgeTokensToTON(signer, value, tonTarget, assets, tvmExecutorFee) {
198
+ this.logger.debug('Bridging tokens to TON');
199
+ if (assets == undefined) {
200
+ assets = [];
201
+ }
202
+ const tonAssets = [...assets];
203
+ if (value > 0n) {
204
+ tonAssets.push(await (await assets_1.AssetFactory.from(this.config, {
205
+ address: await this.config.nativeTACAddress(),
206
+ tokenType: Struct_1.AssetType.FT,
207
+ })).withAmount({ rawAmount: value }));
208
+ }
209
+ Validator_1.Validator.validateTVMAddress(tonTarget);
210
+ const suggestedTONExecutorFee = await this.simulator.getTVMExecutorFeeInfo(tonAssets, Consts_1.TAC_SYMBOL);
211
+ this.logger.debug(`Suggested TON executor fee: ${(0, Utils_1.formatObjectForLogging)(suggestedTONExecutorFee)}`);
212
+ const crossChainLayerAddress = await this.config.TACParams.crossChainLayer.getAddress();
213
+ for (const asset of assets) {
214
+ const evmAddress = await asset.getEVMAddress();
215
+ if (asset.type == Struct_1.AssetType.FT) {
216
+ this.logger.debug(`Approving token ${evmAddress} for ${crossChainLayerAddress}`);
217
+ const tokenContract = this.config.artifacts.tac.wrappers.ERC20FactoryTAC.connect(evmAddress, this.config.TACParams.provider);
218
+ const tx = await tokenContract.connect(signer).approve(crossChainLayerAddress, asset.rawAmount);
219
+ await tx.wait();
220
+ this.logger.debug(`Approved ${evmAddress} for ${crossChainLayerAddress}`);
221
+ }
222
+ if (asset.type == Struct_1.AssetType.NFT) {
223
+ this.logger.debug(`Approving collection ${evmAddress} for ${crossChainLayerAddress}`);
224
+ const tokenContract = this.config.artifacts.tac.wrappers.ERC721FactoryTAC.connect(evmAddress, this.config.TACParams.provider);
225
+ const tx = await tokenContract
226
+ .connect(signer)
227
+ .approve(crossChainLayerAddress, asset.addresses.index);
228
+ await tx.wait();
229
+ this.logger.debug(`Approved ${asset.address} for ${crossChainLayerAddress}`);
230
+ }
231
+ }
232
+ const shardsKey = BigInt(Math.round(Math.random() * 1e18));
233
+ this.logger.debug(`Shards key: ${shardsKey}`);
234
+ const protocolFee = await this.config.TACParams.crossChainLayer.getProtocolFee();
235
+ this.logger.debug(`Protocol fee: ${protocolFee}`);
236
+ const outMessage = {
237
+ shardsKey: shardsKey,
238
+ tvmTarget: tonTarget,
239
+ tvmPayload: '',
240
+ tvmProtocolFee: protocolFee,
241
+ tvmExecutorFee: tvmExecutorFee ?? BigInt(suggestedTONExecutorFee.inTAC),
242
+ tvmValidExecutors: this.config.getTrustedTONExecutors,
243
+ toBridge: await Promise.all(assets
244
+ .filter((asset) => asset.type === Struct_1.AssetType.FT)
245
+ .map(async (asset) => ({
246
+ evmAddress: await asset.getEVMAddress(),
247
+ amount: asset.rawAmount,
248
+ }))),
249
+ toBridgeNFT: await Promise.all(assets
250
+ .filter((asset) => asset.type === Struct_1.AssetType.NFT)
251
+ .map(async (asset) => ({
252
+ evmAddress: await asset.getEVMAddress(),
253
+ amount: 1n,
254
+ tokenId: asset.addresses.index,
255
+ }))),
256
+ };
257
+ const encodedOutMessage = this.config.artifacts.tac.utils.encodeOutMessageV1(outMessage);
258
+ const outMsgVersion = 1n;
259
+ const totalValue = value + BigInt(outMessage.tvmProtocolFee) + BigInt(outMessage.tvmExecutorFee);
260
+ this.logger.debug(`Total value: ${totalValue}`);
261
+ const tx = await this.config.TACParams.crossChainLayer
262
+ .connect(signer)
263
+ .sendMessage(outMsgVersion, encodedOutMessage, { value: totalValue });
264
+ await tx.wait();
265
+ this.logger.debug(`Transaction hash: ${tx.hash}`);
266
+ return tx.hash;
267
+ }
268
+ }
269
+ exports.TransactionManager = TransactionManager;
@@ -1,10 +1,9 @@
1
- import { IHttpClient, ILogger } from '../interfaces';
2
1
  import { TxFinalizerConfig } from '../structs/InternalStruct';
2
+ import { ILogger } from '../structs/Services';
3
3
  export declare class TonTxFinalizer {
4
4
  private logger;
5
5
  private apiConfig;
6
- private readonly httpClient;
7
- constructor(apiConfig: TxFinalizerConfig, logger?: ILogger, httpClient?: IHttpClient);
6
+ constructor(apiConfig: TxFinalizerConfig, logger?: ILogger);
8
7
  private logHashFormats;
9
8
  private fetchAdjacentTransactions;
10
9
  trackTransactionTree(hash: string, maxDepth?: number): Promise<void>;
@@ -1,7 +1,10 @@
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.TonTxFinalizer = void 0;
4
- const AxiosHttpClient_1 = require("./AxiosHttpClient");
7
+ const axios_1 = __importDefault(require("axios"));
5
8
  const Logger_1 = require("./Logger");
6
9
  const Utils_1 = require("./Utils");
7
10
  const IGNORE_OPCODE = [
@@ -9,10 +12,9 @@ const IGNORE_OPCODE = [
9
12
  '0x7362d09c', // Jetton Notify
10
13
  ];
11
14
  class TonTxFinalizer {
12
- constructor(apiConfig, logger = new Logger_1.NoopLogger(), httpClient = new AxiosHttpClient_1.AxiosHttpClient()) {
15
+ constructor(apiConfig, logger = new Logger_1.NoopLogger()) {
13
16
  this.apiConfig = apiConfig;
14
17
  this.logger = logger;
15
- this.httpClient = httpClient;
16
18
  }
17
19
  logHashFormats(hash) {
18
20
  let hex, base64;
@@ -32,9 +34,10 @@ class TonTxFinalizer {
32
34
  // Fetches adjacent transactions from toncenter
33
35
  async fetchAdjacentTransactions(hash, retries = 5, delay = 1000) {
34
36
  for (let i = retries; i >= 0; i--) {
37
+ await (0, Utils_1.sleep)(delay);
35
38
  try {
36
39
  const url = this.apiConfig.urlBuilder(hash);
37
- const response = await this.httpClient.get(url, {
40
+ const response = await axios_1.default.get(url, {
38
41
  headers: {
39
42
  [this.apiConfig.authorization.header]: this.apiConfig.authorization.value,
40
43
  },
@@ -54,7 +57,6 @@ class TonTxFinalizer {
54
57
  console.warn(`Failed to fetch adjacent transactions for ${hash}:`, logMessage);
55
58
  }
56
59
  }
57
- await (0, Utils_1.sleep)(delay);
58
60
  }
59
61
  return [];
60
62
  }
@@ -89,9 +91,7 @@ class TonTxFinalizer {
89
91
  `action.result_code = ${action.resultCode}`);
90
92
  }
91
93
  if (currentDepth + 1 < maxDepth) {
92
- if (tx.outMsgs.length > 0) {
93
- queue.push({ hash: tx.hash, depth: currentDepth + 1 });
94
- }
94
+ queue.push({ hash: tx.hash, depth: currentDepth + 1 });
95
95
  }
96
96
  }
97
97
  else {