@tonappchain/sdk 0.7.0-rc24-test-7 → 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 -352
  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/ERC20/ERC20.sol/ERC20.json +0 -319
  74. package/dist/artifacts/dev/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +0 -444
  75. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +0 -1087
  76. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -114
  77. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -194
  78. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -164
  79. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +0 -278
  80. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +0 -380
  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/ERC20/ERC20.d.ts +0 -141
  86. package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts +0 -211
  87. package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.js +0 -2
  88. package/dist/artifacts/dev/tac/internal/typechain-types/common.d.ts +0 -50
  89. package/dist/artifacts/dev/tac/internal/typechain-types/common.js +0 -2
  90. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +0 -356
  91. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +0 -2
  92. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +0 -75
  93. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +0 -2
  94. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +0 -123
  95. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.js +0 -2
  96. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +0 -99
  97. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +0 -2
  98. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +0 -182
  99. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +0 -2
  100. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +0 -244
  101. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.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 -352
  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/ERC20/ERC20.sol/ERC20.json +0 -319
  168. package/dist/artifacts/mainnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +0 -444
  169. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +0 -1087
  170. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -114
  171. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -194
  172. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -164
  173. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +0 -278
  174. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +0 -380
  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/ERC20/ERC20.d.ts +0 -141
  180. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.js +0 -2
  181. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts +0 -211
  182. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.js +0 -2
  183. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.d.ts +0 -50
  184. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.js +0 -2
  185. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +0 -356
  186. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +0 -2
  187. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +0 -75
  188. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +0 -2
  189. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +0 -123
  190. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +0 -2
  191. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +0 -99
  192. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +0 -2
  193. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +0 -182
  194. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +0 -2
  195. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +0 -244
  196. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.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 -352
  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/ERC20/ERC20.sol/ERC20.json +0 -319
  262. package/dist/artifacts/testnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +0 -444
  263. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +0 -1087
  264. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -114
  265. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -194
  266. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -164
  267. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +0 -278
  268. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +0 -380
  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/ERC20/ERC20.d.ts +0 -141
  274. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.js +0 -2
  275. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.d.ts +0 -211
  276. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.js +0 -2
  277. package/dist/artifacts/testnet/tac/internal/typechain-types/common.d.ts +0 -50
  278. package/dist/artifacts/testnet/tac/internal/typechain-types/common.js +0 -2
  279. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +0 -356
  280. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +0 -2
  281. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +0 -75
  282. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +0 -2
  283. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +0 -123
  284. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +0 -2
  285. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +0 -99
  286. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +0 -2
  287. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +0 -182
  288. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +0 -2
  289. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +0 -244
  290. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.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/ERC20/ERC20.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 {