@tonappchain/sdk 0.7.0-rc9 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +198 -191
  3. package/dist/artifacts/dev/index.d.ts +9 -0
  4. package/dist/artifacts/dev/index.js +52 -0
  5. package/dist/artifacts/dev/tac/addresses.d.ts +4 -0
  6. package/dist/artifacts/dev/tac/addresses.js +8 -0
  7. package/dist/artifacts/dev/tac/artifacts.d.ts +330 -0
  8. package/dist/artifacts/dev/tac/artifacts.js +26 -0
  9. package/dist/artifacts/dev/tac/endpoints.d.ts +2 -0
  10. package/dist/artifacts/dev/tac/endpoints.js +5 -0
  11. package/dist/artifacts/dev/tac/index.d.ts +6 -0
  12. package/dist/artifacts/dev/tac/index.js +43 -0
  13. package/dist/artifacts/dev/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  14. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  15. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
  16. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  17. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  18. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  19. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  20. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  21. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  22. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  23. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.d.ts +4 -0
  24. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.js +18 -0
  25. package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
  26. package/dist/artifacts/dev/tac/internal/typechain-types/common.d.ts +50 -0
  27. package/dist/artifacts/dev/tac/internal/typechain-types/common.js +2 -0
  28. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  29. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  30. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  31. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
  32. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  33. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
  34. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  35. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
  36. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  37. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
  38. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  39. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
  40. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
  41. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
  42. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  43. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
  44. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
  45. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
  46. package/dist/artifacts/dev/tac/multicall.d.ts +1 -0
  47. package/dist/artifacts/dev/tac/multicall.js +22 -0
  48. package/dist/artifacts/dev/tac/structs.d.ts +1 -0
  49. package/dist/artifacts/dev/tac/structs.js +2 -0
  50. package/dist/artifacts/dev/tac/utils.d.ts +1 -0
  51. package/dist/artifacts/dev/tac/utils.js +5 -0
  52. package/dist/artifacts/dev/tac/wrappers.d.ts +9 -0
  53. package/dist/artifacts/dev/tac/wrappers.js +2 -0
  54. package/dist/artifacts/dev/ton/addresses.d.ts +1 -0
  55. package/dist/artifacts/dev/ton/addresses.js +5 -0
  56. package/dist/artifacts/dev/ton/artifacts.d.ts +47 -0
  57. package/dist/artifacts/dev/ton/artifacts.js +26 -0
  58. package/dist/artifacts/dev/ton/endpoints.d.ts +3 -0
  59. package/dist/artifacts/dev/ton/endpoints.js +6 -0
  60. package/dist/artifacts/dev/ton/index.d.ts +3 -0
  61. package/dist/artifacts/dev/ton/index.js +40 -0
  62. package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  63. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -0
  64. package/dist/artifacts/dev/ton/internal/build/JettonMinter.compiled.json +1 -0
  65. package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -0
  66. package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -0
  67. package/dist/artifacts/dev/ton/internal/build/NFTCollection.compiled.json +1 -0
  68. package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -0
  69. package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -0
  70. package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -0
  71. package/dist/artifacts/dev/ton/internal/wrappers/Constants.d.ts +56 -0
  72. package/dist/artifacts/dev/ton/internal/wrappers/Constants.js +62 -0
  73. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  74. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +336 -0
  75. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  76. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +202 -0
  77. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  78. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +158 -0
  79. package/dist/{wrappers → artifacts/dev/ton/internal/wrappers}/JettonWallet.d.ts +52 -13
  80. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +193 -0
  81. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  82. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +151 -0
  83. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +82 -0
  84. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +148 -0
  85. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  86. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +157 -0
  87. package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +80 -0
  88. package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +152 -0
  89. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  90. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.js +291 -0
  91. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  92. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  93. package/dist/artifacts/dev/ton/wrappers.d.ts +8 -0
  94. package/dist/artifacts/dev/ton/wrappers.js +27 -0
  95. package/dist/artifacts/index.d.ts +3 -0
  96. package/dist/artifacts/index.js +39 -0
  97. package/dist/artifacts/mainnet/index.d.ts +9 -0
  98. package/dist/artifacts/mainnet/index.js +52 -0
  99. package/dist/artifacts/mainnet/tac/addresses.d.ts +4 -0
  100. package/dist/artifacts/mainnet/tac/addresses.js +7 -0
  101. package/dist/artifacts/mainnet/tac/artifacts.d.ts +330 -0
  102. package/dist/artifacts/mainnet/tac/artifacts.js +26 -0
  103. package/dist/artifacts/mainnet/tac/endpoints.d.ts +2 -0
  104. package/dist/artifacts/mainnet/tac/endpoints.js +5 -0
  105. package/dist/artifacts/mainnet/tac/index.d.ts +6 -0
  106. package/dist/artifacts/mainnet/tac/index.js +43 -0
  107. package/dist/artifacts/mainnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  108. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  109. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
  110. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  111. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  112. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  113. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  114. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  115. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  116. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  117. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
  118. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.js +18 -0
  119. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
  120. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +2 -0
  121. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.d.ts +50 -0
  122. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.js +2 -0
  123. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  124. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  125. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  126. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
  127. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  128. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
  129. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  130. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
  131. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  132. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
  133. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  134. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
  135. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
  136. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
  137. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  138. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
  139. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
  140. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
  141. package/dist/artifacts/mainnet/tac/multicall.d.ts +1 -0
  142. package/dist/artifacts/mainnet/tac/multicall.js +22 -0
  143. package/dist/artifacts/mainnet/tac/structs.d.ts +1 -0
  144. package/dist/artifacts/mainnet/tac/structs.js +2 -0
  145. package/dist/artifacts/mainnet/tac/utils.d.ts +1 -0
  146. package/dist/artifacts/mainnet/tac/utils.js +5 -0
  147. package/dist/artifacts/mainnet/tac/wrappers.d.ts +9 -0
  148. package/dist/artifacts/mainnet/tac/wrappers.js +2 -0
  149. package/dist/artifacts/mainnet/ton/addresses.d.ts +1 -0
  150. package/dist/artifacts/mainnet/ton/addresses.js +4 -0
  151. package/dist/artifacts/mainnet/ton/artifacts.d.ts +47 -0
  152. package/dist/artifacts/mainnet/ton/artifacts.js +26 -0
  153. package/dist/artifacts/mainnet/ton/endpoints.d.ts +3 -0
  154. package/dist/artifacts/mainnet/ton/endpoints.js +6 -0
  155. package/dist/artifacts/mainnet/ton/index.d.ts +3 -0
  156. package/dist/artifacts/mainnet/ton/index.js +40 -0
  157. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  158. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -0
  159. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -0
  160. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -0
  161. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -0
  162. package/dist/artifacts/mainnet/ton/internal/build/NFTCollection.compiled.json +1 -0
  163. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -0
  164. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -0
  165. package/dist/artifacts/mainnet/ton/internal/build/Settings.compiled.json +1 -0
  166. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.d.ts +56 -0
  167. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.js +62 -0
  168. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  169. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
  170. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  171. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +202 -0
  172. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  173. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.js +158 -0
  174. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
  175. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.js +193 -0
  176. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  177. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.js +151 -0
  178. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
  179. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.js +148 -0
  180. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  181. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.js +157 -0
  182. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.d.ts +80 -0
  183. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.js +152 -0
  184. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  185. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
  186. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  187. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  188. package/dist/artifacts/mainnet/ton/wrappers.d.ts +8 -0
  189. package/dist/artifacts/mainnet/ton/wrappers.js +27 -0
  190. package/dist/artifacts/tacTypes.d.ts +13 -0
  191. package/dist/artifacts/tacTypes.js +2 -0
  192. package/dist/artifacts/testnet/index.d.ts +9 -0
  193. package/dist/artifacts/testnet/index.js +52 -0
  194. package/dist/artifacts/testnet/tac/addresses.d.ts +4 -0
  195. package/dist/artifacts/testnet/tac/addresses.js +7 -0
  196. package/dist/artifacts/testnet/tac/artifacts.d.ts +330 -0
  197. package/dist/artifacts/testnet/tac/artifacts.js +26 -0
  198. package/dist/artifacts/testnet/tac/endpoints.d.ts +2 -0
  199. package/dist/artifacts/testnet/tac/endpoints.js +5 -0
  200. package/dist/artifacts/testnet/tac/index.d.ts +6 -0
  201. package/dist/artifacts/testnet/tac/index.js +43 -0
  202. package/dist/artifacts/testnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  203. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  204. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
  205. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  206. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  207. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  208. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  209. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  210. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  211. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  212. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
  213. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.js +18 -0
  214. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
  215. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +2 -0
  216. package/dist/artifacts/testnet/tac/internal/typechain-types/common.d.ts +50 -0
  217. package/dist/artifacts/testnet/tac/internal/typechain-types/common.js +2 -0
  218. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  219. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  220. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  221. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
  222. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  223. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
  224. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  225. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
  226. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  227. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
  228. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  229. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
  230. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
  231. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
  232. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  233. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
  234. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
  235. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
  236. package/dist/artifacts/testnet/tac/multicall.d.ts +1 -0
  237. package/dist/artifacts/testnet/tac/multicall.js +22 -0
  238. package/dist/artifacts/testnet/tac/structs.d.ts +1 -0
  239. package/dist/artifacts/testnet/tac/structs.js +2 -0
  240. package/dist/artifacts/testnet/tac/utils.d.ts +1 -0
  241. package/dist/artifacts/testnet/tac/utils.js +5 -0
  242. package/dist/artifacts/testnet/tac/wrappers.d.ts +9 -0
  243. package/dist/artifacts/testnet/tac/wrappers.js +2 -0
  244. package/dist/artifacts/testnet/ton/addresses.d.ts +1 -0
  245. package/dist/artifacts/testnet/ton/addresses.js +4 -0
  246. package/dist/artifacts/testnet/ton/artifacts.d.ts +47 -0
  247. package/dist/artifacts/testnet/ton/artifacts.js +26 -0
  248. package/dist/artifacts/testnet/ton/endpoints.d.ts +3 -0
  249. package/dist/artifacts/testnet/ton/endpoints.js +6 -0
  250. package/dist/artifacts/testnet/ton/index.d.ts +3 -0
  251. package/dist/artifacts/testnet/ton/index.js +40 -0
  252. package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  253. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -0
  254. package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +1 -0
  255. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -0
  256. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -0
  257. package/dist/artifacts/testnet/ton/internal/build/NFTCollection.compiled.json +1 -0
  258. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -0
  259. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -0
  260. package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -0
  261. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.d.ts +56 -0
  262. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.js +62 -0
  263. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  264. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
  265. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  266. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +202 -0
  267. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  268. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +158 -0
  269. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
  270. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +193 -0
  271. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  272. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +151 -0
  273. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
  274. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +148 -0
  275. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  276. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +157 -0
  277. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +80 -0
  278. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +152 -0
  279. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  280. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
  281. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  282. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  283. package/dist/artifacts/testnet/ton/wrappers.d.ts +8 -0
  284. package/dist/artifacts/testnet/ton/wrappers.js +27 -0
  285. package/dist/artifacts/tonTypes.d.ts +20 -0
  286. package/dist/artifacts/tonTypes.js +2 -0
  287. package/dist/{adapters → src/adapters}/contractOpener.d.ts +2 -1
  288. package/dist/{adapters → src/adapters}/contractOpener.js +39 -6
  289. package/dist/src/adapters/index.d.ts +2 -0
  290. package/dist/src/adapters/index.js +18 -0
  291. package/dist/{adapters → src/adapters}/retryableContractOpener.d.ts +6 -3
  292. package/dist/{adapters → src/adapters}/retryableContractOpener.js +10 -11
  293. package/dist/src/agnosticSdk/AbiHandler.d.ts +27 -0
  294. package/dist/src/agnosticSdk/AbiHandler.js +137 -0
  295. package/dist/src/agnosticSdk/AgnosticSdk.d.ts +201 -0
  296. package/dist/src/agnosticSdk/AgnosticSdk.js +201 -0
  297. package/dist/src/agnosticSdk/AgnosticStructs.d.ts +108 -0
  298. package/dist/src/agnosticSdk/AgnosticStructs.js +23 -0
  299. package/dist/src/agnosticSdk/DebugHelpers.d.ts +88 -0
  300. package/dist/src/agnosticSdk/DebugHelpers.js +274 -0
  301. package/dist/src/agnosticSdk/HooksHandler.d.ts +43 -0
  302. package/dist/src/agnosticSdk/HooksHandler.js +102 -0
  303. package/dist/src/agnosticSdk/ReplacementHelper.d.ts +95 -0
  304. package/dist/src/agnosticSdk/ReplacementHelper.js +235 -0
  305. package/dist/{assets → src/assets}/AssetCache.d.ts +1 -1
  306. package/dist/{assets → src/assets}/AssetFactory.d.ts +2 -2
  307. package/dist/{assets → src/assets}/AssetFactory.js +4 -3
  308. package/dist/{assets → src/assets}/FT.d.ts +14 -17
  309. package/dist/{assets → src/assets}/FT.js +94 -58
  310. package/dist/{assets → src/assets}/NFT.d.ts +15 -16
  311. package/dist/{assets → src/assets}/NFT.js +58 -32
  312. package/dist/{assets → src/assets}/TON.d.ts +8 -13
  313. package/dist/{assets → src/assets}/TON.js +27 -21
  314. package/dist/src/errors/index.d.ts +2 -0
  315. package/dist/{errors → src/errors}/index.js +8 -2
  316. package/dist/{errors → src/errors}/instances.d.ts +11 -1
  317. package/dist/src/errors/instances.js +58 -0
  318. package/dist/src/index.d.ts +21 -0
  319. package/dist/{index.js → src/index.js} +38 -18
  320. package/dist/src/interfaces/Asset.d.ts +78 -0
  321. package/dist/src/interfaces/Asset.js +2 -0
  322. package/dist/src/interfaces/ContractOpener.d.ts +21 -0
  323. package/dist/src/interfaces/ContractOpener.js +2 -0
  324. package/dist/src/interfaces/IConfiguration.d.ts +35 -0
  325. package/dist/src/interfaces/IConfiguration.js +2 -0
  326. package/dist/src/interfaces/IHttpClient.d.ts +16 -0
  327. package/dist/src/interfaces/IHttpClient.js +2 -0
  328. package/dist/src/interfaces/ILiteSequencerClient.d.ts +43 -0
  329. package/dist/src/interfaces/ILiteSequencerClient.js +2 -0
  330. package/dist/src/interfaces/ILiteSequencerClientFactory.d.ts +9 -0
  331. package/dist/src/interfaces/ILiteSequencerClientFactory.js +2 -0
  332. package/dist/src/interfaces/ILogger.d.ts +10 -0
  333. package/dist/src/interfaces/ILogger.js +2 -0
  334. package/dist/src/interfaces/IOperationTracker.d.ts +81 -0
  335. package/dist/src/interfaces/IOperationTracker.js +2 -0
  336. package/dist/src/interfaces/ISimulator.d.ts +18 -0
  337. package/dist/src/interfaces/ISimulator.js +2 -0
  338. package/dist/src/interfaces/ITACTransactionManager.d.ts +15 -0
  339. package/dist/src/interfaces/ITACTransactionManager.js +2 -0
  340. package/dist/src/interfaces/ITONTransactionManager.d.ts +20 -0
  341. package/dist/src/interfaces/ITONTransactionManager.js +2 -0
  342. package/dist/src/interfaces/ITacSDK.d.ts +185 -0
  343. package/dist/src/interfaces/ITacSDK.js +2 -0
  344. package/dist/src/interfaces/SenderAbstraction.d.ts +35 -0
  345. package/dist/src/interfaces/SenderAbstraction.js +2 -0
  346. package/dist/src/interfaces/WalletInstanse.d.ts +20 -0
  347. package/dist/src/interfaces/WalletInstanse.js +2 -0
  348. package/dist/src/interfaces/index.d.ts +14 -0
  349. package/dist/src/interfaces/index.js +30 -0
  350. package/dist/src/sdk/AxiosHttpClient.d.ts +12 -0
  351. package/dist/src/sdk/AxiosHttpClient.js +23 -0
  352. package/dist/{sdk → src/sdk}/Configuration.d.ts +6 -5
  353. package/dist/src/sdk/Configuration.js +195 -0
  354. package/dist/{sdk → src/sdk}/Consts.d.ts +3 -0
  355. package/dist/{sdk → src/sdk}/Consts.js +4 -1
  356. package/dist/src/sdk/LiteSequencerClient.d.ts +18 -0
  357. package/dist/{sdk → src/sdk}/LiteSequencerClient.js +81 -25
  358. package/dist/{sdk → src/sdk}/Logger.d.ts +5 -5
  359. package/dist/{sdk → src/sdk}/Logger.js +12 -4
  360. package/dist/{sdk → src/sdk}/OperationTracker.d.ts +5 -13
  361. package/dist/{sdk → src/sdk}/OperationTracker.js +112 -16
  362. package/dist/src/sdk/Simulator.d.ts +11 -0
  363. package/dist/src/sdk/Simulator.js +70 -0
  364. package/dist/{sdk → src/sdk}/StartTracking.d.ts +1 -1
  365. package/dist/src/sdk/TACTransactionManager.d.ts +10 -0
  366. package/dist/src/sdk/TACTransactionManager.js +101 -0
  367. package/dist/src/sdk/TONTransactionManager.d.ts +17 -0
  368. package/dist/src/sdk/TONTransactionManager.js +220 -0
  369. package/dist/src/sdk/TacSdk.d.ts +44 -0
  370. package/dist/src/sdk/TacSdk.js +181 -0
  371. package/dist/{sdk → src/sdk}/TxFinalizer.d.ts +3 -2
  372. package/dist/{sdk → src/sdk}/TxFinalizer.js +13 -8
  373. package/dist/{sdk → src/sdk}/Utils.d.ts +14 -7
  374. package/dist/{sdk → src/sdk}/Utils.js +127 -34
  375. package/dist/{sdk → src/sdk}/Validator.d.ts +2 -2
  376. package/dist/{sdk → src/sdk}/Validator.js +6 -6
  377. package/dist/{sender → src/sender}/BatchSender.d.ts +1 -2
  378. package/dist/{sender → src/sender}/RawSender.d.ts +3 -3
  379. package/dist/{sender → src/sender}/SenderFactory.d.ts +1 -1
  380. package/dist/{sender → src/sender}/SenderFactory.js +1 -1
  381. package/dist/{sender → src/sender}/TonConnectSender.d.ts +2 -2
  382. package/dist/{sender → src/sender}/TonConnectSender.js +3 -3
  383. package/dist/{sender → src/sender}/index.d.ts +1 -1
  384. package/dist/{sender → src/sender}/index.js +1 -1
  385. package/dist/{structs → src/structs}/InternalStruct.d.ts +30 -6
  386. package/dist/{structs → src/structs}/Struct.d.ts +109 -62
  387. package/dist/{structs → src/structs}/Struct.js +7 -1
  388. package/dist/{wrappers → src/wrappers}/ContentUtils.js +0 -1
  389. package/dist/{wrappers → src/wrappers}/HighloadWalletV3.d.ts +2 -2
  390. package/package.json +118 -67
  391. package/dist/errors/index.d.ts +0 -2
  392. package/dist/errors/instances.js +0 -47
  393. package/dist/index.d.ts +0 -19
  394. package/dist/sdk/Configuration.js +0 -90
  395. package/dist/sdk/LiteSequencerClient.d.ts +0 -13
  396. package/dist/sdk/Simulator.d.ts +0 -23
  397. package/dist/sdk/Simulator.js +0 -169
  398. package/dist/sdk/TacSdk.d.ts +0 -32
  399. package/dist/sdk/TacSdk.js +0 -154
  400. package/dist/sdk/TransactionManager.d.ts +0 -22
  401. package/dist/sdk/TransactionManager.js +0 -269
  402. package/dist/sender/SenderAbstraction.d.ts +0 -22
  403. package/dist/sender/SenderAbstraction.js +0 -5
  404. package/dist/structs/Services.d.ts +0 -66
  405. package/dist/wrappers/JettonMaster.d.ts +0 -24
  406. package/dist/wrappers/JettonMaster.js +0 -53
  407. package/dist/wrappers/JettonWallet.js +0 -124
  408. package/dist/wrappers/Settings.d.ts +0 -10
  409. package/dist/wrappers/Settings.js +0 -38
  410. /package/dist/{structs/Services.js → artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js} +0 -0
  411. /package/dist/{assets → src/assets}/AssetCache.js +0 -0
  412. /package/dist/{assets → src/assets}/index.d.ts +0 -0
  413. /package/dist/{assets → src/assets}/index.js +0 -0
  414. /package/dist/{errors → src/errors}/errors.d.ts +0 -0
  415. /package/dist/{errors → src/errors}/errors.js +0 -0
  416. /package/dist/{sdk → src/sdk}/StartTracking.js +0 -0
  417. /package/dist/{sender → src/sender}/BatchSender.js +0 -0
  418. /package/dist/{sender → src/sender}/RawSender.js +0 -0
  419. /package/dist/{structs → src/structs}/InternalStruct.js +0 -0
  420. /package/dist/{wrappers → src/wrappers}/ContentUtils.d.ts +0 -0
  421. /package/dist/{wrappers → src/wrappers}/HighloadQueryId.d.ts +0 -0
  422. /package/dist/{wrappers → src/wrappers}/HighloadQueryId.js +0 -0
  423. /package/dist/{wrappers → src/wrappers}/HighloadWalletV3.js +0 -0
@@ -1,38 +1,43 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.LiteSequencerClient = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
4
  const errors_1 = require("../errors");
5
+ const instances_1 = require("../errors/instances");
6
+ const AxiosHttpClient_1 = require("./AxiosHttpClient");
9
7
  const Utils_1 = require("./Utils");
10
8
  class LiteSequencerClient {
11
- constructor(endpoint, maxChunkSize = 100) {
9
+ constructor(endpoint, maxChunkSize = 100, httpClient = new AxiosHttpClient_1.AxiosHttpClient()) {
12
10
  this.endpoint = endpoint;
13
11
  this.maxChunkSize = maxChunkSize;
12
+ this.httpClient = httpClient;
14
13
  }
15
14
  async getOperationIdByTransactionHash(transactionHash) {
16
15
  const isEthHash = /^0x[a-fA-F0-9]{64}$/.test(transactionHash);
17
16
  const path = isEthHash ? 'tac/operation-id' : 'ton/operation-id';
18
17
  try {
19
- const response = await axios_1.default.get(new URL(path, this.endpoint).toString(), {
20
- params: { transactionHash },
21
- });
22
- return response.data.response || '';
18
+ if (isEthHash) {
19
+ const response = await this.httpClient.get(new URL(path, this.endpoint).toString(), {
20
+ params: { transactionHash },
21
+ });
22
+ return response.data.response?.operationId || '';
23
+ }
24
+ else {
25
+ const response = await this.httpClient.get(new URL(path, this.endpoint).toString(), {
26
+ params: { transactionHash },
27
+ });
28
+ return response.data.response || '';
29
+ }
23
30
  }
24
31
  catch (error) {
25
- if (axios_1.default.isAxiosError(error)) {
26
- if (error.response?.status === 404) {
27
- return '';
28
- }
32
+ if (error?.response?.status === 404) {
33
+ return '';
29
34
  }
30
35
  throw (0, errors_1.operationFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
31
36
  }
32
37
  }
33
38
  async getOperationType(operationId) {
34
39
  try {
35
- const response = await axios_1.default.get(new URL('operation-type', this.endpoint).toString(), {
40
+ const response = await this.httpClient.get(new URL('operation-type', this.endpoint).toString(), {
36
41
  params: {
37
42
  operationId,
38
43
  },
@@ -51,14 +56,12 @@ class LiteSequencerClient {
51
56
  timestamp: transactionLinker.timestamp,
52
57
  };
53
58
  try {
54
- const response = await axios_1.default.post(new URL('ton/operation-id', this.endpoint).toString(), requestBody);
59
+ const response = await this.httpClient.post(new URL('ton/operation-id', this.endpoint).toString(), requestBody);
55
60
  return response.data.response || '';
56
61
  }
57
62
  catch (error) {
58
- if (axios_1.default.isAxiosError(error)) {
59
- if (error.response?.status === 404) {
60
- return '';
61
- }
63
+ if (error?.response?.status === 404) {
64
+ return '';
62
65
  }
63
66
  throw (0, errors_1.operationFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
64
67
  }
@@ -69,7 +72,7 @@ class LiteSequencerClient {
69
72
  }
70
73
  try {
71
74
  const response = await this.processChunkedRequest(shardsKeys, async (chunk) => {
72
- const response = await axios_1.default.post(new URL('operation-ids-by-shards-keys', this.endpoint).toString(), {
75
+ const response = await this.httpClient.post(new URL('operation-ids-by-shards-keys', this.endpoint).toString(), {
73
76
  shardsKeys: chunk,
74
77
  caller: caller,
75
78
  });
@@ -87,7 +90,7 @@ class LiteSequencerClient {
87
90
  }
88
91
  try {
89
92
  const response = await this.processChunkedRequest(operationIds, async (chunk) => {
90
- const response = await axios_1.default.post(new URL('stage-profiling', this.endpoint).toString(), {
93
+ const response = await this.httpClient.post(new URL('stage-profiling', this.endpoint).toString(), {
91
94
  operationIds: chunk,
92
95
  }, {
93
96
  transformResponse: [Utils_1.toCamelCaseTransformer],
@@ -106,7 +109,7 @@ class LiteSequencerClient {
106
109
  }
107
110
  try {
108
111
  const response = await this.processChunkedRequest(operationIds, async (chunk) => {
109
- const response = await axios_1.default.post(new URL('status', this.endpoint).toString(), {
112
+ const response = await this.httpClient.post(new URL('status', this.endpoint).toString(), {
110
113
  operationIds: chunk,
111
114
  }, {
112
115
  transformResponse: [Utils_1.toCamelCaseTransformer],
@@ -119,10 +122,63 @@ class LiteSequencerClient {
119
122
  throw (0, errors_1.statusFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
120
123
  }
121
124
  }
122
- async processChunkedRequest(identificators, requestFn, chunkSize = this.maxChunkSize) {
125
+ async convertCurrency(params) {
126
+ try {
127
+ const payload = {
128
+ currency: params.currency,
129
+ value: params.value.toString(),
130
+ };
131
+ const response = await this.httpClient.post(new URL('convert_currency', this.endpoint).toString(), payload, {
132
+ transformResponse: [Utils_1.toCamelCaseTransformer],
133
+ });
134
+ const raw = response.data.response;
135
+ return {
136
+ decimals: raw.decimals,
137
+ spotValue: BigInt(raw.spotValue),
138
+ emaValue: BigInt(raw.emaValue),
139
+ currency: raw.currency,
140
+ tacPrice: {
141
+ spot: BigInt(raw.tacPrice.spot),
142
+ ema: BigInt(raw.tacPrice.ema),
143
+ decimals: raw.tacPrice.decimals,
144
+ },
145
+ tonPrice: {
146
+ spot: BigInt(raw.tonPrice.spot),
147
+ ema: BigInt(raw.tonPrice.ema),
148
+ decimals: raw.tonPrice.decimals,
149
+ },
150
+ };
151
+ }
152
+ catch (error) {
153
+ throw (0, instances_1.convertCurrencyFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
154
+ }
155
+ }
156
+ async simulateTACMessage(params) {
157
+ try {
158
+ const response = await this.httpClient.post(new URL('tac/simulator/simulate-message', this.endpoint).toString(), params, {
159
+ transformResponse: [Utils_1.toCamelCaseTransformer],
160
+ });
161
+ return response.data.response;
162
+ }
163
+ catch (error) {
164
+ throw (0, instances_1.simulationFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
165
+ }
166
+ }
167
+ async getTVMExecutorFee(params) {
168
+ try {
169
+ const response = await this.httpClient.post(new URL('/ton/calculator/ton-executor-fee', this.endpoint).toString(), params, {
170
+ transformResponse: [Utils_1.toCamelCaseTransformer],
171
+ });
172
+ return response.data.response;
173
+ }
174
+ catch (error) {
175
+ throw (0, instances_1.getTONFeeInfoFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
176
+ }
177
+ }
178
+ async processChunkedRequest(identifiers, requestFn, chunkSize = this.maxChunkSize) {
123
179
  const results = [];
124
- for (let i = 0; i < identificators.length; i += chunkSize) {
125
- const chunk = identificators.slice(i, i + chunkSize);
180
+ for (let i = 0; i < identifiers.length; i += chunkSize) {
181
+ const chunk = identifiers.slice(i, i + chunkSize);
126
182
  const result = await requestFn(chunk);
127
183
  results.push(result);
128
184
  }
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../structs/Services';
1
+ import { ILogger } from '../interfaces';
2
2
  export declare class ConsoleLogger implements ILogger {
3
3
  debug(...arg: unknown[]): void;
4
4
  info(...arg: unknown[]): void;
@@ -6,8 +6,8 @@ export declare class ConsoleLogger implements ILogger {
6
6
  error(...arg: unknown[]): void;
7
7
  }
8
8
  export declare class NoopLogger implements ILogger {
9
- debug(): void;
10
- info(): void;
11
- warn(): void;
12
- error(): void;
9
+ debug(..._arg: unknown[]): void;
10
+ info(..._arg: unknown[]): void;
11
+ warn(..._arg: unknown[]): void;
12
+ error(..._arg: unknown[]): void;
13
13
  }
@@ -17,9 +17,17 @@ class ConsoleLogger {
17
17
  }
18
18
  exports.ConsoleLogger = ConsoleLogger;
19
19
  class NoopLogger {
20
- debug() { }
21
- info() { }
22
- warn() { }
23
- error() { }
20
+ debug(..._arg) {
21
+ void _arg;
22
+ }
23
+ info(..._arg) {
24
+ void _arg;
25
+ }
26
+ warn(..._arg) {
27
+ void _arg;
28
+ }
29
+ error(..._arg) {
30
+ void _arg;
31
+ }
24
32
  }
25
33
  exports.NoopLogger = NoopLogger;
@@ -1,16 +1,5 @@
1
- import { ILogger, IOperationTracker } from '../structs/Services';
2
- import { ExecutionStages, ExecutionStagesByOperationId, Network, OperationIdsByShardsKey, OperationType, SimplifiedStatuses, StatusInfo, StatusInfosByOperationId, TransactionLinker, WaitOptions } from '../structs/Struct';
3
- export interface ILiteSequencerClientFactory {
4
- createClients(endpoints: string[]): ILiteSequencerClient[];
5
- }
6
- export interface ILiteSequencerClient {
7
- getOperationType(operationId: string): Promise<OperationType>;
8
- getOperationId(transactionLinker: TransactionLinker): Promise<string>;
9
- getOperationIdByTransactionHash(transactionHash: string): Promise<string>;
10
- getOperationIdsByShardsKeys(shardsKeys: string[], caller: string, chunkSize?: number): Promise<OperationIdsByShardsKey>;
11
- getStageProfilings(operationIds: string[], chunkSize?: number): Promise<ExecutionStagesByOperationId>;
12
- getOperationStatuses(operationIds: string[], chunkSize?: number): Promise<StatusInfosByOperationId>;
13
- }
1
+ import { ILiteSequencerClient, ILiteSequencerClientFactory, ILogger, IOperationTracker } from '../interfaces';
2
+ import { ConvertCurrencyParams, ConvertedCurrencyResult, ExecutionStages, ExecutionStagesByOperationId, GetTVMExecutorFeeParams, Network, OperationIdsByShardsKey, OperationType, SimplifiedStatuses, StatusInfo, StatusInfosByOperationId, SuggestedTVMExecutorFee, TACSimulationParams, TACSimulationResult, TransactionLinker, WaitOptions } from '../structs/Struct';
14
3
  export declare class DefaultLiteSequencerClientFactory implements ILiteSequencerClientFactory {
15
4
  createClients(endpoints: string[]): ILiteSequencerClient[];
16
5
  }
@@ -27,4 +16,7 @@ export declare class OperationTracker implements IOperationTracker {
27
16
  getOperationStatuses(operationIds: string[], waitOptions?: WaitOptions<StatusInfosByOperationId>, chunkSize?: number): Promise<StatusInfosByOperationId>;
28
17
  getOperationStatus(operationId: string, waitOptions?: WaitOptions<StatusInfo>): Promise<StatusInfo>;
29
18
  getSimplifiedOperationStatus(transactionLinker: TransactionLinker): Promise<SimplifiedStatuses>;
19
+ convertCurrency(params: ConvertCurrencyParams, waitOptions?: WaitOptions<ConvertedCurrencyResult>): Promise<ConvertedCurrencyResult>;
20
+ simulateTACMessage(params: TACSimulationParams, waitOptions?: WaitOptions<TACSimulationResult>): Promise<TACSimulationResult>;
21
+ getTVMExecutorFee(params: GetTVMExecutorFeeParams, waitOptions?: WaitOptions<SuggestedTVMExecutorFee>): Promise<SuggestedTVMExecutorFee>;
30
22
  }
@@ -1,24 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OperationTracker = exports.DefaultLiteSequencerClientFactory = void 0;
4
- const artifacts_1 = require("@tonappchain/artifacts");
4
+ const artifacts_1 = require("../../artifacts");
5
5
  const errors_1 = require("../errors");
6
+ const instances_1 = require("../errors/instances");
6
7
  const Struct_1 = require("../structs/Struct");
7
8
  const LiteSequencerClient_1 = require("./LiteSequencerClient");
8
9
  const Logger_1 = require("./Logger");
9
10
  const Utils_1 = require("./Utils");
11
+ const Validator_1 = require("./Validator");
10
12
  class DefaultLiteSequencerClientFactory {
11
13
  createClients(endpoints) {
12
- return endpoints.map(endpoint => new LiteSequencerClient_1.LiteSequencerClient(endpoint));
14
+ return endpoints.map((endpoint) => new LiteSequencerClient_1.LiteSequencerClient(endpoint));
13
15
  }
14
16
  }
15
17
  exports.DefaultLiteSequencerClientFactory = DefaultLiteSequencerClientFactory;
16
18
  class OperationTracker {
17
19
  constructor(network, customLiteSequencerEndpoints, logger = new Logger_1.NoopLogger(), clientFactory = new DefaultLiteSequencerClientFactory()) {
18
- const endpoints = customLiteSequencerEndpoints ??
19
- (network === Struct_1.Network.TESTNET
20
- ? artifacts_1.testnet.PUBLIC_LITE_SEQUENCER_ENDPOINTS
21
- : artifacts_1.mainnet.PUBLIC_LITE_SEQUENCER_ENDPOINTS);
20
+ let endpoints;
21
+ if (network === Struct_1.Network.DEV) {
22
+ if (!customLiteSequencerEndpoints || customLiteSequencerEndpoints.length === 0) {
23
+ throw new Error('For DEV network, custom lite sequencer endpoints must be provided');
24
+ }
25
+ endpoints = customLiteSequencerEndpoints;
26
+ }
27
+ else {
28
+ const artifacts = network === Struct_1.Network.MAINNET ? artifacts_1.mainnet : artifacts_1.testnet;
29
+ endpoints =
30
+ customLiteSequencerEndpoints && customLiteSequencerEndpoints.length !== 0
31
+ ? customLiteSequencerEndpoints
32
+ : artifacts.PUBLIC_LITE_SEQUENCER_ENDPOINTS;
33
+ }
22
34
  this.clients = clientFactory.createClients(endpoints);
23
35
  this.logger = logger;
24
36
  }
@@ -40,7 +52,9 @@ class OperationTracker {
40
52
  this.logger.error('All endpoints failed to get operation id by transactionHash');
41
53
  throw (0, errors_1.allEndpointsFailedError)(lastError);
42
54
  };
43
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
55
+ return waitOptions
56
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation ID by transaction hash')
57
+ : await requestFn();
44
58
  }
45
59
  async getOperationType(operationId, waitOptions) {
46
60
  this.logger.debug(`Getting operation type for ${(0, Utils_1.formatObjectForLogging)(operationId)}`);
@@ -60,7 +74,9 @@ class OperationTracker {
60
74
  this.logger.error('All endpoints failed to get operation type');
61
75
  throw (0, errors_1.allEndpointsFailedError)(lastError);
62
76
  };
63
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
77
+ return waitOptions
78
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation type')
79
+ : await requestFn();
64
80
  }
65
81
  async getOperationId(transactionLinker, waitOptions) {
66
82
  this.logger.debug(`Getting operation ID for transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
@@ -80,7 +96,9 @@ class OperationTracker {
80
96
  this.logger.error('All endpoints failed to get operation id');
81
97
  throw (0, errors_1.allEndpointsFailedError)(lastError);
82
98
  };
83
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
99
+ return waitOptions
100
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation ID by transaction linker')
101
+ : await requestFn();
84
102
  }
85
103
  async getOperationIdsByShardsKeys(shardsKeys, caller, waitOptions, chunkSize = 100) {
86
104
  this.logger.debug(`Getting operation IDs for shards keys: ${(0, Utils_1.formatObjectForLogging)(shardsKeys)}`);
@@ -101,7 +119,9 @@ class OperationTracker {
101
119
  this.logger.error('All endpoints failed to get operation ids by shards keys');
102
120
  throw (0, errors_1.allEndpointsFailedError)(lastError);
103
121
  };
104
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
122
+ return waitOptions
123
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation IDs by shards keys')
124
+ : await requestFn();
105
125
  }
106
126
  async getStageProfiling(operationId, waitOptions) {
107
127
  this.logger.debug(`Getting stage profiling for operation ${operationId}`);
@@ -126,7 +146,9 @@ class OperationTracker {
126
146
  this.logger.error('All endpoints failed to get stage profiling');
127
147
  throw (0, errors_1.allEndpointsFailedError)(lastError);
128
148
  };
129
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
149
+ return waitOptions
150
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting stage profiling')
151
+ : await requestFn();
130
152
  }
131
153
  async getStageProfilings(operationIds, waitOptions, chunkSize = 100) {
132
154
  this.logger.debug(`Getting stage profilings for operations: ${operationIds.join(', ')}`);
@@ -147,7 +169,9 @@ class OperationTracker {
147
169
  this.logger.error('All endpoints failed to get stage profilings');
148
170
  throw (0, errors_1.allEndpointsFailedError)(lastError);
149
171
  };
150
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
172
+ return waitOptions
173
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting stage profilings')
174
+ : await requestFn();
151
175
  }
152
176
  async getOperationStatuses(operationIds, waitOptions, chunkSize = 100) {
153
177
  this.logger.debug(`Getting operation statuses for operations: ${(0, Utils_1.formatObjectForLogging)(operationIds)}`);
@@ -168,7 +192,9 @@ class OperationTracker {
168
192
  this.logger.error('All endpoints failed to get operation statuses');
169
193
  throw (0, errors_1.allEndpointsFailedError)(lastError);
170
194
  };
171
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
195
+ return waitOptions
196
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation statuses')
197
+ : await requestFn();
172
198
  }
173
199
  async getOperationStatus(operationId, waitOptions) {
174
200
  this.logger.debug(`Getting operation status for ${(0, Utils_1.formatObjectForLogging)(operationId)}`);
@@ -193,7 +219,9 @@ class OperationTracker {
193
219
  this.logger.error('All endpoints failed to get operation status');
194
220
  throw (0, errors_1.allEndpointsFailedError)(lastError);
195
221
  };
196
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
222
+ return waitOptions
223
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation status')
224
+ : await requestFn();
197
225
  }
198
226
  async getSimplifiedOperationStatus(transactionLinker) {
199
227
  this.logger.debug(`Getting simplified operation status for transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
@@ -202,9 +230,7 @@ class OperationTracker {
202
230
  this.logger.warn('Operation ID not found');
203
231
  return Struct_1.SimplifiedStatuses.OPERATION_ID_NOT_FOUND;
204
232
  }
205
- this.logger.debug(`Operation ID: ${operationId}`);
206
233
  const operationType = await this.getOperationType(operationId);
207
- this.logger.debug(`Operation type: ${operationType}`);
208
234
  if (operationType == Struct_1.OperationType.PENDING || operationType == Struct_1.OperationType.UNKNOWN) {
209
235
  return Struct_1.SimplifiedStatuses.PENDING;
210
236
  }
@@ -213,5 +239,75 @@ class OperationTracker {
213
239
  }
214
240
  return Struct_1.SimplifiedStatuses.SUCCESSFUL;
215
241
  }
242
+ async convertCurrency(params, waitOptions) {
243
+ if (params.value <= 0n) {
244
+ throw instances_1.convertCurrencyNegativeOrZeroValueError;
245
+ }
246
+ this.logger.debug(`Converting currency: ${(0, Utils_1.formatObjectForLogging)(params)}`);
247
+ const requestFn = async () => {
248
+ let lastError;
249
+ for (const client of this.clients) {
250
+ try {
251
+ const result = await client.convertCurrency(params);
252
+ this.logger.debug(`Conversion result retrieved successfully`);
253
+ return result;
254
+ }
255
+ catch (error) {
256
+ this.logger.warn(`Failed to convert currency using one of the endpoints`);
257
+ lastError = error;
258
+ }
259
+ }
260
+ this.logger.error('All endpoints failed to convert currency');
261
+ throw (0, errors_1.allEndpointsFailedError)(lastError);
262
+ };
263
+ return waitOptions
264
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Converting currency')
265
+ : await requestFn();
266
+ }
267
+ async simulateTACMessage(params, waitOptions) {
268
+ Validator_1.Validator.validateTACSimulationParams(params);
269
+ this.logger.debug(`Simulating TAC message: ${(0, Utils_1.formatObjectForLogging)(params)}`);
270
+ const requestFn = async () => {
271
+ let lastError;
272
+ for (const client of this.clients) {
273
+ try {
274
+ const result = await client.simulateTACMessage(params);
275
+ this.logger.debug(`Simulation result retrieved successfully`);
276
+ return result;
277
+ }
278
+ catch (error) {
279
+ this.logger.warn(`Failed to simulate TAC message using one of the endpoints`);
280
+ lastError = error;
281
+ }
282
+ }
283
+ this.logger.error('All endpoints failed to simulate TAC message');
284
+ throw (0, errors_1.allEndpointsFailedError)(lastError);
285
+ };
286
+ return waitOptions
287
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Simulating TAC message')
288
+ : await requestFn();
289
+ }
290
+ async getTVMExecutorFee(params, waitOptions) {
291
+ this.logger.debug(`get TVM executor fee: ${(0, Utils_1.formatObjectForLogging)(params)}`);
292
+ const requestFn = async () => {
293
+ let lastError;
294
+ for (const client of this.clients) {
295
+ try {
296
+ const result = await client.getTVMExecutorFee(params);
297
+ this.logger.debug(`Suggested TVM executor fee retrieved successfully`);
298
+ return result;
299
+ }
300
+ catch (error) {
301
+ this.logger.warn(`Failed to get TVM executor fee using one of the endpoints`);
302
+ lastError = error;
303
+ }
304
+ }
305
+ this.logger.error('All endpoints failed to get TVM executor fee');
306
+ throw (0, errors_1.allEndpointsFailedError)(lastError);
307
+ };
308
+ return waitOptions
309
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting TVM executor fee')
310
+ : await requestFn();
311
+ }
216
312
  }
217
313
  exports.OperationTracker = OperationTracker;
@@ -0,0 +1,11 @@
1
+ import { IConfiguration, ILogger, IOperationTracker, ISimulator } from '../interfaces';
2
+ import type { SenderAbstraction } from '../sender';
3
+ import { CrosschainTx, ExecutionFeeEstimationResult } from '../structs/Struct';
4
+ export declare class Simulator implements ISimulator {
5
+ private readonly config;
6
+ private readonly operationTracker;
7
+ private readonly logger;
8
+ constructor(config: IConfiguration, operationTracker: IOperationTracker, logger?: ILogger);
9
+ getSimulationsInfo(sender: SenderAbstraction, txs: CrosschainTx[]): Promise<ExecutionFeeEstimationResult[]>;
10
+ getSimulationInfo(sender: SenderAbstraction, tx: CrosschainTx): Promise<ExecutionFeeEstimationResult>;
11
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Simulator = void 0;
4
+ const ton_1 = require("@ton/ton");
5
+ const Logger_1 = require("./Logger");
6
+ const Utils_1 = require("./Utils");
7
+ const Validator_1 = require("./Validator");
8
+ class Simulator {
9
+ constructor(config, operationTracker, logger = new Logger_1.NoopLogger()) {
10
+ this.config = config;
11
+ this.operationTracker = operationTracker;
12
+ this.logger = logger;
13
+ }
14
+ async getSimulationsInfo(sender, txs) {
15
+ this.logger.debug(`Simulating ${txs.length} TAC messages`);
16
+ const results = [];
17
+ for (const tx of txs) {
18
+ const result = await this.getSimulationInfo(sender, tx);
19
+ results.push(result);
20
+ }
21
+ return results;
22
+ }
23
+ async getSimulationInfo(sender, tx) {
24
+ this.logger.debug('Getting simulation info');
25
+ const { evmProxyMsg, assets = [], options = {} } = tx;
26
+ const { evmValidExecutors = this.config.TACParams.trustedTACExecutors, tvmValidExecutors = this.config.TACParams.trustedTONExecutors, calculateRollbackFee = true, allowSimulationError = false, } = options;
27
+ Validator_1.Validator.validateEVMAddress(evmProxyMsg.evmTargetAddress);
28
+ Validator_1.Validator.validateEVMAddresses(evmValidExecutors);
29
+ Validator_1.Validator.validateTVMAddresses(tvmValidExecutors);
30
+ const aggregatedData = (0, Utils_1.aggregateTokens)(assets);
31
+ const shardCount = aggregatedData.jettons.length || 1;
32
+ const transactionLinker = (0, Utils_1.generateTransactionLinker)(sender.getSenderAddress(), shardCount);
33
+ const tacSimulationParams = {
34
+ tacCallParams: {
35
+ arguments: evmProxyMsg.encodedParameters ?? '0x',
36
+ methodName: (0, Utils_1.formatSolidityMethodName)(evmProxyMsg.methodName),
37
+ target: evmProxyMsg.evmTargetAddress,
38
+ },
39
+ evmValidExecutors,
40
+ tvmValidExecutors,
41
+ extraData: '0x',
42
+ shardsKey: transactionLinker.shardsKey,
43
+ tonAssets: (0, Utils_1.mapAssetsToTonAssets)(assets),
44
+ tonCaller: transactionLinker.caller,
45
+ calculateRollbackFee,
46
+ };
47
+ const simulation = await this.operationTracker.simulateTACMessage(tacSimulationParams);
48
+ this.logger.debug(`TAC simulation ${simulation.simulationStatus ? 'success' : 'failed'}`);
49
+ const isRoundTrip = options.isRoundTrip ?? (assets.length !== 0 || simulation.outMessages?.length !== 0);
50
+ const CrossChainLayerC = this.config.artifacts.ton.wrappers.CrossChainLayer;
51
+ const crossChainLayer = this.config.TONParams.contractOpener.open(CrossChainLayerC.createFromAddress(ton_1.Address.parse(this.config.TONParams.crossChainLayerAddress)));
52
+ const fullStateCCL = await crossChainLayer.getFullData();
53
+ const feeParams = {
54
+ isRoundTrip,
55
+ gasLimit: simulation.simulationStatus ? simulation.estimatedGas : 0n,
56
+ protocolFee: BigInt((0, ton_1.toNano)(fullStateCCL.tacProtocolFee)) +
57
+ BigInt(isRoundTrip) * BigInt((0, ton_1.toNano)(fullStateCCL.tonProtocolFee)),
58
+ evmExecutorFee: BigInt(simulation.suggestedTacExecutionFee),
59
+ tvmExecutorFee: BigInt(simulation.suggestedTonExecutionFee) * BigInt(isRoundTrip),
60
+ };
61
+ if (!simulation.simulationStatus && !allowSimulationError) {
62
+ throw simulation;
63
+ }
64
+ if (allowSimulationError && !simulation.simulationStatus) {
65
+ this.logger.info('Simulation failed but allowSimulationError is true, returning partial fee params');
66
+ }
67
+ return { feeParams, simulation };
68
+ }
69
+ }
70
+ exports.Simulator = Simulator;
@@ -1,5 +1,5 @@
1
+ import { ILogger } from '../interfaces';
1
2
  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,10 @@
1
+ import { Wallet } from 'ethers';
2
+ import { Asset, IConfiguration, ILogger, IOperationTracker, ITACTransactionManager } from '../interfaces';
3
+ export declare class TACTransactionManager implements ITACTransactionManager {
4
+ private readonly config;
5
+ private readonly operationTracker;
6
+ private readonly logger;
7
+ constructor(config: IConfiguration, operationTracker: IOperationTracker, logger?: ILogger);
8
+ private approveAsset;
9
+ bridgeTokensToTON(signer: Wallet, value: bigint, tonTarget: string, assets?: Asset[], tvmExecutorFee?: bigint, tvmValidExecutors?: string[]): Promise<string>;
10
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TACTransactionManager = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const assets_1 = require("../assets");
6
+ const Struct_1 = require("../structs/Struct");
7
+ const Consts_1 = require("./Consts");
8
+ const Logger_1 = require("./Logger");
9
+ const Utils_1 = require("./Utils");
10
+ const Validator_1 = require("./Validator");
11
+ class TACTransactionManager {
12
+ constructor(config, operationTracker, logger = new Logger_1.NoopLogger()) {
13
+ this.config = config;
14
+ this.operationTracker = operationTracker;
15
+ this.logger = logger;
16
+ }
17
+ async approveAsset(asset, signer, spenderAddress) {
18
+ const evmAddress = await asset.getEVMAddress();
19
+ if (asset.type === Struct_1.AssetType.FT) {
20
+ this.logger.debug(`Approving FT ${evmAddress} for ${spenderAddress}`);
21
+ const erc20Abi = this.config.artifacts.tac.compilationArtifacts.IERC20WithDecimals.abi;
22
+ const contract = new ethers_1.ethers.Contract(evmAddress, erc20Abi, this.config.TACParams.provider);
23
+ const tx = await contract.connect(signer).approve(spenderAddress, asset.rawAmount);
24
+ await tx.wait();
25
+ }
26
+ else if (asset.type === Struct_1.AssetType.NFT) {
27
+ this.logger.debug(`Approving NFT ${evmAddress} for ${spenderAddress}`);
28
+ const erc721Abi = this.config.artifacts.tac.compilationArtifacts.IERC721.abi;
29
+ const contract = new ethers_1.ethers.Contract(evmAddress, erc721Abi, this.config.TACParams.provider);
30
+ const tx = await contract.connect(signer).approve(spenderAddress, asset.addresses.index);
31
+ await tx.wait();
32
+ }
33
+ this.logger.debug(`Approved ${evmAddress} for ${spenderAddress}`);
34
+ }
35
+ async bridgeTokensToTON(signer, value, tonTarget, assets = [], tvmExecutorFee, tvmValidExecutors) {
36
+ this.logger.debug('Bridging tokens to TON');
37
+ Validator_1.Validator.validateTVMAddress(tonTarget);
38
+ // Add native TAC asset if value > 0
39
+ const tonAssets = [...assets];
40
+ if (value > 0n) {
41
+ tonAssets.push((await assets_1.AssetFactory.from(this.config, {
42
+ address: await this.config.nativeTACAddress(),
43
+ tokenType: Struct_1.AssetType.FT,
44
+ })).withRawAmount(value));
45
+ }
46
+ // Calculate executor fee if not provided
47
+ if (!tvmExecutorFee) {
48
+ const feeParams = {
49
+ tonAssets: (0, Utils_1.mapAssetsToTonAssets)(tonAssets),
50
+ feeSymbol: Consts_1.TAC_SYMBOL,
51
+ tvmValidExecutors: tvmValidExecutors ?? [],
52
+ };
53
+ const suggestedFee = await this.operationTracker.getTVMExecutorFee(feeParams);
54
+ this.logger.debug(`Suggested TON executor fee: ${(0, Utils_1.formatObjectForLogging)(suggestedFee)}`);
55
+ tvmExecutorFee = BigInt(suggestedFee.inTAC);
56
+ }
57
+ // Approve all assets
58
+ const crossChainLayerAddress = await this.config.TACParams.crossChainLayer.getAddress();
59
+ for (const asset of assets) {
60
+ await this.approveAsset(asset, signer, crossChainLayerAddress);
61
+ }
62
+ const protocolFee = await this.config.TACParams.crossChainLayer.getProtocolFee();
63
+ const shardsKey = BigInt(Math.round(Math.random() * 1e18));
64
+ this.logger.debug(`Shards key: ${shardsKey}, Protocol fee: ${protocolFee}`);
65
+ // Prepare bridge data
66
+ const [toBridge, toBridgeNFT] = await Promise.all([
67
+ Promise.all(assets
68
+ .filter((a) => a.type === Struct_1.AssetType.FT)
69
+ .map(async (a) => ({
70
+ evmAddress: await a.getEVMAddress(),
71
+ amount: a.rawAmount,
72
+ }))),
73
+ Promise.all(assets
74
+ .filter((a) => a.type === Struct_1.AssetType.NFT)
75
+ .map(async (a) => ({
76
+ evmAddress: await a.getEVMAddress(),
77
+ amount: 1n,
78
+ tokenId: a.addresses.index,
79
+ }))),
80
+ ]);
81
+ const outMessage = {
82
+ shardsKey,
83
+ tvmTarget: tonTarget,
84
+ tvmPayload: '',
85
+ tvmProtocolFee: protocolFee,
86
+ tvmExecutorFee,
87
+ tvmValidExecutors: this.config.getTrustedTONExecutors,
88
+ toBridge,
89
+ toBridgeNFT,
90
+ };
91
+ const totalValue = value + BigInt(outMessage.tvmProtocolFee) + BigInt(outMessage.tvmExecutorFee);
92
+ this.logger.debug(`Total value: ${totalValue}`);
93
+ const tx = await this.config.TACParams.crossChainLayer
94
+ .connect(signer)
95
+ .sendMessage(1n, this.config.artifacts.tac.utils.encodeOutMessageV1(outMessage), { value: totalValue });
96
+ await tx.wait();
97
+ this.logger.debug(`Transaction hash: ${tx.hash}`);
98
+ return tx.hash;
99
+ }
100
+ }
101
+ exports.TACTransactionManager = TACTransactionManager;