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

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 (420) hide show
  1. package/dist/artifacts/dev/index.d.ts +9 -0
  2. package/dist/artifacts/dev/index.js +52 -0
  3. package/dist/artifacts/dev/tac/addresses.d.ts +4 -0
  4. package/dist/artifacts/dev/tac/addresses.js +8 -0
  5. package/dist/artifacts/dev/tac/artifacts.d.ts +330 -0
  6. package/dist/artifacts/dev/tac/artifacts.js +26 -0
  7. package/dist/artifacts/dev/tac/endpoints.d.ts +2 -0
  8. package/dist/artifacts/dev/tac/endpoints.js +5 -0
  9. package/dist/artifacts/dev/tac/index.d.ts +6 -0
  10. package/dist/artifacts/dev/tac/index.js +43 -0
  11. package/dist/artifacts/dev/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  12. package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  13. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
  14. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  15. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  16. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  17. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  18. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  19. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  20. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  21. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.d.ts +4 -0
  22. package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.js +18 -0
  23. package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
  24. package/dist/artifacts/dev/tac/internal/typechain-types/common.d.ts +50 -0
  25. package/dist/artifacts/dev/tac/internal/typechain-types/common.js +2 -0
  26. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  27. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  28. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  29. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
  30. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  31. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
  32. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  33. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
  34. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  35. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
  36. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  37. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
  38. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
  39. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
  40. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  41. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
  42. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
  43. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
  44. package/dist/artifacts/dev/tac/multicall.d.ts +1 -0
  45. package/dist/artifacts/dev/tac/multicall.js +22 -0
  46. package/dist/artifacts/dev/tac/structs.d.ts +1 -0
  47. package/dist/artifacts/dev/tac/structs.js +2 -0
  48. package/dist/artifacts/dev/tac/utils.d.ts +1 -0
  49. package/dist/artifacts/dev/tac/utils.js +5 -0
  50. package/dist/artifacts/dev/tac/wrappers.d.ts +9 -0
  51. package/dist/artifacts/dev/tac/wrappers.js +2 -0
  52. package/dist/artifacts/dev/ton/addresses.d.ts +1 -0
  53. package/dist/artifacts/dev/ton/addresses.js +5 -0
  54. package/dist/artifacts/dev/ton/artifacts.d.ts +47 -0
  55. package/dist/artifacts/dev/ton/artifacts.js +26 -0
  56. package/dist/artifacts/dev/ton/endpoints.d.ts +3 -0
  57. package/dist/artifacts/dev/ton/endpoints.js +6 -0
  58. package/dist/artifacts/dev/ton/index.d.ts +3 -0
  59. package/dist/artifacts/dev/ton/index.js +40 -0
  60. package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  61. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -0
  62. package/dist/artifacts/dev/ton/internal/build/JettonMinter.compiled.json +1 -0
  63. package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -0
  64. package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -0
  65. package/dist/artifacts/dev/ton/internal/build/NFTCollection.compiled.json +1 -0
  66. package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -0
  67. package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -0
  68. package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -0
  69. package/dist/artifacts/dev/ton/internal/wrappers/Constants.d.ts +56 -0
  70. package/dist/artifacts/dev/ton/internal/wrappers/Constants.js +62 -0
  71. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  72. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +336 -0
  73. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  74. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +202 -0
  75. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  76. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +158 -0
  77. package/dist/{wrappers → artifacts/dev/ton/internal/wrappers}/JettonWallet.d.ts +52 -13
  78. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +193 -0
  79. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  80. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +151 -0
  81. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +82 -0
  82. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +148 -0
  83. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  84. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +157 -0
  85. package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +80 -0
  86. package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +152 -0
  87. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  88. package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.js +291 -0
  89. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  90. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  91. package/dist/artifacts/dev/ton/wrappers.d.ts +8 -0
  92. package/dist/artifacts/dev/ton/wrappers.js +27 -0
  93. package/dist/artifacts/index.d.ts +3 -0
  94. package/dist/artifacts/index.js +39 -0
  95. package/dist/artifacts/mainnet/index.d.ts +9 -0
  96. package/dist/artifacts/mainnet/index.js +52 -0
  97. package/dist/artifacts/mainnet/tac/addresses.d.ts +4 -0
  98. package/dist/artifacts/mainnet/tac/addresses.js +7 -0
  99. package/dist/artifacts/mainnet/tac/artifacts.d.ts +330 -0
  100. package/dist/artifacts/mainnet/tac/artifacts.js +26 -0
  101. package/dist/artifacts/mainnet/tac/endpoints.d.ts +2 -0
  102. package/dist/artifacts/mainnet/tac/endpoints.js +5 -0
  103. package/dist/artifacts/mainnet/tac/index.d.ts +6 -0
  104. package/dist/artifacts/mainnet/tac/index.js +43 -0
  105. package/dist/artifacts/mainnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  106. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  107. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
  108. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  109. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  110. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  111. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  112. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  113. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  114. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  115. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
  116. package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.js +18 -0
  117. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
  118. package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +2 -0
  119. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.d.ts +50 -0
  120. package/dist/artifacts/mainnet/tac/internal/typechain-types/common.js +2 -0
  121. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  122. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  123. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  124. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
  125. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  126. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
  127. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  128. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
  129. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  130. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
  131. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  132. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
  133. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
  134. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
  135. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  136. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
  137. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
  138. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
  139. package/dist/artifacts/mainnet/tac/multicall.d.ts +1 -0
  140. package/dist/artifacts/mainnet/tac/multicall.js +22 -0
  141. package/dist/artifacts/mainnet/tac/structs.d.ts +1 -0
  142. package/dist/artifacts/mainnet/tac/structs.js +2 -0
  143. package/dist/artifacts/mainnet/tac/utils.d.ts +1 -0
  144. package/dist/artifacts/mainnet/tac/utils.js +5 -0
  145. package/dist/artifacts/mainnet/tac/wrappers.d.ts +9 -0
  146. package/dist/artifacts/mainnet/tac/wrappers.js +2 -0
  147. package/dist/artifacts/mainnet/ton/addresses.d.ts +1 -0
  148. package/dist/artifacts/mainnet/ton/addresses.js +4 -0
  149. package/dist/artifacts/mainnet/ton/artifacts.d.ts +47 -0
  150. package/dist/artifacts/mainnet/ton/artifacts.js +26 -0
  151. package/dist/artifacts/mainnet/ton/endpoints.d.ts +3 -0
  152. package/dist/artifacts/mainnet/ton/endpoints.js +6 -0
  153. package/dist/artifacts/mainnet/ton/index.d.ts +3 -0
  154. package/dist/artifacts/mainnet/ton/index.js +40 -0
  155. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  156. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -0
  157. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -0
  158. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -0
  159. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -0
  160. package/dist/artifacts/mainnet/ton/internal/build/NFTCollection.compiled.json +1 -0
  161. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -0
  162. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -0
  163. package/dist/artifacts/mainnet/ton/internal/build/Settings.compiled.json +1 -0
  164. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.d.ts +56 -0
  165. package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.js +62 -0
  166. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  167. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
  168. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  169. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +202 -0
  170. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  171. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.js +158 -0
  172. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
  173. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.js +193 -0
  174. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  175. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.js +151 -0
  176. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
  177. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.js +148 -0
  178. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  179. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.js +157 -0
  180. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.d.ts +80 -0
  181. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.js +152 -0
  182. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  183. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
  184. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  185. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  186. package/dist/artifacts/mainnet/ton/wrappers.d.ts +8 -0
  187. package/dist/artifacts/mainnet/ton/wrappers.js +27 -0
  188. package/dist/artifacts/tacTypes.d.ts +13 -0
  189. package/dist/artifacts/tacTypes.js +2 -0
  190. package/dist/artifacts/testnet/index.d.ts +9 -0
  191. package/dist/artifacts/testnet/index.js +52 -0
  192. package/dist/artifacts/testnet/tac/addresses.d.ts +4 -0
  193. package/dist/artifacts/testnet/tac/addresses.js +7 -0
  194. package/dist/artifacts/testnet/tac/artifacts.d.ts +330 -0
  195. package/dist/artifacts/testnet/tac/artifacts.js +26 -0
  196. package/dist/artifacts/testnet/tac/endpoints.d.ts +2 -0
  197. package/dist/artifacts/testnet/tac/endpoints.js +5 -0
  198. package/dist/artifacts/testnet/tac/index.d.ts +6 -0
  199. package/dist/artifacts/testnet/tac/index.js +43 -0
  200. package/dist/artifacts/testnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
  201. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
  202. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
  203. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
  204. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
  205. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
  206. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
  207. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
  208. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
  209. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
  210. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
  211. package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.js +18 -0
  212. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
  213. package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +2 -0
  214. package/dist/artifacts/testnet/tac/internal/typechain-types/common.d.ts +50 -0
  215. package/dist/artifacts/testnet/tac/internal/typechain-types/common.js +2 -0
  216. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
  217. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
  218. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
  219. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
  220. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
  221. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
  222. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
  223. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
  224. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
  225. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
  226. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
  227. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
  228. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
  229. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
  230. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
  231. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
  232. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
  233. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
  234. package/dist/artifacts/testnet/tac/multicall.d.ts +1 -0
  235. package/dist/artifacts/testnet/tac/multicall.js +22 -0
  236. package/dist/artifacts/testnet/tac/structs.d.ts +1 -0
  237. package/dist/artifacts/testnet/tac/structs.js +2 -0
  238. package/dist/artifacts/testnet/tac/utils.d.ts +1 -0
  239. package/dist/artifacts/testnet/tac/utils.js +5 -0
  240. package/dist/artifacts/testnet/tac/wrappers.d.ts +9 -0
  241. package/dist/artifacts/testnet/tac/wrappers.js +2 -0
  242. package/dist/artifacts/testnet/ton/addresses.d.ts +1 -0
  243. package/dist/artifacts/testnet/ton/addresses.js +4 -0
  244. package/dist/artifacts/testnet/ton/artifacts.d.ts +47 -0
  245. package/dist/artifacts/testnet/ton/artifacts.js +26 -0
  246. package/dist/artifacts/testnet/ton/endpoints.d.ts +3 -0
  247. package/dist/artifacts/testnet/ton/endpoints.js +6 -0
  248. package/dist/artifacts/testnet/ton/index.d.ts +3 -0
  249. package/dist/artifacts/testnet/ton/index.js +40 -0
  250. package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
  251. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -0
  252. package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +1 -0
  253. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -0
  254. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -0
  255. package/dist/artifacts/testnet/ton/internal/build/NFTCollection.compiled.json +1 -0
  256. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -0
  257. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -0
  258. package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -0
  259. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.d.ts +56 -0
  260. package/dist/artifacts/testnet/ton/internal/wrappers/Constants.js +62 -0
  261. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
  262. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
  263. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
  264. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +202 -0
  265. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
  266. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +158 -0
  267. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
  268. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +193 -0
  269. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
  270. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +151 -0
  271. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
  272. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +148 -0
  273. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
  274. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +157 -0
  275. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +80 -0
  276. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +152 -0
  277. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
  278. package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
  279. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
  280. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
  281. package/dist/artifacts/testnet/ton/wrappers.d.ts +8 -0
  282. package/dist/artifacts/testnet/ton/wrappers.js +27 -0
  283. package/dist/artifacts/tonTypes.d.ts +20 -0
  284. package/dist/artifacts/tonTypes.js +2 -0
  285. package/dist/{adapters → src/adapters}/contractOpener.d.ts +2 -1
  286. package/dist/{adapters → src/adapters}/contractOpener.js +39 -6
  287. package/dist/src/adapters/index.d.ts +2 -0
  288. package/dist/src/adapters/index.js +18 -0
  289. package/dist/{adapters → src/adapters}/retryableContractOpener.d.ts +6 -3
  290. package/dist/{adapters → src/adapters}/retryableContractOpener.js +10 -11
  291. package/dist/src/agnosticSdk/AbiHandler.d.ts +23 -0
  292. package/dist/src/agnosticSdk/AbiHandler.js +105 -0
  293. package/dist/src/agnosticSdk/AgnosticSdk.d.ts +201 -0
  294. package/dist/src/agnosticSdk/AgnosticSdk.js +201 -0
  295. package/dist/src/agnosticSdk/AgnosticStructs.d.ts +108 -0
  296. package/dist/src/agnosticSdk/AgnosticStructs.js +23 -0
  297. package/dist/src/agnosticSdk/DebugHelpers.d.ts +88 -0
  298. package/dist/src/agnosticSdk/DebugHelpers.js +274 -0
  299. package/dist/src/agnosticSdk/HooksHandler.d.ts +43 -0
  300. package/dist/src/agnosticSdk/HooksHandler.js +102 -0
  301. package/dist/src/agnosticSdk/ReplacementHelper.d.ts +95 -0
  302. package/dist/src/agnosticSdk/ReplacementHelper.js +233 -0
  303. package/dist/{assets → src/assets}/AssetCache.d.ts +1 -1
  304. package/dist/{assets → src/assets}/AssetFactory.d.ts +2 -2
  305. package/dist/{assets → src/assets}/AssetFactory.js +1 -1
  306. package/dist/{assets → src/assets}/FT.d.ts +15 -17
  307. package/dist/{assets → src/assets}/FT.js +103 -56
  308. package/dist/{assets → src/assets}/NFT.d.ts +15 -16
  309. package/dist/{assets → src/assets}/NFT.js +62 -34
  310. package/dist/{assets → src/assets}/TON.d.ts +7 -13
  311. package/dist/{assets → src/assets}/TON.js +22 -20
  312. package/dist/src/errors/index.d.ts +2 -0
  313. package/dist/{errors → src/errors}/index.js +7 -2
  314. package/dist/{errors → src/errors}/instances.d.ts +8 -1
  315. package/dist/{errors → src/errors}/instances.js +22 -16
  316. package/dist/src/index.d.ts +21 -0
  317. package/dist/{index.js → src/index.js} +38 -18
  318. package/dist/src/interfaces/Asset.d.ts +78 -0
  319. package/dist/src/interfaces/Asset.js +2 -0
  320. package/dist/src/interfaces/ContractOpener.d.ts +21 -0
  321. package/dist/src/interfaces/ContractOpener.js +2 -0
  322. package/dist/src/interfaces/IConfiguration.d.ts +35 -0
  323. package/dist/src/interfaces/IConfiguration.js +2 -0
  324. package/dist/src/interfaces/IHttpClient.d.ts +16 -0
  325. package/dist/src/interfaces/IHttpClient.js +2 -0
  326. package/dist/src/interfaces/ILiteSequencerClient.d.ts +43 -0
  327. package/dist/src/interfaces/ILiteSequencerClient.js +2 -0
  328. package/dist/src/interfaces/ILiteSequencerClientFactory.d.ts +9 -0
  329. package/dist/src/interfaces/ILiteSequencerClientFactory.js +2 -0
  330. package/dist/src/interfaces/ILogger.d.ts +10 -0
  331. package/dist/src/interfaces/ILogger.js +2 -0
  332. package/dist/src/interfaces/IOperationTracker.d.ts +81 -0
  333. package/dist/src/interfaces/IOperationTracker.js +2 -0
  334. package/dist/src/interfaces/ISimulator.d.ts +18 -0
  335. package/dist/src/interfaces/ISimulator.js +2 -0
  336. package/dist/src/interfaces/ITACTransactionManager.d.ts +15 -0
  337. package/dist/src/interfaces/ITACTransactionManager.js +2 -0
  338. package/dist/src/interfaces/ITONTransactionManager.d.ts +21 -0
  339. package/dist/src/interfaces/ITONTransactionManager.js +2 -0
  340. package/dist/src/interfaces/ITacSDK.d.ts +185 -0
  341. package/dist/src/interfaces/ITacSDK.js +2 -0
  342. package/dist/src/interfaces/SenderAbstraction.d.ts +35 -0
  343. package/dist/src/interfaces/SenderAbstraction.js +2 -0
  344. package/dist/src/interfaces/WalletInstanse.d.ts +20 -0
  345. package/dist/src/interfaces/WalletInstanse.js +2 -0
  346. package/dist/src/interfaces/index.d.ts +14 -0
  347. package/dist/src/interfaces/index.js +30 -0
  348. package/dist/src/sdk/AxiosHttpClient.d.ts +12 -0
  349. package/dist/src/sdk/AxiosHttpClient.js +23 -0
  350. package/dist/{sdk → src/sdk}/Configuration.d.ts +6 -5
  351. package/dist/src/sdk/Configuration.js +189 -0
  352. package/dist/{sdk → src/sdk}/Consts.d.ts +3 -0
  353. package/dist/{sdk → src/sdk}/Consts.js +4 -1
  354. package/dist/src/sdk/LiteSequencerClient.d.ts +18 -0
  355. package/dist/{sdk → src/sdk}/LiteSequencerClient.js +70 -22
  356. package/dist/{sdk → src/sdk}/Logger.d.ts +1 -1
  357. package/dist/{sdk → src/sdk}/OperationTracker.d.ts +5 -13
  358. package/dist/{sdk → src/sdk}/OperationTracker.js +108 -16
  359. package/dist/src/sdk/Simulator.d.ts +11 -0
  360. package/dist/src/sdk/Simulator.js +70 -0
  361. package/dist/{sdk → src/sdk}/StartTracking.d.ts +1 -1
  362. package/dist/src/sdk/TACTransactionManager.d.ts +10 -0
  363. package/dist/src/sdk/TACTransactionManager.js +99 -0
  364. package/dist/src/sdk/TONTransactionManager.d.ts +17 -0
  365. package/dist/src/sdk/TONTransactionManager.js +210 -0
  366. package/dist/src/sdk/TacSdk.d.ts +44 -0
  367. package/dist/src/sdk/TacSdk.js +181 -0
  368. package/dist/{sdk → src/sdk}/TxFinalizer.d.ts +3 -2
  369. package/dist/{sdk → src/sdk}/TxFinalizer.js +8 -8
  370. package/dist/{sdk → src/sdk}/Utils.d.ts +12 -5
  371. package/dist/{sdk → src/sdk}/Utils.js +103 -12
  372. package/dist/{sdk → src/sdk}/Validator.d.ts +2 -2
  373. package/dist/{sdk → src/sdk}/Validator.js +6 -6
  374. package/dist/{sender → src/sender}/BatchSender.d.ts +1 -2
  375. package/dist/{sender → src/sender}/RawSender.d.ts +3 -3
  376. package/dist/{sender → src/sender}/SenderFactory.d.ts +1 -1
  377. package/dist/{sender → src/sender}/TonConnectSender.d.ts +2 -2
  378. package/dist/{sender → src/sender}/TonConnectSender.js +2 -2
  379. package/dist/{sender → src/sender}/index.d.ts +1 -1
  380. package/dist/{sender → src/sender}/index.js +1 -1
  381. package/dist/{structs → src/structs}/InternalStruct.d.ts +25 -7
  382. package/dist/{structs → src/structs}/Struct.d.ts +91 -60
  383. package/dist/{structs → src/structs}/Struct.js +7 -1
  384. package/dist/{wrappers → src/wrappers}/ContentUtils.js +0 -1
  385. package/dist/{wrappers → src/wrappers}/HighloadWalletV3.d.ts +2 -2
  386. package/package.json +1 -1
  387. package/dist/errors/index.d.ts +0 -2
  388. package/dist/index.d.ts +0 -19
  389. package/dist/sdk/Configuration.js +0 -92
  390. package/dist/sdk/LiteSequencerClient.d.ts +0 -13
  391. package/dist/sdk/Simulator.d.ts +0 -23
  392. package/dist/sdk/Simulator.js +0 -169
  393. package/dist/sdk/TacSdk.d.ts +0 -25
  394. package/dist/sdk/TacSdk.js +0 -104
  395. package/dist/sdk/TransactionManager.d.ts +0 -22
  396. package/dist/sdk/TransactionManager.js +0 -269
  397. package/dist/sender/SenderAbstraction.d.ts +0 -22
  398. package/dist/sender/SenderAbstraction.js +0 -5
  399. package/dist/structs/Services.d.ts +0 -41
  400. package/dist/wrappers/JettonMaster.d.ts +0 -24
  401. package/dist/wrappers/JettonMaster.js +0 -53
  402. package/dist/wrappers/JettonWallet.js +0 -124
  403. package/dist/wrappers/Settings.d.ts +0 -10
  404. package/dist/wrappers/Settings.js +0 -38
  405. /package/dist/{structs/Services.js → artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js} +0 -0
  406. /package/dist/{assets → src/assets}/AssetCache.js +0 -0
  407. /package/dist/{assets → src/assets}/index.d.ts +0 -0
  408. /package/dist/{assets → src/assets}/index.js +0 -0
  409. /package/dist/{errors → src/errors}/errors.d.ts +0 -0
  410. /package/dist/{errors → src/errors}/errors.js +0 -0
  411. /package/dist/{sdk → src/sdk}/Logger.js +0 -0
  412. /package/dist/{sdk → src/sdk}/StartTracking.js +0 -0
  413. /package/dist/{sender → src/sender}/BatchSender.js +0 -0
  414. /package/dist/{sender → src/sender}/RawSender.js +0 -0
  415. /package/dist/{sender → src/sender}/SenderFactory.js +0 -0
  416. /package/dist/{structs → src/structs}/InternalStruct.js +0 -0
  417. /package/dist/{wrappers → src/wrappers}/ContentUtils.d.ts +0 -0
  418. /package/dist/{wrappers → src/wrappers}/HighloadQueryId.d.ts +0 -0
  419. /package/dist/{wrappers → src/wrappers}/HighloadQueryId.js +0 -0
  420. /package/dist/{wrappers → src/wrappers}/HighloadWalletV3.js +0 -0
@@ -1,24 +1,35 @@
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
6
  const Struct_1 = require("../structs/Struct");
7
7
  const LiteSequencerClient_1 = require("./LiteSequencerClient");
8
8
  const Logger_1 = require("./Logger");
9
9
  const Utils_1 = require("./Utils");
10
+ const Validator_1 = require("./Validator");
10
11
  class DefaultLiteSequencerClientFactory {
11
12
  createClients(endpoints) {
12
- return endpoints.map(endpoint => new LiteSequencerClient_1.LiteSequencerClient(endpoint));
13
+ return endpoints.map((endpoint) => new LiteSequencerClient_1.LiteSequencerClient(endpoint));
13
14
  }
14
15
  }
15
16
  exports.DefaultLiteSequencerClientFactory = DefaultLiteSequencerClientFactory;
16
17
  class OperationTracker {
17
18
  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);
19
+ let endpoints;
20
+ if (network === Struct_1.Network.DEV) {
21
+ if (!customLiteSequencerEndpoints || customLiteSequencerEndpoints.length === 0) {
22
+ throw new Error('For DEV network, custom lite sequencer endpoints must be provided');
23
+ }
24
+ endpoints = customLiteSequencerEndpoints;
25
+ }
26
+ else {
27
+ const artifacts = network === Struct_1.Network.MAINNET ? artifacts_1.mainnet : artifacts_1.testnet;
28
+ endpoints =
29
+ customLiteSequencerEndpoints && customLiteSequencerEndpoints.length !== 0
30
+ ? customLiteSequencerEndpoints
31
+ : artifacts.PUBLIC_LITE_SEQUENCER_ENDPOINTS;
32
+ }
22
33
  this.clients = clientFactory.createClients(endpoints);
23
34
  this.logger = logger;
24
35
  }
@@ -40,7 +51,9 @@ class OperationTracker {
40
51
  this.logger.error('All endpoints failed to get operation id by transactionHash');
41
52
  throw (0, errors_1.allEndpointsFailedError)(lastError);
42
53
  };
43
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
54
+ return waitOptions
55
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation ID by transaction hash')
56
+ : await requestFn();
44
57
  }
45
58
  async getOperationType(operationId, waitOptions) {
46
59
  this.logger.debug(`Getting operation type for ${(0, Utils_1.formatObjectForLogging)(operationId)}`);
@@ -60,7 +73,9 @@ class OperationTracker {
60
73
  this.logger.error('All endpoints failed to get operation type');
61
74
  throw (0, errors_1.allEndpointsFailedError)(lastError);
62
75
  };
63
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
76
+ return waitOptions
77
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation type')
78
+ : await requestFn();
64
79
  }
65
80
  async getOperationId(transactionLinker, waitOptions) {
66
81
  this.logger.debug(`Getting operation ID for transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
@@ -80,7 +95,9 @@ class OperationTracker {
80
95
  this.logger.error('All endpoints failed to get operation id');
81
96
  throw (0, errors_1.allEndpointsFailedError)(lastError);
82
97
  };
83
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
98
+ return waitOptions
99
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation ID by transaction linker')
100
+ : await requestFn();
84
101
  }
85
102
  async getOperationIdsByShardsKeys(shardsKeys, caller, waitOptions, chunkSize = 100) {
86
103
  this.logger.debug(`Getting operation IDs for shards keys: ${(0, Utils_1.formatObjectForLogging)(shardsKeys)}`);
@@ -101,7 +118,9 @@ class OperationTracker {
101
118
  this.logger.error('All endpoints failed to get operation ids by shards keys');
102
119
  throw (0, errors_1.allEndpointsFailedError)(lastError);
103
120
  };
104
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
121
+ return waitOptions
122
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation IDs by shards keys')
123
+ : await requestFn();
105
124
  }
106
125
  async getStageProfiling(operationId, waitOptions) {
107
126
  this.logger.debug(`Getting stage profiling for operation ${operationId}`);
@@ -126,7 +145,9 @@ class OperationTracker {
126
145
  this.logger.error('All endpoints failed to get stage profiling');
127
146
  throw (0, errors_1.allEndpointsFailedError)(lastError);
128
147
  };
129
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
148
+ return waitOptions
149
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting stage profiling')
150
+ : await requestFn();
130
151
  }
131
152
  async getStageProfilings(operationIds, waitOptions, chunkSize = 100) {
132
153
  this.logger.debug(`Getting stage profilings for operations: ${operationIds.join(', ')}`);
@@ -147,7 +168,9 @@ class OperationTracker {
147
168
  this.logger.error('All endpoints failed to get stage profilings');
148
169
  throw (0, errors_1.allEndpointsFailedError)(lastError);
149
170
  };
150
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
171
+ return waitOptions
172
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting stage profilings')
173
+ : await requestFn();
151
174
  }
152
175
  async getOperationStatuses(operationIds, waitOptions, chunkSize = 100) {
153
176
  this.logger.debug(`Getting operation statuses for operations: ${(0, Utils_1.formatObjectForLogging)(operationIds)}`);
@@ -168,7 +191,9 @@ class OperationTracker {
168
191
  this.logger.error('All endpoints failed to get operation statuses');
169
192
  throw (0, errors_1.allEndpointsFailedError)(lastError);
170
193
  };
171
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
194
+ return waitOptions
195
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation statuses')
196
+ : await requestFn();
172
197
  }
173
198
  async getOperationStatus(operationId, waitOptions) {
174
199
  this.logger.debug(`Getting operation status for ${(0, Utils_1.formatObjectForLogging)(operationId)}`);
@@ -193,7 +218,9 @@ class OperationTracker {
193
218
  this.logger.error('All endpoints failed to get operation status');
194
219
  throw (0, errors_1.allEndpointsFailedError)(lastError);
195
220
  };
196
- return waitOptions ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn) : await requestFn();
221
+ return waitOptions
222
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation status')
223
+ : await requestFn();
197
224
  }
198
225
  async getSimplifiedOperationStatus(transactionLinker) {
199
226
  this.logger.debug(`Getting simplified operation status for transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
@@ -202,9 +229,7 @@ class OperationTracker {
202
229
  this.logger.warn('Operation ID not found');
203
230
  return Struct_1.SimplifiedStatuses.OPERATION_ID_NOT_FOUND;
204
231
  }
205
- this.logger.debug(`Operation ID: ${operationId}`);
206
232
  const operationType = await this.getOperationType(operationId);
207
- this.logger.debug(`Operation type: ${operationType}`);
208
233
  if (operationType == Struct_1.OperationType.PENDING || operationType == Struct_1.OperationType.UNKNOWN) {
209
234
  return Struct_1.SimplifiedStatuses.PENDING;
210
235
  }
@@ -213,5 +238,72 @@ class OperationTracker {
213
238
  }
214
239
  return Struct_1.SimplifiedStatuses.SUCCESSFUL;
215
240
  }
241
+ async convertCurrency(params, waitOptions) {
242
+ this.logger.debug(`Converting currency: ${(0, Utils_1.formatObjectForLogging)(params)}`);
243
+ const requestFn = async () => {
244
+ let lastError;
245
+ for (const client of this.clients) {
246
+ try {
247
+ const result = await client.convertCurrency(params);
248
+ this.logger.debug(`Conversion result retrieved successfully`);
249
+ return result;
250
+ }
251
+ catch (error) {
252
+ this.logger.warn(`Failed to convert currency using one of the endpoints`);
253
+ lastError = error;
254
+ }
255
+ }
256
+ this.logger.error('All endpoints failed to convert currency');
257
+ throw (0, errors_1.allEndpointsFailedError)(lastError);
258
+ };
259
+ return waitOptions
260
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Converting currency')
261
+ : await requestFn();
262
+ }
263
+ async simulateTACMessage(params, waitOptions) {
264
+ Validator_1.Validator.validateTACSimulationParams(params);
265
+ this.logger.debug(`Simulating TAC message: ${(0, Utils_1.formatObjectForLogging)(params)}`);
266
+ const requestFn = async () => {
267
+ let lastError;
268
+ for (const client of this.clients) {
269
+ try {
270
+ const result = await client.simulateTACMessage(params);
271
+ this.logger.debug(`Simulation result retrieved successfully`);
272
+ return result;
273
+ }
274
+ catch (error) {
275
+ this.logger.warn(`Failed to simulate TAC message using one of the endpoints`);
276
+ lastError = error;
277
+ }
278
+ }
279
+ this.logger.error('All endpoints failed to simulate TAC message');
280
+ throw (0, errors_1.allEndpointsFailedError)(lastError);
281
+ };
282
+ return waitOptions
283
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Simulating TAC message')
284
+ : await requestFn();
285
+ }
286
+ async getTVMExecutorFee(params, waitOptions) {
287
+ this.logger.debug(`get TVM executor fee: ${(0, Utils_1.formatObjectForLogging)(params)}`);
288
+ const requestFn = async () => {
289
+ let lastError;
290
+ for (const client of this.clients) {
291
+ try {
292
+ const result = await client.getTVMExecutorFee(params);
293
+ this.logger.debug(`Suggested TVM executor fee retrieved successfully`);
294
+ return result;
295
+ }
296
+ catch (error) {
297
+ this.logger.warn(`Failed to get TVM executor fee using one of the endpoints`);
298
+ lastError = error;
299
+ }
300
+ }
301
+ this.logger.error('All endpoints failed to get TVM executor fee');
302
+ throw (0, errors_1.allEndpointsFailedError)(lastError);
303
+ };
304
+ return waitOptions
305
+ ? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting TVM executor fee')
306
+ : await requestFn();
307
+ }
216
308
  }
217
309
  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 = await (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;
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,99 @@
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
+ await Promise.all(assets.map((asset) => this.approveAsset(asset, signer, crossChainLayerAddress)));
60
+ const protocolFee = await this.config.TACParams.crossChainLayer.getProtocolFee();
61
+ const shardsKey = BigInt(Math.round(Math.random() * 1e18));
62
+ this.logger.debug(`Shards key: ${shardsKey}, Protocol fee: ${protocolFee}`);
63
+ // Prepare bridge data
64
+ const [toBridge, toBridgeNFT] = await Promise.all([
65
+ Promise.all(assets
66
+ .filter((a) => a.type === Struct_1.AssetType.FT)
67
+ .map(async (a) => ({
68
+ evmAddress: await a.getEVMAddress(),
69
+ amount: a.rawAmount,
70
+ }))),
71
+ Promise.all(assets
72
+ .filter((a) => a.type === Struct_1.AssetType.NFT)
73
+ .map(async (a) => ({
74
+ evmAddress: await a.getEVMAddress(),
75
+ amount: 1n,
76
+ tokenId: a.addresses.index,
77
+ }))),
78
+ ]);
79
+ const outMessage = {
80
+ shardsKey,
81
+ tvmTarget: tonTarget,
82
+ tvmPayload: '',
83
+ tvmProtocolFee: protocolFee,
84
+ tvmExecutorFee,
85
+ tvmValidExecutors: this.config.getTrustedTONExecutors,
86
+ toBridge,
87
+ toBridgeNFT,
88
+ };
89
+ const totalValue = value + BigInt(outMessage.tvmProtocolFee) + BigInt(outMessage.tvmExecutorFee);
90
+ this.logger.debug(`Total value: ${totalValue}`);
91
+ const tx = await this.config.TACParams.crossChainLayer
92
+ .connect(signer)
93
+ .sendMessage(1n, this.config.artifacts.tac.utils.encodeOutMessageV1(outMessage), { value: totalValue });
94
+ await tx.wait();
95
+ this.logger.debug(`Transaction hash: ${tx.hash}`);
96
+ return tx.hash;
97
+ }
98
+ }
99
+ exports.TACTransactionManager = TACTransactionManager;
@@ -0,0 +1,17 @@
1
+ import { IConfiguration, ILogger, IOperationTracker, ISimulator, ITONTransactionManager } from '../interfaces';
2
+ import type { SenderAbstraction } from '../sender';
3
+ import { CrosschainTx, EvmProxyMsg, OperationIdsByShardsKey, TransactionLinkerWithOperationId, WaitOptions } from '../structs/Struct';
4
+ export declare class TONTransactionManager implements ITONTransactionManager {
5
+ private readonly config;
6
+ private readonly simulator;
7
+ private readonly operationTracker;
8
+ private readonly logger;
9
+ constructor(config: IConfiguration, simulator: ISimulator, operationTracker: IOperationTracker, logger?: ILogger);
10
+ private buildFeeParams;
11
+ private prepareCrossChainTransaction;
12
+ private generateCrossChainMessages;
13
+ sendCrossChainTransaction(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx, waitOptions?: WaitOptions<string>): Promise<TransactionLinkerWithOperationId>;
14
+ sendCrossChainTransactions(sender: SenderAbstraction, txs: CrosschainTx[], waitOptions?: WaitOptions<OperationIdsByShardsKey>): Promise<TransactionLinkerWithOperationId[]>;
15
+ private prepareBatchTransactions;
16
+ private waitForOperationIds;
17
+ }
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TONTransactionManager = void 0;
4
+ const assets_1 = require("../assets");
5
+ const errors_1 = require("../errors");
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 TONTransactionManager {
11
+ constructor(config, simulator, operationTracker, logger = new Logger_1.NoopLogger()) {
12
+ this.config = config;
13
+ this.simulator = simulator;
14
+ this.operationTracker = operationTracker;
15
+ this.logger = logger;
16
+ }
17
+ async buildFeeParams(options, evmProxyMsg, sender, tx) {
18
+ const { withoutSimulation, protocolFee, evmExecutorFee, tvmExecutorFee, isRoundTrip } = options;
19
+ if (withoutSimulation) {
20
+ if (protocolFee === undefined || evmExecutorFee === undefined) {
21
+ throw errors_1.missingFeeParamsError;
22
+ }
23
+ if (isRoundTrip && tvmExecutorFee === undefined) {
24
+ throw errors_1.missingTvmExecutorFeeError;
25
+ }
26
+ if (!evmProxyMsg.gasLimit) {
27
+ throw errors_1.missingGasLimitError;
28
+ }
29
+ return {
30
+ protocolFee,
31
+ evmExecutorFee,
32
+ tvmExecutorFee: tvmExecutorFee || 0n,
33
+ gasLimit: evmProxyMsg.gasLimit,
34
+ isRoundTrip: isRoundTrip || false,
35
+ };
36
+ }
37
+ const simulationResult = await this.simulator.getSimulationInfo(sender, tx);
38
+ if (!evmProxyMsg.gasLimit)
39
+ evmProxyMsg.gasLimit = simulationResult.feeParams.gasLimit;
40
+ return {
41
+ protocolFee: protocolFee ?? simulationResult.feeParams.protocolFee,
42
+ evmExecutorFee: evmExecutorFee ?? simulationResult.feeParams.evmExecutorFee,
43
+ tvmExecutorFee: simulationResult.feeParams.isRoundTrip && tvmExecutorFee !== undefined
44
+ ? tvmExecutorFee
45
+ : simulationResult.feeParams.tvmExecutorFee,
46
+ gasLimit: evmProxyMsg.gasLimit ?? simulationResult.feeParams.gasLimit,
47
+ isRoundTrip: isRoundTrip ?? simulationResult.feeParams.isRoundTrip,
48
+ };
49
+ }
50
+ async prepareCrossChainTransaction(evmProxyMsg, sender, assets, options, skipAssetsBalanceValidation = false) {
51
+ this.logger.debug('Preparing cross-chain transaction');
52
+ const caller = sender.getSenderAddress();
53
+ const { allowSimulationError = false, isRoundTrip = undefined, calculateRollbackFee = true, validateAssetsBalance = true, } = options || {};
54
+ const { evmValidExecutors = [], tvmValidExecutors = [] } = options || {};
55
+ Validator_1.Validator.validateEVMAddress(evmProxyMsg.evmTargetAddress);
56
+ const aggregatedData = await (0, Utils_1.aggregateTokens)(assets);
57
+ Validator_1.Validator.validateEVMAddresses(evmValidExecutors);
58
+ Validator_1.Validator.validateTVMAddresses(tvmValidExecutors);
59
+ const shouldValidateAssets = validateAssetsBalance && !skipAssetsBalanceValidation;
60
+ if (shouldValidateAssets) {
61
+ await Promise.all([
62
+ ...aggregatedData.jettons.map((jetton) => jetton.checkCanBeTransferredBy(caller)),
63
+ ...aggregatedData.nfts.map((nft) => nft.checkCanBeTransferredBy(caller)),
64
+ aggregatedData.ton?.checkCanBeTransferredBy(caller),
65
+ ].filter(Boolean));
66
+ }
67
+ const tokensLength = aggregatedData.jettons.length + aggregatedData.nfts.length;
68
+ const transactionLinker = (0, Utils_1.generateTransactionLinker)(caller, tokensLength || 1);
69
+ this.logger.debug(`Generated transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
70
+ const tacExecutors = evmValidExecutors.length ? evmValidExecutors : this.config.getTrustedTACExecutors;
71
+ const tonExecutors = tvmValidExecutors.length ? tvmValidExecutors : this.config.getTrustedTONExecutors;
72
+ const tx = {
73
+ evmProxyMsg,
74
+ assets: assets ?? [],
75
+ options: {
76
+ allowSimulationError,
77
+ isRoundTrip,
78
+ evmValidExecutors: tacExecutors,
79
+ tvmValidExecutors: tonExecutors,
80
+ calculateRollbackFee,
81
+ },
82
+ };
83
+ const feeParams = await this.buildFeeParams(options || {}, evmProxyMsg, sender, tx);
84
+ this.logger.debug(`Resulting fee params: ${(0, Utils_1.formatObjectForLogging)(feeParams)}`);
85
+ const validExecutors = {
86
+ tac: tacExecutors,
87
+ ton: tonExecutors,
88
+ };
89
+ const evmData = (0, Utils_1.buildEvmDataCell)(transactionLinker, evmProxyMsg, validExecutors);
90
+ const messages = await this.generateCrossChainMessages(caller, evmData, aggregatedData, feeParams);
91
+ return {
92
+ transaction: {
93
+ validUntil: Date.now() + Consts_1.FIFTEEN_MINUTES,
94
+ messages,
95
+ network: this.config.network,
96
+ },
97
+ transactionLinker,
98
+ };
99
+ }
100
+ async generateCrossChainMessages(caller, evmData, aggregatedData, feeParams) {
101
+ this.logger.debug('Generating cross-chain messages');
102
+ const { jettons, nfts, ton = assets_1.TON.create(this.config) } = aggregatedData;
103
+ const totalAssets = [...jettons, ...nfts];
104
+ let crossChainTonAmount = ton.rawAmount;
105
+ let feeTonAmount = feeParams.protocolFee + feeParams.evmExecutorFee + feeParams.tvmExecutorFee;
106
+ this.logger.debug(`Crosschain ton amount: ${crossChainTonAmount}, Fee ton amount: ${feeTonAmount}`);
107
+ if (!totalAssets.length) {
108
+ return [
109
+ {
110
+ address: this.config.TONParams.crossChainLayerAddress,
111
+ value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
112
+ payload: await ton.generatePayload({ excessReceiver: caller, evmData, feeParams }),
113
+ },
114
+ ];
115
+ }
116
+ const messages = [];
117
+ let currentFeeParams = feeParams;
118
+ for (const asset of totalAssets) {
119
+ const payload = await asset.generatePayload({
120
+ excessReceiver: caller,
121
+ evmData,
122
+ crossChainTonAmount,
123
+ forwardFeeTonAmount: feeTonAmount,
124
+ feeParams: currentFeeParams,
125
+ });
126
+ const address = asset instanceof assets_1.FT ? await asset.getUserWalletAddress(caller) : asset.address;
127
+ messages.push({
128
+ address,
129
+ value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
130
+ payload,
131
+ });
132
+ crossChainTonAmount = 0n;
133
+ feeTonAmount = 0n;
134
+ currentFeeParams = undefined;
135
+ }
136
+ this.logger.debug('Cross-chain messages generated successfully');
137
+ return messages;
138
+ }
139
+ async sendCrossChainTransaction(evmProxyMsg, sender, tx, waitOptions) {
140
+ const { transaction, transactionLinker } = await this.prepareCrossChainTransaction(evmProxyMsg, sender, tx.assets, tx.options);
141
+ await assets_1.TON.checkBalance(sender, this.config, [transaction]);
142
+ this.logger.debug(`Sending transaction: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
143
+ const sendTransactionResult = await sender.sendShardTransaction(transaction, this.config.network, this.config.TONParams.contractOpener);
144
+ if (!waitOptions) {
145
+ return { sendTransactionResult, ...transactionLinker };
146
+ }
147
+ const operationId = await this.operationTracker
148
+ .getOperationId(transactionLinker, {
149
+ ...waitOptions,
150
+ successCheck: (id) => !!id,
151
+ logger: this.logger,
152
+ })
153
+ .catch((error) => {
154
+ this.logger.error(`Error while waiting for operation ID: ${error}`);
155
+ return undefined;
156
+ });
157
+ return { sendTransactionResult, operationId, ...transactionLinker };
158
+ }
159
+ async sendCrossChainTransactions(sender, txs, waitOptions) {
160
+ const caller = sender.getSenderAddress();
161
+ this.logger.debug(`Preparing ${txs.length} cross-chain transactions for ${caller}`);
162
+ const { transactions, transactionLinkers } = await this.prepareBatchTransactions(txs, sender);
163
+ await assets_1.TON.checkBalance(sender, this.config, transactions);
164
+ this.logger.debug(`Sending transactions: ${(0, Utils_1.formatObjectForLogging)(transactionLinkers)}`);
165
+ await sender.sendShardTransactions(transactions, this.config.network, this.config.TONParams.contractOpener);
166
+ return waitOptions
167
+ ? await this.waitForOperationIds(transactionLinkers, caller, waitOptions)
168
+ : transactionLinkers;
169
+ }
170
+ async prepareBatchTransactions(txs, sender) {
171
+ const caller = sender.getSenderAddress();
172
+ const txsRequiringValidation = txs.filter((tx) => tx.options?.validateAssetsBalance ?? true);
173
+ if (txsRequiringValidation.length) {
174
+ // Aggregate only assets from txs that require validation and validate once per unique asset
175
+ const assetsToValidate = txsRequiringValidation.flatMap((tx) => tx.assets ?? []);
176
+ const aggregatedData = await (0, Utils_1.aggregateTokens)(assetsToValidate);
177
+ await Promise.all([
178
+ ...aggregatedData.jettons.map((jetton) => jetton.checkCanBeTransferredBy(caller)),
179
+ ...aggregatedData.nfts.map((nft) => nft.checkCanBeTransferredBy(caller)),
180
+ aggregatedData.ton?.checkCanBeTransferredBy(caller),
181
+ ].filter(Boolean));
182
+ }
183
+ const results = await Promise.all(txs.map(({ evmProxyMsg, assets, options }) => this.prepareCrossChainTransaction(evmProxyMsg, sender, assets, options, true)));
184
+ return {
185
+ transactions: results.map((r) => r.transaction),
186
+ transactionLinkers: results.map((r) => r.transactionLinker),
187
+ };
188
+ }
189
+ async waitForOperationIds(transactionLinkers, caller, waitOptions) {
190
+ this.logger.debug(`Waiting for operation IDs`);
191
+ try {
192
+ const operationIds = await this.operationTracker.getOperationIdsByShardsKeys(transactionLinkers.map((linker) => linker.shardsKey), caller, {
193
+ ...waitOptions,
194
+ logger: this.logger,
195
+ successCheck: (operationIds) => Object.keys(operationIds).length == transactionLinkers.length &&
196
+ Object.values(operationIds).every((ids) => ids.operationIds.length > 0),
197
+ });
198
+ this.logger.debug(`Operation IDs: ${(0, Utils_1.formatObjectForLogging)(operationIds)}`);
199
+ return transactionLinkers.map((linker) => ({
200
+ ...linker,
201
+ operationId: operationIds[linker.shardsKey].operationIds.at(0),
202
+ }));
203
+ }
204
+ catch (error) {
205
+ this.logger.error(`Error while waiting for operation IDs: ${error}`);
206
+ return transactionLinkers;
207
+ }
208
+ }
209
+ }
210
+ exports.TONTransactionManager = TONTransactionManager;