@7kprotocol/sdk-ts 3.6.0 → 3.6.1-beta.0

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 (342) hide show
  1. package/README.md +1 -11
  2. package/lib/cjs/config/fetchClient.js +1 -9
  3. package/lib/cjs/constants/_7k.js +13 -10
  4. package/lib/cjs/constants/apiEndpoints.js +1 -1
  5. package/lib/cjs/features/metaAg/common.js +2 -2
  6. package/lib/cjs/features/metaAg/error.js +0 -4
  7. package/lib/cjs/features/metaAg/index.js +3 -8
  8. package/lib/cjs/features/prices/index.js +51 -20
  9. package/lib/cjs/index.js +1 -35
  10. package/lib/cjs/types/config/fetchClient.d.ts.map +1 -1
  11. package/lib/cjs/types/constants/_7k.d.ts +0 -3
  12. package/lib/cjs/types/constants/_7k.d.ts.map +1 -1
  13. package/lib/cjs/types/features/metaAg/common.d.ts +1 -1
  14. package/lib/cjs/types/features/metaAg/error.d.ts +1 -7
  15. package/lib/cjs/types/features/metaAg/error.d.ts.map +1 -1
  16. package/lib/cjs/types/features/metaAg/index.d.ts +1 -1
  17. package/lib/cjs/types/features/metaAg/index.d.ts.map +1 -1
  18. package/lib/cjs/types/features/prices/index.d.ts +16 -2
  19. package/lib/cjs/types/features/prices/index.d.ts.map +1 -1
  20. package/lib/cjs/types/index.d.ts +1 -32
  21. package/lib/cjs/types/index.d.ts.map +1 -1
  22. package/lib/cjs/types/metaAg.js +1 -3
  23. package/lib/cjs/types/types/metaAg.d.ts +2 -14
  24. package/lib/cjs/types/types/metaAg.d.ts.map +1 -1
  25. package/lib/cjs/types/utils/sui.d.ts +0 -31
  26. package/lib/cjs/types/utils/sui.d.ts.map +1 -1
  27. package/lib/cjs/types/utils/swap.d.ts +15 -0
  28. package/lib/cjs/types/utils/swap.d.ts.map +1 -0
  29. package/lib/cjs/utils/sui.js +3 -146
  30. package/lib/cjs/utils/swap.js +37 -0
  31. package/lib/esm/config/fetchClient.js +1 -9
  32. package/lib/esm/constants/_7k.js +12 -9
  33. package/lib/esm/constants/apiEndpoints.js +1 -1
  34. package/lib/esm/features/metaAg/common.js +1 -1
  35. package/lib/esm/features/metaAg/error.js +0 -4
  36. package/lib/esm/features/metaAg/index.js +2 -7
  37. package/lib/esm/features/prices/index.js +52 -21
  38. package/lib/esm/index.mjs +3 -31
  39. package/lib/esm/types/config/fetchClient.d.ts.map +1 -1
  40. package/lib/esm/types/constants/_7k.d.ts +0 -3
  41. package/lib/esm/types/constants/_7k.d.ts.map +1 -1
  42. package/lib/esm/types/features/metaAg/common.d.ts +1 -1
  43. package/lib/esm/types/features/metaAg/error.d.ts +1 -7
  44. package/lib/esm/types/features/metaAg/error.d.ts.map +1 -1
  45. package/lib/esm/types/features/metaAg/index.d.ts +1 -1
  46. package/lib/esm/types/features/metaAg/index.d.ts.map +1 -1
  47. package/lib/esm/types/features/prices/index.d.ts +16 -2
  48. package/lib/esm/types/features/prices/index.d.ts.map +1 -1
  49. package/lib/esm/types/index.d.ts +1 -32
  50. package/lib/esm/types/index.d.ts.map +1 -1
  51. package/lib/esm/types/metaAg.js +1 -3
  52. package/lib/esm/types/types/metaAg.d.ts +2 -14
  53. package/lib/esm/types/types/metaAg.d.ts.map +1 -1
  54. package/lib/esm/types/utils/sui.d.ts +0 -31
  55. package/lib/esm/types/utils/sui.d.ts.map +1 -1
  56. package/lib/esm/types/utils/swap.d.ts +15 -0
  57. package/lib/esm/types/utils/swap.d.ts.map +1 -0
  58. package/lib/esm/utils/sui.js +4 -147
  59. package/lib/esm/utils/swap.js +33 -0
  60. package/package.json +1 -1
  61. package/lib/cjs/config/index.js +0 -67
  62. package/lib/cjs/features/metaAg/providers/bluefin7kLegacy.js +0 -68
  63. package/lib/cjs/features/swap/buildTx.js +0 -198
  64. package/lib/cjs/features/swap/buildTxV2.js +0 -229
  65. package/lib/cjs/features/swap/config.js +0 -154
  66. package/lib/cjs/features/swap/estimateGasFee.js +0 -44
  67. package/lib/cjs/features/swap/executeTx.js +0 -52
  68. package/lib/cjs/features/swap/getQuote.js +0 -95
  69. package/lib/cjs/features/swap/getSwapHistory.js +0 -21
  70. package/lib/cjs/features/swap/index.js +0 -22
  71. package/lib/cjs/libs/groupSwapRoutes.js +0 -60
  72. package/lib/cjs/libs/protocols/aftermath/index.js +0 -35
  73. package/lib/cjs/libs/protocols/base.js +0 -41
  74. package/lib/cjs/libs/protocols/bluefin/index.js +0 -38
  75. package/lib/cjs/libs/protocols/bluefinx/client.js +0 -41
  76. package/lib/cjs/libs/protocols/bluefinx/index.js +0 -48
  77. package/lib/cjs/libs/protocols/bluefinx/types.js +0 -10
  78. package/lib/cjs/libs/protocols/bluemove/index.js +0 -24
  79. package/lib/cjs/libs/protocols/cetus/index.js +0 -44
  80. package/lib/cjs/libs/protocols/cetus_dlmm.js +0 -48
  81. package/lib/cjs/libs/protocols/constants.js +0 -5
  82. package/lib/cjs/libs/protocols/deepbookV3/sponsored.js +0 -30
  83. package/lib/cjs/libs/protocols/ferra_clmm.js +0 -44
  84. package/lib/cjs/libs/protocols/ferra_dlmm.js +0 -30
  85. package/lib/cjs/libs/protocols/flowx/index.js +0 -18
  86. package/lib/cjs/libs/protocols/flowxV3/index.js +0 -36
  87. package/lib/cjs/libs/protocols/fullsail/index.js +0 -39
  88. package/lib/cjs/libs/protocols/haedal_pmm/index.js +0 -31
  89. package/lib/cjs/libs/protocols/index.js +0 -55
  90. package/lib/cjs/libs/protocols/kriya/index.js +0 -30
  91. package/lib/cjs/libs/protocols/kriyaV3/index.js +0 -65
  92. package/lib/cjs/libs/protocols/magma/index.js +0 -40
  93. package/lib/cjs/libs/protocols/momentum/index.js +0 -49
  94. package/lib/cjs/libs/protocols/obric/index.js +0 -28
  95. package/lib/cjs/libs/protocols/sevenk/index.js +0 -55
  96. package/lib/cjs/libs/protocols/springsui/index.js +0 -24
  97. package/lib/cjs/libs/protocols/steamm/index.js +0 -160
  98. package/lib/cjs/libs/protocols/stsui/index.js +0 -24
  99. package/lib/cjs/libs/protocols/suiswap/index.js +0 -34
  100. package/lib/cjs/libs/protocols/turbos/index.js +0 -36
  101. package/lib/cjs/libs/protocols/utils.js +0 -7
  102. package/lib/cjs/libs/swapWithRoute.js +0 -22
  103. package/lib/cjs/types/aggregator.js +0 -19
  104. package/lib/cjs/types/config/index.d.ts +0 -30
  105. package/lib/cjs/types/config/index.d.ts.map +0 -1
  106. package/lib/cjs/types/features/metaAg/providers/bluefin7kLegacy.d.ts +0 -11
  107. package/lib/cjs/types/features/metaAg/providers/bluefin7kLegacy.d.ts.map +0 -1
  108. package/lib/cjs/types/features/swap/buildTx.d.ts +0 -17
  109. package/lib/cjs/types/features/swap/buildTx.d.ts.map +0 -1
  110. package/lib/cjs/types/features/swap/buildTxV2.d.ts +0 -20
  111. package/lib/cjs/types/features/swap/buildTxV2.d.ts.map +0 -1
  112. package/lib/cjs/types/features/swap/config.d.ts +0 -4
  113. package/lib/cjs/types/features/swap/config.d.ts.map +0 -1
  114. package/lib/cjs/types/features/swap/estimateGasFee.d.ts +0 -3
  115. package/lib/cjs/types/features/swap/estimateGasFee.d.ts.map +0 -1
  116. package/lib/cjs/types/features/swap/executeTx.d.ts +0 -24
  117. package/lib/cjs/types/features/swap/executeTx.d.ts.map +0 -1
  118. package/lib/cjs/types/features/swap/getQuote.d.ts +0 -27
  119. package/lib/cjs/types/features/swap/getQuote.d.ts.map +0 -1
  120. package/lib/cjs/types/features/swap/getSwapHistory.d.ts +0 -22
  121. package/lib/cjs/types/features/swap/getSwapHistory.d.ts.map +0 -1
  122. package/lib/cjs/types/features/swap/index.d.ts +0 -7
  123. package/lib/cjs/types/features/swap/index.d.ts.map +0 -1
  124. package/lib/cjs/types/libs/groupSwapRoutes.d.ts +0 -3
  125. package/lib/cjs/types/libs/groupSwapRoutes.d.ts.map +0 -1
  126. package/lib/cjs/types/libs/protocols/aftermath/index.d.ts +0 -9
  127. package/lib/cjs/types/libs/protocols/aftermath/index.d.ts.map +0 -1
  128. package/lib/cjs/types/libs/protocols/base.d.ts +0 -24
  129. package/lib/cjs/types/libs/protocols/base.d.ts.map +0 -1
  130. package/lib/cjs/types/libs/protocols/bluefin/index.d.ts +0 -9
  131. package/lib/cjs/types/libs/protocols/bluefin/index.d.ts.map +0 -1
  132. package/lib/cjs/types/libs/protocols/bluefinx/client.d.ts +0 -13
  133. package/lib/cjs/types/libs/protocols/bluefinx/client.d.ts.map +0 -1
  134. package/lib/cjs/types/libs/protocols/bluefinx/index.d.ts +0 -17
  135. package/lib/cjs/types/libs/protocols/bluefinx/index.d.ts.map +0 -1
  136. package/lib/cjs/types/libs/protocols/bluefinx/types.d.ts +0 -34
  137. package/lib/cjs/types/libs/protocols/bluefinx/types.d.ts.map +0 -1
  138. package/lib/cjs/types/libs/protocols/bluemove/index.d.ts +0 -9
  139. package/lib/cjs/types/libs/protocols/bluemove/index.d.ts.map +0 -1
  140. package/lib/cjs/types/libs/protocols/cetus/index.d.ts +0 -9
  141. package/lib/cjs/types/libs/protocols/cetus/index.d.ts.map +0 -1
  142. package/lib/cjs/types/libs/protocols/cetus_dlmm.d.ts +0 -9
  143. package/lib/cjs/types/libs/protocols/cetus_dlmm.d.ts.map +0 -1
  144. package/lib/cjs/types/libs/protocols/constants.d.ts +0 -3
  145. package/lib/cjs/types/libs/protocols/constants.d.ts.map +0 -1
  146. package/lib/cjs/types/libs/protocols/deepbookV3/sponsored.d.ts +0 -7
  147. package/lib/cjs/types/libs/protocols/deepbookV3/sponsored.d.ts.map +0 -1
  148. package/lib/cjs/types/libs/protocols/ferra_clmm.d.ts +0 -9
  149. package/lib/cjs/types/libs/protocols/ferra_clmm.d.ts.map +0 -1
  150. package/lib/cjs/types/libs/protocols/ferra_dlmm.d.ts +0 -9
  151. package/lib/cjs/types/libs/protocols/ferra_dlmm.d.ts.map +0 -1
  152. package/lib/cjs/types/libs/protocols/flowx/index.d.ts +0 -9
  153. package/lib/cjs/types/libs/protocols/flowx/index.d.ts.map +0 -1
  154. package/lib/cjs/types/libs/protocols/flowxV3/index.d.ts +0 -9
  155. package/lib/cjs/types/libs/protocols/flowxV3/index.d.ts.map +0 -1
  156. package/lib/cjs/types/libs/protocols/fullsail/index.d.ts +0 -9
  157. package/lib/cjs/types/libs/protocols/fullsail/index.d.ts.map +0 -1
  158. package/lib/cjs/types/libs/protocols/haedal_pmm/index.d.ts +0 -14
  159. package/lib/cjs/types/libs/protocols/haedal_pmm/index.d.ts.map +0 -1
  160. package/lib/cjs/types/libs/protocols/index.d.ts +0 -53
  161. package/lib/cjs/types/libs/protocols/index.d.ts.map +0 -1
  162. package/lib/cjs/types/libs/protocols/kriya/index.d.ts +0 -9
  163. package/lib/cjs/types/libs/protocols/kriya/index.d.ts.map +0 -1
  164. package/lib/cjs/types/libs/protocols/kriyaV3/index.d.ts +0 -9
  165. package/lib/cjs/types/libs/protocols/kriyaV3/index.d.ts.map +0 -1
  166. package/lib/cjs/types/libs/protocols/magma/index.d.ts +0 -9
  167. package/lib/cjs/types/libs/protocols/magma/index.d.ts.map +0 -1
  168. package/lib/cjs/types/libs/protocols/momentum/index.d.ts +0 -9
  169. package/lib/cjs/types/libs/protocols/momentum/index.d.ts.map +0 -1
  170. package/lib/cjs/types/libs/protocols/obric/index.d.ts +0 -14
  171. package/lib/cjs/types/libs/protocols/obric/index.d.ts.map +0 -1
  172. package/lib/cjs/types/libs/protocols/sevenk/index.d.ts +0 -18
  173. package/lib/cjs/types/libs/protocols/sevenk/index.d.ts.map +0 -1
  174. package/lib/cjs/types/libs/protocols/springsui/index.d.ts +0 -9
  175. package/lib/cjs/types/libs/protocols/springsui/index.d.ts.map +0 -1
  176. package/lib/cjs/types/libs/protocols/steamm/index.d.ts +0 -28
  177. package/lib/cjs/types/libs/protocols/steamm/index.d.ts.map +0 -1
  178. package/lib/cjs/types/libs/protocols/stsui/index.d.ts +0 -9
  179. package/lib/cjs/types/libs/protocols/stsui/index.d.ts.map +0 -1
  180. package/lib/cjs/types/libs/protocols/suiswap/index.d.ts +0 -9
  181. package/lib/cjs/types/libs/protocols/suiswap/index.d.ts.map +0 -1
  182. package/lib/cjs/types/libs/protocols/turbos/index.d.ts +0 -9
  183. package/lib/cjs/types/libs/protocols/turbos/index.d.ts.map +0 -1
  184. package/lib/cjs/types/libs/protocols/utils.d.ts +0 -2
  185. package/lib/cjs/types/libs/protocols/utils.d.ts.map +0 -1
  186. package/lib/cjs/types/libs/swapWithRoute.d.ts +0 -12
  187. package/lib/cjs/types/libs/swapWithRoute.d.ts.map +0 -1
  188. package/lib/cjs/types/sui.js +0 -2
  189. package/lib/cjs/types/tx.js +0 -2
  190. package/lib/cjs/types/types/aggregator.d.ts +0 -173
  191. package/lib/cjs/types/types/aggregator.d.ts.map +0 -1
  192. package/lib/cjs/types/types/sui.d.ts +0 -4
  193. package/lib/cjs/types/types/sui.d.ts.map +0 -1
  194. package/lib/cjs/types/types/tx.d.ts +0 -67
  195. package/lib/cjs/types/types/tx.d.ts.map +0 -1
  196. package/lib/cjs/types/types/utilities.d.ts +0 -5
  197. package/lib/cjs/types/types/utilities.d.ts.map +0 -1
  198. package/lib/cjs/types/utilities.js +0 -2
  199. package/lib/cjs/types/utils/number.d.ts +0 -2
  200. package/lib/cjs/types/utils/number.d.ts.map +0 -1
  201. package/lib/cjs/utils/number.js +0 -9
  202. package/lib/esm/config/index.js +0 -64
  203. package/lib/esm/features/metaAg/providers/bluefin7kLegacy.js +0 -66
  204. package/lib/esm/features/swap/buildTx.js +0 -188
  205. package/lib/esm/features/swap/buildTxV2.js +0 -223
  206. package/lib/esm/features/swap/config.js +0 -150
  207. package/lib/esm/features/swap/estimateGasFee.js +0 -41
  208. package/lib/esm/features/swap/executeTx.js +0 -48
  209. package/lib/esm/features/swap/getQuote.js +0 -91
  210. package/lib/esm/features/swap/getSwapHistory.js +0 -18
  211. package/lib/esm/features/swap/index.js +0 -6
  212. package/lib/esm/libs/groupSwapRoutes.js +0 -57
  213. package/lib/esm/libs/protocols/aftermath/index.js +0 -31
  214. package/lib/esm/libs/protocols/base.js +0 -42
  215. package/lib/esm/libs/protocols/bluefin/index.js +0 -34
  216. package/lib/esm/libs/protocols/bluefinx/client.js +0 -36
  217. package/lib/esm/libs/protocols/bluefinx/index.js +0 -44
  218. package/lib/esm/libs/protocols/bluefinx/types.js +0 -8
  219. package/lib/esm/libs/protocols/bluemove/index.js +0 -20
  220. package/lib/esm/libs/protocols/cetus/index.js +0 -40
  221. package/lib/esm/libs/protocols/cetus_dlmm.js +0 -44
  222. package/lib/esm/libs/protocols/constants.js +0 -2
  223. package/lib/esm/libs/protocols/deepbookV3/sponsored.js +0 -26
  224. package/lib/esm/libs/protocols/ferra_clmm.js +0 -40
  225. package/lib/esm/libs/protocols/ferra_dlmm.js +0 -26
  226. package/lib/esm/libs/protocols/flowx/index.js +0 -14
  227. package/lib/esm/libs/protocols/flowxV3/index.js +0 -32
  228. package/lib/esm/libs/protocols/fullsail/index.js +0 -35
  229. package/lib/esm/libs/protocols/haedal_pmm/index.js +0 -27
  230. package/lib/esm/libs/protocols/index.js +0 -52
  231. package/lib/esm/libs/protocols/kriya/index.js +0 -26
  232. package/lib/esm/libs/protocols/kriyaV3/index.js +0 -61
  233. package/lib/esm/libs/protocols/magma/index.js +0 -36
  234. package/lib/esm/libs/protocols/momentum/index.js +0 -45
  235. package/lib/esm/libs/protocols/obric/index.js +0 -24
  236. package/lib/esm/libs/protocols/sevenk/index.js +0 -51
  237. package/lib/esm/libs/protocols/springsui/index.js +0 -20
  238. package/lib/esm/libs/protocols/steamm/index.js +0 -156
  239. package/lib/esm/libs/protocols/stsui/index.js +0 -20
  240. package/lib/esm/libs/protocols/suiswap/index.js +0 -30
  241. package/lib/esm/libs/protocols/turbos/index.js +0 -32
  242. package/lib/esm/libs/protocols/utils.js +0 -4
  243. package/lib/esm/libs/swapWithRoute.js +0 -19
  244. package/lib/esm/types/aggregator.js +0 -14
  245. package/lib/esm/types/config/index.d.ts +0 -30
  246. package/lib/esm/types/config/index.d.ts.map +0 -1
  247. package/lib/esm/types/features/metaAg/providers/bluefin7kLegacy.d.ts +0 -11
  248. package/lib/esm/types/features/metaAg/providers/bluefin7kLegacy.d.ts.map +0 -1
  249. package/lib/esm/types/features/swap/buildTx.d.ts +0 -17
  250. package/lib/esm/types/features/swap/buildTx.d.ts.map +0 -1
  251. package/lib/esm/types/features/swap/buildTxV2.d.ts +0 -20
  252. package/lib/esm/types/features/swap/buildTxV2.d.ts.map +0 -1
  253. package/lib/esm/types/features/swap/config.d.ts +0 -4
  254. package/lib/esm/types/features/swap/config.d.ts.map +0 -1
  255. package/lib/esm/types/features/swap/estimateGasFee.d.ts +0 -3
  256. package/lib/esm/types/features/swap/estimateGasFee.d.ts.map +0 -1
  257. package/lib/esm/types/features/swap/executeTx.d.ts +0 -24
  258. package/lib/esm/types/features/swap/executeTx.d.ts.map +0 -1
  259. package/lib/esm/types/features/swap/getQuote.d.ts +0 -27
  260. package/lib/esm/types/features/swap/getQuote.d.ts.map +0 -1
  261. package/lib/esm/types/features/swap/getSwapHistory.d.ts +0 -22
  262. package/lib/esm/types/features/swap/getSwapHistory.d.ts.map +0 -1
  263. package/lib/esm/types/features/swap/index.d.ts +0 -7
  264. package/lib/esm/types/features/swap/index.d.ts.map +0 -1
  265. package/lib/esm/types/libs/groupSwapRoutes.d.ts +0 -3
  266. package/lib/esm/types/libs/groupSwapRoutes.d.ts.map +0 -1
  267. package/lib/esm/types/libs/protocols/aftermath/index.d.ts +0 -9
  268. package/lib/esm/types/libs/protocols/aftermath/index.d.ts.map +0 -1
  269. package/lib/esm/types/libs/protocols/base.d.ts +0 -24
  270. package/lib/esm/types/libs/protocols/base.d.ts.map +0 -1
  271. package/lib/esm/types/libs/protocols/bluefin/index.d.ts +0 -9
  272. package/lib/esm/types/libs/protocols/bluefin/index.d.ts.map +0 -1
  273. package/lib/esm/types/libs/protocols/bluefinx/client.d.ts +0 -13
  274. package/lib/esm/types/libs/protocols/bluefinx/client.d.ts.map +0 -1
  275. package/lib/esm/types/libs/protocols/bluefinx/index.d.ts +0 -17
  276. package/lib/esm/types/libs/protocols/bluefinx/index.d.ts.map +0 -1
  277. package/lib/esm/types/libs/protocols/bluefinx/types.d.ts +0 -34
  278. package/lib/esm/types/libs/protocols/bluefinx/types.d.ts.map +0 -1
  279. package/lib/esm/types/libs/protocols/bluemove/index.d.ts +0 -9
  280. package/lib/esm/types/libs/protocols/bluemove/index.d.ts.map +0 -1
  281. package/lib/esm/types/libs/protocols/cetus/index.d.ts +0 -9
  282. package/lib/esm/types/libs/protocols/cetus/index.d.ts.map +0 -1
  283. package/lib/esm/types/libs/protocols/cetus_dlmm.d.ts +0 -9
  284. package/lib/esm/types/libs/protocols/cetus_dlmm.d.ts.map +0 -1
  285. package/lib/esm/types/libs/protocols/constants.d.ts +0 -3
  286. package/lib/esm/types/libs/protocols/constants.d.ts.map +0 -1
  287. package/lib/esm/types/libs/protocols/deepbookV3/sponsored.d.ts +0 -7
  288. package/lib/esm/types/libs/protocols/deepbookV3/sponsored.d.ts.map +0 -1
  289. package/lib/esm/types/libs/protocols/ferra_clmm.d.ts +0 -9
  290. package/lib/esm/types/libs/protocols/ferra_clmm.d.ts.map +0 -1
  291. package/lib/esm/types/libs/protocols/ferra_dlmm.d.ts +0 -9
  292. package/lib/esm/types/libs/protocols/ferra_dlmm.d.ts.map +0 -1
  293. package/lib/esm/types/libs/protocols/flowx/index.d.ts +0 -9
  294. package/lib/esm/types/libs/protocols/flowx/index.d.ts.map +0 -1
  295. package/lib/esm/types/libs/protocols/flowxV3/index.d.ts +0 -9
  296. package/lib/esm/types/libs/protocols/flowxV3/index.d.ts.map +0 -1
  297. package/lib/esm/types/libs/protocols/fullsail/index.d.ts +0 -9
  298. package/lib/esm/types/libs/protocols/fullsail/index.d.ts.map +0 -1
  299. package/lib/esm/types/libs/protocols/haedal_pmm/index.d.ts +0 -14
  300. package/lib/esm/types/libs/protocols/haedal_pmm/index.d.ts.map +0 -1
  301. package/lib/esm/types/libs/protocols/index.d.ts +0 -53
  302. package/lib/esm/types/libs/protocols/index.d.ts.map +0 -1
  303. package/lib/esm/types/libs/protocols/kriya/index.d.ts +0 -9
  304. package/lib/esm/types/libs/protocols/kriya/index.d.ts.map +0 -1
  305. package/lib/esm/types/libs/protocols/kriyaV3/index.d.ts +0 -9
  306. package/lib/esm/types/libs/protocols/kriyaV3/index.d.ts.map +0 -1
  307. package/lib/esm/types/libs/protocols/magma/index.d.ts +0 -9
  308. package/lib/esm/types/libs/protocols/magma/index.d.ts.map +0 -1
  309. package/lib/esm/types/libs/protocols/momentum/index.d.ts +0 -9
  310. package/lib/esm/types/libs/protocols/momentum/index.d.ts.map +0 -1
  311. package/lib/esm/types/libs/protocols/obric/index.d.ts +0 -14
  312. package/lib/esm/types/libs/protocols/obric/index.d.ts.map +0 -1
  313. package/lib/esm/types/libs/protocols/sevenk/index.d.ts +0 -18
  314. package/lib/esm/types/libs/protocols/sevenk/index.d.ts.map +0 -1
  315. package/lib/esm/types/libs/protocols/springsui/index.d.ts +0 -9
  316. package/lib/esm/types/libs/protocols/springsui/index.d.ts.map +0 -1
  317. package/lib/esm/types/libs/protocols/steamm/index.d.ts +0 -28
  318. package/lib/esm/types/libs/protocols/steamm/index.d.ts.map +0 -1
  319. package/lib/esm/types/libs/protocols/stsui/index.d.ts +0 -9
  320. package/lib/esm/types/libs/protocols/stsui/index.d.ts.map +0 -1
  321. package/lib/esm/types/libs/protocols/suiswap/index.d.ts +0 -9
  322. package/lib/esm/types/libs/protocols/suiswap/index.d.ts.map +0 -1
  323. package/lib/esm/types/libs/protocols/turbos/index.d.ts +0 -9
  324. package/lib/esm/types/libs/protocols/turbos/index.d.ts.map +0 -1
  325. package/lib/esm/types/libs/protocols/utils.d.ts +0 -2
  326. package/lib/esm/types/libs/protocols/utils.d.ts.map +0 -1
  327. package/lib/esm/types/libs/swapWithRoute.d.ts +0 -12
  328. package/lib/esm/types/libs/swapWithRoute.d.ts.map +0 -1
  329. package/lib/esm/types/sui.js +0 -1
  330. package/lib/esm/types/tx.js +0 -1
  331. package/lib/esm/types/types/aggregator.d.ts +0 -173
  332. package/lib/esm/types/types/aggregator.d.ts.map +0 -1
  333. package/lib/esm/types/types/sui.d.ts +0 -4
  334. package/lib/esm/types/types/sui.d.ts.map +0 -1
  335. package/lib/esm/types/types/tx.d.ts +0 -67
  336. package/lib/esm/types/types/tx.d.ts.map +0 -1
  337. package/lib/esm/types/types/utilities.d.ts +0 -5
  338. package/lib/esm/types/types/utilities.d.ts.map +0 -1
  339. package/lib/esm/types/utilities.js +0 -1
  340. package/lib/esm/types/utils/number.d.ts +0 -2
  341. package/lib/esm/types/utils/number.d.ts.map +0 -1
  342. package/lib/esm/utils/number.js +0 -6
@@ -1,64 +0,0 @@
1
- import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
2
- import { SuiPriceServiceConnection, SuiPythClient, } from "@pythnetwork/pyth-sui-js";
3
- const HERMES_API = "https://hermes.pyth.network";
4
- const WORMHOLE_STATE_ID = "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c";
5
- const PYTH_STATE_ID = "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8";
6
- let api = "";
7
- let apiKey = "";
8
- let bluefinXApiKey = "";
9
- let suiClient = new SuiClient({
10
- url: getFullnodeUrl("mainnet"),
11
- });
12
- let pythClient = new SuiPythClient(suiClient, PYTH_STATE_ID, WORMHOLE_STATE_ID);
13
- let pythConnection = new SuiPriceServiceConnection(HERMES_API);
14
- function setApi(url) {
15
- api = url;
16
- }
17
- function getApi() {
18
- return api;
19
- }
20
- function setApiKey(key) {
21
- apiKey = key;
22
- }
23
- function getApiKey() {
24
- return apiKey;
25
- }
26
- function setBluefinXApiKey(key) {
27
- bluefinXApiKey = key;
28
- }
29
- function getBluefinXApiKey() {
30
- return bluefinXApiKey;
31
- }
32
- function getSuiClient() {
33
- return suiClient;
34
- }
35
- function setSuiClient(client) {
36
- suiClient = client;
37
- }
38
- function setPythClient(client) {
39
- pythClient = client;
40
- }
41
- function getPythClient() {
42
- return pythClient;
43
- }
44
- function setPythConnection(connection) {
45
- pythConnection = connection;
46
- }
47
- function getPythConnection() {
48
- return pythConnection;
49
- }
50
- const Config = {
51
- setApi,
52
- getApi,
53
- setApiKey,
54
- getApiKey,
55
- setBluefinXApiKey,
56
- getBluefinXApiKey,
57
- setSuiClient,
58
- getSuiClient,
59
- setPythClient,
60
- getPythClient,
61
- setPythConnection,
62
- getPythConnection,
63
- };
64
- export { Config };
@@ -1,66 +0,0 @@
1
- import { SuiPriceServiceConnection, SuiPythClient, } from "@pythnetwork/pyth-sui-js";
2
- import { v4 } from "uuid";
3
- import { Config } from "../../../config";
4
- import { _7K_PARTNER_ADDRESS } from "../../../constants/_7k";
5
- import { EProvider, } from "../../../types/metaAg";
6
- import { buildTxV2 } from "../../swap/buildTxV2";
7
- import { getQuote } from "../../swap/getQuote";
8
- import { MetaAgError, MetaAgErrorCode } from "../error";
9
- const WORMHOLE_STATE_ID = "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c";
10
- const PYTH_STATE_ID = "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8";
11
- export class BluefinLegacyProvider {
12
- options;
13
- metaOptions;
14
- kind = EProvider.BLUEFIN7K_LEGACY;
15
- constructor(options, metaOptions, client) {
16
- this.options = options;
17
- this.metaOptions = metaOptions;
18
- const pythClient = new SuiPythClient(client, PYTH_STATE_ID, WORMHOLE_STATE_ID);
19
- const pythConnection = new SuiPriceServiceConnection(this.metaOptions.hermesApi);
20
- if (options.apiKey)
21
- Config.setApiKey(options.apiKey);
22
- if (options.api)
23
- Config.setApi(options.api);
24
- Config.setSuiClient(client);
25
- Config.setPythClient(pythClient);
26
- Config.setPythConnection(pythConnection);
27
- }
28
- async quote(options) {
29
- const quote = await getQuote({
30
- amountIn: options.amountIn,
31
- tokenIn: options.coinTypeIn,
32
- tokenOut: options.coinTypeOut,
33
- sources: this.options.sources,
34
- maxPaths: this.options.maxPaths,
35
- excludedPools: this.options.excludedPools,
36
- targetPools: this.options.targetPools,
37
- });
38
- return {
39
- id: v4(),
40
- provider: EProvider.BLUEFIN7K_LEGACY,
41
- quote,
42
- amountIn: quote.swapAmountWithDecimal,
43
- rawAmountOut: quote.returnAmountWithDecimal,
44
- amountOut: quote.returnAmountWithDecimal,
45
- coinTypeIn: options.coinTypeIn,
46
- coinTypeOut: options.coinTypeOut,
47
- };
48
- }
49
- async swap({ quote, signer, tx, coinIn }) {
50
- MetaAgError.assert(quote.provider === EProvider.BLUEFIN7K_LEGACY, "Invalid quote", MetaAgErrorCode.INVALID_QUOTE, { quote, expectedProvider: EProvider.BLUEFIN7K_LEGACY });
51
- const { coinOut } = await buildTxV2({
52
- quoteResponse: quote.quote,
53
- accountAddress: signer,
54
- commission: {
55
- commissionBps: 0,
56
- partner: _7K_PARTNER_ADDRESS,
57
- },
58
- slippage: 1,
59
- extendTx: {
60
- tx,
61
- coinIn,
62
- },
63
- });
64
- return coinOut;
65
- }
66
- }
@@ -1,188 +0,0 @@
1
- import { coinWithBalance, Transaction, } from "@mysten/sui/transactions";
2
- import { isValidSuiAddress, toBase64, toHex } from "@mysten/sui/utils";
3
- import { Config } from "../../config";
4
- import { _7K_CONFIG, _7K_PACKAGE_ID, _7K_VAULT } from "../../constants/_7k";
5
- import { groupSwapRoutes } from "../../libs/groupSwapRoutes";
6
- import { sponsorBluefinX } from "../../libs/protocols/bluefinx/client";
7
- import { BluefinXTx } from "../../libs/protocols/bluefinx/types";
8
- import { swapWithRoute } from "../../libs/swapWithRoute";
9
- import { isBluefinXRouting, } from "../../types/aggregator";
10
- import { SuiUtils } from "../../utils/sui";
11
- import { getConfig } from "./config";
12
- import { ORACLE_BASED_SOURCES } from "./getQuote";
13
- export const buildTx = async ({ quoteResponse, accountAddress, slippage, commission: __commission, devInspect, extendTx, isSponsored, }) => {
14
- const isBluefinX = isBluefinXRouting(quoteResponse);
15
- const _commission = {
16
- ...__commission,
17
- // commission is ignored for bluefinx
18
- commissionBps: isBluefinX ? 0 : __commission.commissionBps,
19
- };
20
- const { tx: _tx, coinIn: _coinIn } = extendTx || {};
21
- let coinOut;
22
- if (isBluefinX && devInspect) {
23
- throw new Error("BluefinX tx is sponsored, skip devInspect");
24
- }
25
- if (!accountAddress) {
26
- throw new Error("Sender address is required");
27
- }
28
- if (!quoteResponse.routes) {
29
- throw new Error("Invalid quote response: 'routes' are required");
30
- }
31
- if (!isValidSuiAddress(_commission.partner)) {
32
- throw new Error("Invalid commission partner address");
33
- }
34
- const tx = _tx || new Transaction();
35
- const routes = groupSwapRoutes(quoteResponse);
36
- validateRoutes(routes, isSponsored);
37
- const splits = routes.map((group) => group[0]?.amount ?? "0");
38
- const coinIn = _coinIn ||
39
- tx.add(coinWithBalance({
40
- type: quoteResponse.tokenIn,
41
- balance: BigInt(quoteResponse.swapAmountWithDecimal),
42
- useGasCoin: !isSponsored && !isBluefinX,
43
- }));
44
- const coinData = tx.splitCoins(coinIn, splits);
45
- SuiUtils.transferOrDestroyZeroCoin(tx, quoteResponse.tokenIn, coinIn, accountAddress);
46
- const pythMap = await updatePythPriceFeedsIfAny(tx, [quoteResponse]);
47
- const coinObjects = [];
48
- const config = await getConfig();
49
- await Promise.all(routes.map(async (route, index) => {
50
- const inputCoinObject = coinData[index];
51
- const coinRes = await swapWithRoute({
52
- route,
53
- inputCoinObject,
54
- currentAccount: accountAddress,
55
- tx,
56
- config,
57
- pythMap,
58
- });
59
- if (coinRes) {
60
- coinObjects.push(coinRes);
61
- }
62
- }));
63
- if (coinObjects.length > 0) {
64
- const mergedCoin = tx.add(settle(coinObjects, quoteResponse, Math.floor(+slippage * 10000), _commission));
65
- if (!extendTx) {
66
- tx.transferObjects([mergedCoin], tx.pure.address(accountAddress));
67
- }
68
- else {
69
- coinOut = mergedCoin;
70
- }
71
- }
72
- if (isBluefinX) {
73
- return {
74
- tx: await buildBluefinXTx(tx, accountAddress, quoteResponse),
75
- coinOut,
76
- };
77
- }
78
- tx.setSenderIfNotSet(accountAddress);
79
- return { tx, coinOut };
80
- };
81
- export const getPythPriceFeeds = (responses) => {
82
- const ids = new Set();
83
- for (const res of responses) {
84
- for (const s of res.swaps) {
85
- for (const o of s.extra?.oracles || []) {
86
- const bytes = o.Pyth?.price_identifier?.bytes || o.Pyth?.bytes;
87
- if (bytes) {
88
- ids.add("0x" + toHex(Uint8Array.from(bytes)));
89
- }
90
- }
91
- }
92
- }
93
- return Array.from(ids);
94
- };
95
- export const updatePythPriceFeedsIfAny = async (tx, quoteResponse) => {
96
- // update oracles price if any
97
- const pythMap = {};
98
- const pythIds = getPythPriceFeeds(quoteResponse);
99
- if (pythIds.length > 0) {
100
- const prices = await Config.getPythConnection().getPriceFeedsUpdateData(pythIds);
101
- const ids = await Config.getPythClient().updatePriceFeeds(tx, prices, pythIds);
102
- pythIds.map((id, index) => {
103
- pythMap[id] = ids[index];
104
- });
105
- }
106
- return pythMap;
107
- };
108
- export const validateRoutes = (routes, isSponsored) => {
109
- if (!isSponsored) {
110
- return;
111
- }
112
- const hasOracleBasedSource = routes.some((g) => g.some((s) => ORACLE_BASED_SOURCES.has(s.pool.type)));
113
- if (hasOracleBasedSource) {
114
- throw new Error("Oracle based sources are not supported for sponsored tx");
115
- }
116
- };
117
- export const getExpectedReturn = (returnAmount, slippageBps, commissionBps, tipBps = 0) => {
118
- if (slippageBps > 10000) {
119
- throw new Error("Slippage must be less than 100%");
120
- }
121
- if (commissionBps > 10000) {
122
- throw new Error("Commission must be less than 100%");
123
- }
124
- if (tipBps > 10000) {
125
- throw new Error("Tip must be less than 100%");
126
- }
127
- const returnAmountWithDecimal = BigInt(returnAmount);
128
- const tipAmountWithDecimal = (returnAmountWithDecimal * BigInt(tipBps || 0)) / 10000n;
129
- const commissionAmountWithDecimal = ((returnAmountWithDecimal - tipAmountWithDecimal) * BigInt(commissionBps)) /
130
- 10000n;
131
- const expectedReturnWithDecimal = returnAmountWithDecimal -
132
- tipAmountWithDecimal -
133
- commissionAmountWithDecimal;
134
- const minAmountWithDecimal = (expectedReturnWithDecimal * BigInt(1e4 - slippageBps)) / 10000n;
135
- return {
136
- tipAmount: tipAmountWithDecimal,
137
- minAmount: minAmountWithDecimal,
138
- commissionAmount: commissionAmountWithDecimal,
139
- expectedAmount: expectedReturnWithDecimal.toString(10),
140
- };
141
- };
142
- export const settle = (coinObjects, quoteResponse, slippageBps, _commission) => {
143
- return (tx) => {
144
- const mergeCoin = coinObjects.length > 1
145
- ? (tx.mergeCoins(coinObjects[0], coinObjects.slice(1)), coinObjects[0])
146
- : coinObjects[0];
147
- const { minAmount, expectedAmount } = getExpectedReturn(quoteResponse.returnAmountWithDecimal, slippageBps, _commission.commissionBps);
148
- tx.moveCall({
149
- target: `${_7K_PACKAGE_ID}::settle::settle`,
150
- typeArguments: [quoteResponse.tokenIn, quoteResponse.tokenOut],
151
- arguments: [
152
- tx.object(_7K_CONFIG),
153
- tx.object(_7K_VAULT),
154
- tx.pure.u64(quoteResponse.swapAmountWithDecimal),
155
- mergeCoin,
156
- tx.pure.u64(minAmount), // minimum received
157
- tx.pure.u64(expectedAmount), // expected amount out
158
- tx.pure.option("address", isValidSuiAddress(_commission.partner) ? _commission.partner : null),
159
- tx.pure.u64(_commission.commissionBps),
160
- tx.pure.u64(0),
161
- ],
162
- });
163
- return mergeCoin;
164
- };
165
- };
166
- export const buildBluefinXTx = async (tx, accountAddress, quoteResponse) => {
167
- const extra = quoteResponse.swaps[0].extra;
168
- if (extra.quoteExpiresAtUtcMillis < Date.now()) {
169
- throw new Error("Quote expired");
170
- }
171
- if (extra.taker !== accountAddress) {
172
- throw new Error("Sender mismatch with quote");
173
- }
174
- tx.setSenderIfNotSet(accountAddress);
175
- const bytes = await tx.build({
176
- client: Config.getSuiClient(),
177
- onlyTransactionKind: true,
178
- });
179
- const res = await sponsorBluefinX({
180
- quoteId: extra.quoteId,
181
- txBytes: toBase64(bytes),
182
- sender: accountAddress,
183
- });
184
- if (!res.success) {
185
- throw new Error("Sponsor failed");
186
- }
187
- return new BluefinXTx(res.quoteId, res.data.txBytes);
188
- };
@@ -1,223 +0,0 @@
1
- import { coinWithBalance, Transaction, } from "@mysten/sui/transactions";
2
- import { isValidSuiAddress, normalizeStructTag } from "@mysten/sui/utils";
3
- import { groupSwapRoutes } from "../../libs/groupSwapRoutes";
4
- import { swapWithRoute } from "../../libs/swapWithRoute";
5
- import { isBluefinXRouting, } from "../../types/aggregator";
6
- import { SuiUtils } from "../../utils/sui";
7
- import { buildBluefinXTx, settle, updatePythPriceFeedsIfAny, validateRoutes, } from "./buildTx";
8
- import { getConfig } from "./config";
9
- /**
10
- * Wave-based transaction builder that optimizes swap execution by:
11
- * 1. Grouping swaps into execution waves based on readiness
12
- * 2. Merging redundant swaps to the same pool within each wave
13
- * 3. Processing waves sequentially, passing intermediate tokens between waves
14
- */
15
- export const buildTxV2 = async (params) => {
16
- return buildTxV2Int(params);
17
- };
18
- export const buildTxV2Int = async ({ quoteResponse, accountAddress, slippage, commission: __commission, devInspect, extendTx, isSponsored, }, beforeBuildBluefinXTx) => {
19
- const isBluefinX = isBluefinXRouting(quoteResponse);
20
- const _commission = {
21
- ...__commission,
22
- commissionBps: isBluefinX ? 0 : __commission.commissionBps,
23
- };
24
- const { tx: _tx, coinIn: _coinIn } = extendTx || {};
25
- let coinOut;
26
- if (isBluefinX && devInspect) {
27
- throw new Error("BluefinX tx is sponsored, skip devInspect");
28
- }
29
- if (!accountAddress) {
30
- throw new Error("Sender address is required");
31
- }
32
- if (!quoteResponse.routes) {
33
- throw new Error("Invalid quote response: 'routes' are required");
34
- }
35
- if (!isValidSuiAddress(_commission.partner)) {
36
- throw new Error("Invalid commission partner address");
37
- }
38
- const tx = _tx || new Transaction();
39
- const routes = groupSwapRoutes(quoteResponse);
40
- validateRoutes(routes, isSponsored);
41
- const splits = routes.map((group) => group[0]?.amount ?? "0");
42
- const coinIn = _coinIn ||
43
- tx.add(coinWithBalance({
44
- type: quoteResponse.tokenIn,
45
- balance: BigInt(quoteResponse.swapAmountWithDecimal),
46
- useGasCoin: !isSponsored && !isBluefinX,
47
- }));
48
- const coinData = tx.splitCoins(coinIn, splits);
49
- SuiUtils.transferOrDestroyZeroCoin(tx, quoteResponse.tokenIn, coinIn, accountAddress);
50
- const pythMap = await updatePythPriceFeedsIfAny(tx, [quoteResponse]);
51
- const config = await getConfig();
52
- const finalCoins = await optimize(pythMap, config, routes, coinData, tx, accountAddress);
53
- // Merge all final coins
54
- if (finalCoins.length > 0) {
55
- const mergeCoin = tx.add(settle(finalCoins, quoteResponse, Math.floor(+slippage * 10000), _commission));
56
- if (!extendTx) {
57
- tx.transferObjects([mergeCoin], tx.pure.address(accountAddress));
58
- }
59
- else {
60
- coinOut = mergeCoin;
61
- }
62
- }
63
- if (isBluefinX) {
64
- beforeBuildBluefinXTx?.(tx, coinOut);
65
- return {
66
- tx: await buildBluefinXTx(tx, accountAddress, quoteResponse),
67
- coinOut,
68
- };
69
- }
70
- tx.setSenderIfNotSet(accountAddress);
71
- return { tx, coinOut };
72
- };
73
- const optimize = async (pythMap, config, routes, coinData, tx, accountAddress) => {
74
- // Initialize route states with split coins
75
- const routeStates = routes.map((route, index) => ({
76
- routeIndex: index,
77
- currentHopIndex: 0,
78
- currentCoin: coinData[index],
79
- swaps: route,
80
- completed: false,
81
- }));
82
- const finalCoins = [];
83
- const coinTypeOut = routes[0][routes[0].length - 1].assetOut;
84
- // Execute swaps in waves
85
- while (true) {
86
- const readyHops = [];
87
- routeStates.forEach((state) => {
88
- if (state.completed)
89
- return;
90
- if (state.currentHopIndex >= state.swaps.length) {
91
- state.completed = true;
92
- finalCoins.push(state.currentCoin);
93
- return;
94
- }
95
- const swap = state.swaps[state.currentHopIndex];
96
- readyHops.push({
97
- routeIndex: state.routeIndex,
98
- hopIndex: state.currentHopIndex,
99
- swap,
100
- inputCoin: state.currentCoin,
101
- });
102
- });
103
- if (readyHops.length === 0)
104
- break;
105
- // Group hops by pool for merging opportunities
106
- const poolGroups = new Map();
107
- readyHops.forEach((hop) => {
108
- const poolKey = `${hop.swap.poolId}|${hop.swap.assetIn}|${hop.swap.assetOut}`;
109
- if (!poolGroups.has(poolKey)) {
110
- poolGroups.set(poolKey, {
111
- swap: hop.swap,
112
- hops: [],
113
- });
114
- }
115
- poolGroups.get(poolKey).hops.push(hop);
116
- });
117
- // Execute each pool group in this wave
118
- const wavePromises = [];
119
- for (const group of poolGroups.values()) {
120
- const { swap, hops } = group;
121
- // For merged swaps, we need to combine input coins first
122
- const wavePromise = (async () => {
123
- let combinedCoin;
124
- if (hops.length > 1) {
125
- // Merge all input coins for this pool
126
- const inputCoins = hops.map((h) => h.inputCoin);
127
- tx.mergeCoins(inputCoins[0], inputCoins.slice(1));
128
- combinedCoin = inputCoins[0];
129
- }
130
- else {
131
- combinedCoin = hops[0].inputCoin;
132
- }
133
- // Execute the swap with the combined coin
134
- const resultCoin = await swapWithRoute({
135
- route: [swap],
136
- inputCoinObject: combinedCoin,
137
- currentAccount: accountAddress,
138
- tx,
139
- config,
140
- pythMap,
141
- });
142
- if (!resultCoin) {
143
- throw new Error(`Swap failed for pool ${swap.poolId}`);
144
- }
145
- if (hops[0].swap.assetOut === coinTypeOut) {
146
- finalCoins.push(resultCoin);
147
- hops.forEach((hop) => {
148
- const state = routeStates[hop.routeIndex];
149
- state.completed = true;
150
- state.currentHopIndex++;
151
- });
152
- return;
153
- }
154
- // For merged swaps, we need to split the output proportionally
155
- if (hops.length > 1) {
156
- // Split output proportionally (except the last one which gets the remainder)
157
- const splitAmounts = hops
158
- .slice(1)
159
- .map((hop) => hop.swap.returnAmount);
160
- const splitCoins = splitAmounts.length > 0
161
- ? [resultCoin, ...tx.splitCoins(resultCoin, splitAmounts)]
162
- : [resultCoin];
163
- // Assign split coins back to routes
164
- hops.forEach((hop, index) => {
165
- const state = routeStates[hop.routeIndex];
166
- state.currentCoin = splitCoins[index];
167
- state.currentHopIndex++;
168
- });
169
- }
170
- else {
171
- // Single swap - simply update the route state
172
- const state = routeStates[hops[0].routeIndex];
173
- state.currentCoin = resultCoin;
174
- state.currentHopIndex++;
175
- }
176
- })();
177
- wavePromises.push(wavePromise);
178
- }
179
- // Wait for all swaps in this wave to complete
180
- await Promise.all(wavePromises);
181
- }
182
- return finalCoins;
183
- };
184
- /**
185
- * execute multiple swap in single transaction
186
- *
187
- * User must handle the coins from return
188
- * @param param - MultiSwapParams
189
- * @returns a map of coinType to coinObject
190
- */
191
- export const multiSwap = async ({ sender, slippageBps, swaps, tx, commission, }) => {
192
- if (swaps.some((s) => isBluefinXRouting(s.quote))) {
193
- throw Error("BluefinX routing not supported yet");
194
- }
195
- // update oracles price if any
196
- const pythMap = await updatePythPriceFeedsIfAny(tx, swaps.map((s) => s.quote));
197
- const map = {};
198
- const config = await getConfig();
199
- for (const { quote: sorResponse, coinIn } of swaps) {
200
- const routes = groupSwapRoutes(sorResponse);
201
- const splits = routes.map((group) => group[0]?.amount ?? "0");
202
- const coinData = splits.length === 1
203
- ? [coinIn]
204
- : [coinIn, ...tx.splitCoins(coinIn, splits.slice(1))];
205
- const coinObjects = await optimize(pythMap, config, routes, coinData, tx, sender);
206
- if (coinObjects.length > 0) {
207
- const mergeCoin = tx.add(settle(coinObjects, sorResponse, slippageBps, commission));
208
- if (!map[normalizeStructTag(sorResponse.tokenOut)]) {
209
- map[normalizeStructTag(sorResponse.tokenOut)] = [];
210
- }
211
- map[normalizeStructTag(sorResponse.tokenOut)].push(mergeCoin);
212
- }
213
- }
214
- const result = {};
215
- for (const [tokenOut, coins] of Object.entries(map)) {
216
- if (coins.length > 1) {
217
- tx.mergeCoins(coins[0], coins.slice(1));
218
- }
219
- result[tokenOut] = coins[0];
220
- }
221
- tx.setSenderIfNotSet(sender);
222
- return result;
223
- };
@@ -1,150 +0,0 @@
1
- import { Config as _Config } from "../../config";
2
- import { fetchClient } from "../../config/fetchClient";
3
- import { API_ENDPOINTS } from "../../constants/apiEndpoints";
4
- export const DEFAULT_CONFIG = {
5
- aftermath: {
6
- name: "Aftermath",
7
- package: "0xc4049b2d1cc0f6e017fda8260e4377cecd236bd7f56a54fee120816e72e2e0dd",
8
- poolRegistry: "0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",
9
- protocolFeeVault: "0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",
10
- treasury: "0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",
11
- insuranceFund: "0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",
12
- referralVault: "0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",
13
- },
14
- bluefin: {
15
- name: "Bluefin",
16
- package: "0x67b34b728c4e28e704dcfecf7c5cf55c7fc593b6c65c20d1836d97c209c1928a",
17
- globalConfig: "0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",
18
- },
19
- bluemove: {
20
- name: "Bluemove",
21
- package: "0x08cd33481587d4c4612865b164796d937df13747d8c763b8a178c87e3244498f",
22
- dexInfo: "0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",
23
- },
24
- cetus: {
25
- name: "Cetus",
26
- package: "0xfbb32ac0fa89a3cb0c56c745b688c6d2a53ac8e43447119ad822763997ffb9c3",
27
- globalConfig: "0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",
28
- },
29
- deepbook_v3: {
30
- name: "Deepbook V3",
31
- package: "",
32
- sponsor: "0x951a01360d85b06722edf896852bf8005b81cdb26375235c935138987f629502",
33
- sponsorFund: "0xf245e7a4b83ed9a26622f5818a158c2ba7a03b91e62717b557a7df1d4dab38df",
34
- },
35
- flowx: {
36
- name: "Flowx Finance",
37
- package: "0xba153169476e8c3114962261d1edc70de5ad9781b83cc617ecc8c1923191cae0",
38
- container: "0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",
39
- },
40
- flowx_v3: {
41
- name: "Flowx Finance V3",
42
- package: "0xe882cd54551e73e64ff5b257146a0c5264546974cf00d78ecc871017cb22df67",
43
- registry: "0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",
44
- version: "0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",
45
- },
46
- kriya: {
47
- name: "Kriya",
48
- package: "0xa0eba10b173538c8fecca1dff298e488402cc9ff374f8a12ca7758eebe830b66",
49
- },
50
- kriya_v3: {
51
- name: "Kriya V3",
52
- package: "0x0d7305a7475ed54adc905365bd081939a81926636b4c438cf2f75f4924b8d960",
53
- version: "0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",
54
- },
55
- obric: {
56
- name: "Obric",
57
- package: "0xb84e63d22ea4822a0a333c250e790f69bf5c2ef0c63f4e120e05a6415991368f",
58
- pythState: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
59
- },
60
- springsui: {
61
- name: "SpringSui",
62
- package: "0x82e6f4f75441eae97d2d5850f41a09d28c7b64a05b067d37748d471f43aaf3f7",
63
- },
64
- stsui: {
65
- name: "AlphaFi stSUI",
66
- package: "0x059f94b85c07eb74d2847f8255d8cc0a67c9a8dcc039eabf9f8b9e23a0de2700",
67
- },
68
- suiswap: {
69
- name: "SuiSwap",
70
- package: "0xd075d51486df71e750872b4edf82ea3409fda397ceecc0b6aedf573d923c54a0",
71
- },
72
- turbos: {
73
- name: "Turbos Finance",
74
- package: "0xd02012c71c1a6a221e540c36c37c81e0224907fe1ee05bfe250025654ff17103",
75
- version: "0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",
76
- },
77
- steamm: {
78
- name: "Steamm",
79
- package: "0x5ef2a1bca239764c8381ba26b758833060eadb8903682e4fb15e58c6406e2488",
80
- script: "0x0755429cba577decc090009348987a89f4fb8397da27a3eaafc366794078af7d",
81
- oracle: "0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",
82
- },
83
- magma: {
84
- name: "Magma",
85
- package: "0x49e9f06c58a36830fe0d83291f002012e72b00a4ec9b3a6304c40fc5712bb6e3",
86
- globalConfig: "0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",
87
- },
88
- haedal_pmm: {
89
- name: "Haedal PMM",
90
- package: "0x486622af8a7250a192e6ee97eed4f54e30343b764d9148bf1535b55f85155204",
91
- },
92
- momentum: {
93
- name: "Momentum",
94
- package: "0xcf60a40f45d46fc1e828871a647c1e25a0915dec860d2662eb10fdb382c3c1d1",
95
- version: "0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",
96
- },
97
- bluefinx: {
98
- name: "BluefinX",
99
- package: "0x9633d611ea4b3a30751135cede2c7871980955473c1c7c883d43567e7e9b164e",
100
- globalConfig: "0xc6b29a60c3924776bedc78df72c127ea52b86aeb655432979a38f13d742dedaa",
101
- },
102
- sevenk_v1: {
103
- name: "7K DEX",
104
- package: "0x4142285db093ba0cf0623b3cbc07372fb4f5ed00af1fb62be6d55f49a42c0b0e",
105
- oracle: "0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",
106
- },
107
- fullsail: {
108
- name: "Fullsail",
109
- package: "0xb3b98d4fda36acc2c2e66dba61f9149b341c38e97a532af802ebbb0c037b9d1f",
110
- globalConfig: "0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",
111
- rewarderGlobalVault: "0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",
112
- priceProvider: "0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",
113
- stats: "0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",
114
- },
115
- cetus_dlmm: {
116
- name: "Cetus DLMM",
117
- package: "0xa4c6f46bd6b456e6477bcddf0652e0d2d8fb4767e306533e6e885302ee28cfab",
118
- globalConfig: "0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",
119
- version: "0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",
120
- },
121
- ferra_dlmm: {
122
- name: "Ferra DLMM",
123
- package: "0x5a5c1d10e4782dbbdec3eb8327ede04bd078b294b97cfdba447b11b846b383ac",
124
- globalConfig: "0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",
125
- },
126
- ferra_clmm: {
127
- name: "Ferra CLMM",
128
- package: "0xc895342d87127c9c67b76c8ad7f9a22b8bfe1dcdc2c5af82bd85266783115e31",
129
- integrate: "0x1dd5538aeb1066315969d87ae9a920ce2692824385342f49854b764ac730a64b",
130
- globalConfig: "0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",
131
- },
132
- };
133
- let config = DEFAULT_CONFIG;
134
- let configTs = 0;
135
- export async function getConfig() {
136
- const ttl = 60;
137
- if (config && Date.now() - configTs < ttl * 1000) {
138
- return config;
139
- }
140
- try {
141
- const response = await fetchClient(`${_Config.getApi() || API_ENDPOINTS.MAIN}/config`);
142
- const quoteResponse = (await response.json());
143
- config = { ...config, ...quoteResponse };
144
- configTs = Date.now();
145
- return config;
146
- }
147
- catch (_) {
148
- return DEFAULT_CONFIG;
149
- }
150
- }