@7kprotocol/sdk-ts 3.5.4 → 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 (379) 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 +103 -0
  6. package/lib/cjs/features/metaAg/error.js +31 -0
  7. package/lib/cjs/features/metaAg/index.js +96 -117
  8. package/lib/cjs/features/metaAg/providers/bluefin7k.js +57 -0
  9. package/lib/cjs/features/metaAg/providers/cetus.js +7 -7
  10. package/lib/cjs/features/metaAg/providers/flowx.js +6 -6
  11. package/lib/cjs/features/metaAg/providers/okx.js +182 -0
  12. package/lib/cjs/features/prices/index.js +51 -20
  13. package/lib/cjs/index.js +1 -35
  14. package/lib/cjs/types/config/fetchClient.d.ts.map +1 -1
  15. package/lib/cjs/types/constants/_7k.d.ts +0 -3
  16. package/lib/cjs/types/constants/_7k.d.ts.map +1 -1
  17. package/lib/cjs/types/features/metaAg/common.d.ts +24 -0
  18. package/lib/cjs/types/features/metaAg/common.d.ts.map +1 -0
  19. package/lib/cjs/types/features/metaAg/error.d.ts +54 -0
  20. package/lib/cjs/types/features/metaAg/error.d.ts.map +1 -0
  21. package/lib/cjs/types/features/metaAg/index.d.ts +11 -2
  22. package/lib/cjs/types/features/metaAg/index.d.ts.map +1 -1
  23. package/lib/cjs/types/features/metaAg/providers/bluefin7k.d.ts +11 -0
  24. package/lib/cjs/types/features/metaAg/providers/bluefin7k.d.ts.map +1 -0
  25. package/lib/cjs/types/features/metaAg/providers/cetus.d.ts +4 -5
  26. package/lib/cjs/types/features/metaAg/providers/cetus.d.ts.map +1 -1
  27. package/lib/cjs/types/features/metaAg/providers/flowx.d.ts +3 -3
  28. package/lib/cjs/types/features/metaAg/providers/flowx.d.ts.map +1 -1
  29. package/lib/cjs/types/features/metaAg/providers/okx.d.ts +21 -0
  30. package/lib/cjs/types/features/metaAg/providers/okx.d.ts.map +1 -0
  31. package/lib/cjs/types/features/prices/index.d.ts +16 -2
  32. package/lib/cjs/types/features/prices/index.d.ts.map +1 -1
  33. package/lib/cjs/types/index.d.ts +1 -30
  34. package/lib/cjs/types/index.d.ts.map +1 -1
  35. package/lib/cjs/types/metaAg.js +8 -4
  36. package/lib/cjs/types/okx.js +6 -0
  37. package/lib/cjs/types/types/metaAg.d.ts +50 -12
  38. package/lib/cjs/types/types/metaAg.d.ts.map +1 -1
  39. package/lib/cjs/types/types/okx.d.ts +206 -0
  40. package/lib/cjs/types/types/okx.d.ts.map +1 -0
  41. package/lib/cjs/types/utils/sui.d.ts +1 -31
  42. package/lib/cjs/types/utils/sui.d.ts.map +1 -1
  43. package/lib/cjs/types/utils/swap.d.ts +15 -0
  44. package/lib/cjs/types/utils/swap.d.ts.map +1 -0
  45. package/lib/cjs/utils/sui.js +19 -146
  46. package/lib/cjs/utils/swap.js +37 -0
  47. package/lib/esm/config/fetchClient.js +1 -9
  48. package/lib/esm/constants/_7k.js +12 -9
  49. package/lib/esm/constants/apiEndpoints.js +1 -1
  50. package/lib/esm/features/metaAg/common.js +96 -0
  51. package/lib/esm/features/metaAg/error.js +29 -0
  52. package/lib/esm/features/metaAg/index.js +96 -117
  53. package/lib/esm/features/metaAg/providers/{bluefin.js → bluefin7k.js} +12 -23
  54. package/lib/esm/features/metaAg/providers/cetus.js +7 -7
  55. package/lib/esm/features/metaAg/providers/flowx.js +6 -6
  56. package/lib/esm/features/metaAg/providers/okx.js +147 -0
  57. package/lib/esm/features/prices/index.js +52 -21
  58. package/lib/esm/index.mjs +3 -31
  59. package/lib/esm/types/config/fetchClient.d.ts.map +1 -1
  60. package/lib/esm/types/constants/_7k.d.ts +0 -3
  61. package/lib/esm/types/constants/_7k.d.ts.map +1 -1
  62. package/lib/esm/types/features/metaAg/common.d.ts +24 -0
  63. package/lib/esm/types/features/metaAg/common.d.ts.map +1 -0
  64. package/lib/esm/types/features/metaAg/error.d.ts +54 -0
  65. package/lib/esm/types/features/metaAg/error.d.ts.map +1 -0
  66. package/lib/esm/types/features/metaAg/index.d.ts +11 -2
  67. package/lib/esm/types/features/metaAg/index.d.ts.map +1 -1
  68. package/lib/esm/types/features/metaAg/providers/bluefin7k.d.ts +11 -0
  69. package/lib/esm/types/features/metaAg/providers/bluefin7k.d.ts.map +1 -0
  70. package/lib/esm/types/features/metaAg/providers/cetus.d.ts +4 -5
  71. package/lib/esm/types/features/metaAg/providers/cetus.d.ts.map +1 -1
  72. package/lib/esm/types/features/metaAg/providers/flowx.d.ts +3 -3
  73. package/lib/esm/types/features/metaAg/providers/flowx.d.ts.map +1 -1
  74. package/lib/esm/types/features/metaAg/providers/okx.d.ts +21 -0
  75. package/lib/esm/types/features/metaAg/providers/okx.d.ts.map +1 -0
  76. package/lib/esm/types/features/prices/index.d.ts +16 -2
  77. package/lib/esm/types/features/prices/index.d.ts.map +1 -1
  78. package/lib/esm/types/index.d.ts +1 -30
  79. package/lib/esm/types/index.d.ts.map +1 -1
  80. package/lib/esm/types/metaAg.js +5 -2
  81. package/lib/esm/types/okx.js +5 -0
  82. package/lib/esm/types/types/metaAg.d.ts +50 -12
  83. package/lib/esm/types/types/metaAg.d.ts.map +1 -1
  84. package/lib/esm/types/types/okx.d.ts +206 -0
  85. package/lib/esm/types/types/okx.d.ts.map +1 -0
  86. package/lib/esm/types/utils/sui.d.ts +1 -31
  87. package/lib/esm/types/utils/sui.d.ts.map +1 -1
  88. package/lib/esm/types/utils/swap.d.ts +15 -0
  89. package/lib/esm/types/utils/swap.d.ts.map +1 -0
  90. package/lib/esm/utils/sui.js +19 -147
  91. package/lib/esm/utils/swap.js +33 -0
  92. package/package.json +3 -1
  93. package/lib/cjs/config/index.js +0 -58
  94. package/lib/cjs/features/metaAg/providers/bluefin.js +0 -68
  95. package/lib/cjs/features/swap/buildTx.js +0 -195
  96. package/lib/cjs/features/swap/buildTxV2.js +0 -225
  97. package/lib/cjs/features/swap/config.js +0 -153
  98. package/lib/cjs/features/swap/estimateGasFee.js +0 -44
  99. package/lib/cjs/features/swap/executeTx.js +0 -52
  100. package/lib/cjs/features/swap/getQuote.js +0 -94
  101. package/lib/cjs/features/swap/getSwapHistory.js +0 -21
  102. package/lib/cjs/features/swap/index.js +0 -22
  103. package/lib/cjs/libs/groupSwapRoutes.js +0 -60
  104. package/lib/cjs/libs/protocols/aftermath/index.js +0 -35
  105. package/lib/cjs/libs/protocols/base.js +0 -41
  106. package/lib/cjs/libs/protocols/bluefin/index.js +0 -38
  107. package/lib/cjs/libs/protocols/bluefinx/client.js +0 -41
  108. package/lib/cjs/libs/protocols/bluefinx/index.js +0 -48
  109. package/lib/cjs/libs/protocols/bluefinx/types.js +0 -10
  110. package/lib/cjs/libs/protocols/bluemove/index.js +0 -24
  111. package/lib/cjs/libs/protocols/cetus/index.js +0 -44
  112. package/lib/cjs/libs/protocols/cetus_dlmm.js +0 -48
  113. package/lib/cjs/libs/protocols/constants.js +0 -5
  114. package/lib/cjs/libs/protocols/deepbookV3/sponsored.js +0 -30
  115. package/lib/cjs/libs/protocols/ferra_clmm.js +0 -44
  116. package/lib/cjs/libs/protocols/ferra_dlmm.js +0 -30
  117. package/lib/cjs/libs/protocols/flowx/index.js +0 -18
  118. package/lib/cjs/libs/protocols/flowxV3/index.js +0 -36
  119. package/lib/cjs/libs/protocols/fullsail/index.js +0 -39
  120. package/lib/cjs/libs/protocols/haedal_pmm/index.js +0 -31
  121. package/lib/cjs/libs/protocols/index.js +0 -55
  122. package/lib/cjs/libs/protocols/kriya/index.js +0 -30
  123. package/lib/cjs/libs/protocols/kriyaV3/index.js +0 -65
  124. package/lib/cjs/libs/protocols/magma/index.js +0 -40
  125. package/lib/cjs/libs/protocols/momentum/index.js +0 -49
  126. package/lib/cjs/libs/protocols/obric/index.js +0 -28
  127. package/lib/cjs/libs/protocols/sevenk/index.js +0 -55
  128. package/lib/cjs/libs/protocols/springsui/index.js +0 -24
  129. package/lib/cjs/libs/protocols/steamm/index.js +0 -160
  130. package/lib/cjs/libs/protocols/stsui/index.js +0 -24
  131. package/lib/cjs/libs/protocols/suiswap/index.js +0 -34
  132. package/lib/cjs/libs/protocols/turbos/index.js +0 -36
  133. package/lib/cjs/libs/protocols/utils.js +0 -7
  134. package/lib/cjs/libs/swapWithRoute.js +0 -22
  135. package/lib/cjs/types/aggregator.js +0 -19
  136. package/lib/cjs/types/config/index.d.ts +0 -26
  137. package/lib/cjs/types/config/index.d.ts.map +0 -1
  138. package/lib/cjs/types/features/metaAg/providers/bluefin.d.ts +0 -11
  139. package/lib/cjs/types/features/metaAg/providers/bluefin.d.ts.map +0 -1
  140. package/lib/cjs/types/features/swap/buildTx.d.ts +0 -17
  141. package/lib/cjs/types/features/swap/buildTx.d.ts.map +0 -1
  142. package/lib/cjs/types/features/swap/buildTxV2.d.ts +0 -20
  143. package/lib/cjs/types/features/swap/buildTxV2.d.ts.map +0 -1
  144. package/lib/cjs/types/features/swap/config.d.ts +0 -4
  145. package/lib/cjs/types/features/swap/config.d.ts.map +0 -1
  146. package/lib/cjs/types/features/swap/estimateGasFee.d.ts +0 -3
  147. package/lib/cjs/types/features/swap/estimateGasFee.d.ts.map +0 -1
  148. package/lib/cjs/types/features/swap/executeTx.d.ts +0 -24
  149. package/lib/cjs/types/features/swap/executeTx.d.ts.map +0 -1
  150. package/lib/cjs/types/features/swap/getQuote.d.ts +0 -29
  151. package/lib/cjs/types/features/swap/getQuote.d.ts.map +0 -1
  152. package/lib/cjs/types/features/swap/getSwapHistory.d.ts +0 -22
  153. package/lib/cjs/types/features/swap/getSwapHistory.d.ts.map +0 -1
  154. package/lib/cjs/types/features/swap/index.d.ts +0 -7
  155. package/lib/cjs/types/features/swap/index.d.ts.map +0 -1
  156. package/lib/cjs/types/libs/groupSwapRoutes.d.ts +0 -3
  157. package/lib/cjs/types/libs/groupSwapRoutes.d.ts.map +0 -1
  158. package/lib/cjs/types/libs/protocols/aftermath/index.d.ts +0 -9
  159. package/lib/cjs/types/libs/protocols/aftermath/index.d.ts.map +0 -1
  160. package/lib/cjs/types/libs/protocols/base.d.ts +0 -24
  161. package/lib/cjs/types/libs/protocols/base.d.ts.map +0 -1
  162. package/lib/cjs/types/libs/protocols/bluefin/index.d.ts +0 -9
  163. package/lib/cjs/types/libs/protocols/bluefin/index.d.ts.map +0 -1
  164. package/lib/cjs/types/libs/protocols/bluefinx/client.d.ts +0 -13
  165. package/lib/cjs/types/libs/protocols/bluefinx/client.d.ts.map +0 -1
  166. package/lib/cjs/types/libs/protocols/bluefinx/index.d.ts +0 -17
  167. package/lib/cjs/types/libs/protocols/bluefinx/index.d.ts.map +0 -1
  168. package/lib/cjs/types/libs/protocols/bluefinx/types.d.ts +0 -34
  169. package/lib/cjs/types/libs/protocols/bluefinx/types.d.ts.map +0 -1
  170. package/lib/cjs/types/libs/protocols/bluemove/index.d.ts +0 -9
  171. package/lib/cjs/types/libs/protocols/bluemove/index.d.ts.map +0 -1
  172. package/lib/cjs/types/libs/protocols/cetus/index.d.ts +0 -9
  173. package/lib/cjs/types/libs/protocols/cetus/index.d.ts.map +0 -1
  174. package/lib/cjs/types/libs/protocols/cetus_dlmm.d.ts +0 -9
  175. package/lib/cjs/types/libs/protocols/cetus_dlmm.d.ts.map +0 -1
  176. package/lib/cjs/types/libs/protocols/constants.d.ts +0 -3
  177. package/lib/cjs/types/libs/protocols/constants.d.ts.map +0 -1
  178. package/lib/cjs/types/libs/protocols/deepbookV3/sponsored.d.ts +0 -7
  179. package/lib/cjs/types/libs/protocols/deepbookV3/sponsored.d.ts.map +0 -1
  180. package/lib/cjs/types/libs/protocols/ferra_clmm.d.ts +0 -9
  181. package/lib/cjs/types/libs/protocols/ferra_clmm.d.ts.map +0 -1
  182. package/lib/cjs/types/libs/protocols/ferra_dlmm.d.ts +0 -9
  183. package/lib/cjs/types/libs/protocols/ferra_dlmm.d.ts.map +0 -1
  184. package/lib/cjs/types/libs/protocols/flowx/index.d.ts +0 -9
  185. package/lib/cjs/types/libs/protocols/flowx/index.d.ts.map +0 -1
  186. package/lib/cjs/types/libs/protocols/flowxV3/index.d.ts +0 -9
  187. package/lib/cjs/types/libs/protocols/flowxV3/index.d.ts.map +0 -1
  188. package/lib/cjs/types/libs/protocols/fullsail/index.d.ts +0 -9
  189. package/lib/cjs/types/libs/protocols/fullsail/index.d.ts.map +0 -1
  190. package/lib/cjs/types/libs/protocols/haedal_pmm/index.d.ts +0 -14
  191. package/lib/cjs/types/libs/protocols/haedal_pmm/index.d.ts.map +0 -1
  192. package/lib/cjs/types/libs/protocols/index.d.ts +0 -53
  193. package/lib/cjs/types/libs/protocols/index.d.ts.map +0 -1
  194. package/lib/cjs/types/libs/protocols/kriya/index.d.ts +0 -9
  195. package/lib/cjs/types/libs/protocols/kriya/index.d.ts.map +0 -1
  196. package/lib/cjs/types/libs/protocols/kriyaV3/index.d.ts +0 -9
  197. package/lib/cjs/types/libs/protocols/kriyaV3/index.d.ts.map +0 -1
  198. package/lib/cjs/types/libs/protocols/magma/index.d.ts +0 -9
  199. package/lib/cjs/types/libs/protocols/magma/index.d.ts.map +0 -1
  200. package/lib/cjs/types/libs/protocols/momentum/index.d.ts +0 -9
  201. package/lib/cjs/types/libs/protocols/momentum/index.d.ts.map +0 -1
  202. package/lib/cjs/types/libs/protocols/obric/index.d.ts +0 -14
  203. package/lib/cjs/types/libs/protocols/obric/index.d.ts.map +0 -1
  204. package/lib/cjs/types/libs/protocols/sevenk/index.d.ts +0 -18
  205. package/lib/cjs/types/libs/protocols/sevenk/index.d.ts.map +0 -1
  206. package/lib/cjs/types/libs/protocols/springsui/index.d.ts +0 -9
  207. package/lib/cjs/types/libs/protocols/springsui/index.d.ts.map +0 -1
  208. package/lib/cjs/types/libs/protocols/steamm/index.d.ts +0 -28
  209. package/lib/cjs/types/libs/protocols/steamm/index.d.ts.map +0 -1
  210. package/lib/cjs/types/libs/protocols/stsui/index.d.ts +0 -9
  211. package/lib/cjs/types/libs/protocols/stsui/index.d.ts.map +0 -1
  212. package/lib/cjs/types/libs/protocols/suiswap/index.d.ts +0 -9
  213. package/lib/cjs/types/libs/protocols/suiswap/index.d.ts.map +0 -1
  214. package/lib/cjs/types/libs/protocols/turbos/index.d.ts +0 -9
  215. package/lib/cjs/types/libs/protocols/turbos/index.d.ts.map +0 -1
  216. package/lib/cjs/types/libs/protocols/utils.d.ts +0 -2
  217. package/lib/cjs/types/libs/protocols/utils.d.ts.map +0 -1
  218. package/lib/cjs/types/libs/swapWithRoute.d.ts +0 -12
  219. package/lib/cjs/types/libs/swapWithRoute.d.ts.map +0 -1
  220. package/lib/cjs/types/sui.js +0 -2
  221. package/lib/cjs/types/tx.js +0 -2
  222. package/lib/cjs/types/types/aggregator.d.ts +0 -173
  223. package/lib/cjs/types/types/aggregator.d.ts.map +0 -1
  224. package/lib/cjs/types/types/sui.d.ts +0 -4
  225. package/lib/cjs/types/types/sui.d.ts.map +0 -1
  226. package/lib/cjs/types/types/tx.d.ts +0 -67
  227. package/lib/cjs/types/types/tx.d.ts.map +0 -1
  228. package/lib/cjs/types/types/utilities.d.ts +0 -5
  229. package/lib/cjs/types/types/utilities.d.ts.map +0 -1
  230. package/lib/cjs/types/utilities.js +0 -2
  231. package/lib/cjs/types/utils/condition.d.ts +0 -2
  232. package/lib/cjs/types/utils/condition.d.ts.map +0 -1
  233. package/lib/cjs/types/utils/number.d.ts +0 -2
  234. package/lib/cjs/types/utils/number.d.ts.map +0 -1
  235. package/lib/cjs/utils/condition.js +0 -8
  236. package/lib/cjs/utils/number.js +0 -9
  237. package/lib/esm/config/index.js +0 -55
  238. package/lib/esm/features/swap/buildTx.js +0 -185
  239. package/lib/esm/features/swap/buildTxV2.js +0 -219
  240. package/lib/esm/features/swap/config.js +0 -149
  241. package/lib/esm/features/swap/estimateGasFee.js +0 -41
  242. package/lib/esm/features/swap/executeTx.js +0 -48
  243. package/lib/esm/features/swap/getQuote.js +0 -90
  244. package/lib/esm/features/swap/getSwapHistory.js +0 -18
  245. package/lib/esm/features/swap/index.js +0 -6
  246. package/lib/esm/libs/groupSwapRoutes.js +0 -57
  247. package/lib/esm/libs/protocols/aftermath/index.js +0 -31
  248. package/lib/esm/libs/protocols/base.js +0 -42
  249. package/lib/esm/libs/protocols/bluefin/index.js +0 -34
  250. package/lib/esm/libs/protocols/bluefinx/client.js +0 -36
  251. package/lib/esm/libs/protocols/bluefinx/index.js +0 -44
  252. package/lib/esm/libs/protocols/bluefinx/types.js +0 -8
  253. package/lib/esm/libs/protocols/bluemove/index.js +0 -20
  254. package/lib/esm/libs/protocols/cetus/index.js +0 -40
  255. package/lib/esm/libs/protocols/cetus_dlmm.js +0 -44
  256. package/lib/esm/libs/protocols/constants.js +0 -2
  257. package/lib/esm/libs/protocols/deepbookV3/sponsored.js +0 -26
  258. package/lib/esm/libs/protocols/ferra_clmm.js +0 -40
  259. package/lib/esm/libs/protocols/ferra_dlmm.js +0 -26
  260. package/lib/esm/libs/protocols/flowx/index.js +0 -14
  261. package/lib/esm/libs/protocols/flowxV3/index.js +0 -32
  262. package/lib/esm/libs/protocols/fullsail/index.js +0 -35
  263. package/lib/esm/libs/protocols/haedal_pmm/index.js +0 -27
  264. package/lib/esm/libs/protocols/index.js +0 -52
  265. package/lib/esm/libs/protocols/kriya/index.js +0 -26
  266. package/lib/esm/libs/protocols/kriyaV3/index.js +0 -61
  267. package/lib/esm/libs/protocols/magma/index.js +0 -36
  268. package/lib/esm/libs/protocols/momentum/index.js +0 -45
  269. package/lib/esm/libs/protocols/obric/index.js +0 -24
  270. package/lib/esm/libs/protocols/sevenk/index.js +0 -51
  271. package/lib/esm/libs/protocols/springsui/index.js +0 -20
  272. package/lib/esm/libs/protocols/steamm/index.js +0 -156
  273. package/lib/esm/libs/protocols/stsui/index.js +0 -20
  274. package/lib/esm/libs/protocols/suiswap/index.js +0 -30
  275. package/lib/esm/libs/protocols/turbos/index.js +0 -32
  276. package/lib/esm/libs/protocols/utils.js +0 -4
  277. package/lib/esm/libs/swapWithRoute.js +0 -19
  278. package/lib/esm/types/aggregator.js +0 -14
  279. package/lib/esm/types/config/index.d.ts +0 -26
  280. package/lib/esm/types/config/index.d.ts.map +0 -1
  281. package/lib/esm/types/features/metaAg/providers/bluefin.d.ts +0 -11
  282. package/lib/esm/types/features/metaAg/providers/bluefin.d.ts.map +0 -1
  283. package/lib/esm/types/features/swap/buildTx.d.ts +0 -17
  284. package/lib/esm/types/features/swap/buildTx.d.ts.map +0 -1
  285. package/lib/esm/types/features/swap/buildTxV2.d.ts +0 -20
  286. package/lib/esm/types/features/swap/buildTxV2.d.ts.map +0 -1
  287. package/lib/esm/types/features/swap/config.d.ts +0 -4
  288. package/lib/esm/types/features/swap/config.d.ts.map +0 -1
  289. package/lib/esm/types/features/swap/estimateGasFee.d.ts +0 -3
  290. package/lib/esm/types/features/swap/estimateGasFee.d.ts.map +0 -1
  291. package/lib/esm/types/features/swap/executeTx.d.ts +0 -24
  292. package/lib/esm/types/features/swap/executeTx.d.ts.map +0 -1
  293. package/lib/esm/types/features/swap/getQuote.d.ts +0 -29
  294. package/lib/esm/types/features/swap/getQuote.d.ts.map +0 -1
  295. package/lib/esm/types/features/swap/getSwapHistory.d.ts +0 -22
  296. package/lib/esm/types/features/swap/getSwapHistory.d.ts.map +0 -1
  297. package/lib/esm/types/features/swap/index.d.ts +0 -7
  298. package/lib/esm/types/features/swap/index.d.ts.map +0 -1
  299. package/lib/esm/types/libs/groupSwapRoutes.d.ts +0 -3
  300. package/lib/esm/types/libs/groupSwapRoutes.d.ts.map +0 -1
  301. package/lib/esm/types/libs/protocols/aftermath/index.d.ts +0 -9
  302. package/lib/esm/types/libs/protocols/aftermath/index.d.ts.map +0 -1
  303. package/lib/esm/types/libs/protocols/base.d.ts +0 -24
  304. package/lib/esm/types/libs/protocols/base.d.ts.map +0 -1
  305. package/lib/esm/types/libs/protocols/bluefin/index.d.ts +0 -9
  306. package/lib/esm/types/libs/protocols/bluefin/index.d.ts.map +0 -1
  307. package/lib/esm/types/libs/protocols/bluefinx/client.d.ts +0 -13
  308. package/lib/esm/types/libs/protocols/bluefinx/client.d.ts.map +0 -1
  309. package/lib/esm/types/libs/protocols/bluefinx/index.d.ts +0 -17
  310. package/lib/esm/types/libs/protocols/bluefinx/index.d.ts.map +0 -1
  311. package/lib/esm/types/libs/protocols/bluefinx/types.d.ts +0 -34
  312. package/lib/esm/types/libs/protocols/bluefinx/types.d.ts.map +0 -1
  313. package/lib/esm/types/libs/protocols/bluemove/index.d.ts +0 -9
  314. package/lib/esm/types/libs/protocols/bluemove/index.d.ts.map +0 -1
  315. package/lib/esm/types/libs/protocols/cetus/index.d.ts +0 -9
  316. package/lib/esm/types/libs/protocols/cetus/index.d.ts.map +0 -1
  317. package/lib/esm/types/libs/protocols/cetus_dlmm.d.ts +0 -9
  318. package/lib/esm/types/libs/protocols/cetus_dlmm.d.ts.map +0 -1
  319. package/lib/esm/types/libs/protocols/constants.d.ts +0 -3
  320. package/lib/esm/types/libs/protocols/constants.d.ts.map +0 -1
  321. package/lib/esm/types/libs/protocols/deepbookV3/sponsored.d.ts +0 -7
  322. package/lib/esm/types/libs/protocols/deepbookV3/sponsored.d.ts.map +0 -1
  323. package/lib/esm/types/libs/protocols/ferra_clmm.d.ts +0 -9
  324. package/lib/esm/types/libs/protocols/ferra_clmm.d.ts.map +0 -1
  325. package/lib/esm/types/libs/protocols/ferra_dlmm.d.ts +0 -9
  326. package/lib/esm/types/libs/protocols/ferra_dlmm.d.ts.map +0 -1
  327. package/lib/esm/types/libs/protocols/flowx/index.d.ts +0 -9
  328. package/lib/esm/types/libs/protocols/flowx/index.d.ts.map +0 -1
  329. package/lib/esm/types/libs/protocols/flowxV3/index.d.ts +0 -9
  330. package/lib/esm/types/libs/protocols/flowxV3/index.d.ts.map +0 -1
  331. package/lib/esm/types/libs/protocols/fullsail/index.d.ts +0 -9
  332. package/lib/esm/types/libs/protocols/fullsail/index.d.ts.map +0 -1
  333. package/lib/esm/types/libs/protocols/haedal_pmm/index.d.ts +0 -14
  334. package/lib/esm/types/libs/protocols/haedal_pmm/index.d.ts.map +0 -1
  335. package/lib/esm/types/libs/protocols/index.d.ts +0 -53
  336. package/lib/esm/types/libs/protocols/index.d.ts.map +0 -1
  337. package/lib/esm/types/libs/protocols/kriya/index.d.ts +0 -9
  338. package/lib/esm/types/libs/protocols/kriya/index.d.ts.map +0 -1
  339. package/lib/esm/types/libs/protocols/kriyaV3/index.d.ts +0 -9
  340. package/lib/esm/types/libs/protocols/kriyaV3/index.d.ts.map +0 -1
  341. package/lib/esm/types/libs/protocols/magma/index.d.ts +0 -9
  342. package/lib/esm/types/libs/protocols/magma/index.d.ts.map +0 -1
  343. package/lib/esm/types/libs/protocols/momentum/index.d.ts +0 -9
  344. package/lib/esm/types/libs/protocols/momentum/index.d.ts.map +0 -1
  345. package/lib/esm/types/libs/protocols/obric/index.d.ts +0 -14
  346. package/lib/esm/types/libs/protocols/obric/index.d.ts.map +0 -1
  347. package/lib/esm/types/libs/protocols/sevenk/index.d.ts +0 -18
  348. package/lib/esm/types/libs/protocols/sevenk/index.d.ts.map +0 -1
  349. package/lib/esm/types/libs/protocols/springsui/index.d.ts +0 -9
  350. package/lib/esm/types/libs/protocols/springsui/index.d.ts.map +0 -1
  351. package/lib/esm/types/libs/protocols/steamm/index.d.ts +0 -28
  352. package/lib/esm/types/libs/protocols/steamm/index.d.ts.map +0 -1
  353. package/lib/esm/types/libs/protocols/stsui/index.d.ts +0 -9
  354. package/lib/esm/types/libs/protocols/stsui/index.d.ts.map +0 -1
  355. package/lib/esm/types/libs/protocols/suiswap/index.d.ts +0 -9
  356. package/lib/esm/types/libs/protocols/suiswap/index.d.ts.map +0 -1
  357. package/lib/esm/types/libs/protocols/turbos/index.d.ts +0 -9
  358. package/lib/esm/types/libs/protocols/turbos/index.d.ts.map +0 -1
  359. package/lib/esm/types/libs/protocols/utils.d.ts +0 -2
  360. package/lib/esm/types/libs/protocols/utils.d.ts.map +0 -1
  361. package/lib/esm/types/libs/swapWithRoute.d.ts +0 -12
  362. package/lib/esm/types/libs/swapWithRoute.d.ts.map +0 -1
  363. package/lib/esm/types/sui.js +0 -1
  364. package/lib/esm/types/tx.js +0 -1
  365. package/lib/esm/types/types/aggregator.d.ts +0 -173
  366. package/lib/esm/types/types/aggregator.d.ts.map +0 -1
  367. package/lib/esm/types/types/sui.d.ts +0 -4
  368. package/lib/esm/types/types/sui.d.ts.map +0 -1
  369. package/lib/esm/types/types/tx.d.ts +0 -67
  370. package/lib/esm/types/types/tx.d.ts.map +0 -1
  371. package/lib/esm/types/types/utilities.d.ts +0 -5
  372. package/lib/esm/types/types/utilities.d.ts.map +0 -1
  373. package/lib/esm/types/utilities.js +0 -1
  374. package/lib/esm/types/utils/condition.d.ts +0 -2
  375. package/lib/esm/types/utils/condition.d.ts.map +0 -1
  376. package/lib/esm/types/utils/number.d.ts +0 -2
  377. package/lib/esm/types/utils/number.d.ts.map +0 -1
  378. package/lib/esm/utils/condition.js +0 -5
  379. package/lib/esm/utils/number.js +0 -6
@@ -1,219 +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 ({ quoteResponse, accountAddress, slippage, commission: __commission, devInspect, extendTx, isSponsored, }) => {
16
- const isBluefinX = isBluefinXRouting(quoteResponse);
17
- const _commission = {
18
- ...__commission,
19
- commissionBps: isBluefinX ? 0 : __commission.commissionBps,
20
- };
21
- const { tx: _tx, coinIn: _coinIn } = extendTx || {};
22
- let coinOut;
23
- if (isBluefinX && devInspect) {
24
- throw new Error("BluefinX tx is sponsored, skip devInspect");
25
- }
26
- if (!accountAddress) {
27
- throw new Error("Sender address is required");
28
- }
29
- if (!quoteResponse.routes) {
30
- throw new Error("Invalid quote response: 'routes' are required");
31
- }
32
- if (!isValidSuiAddress(_commission.partner)) {
33
- throw new Error("Invalid commission partner address");
34
- }
35
- const tx = _tx || new Transaction();
36
- const routes = groupSwapRoutes(quoteResponse);
37
- validateRoutes(routes, isSponsored);
38
- const splits = routes.map((group) => group[0]?.amount ?? "0");
39
- const coinIn = _coinIn ||
40
- tx.add(coinWithBalance({
41
- type: quoteResponse.tokenIn,
42
- balance: BigInt(quoteResponse.swapAmountWithDecimal),
43
- useGasCoin: !isSponsored && !isBluefinX,
44
- }));
45
- const coinData = tx.splitCoins(coinIn, splits);
46
- SuiUtils.transferOrDestroyZeroCoin(tx, quoteResponse.tokenIn, coinIn, accountAddress);
47
- const pythMap = await updatePythPriceFeedsIfAny(tx, [quoteResponse]);
48
- const config = await getConfig();
49
- const finalCoins = await optimize(pythMap, config, routes, coinData, tx, accountAddress);
50
- // Merge all final coins
51
- if (finalCoins.length > 0) {
52
- const mergeCoin = tx.add(settle(finalCoins, quoteResponse, Math.floor(+slippage * 10000), _commission));
53
- if (!extendTx) {
54
- tx.transferObjects([mergeCoin], tx.pure.address(accountAddress));
55
- }
56
- else {
57
- coinOut = mergeCoin;
58
- }
59
- }
60
- if (isBluefinX) {
61
- return {
62
- tx: await buildBluefinXTx(tx, accountAddress, quoteResponse),
63
- coinOut,
64
- };
65
- }
66
- tx.setSenderIfNotSet(accountAddress);
67
- return { tx, coinOut };
68
- };
69
- export const optimize = async (pythMap, config, routes, coinData, tx, accountAddress) => {
70
- // Initialize route states with split coins
71
- const routeStates = routes.map((route, index) => ({
72
- routeIndex: index,
73
- currentHopIndex: 0,
74
- currentCoin: coinData[index],
75
- swaps: route,
76
- completed: false,
77
- }));
78
- const finalCoins = [];
79
- const coinTypeOut = routes[0][routes[0].length - 1].assetOut;
80
- // Execute swaps in waves
81
- while (true) {
82
- const readyHops = [];
83
- routeStates.forEach((state) => {
84
- if (state.completed)
85
- return;
86
- if (state.currentHopIndex >= state.swaps.length) {
87
- state.completed = true;
88
- finalCoins.push(state.currentCoin);
89
- return;
90
- }
91
- const swap = state.swaps[state.currentHopIndex];
92
- readyHops.push({
93
- routeIndex: state.routeIndex,
94
- hopIndex: state.currentHopIndex,
95
- swap,
96
- inputCoin: state.currentCoin,
97
- });
98
- });
99
- if (readyHops.length === 0)
100
- break;
101
- // Group hops by pool for merging opportunities
102
- const poolGroups = new Map();
103
- readyHops.forEach((hop) => {
104
- const poolKey = `${hop.swap.poolId}|${hop.swap.assetIn}|${hop.swap.assetOut}`;
105
- if (!poolGroups.has(poolKey)) {
106
- poolGroups.set(poolKey, {
107
- swap: hop.swap,
108
- hops: [],
109
- });
110
- }
111
- poolGroups.get(poolKey).hops.push(hop);
112
- });
113
- // Execute each pool group in this wave
114
- const wavePromises = [];
115
- for (const group of poolGroups.values()) {
116
- const { swap, hops } = group;
117
- // For merged swaps, we need to combine input coins first
118
- const wavePromise = (async () => {
119
- let combinedCoin;
120
- if (hops.length > 1) {
121
- // Merge all input coins for this pool
122
- const inputCoins = hops.map((h) => h.inputCoin);
123
- tx.mergeCoins(inputCoins[0], inputCoins.slice(1));
124
- combinedCoin = inputCoins[0];
125
- }
126
- else {
127
- combinedCoin = hops[0].inputCoin;
128
- }
129
- // Execute the swap with the combined coin
130
- const resultCoin = await swapWithRoute({
131
- route: [swap],
132
- inputCoinObject: combinedCoin,
133
- currentAccount: accountAddress,
134
- tx,
135
- config,
136
- pythMap,
137
- });
138
- if (!resultCoin) {
139
- throw new Error(`Swap failed for pool ${swap.poolId}`);
140
- }
141
- if (hops[0].swap.assetOut === coinTypeOut) {
142
- finalCoins.push(resultCoin);
143
- hops.forEach((hop) => {
144
- const state = routeStates[hop.routeIndex];
145
- state.completed = true;
146
- state.currentHopIndex++;
147
- });
148
- return;
149
- }
150
- // For merged swaps, we need to split the output proportionally
151
- if (hops.length > 1) {
152
- // Split output proportionally (except the last one which gets the remainder)
153
- const splitAmounts = hops
154
- .slice(1)
155
- .map((hop) => hop.swap.returnAmount);
156
- const splitCoins = splitAmounts.length > 0
157
- ? [resultCoin, ...tx.splitCoins(resultCoin, splitAmounts)]
158
- : [resultCoin];
159
- // Assign split coins back to routes
160
- hops.forEach((hop, index) => {
161
- const state = routeStates[hop.routeIndex];
162
- state.currentCoin = splitCoins[index];
163
- state.currentHopIndex++;
164
- });
165
- }
166
- else {
167
- // Single swap - simply update the route state
168
- const state = routeStates[hops[0].routeIndex];
169
- state.currentCoin = resultCoin;
170
- state.currentHopIndex++;
171
- }
172
- })();
173
- wavePromises.push(wavePromise);
174
- }
175
- // Wait for all swaps in this wave to complete
176
- await Promise.all(wavePromises);
177
- }
178
- return finalCoins;
179
- };
180
- /**
181
- * execute multiple swap in single transaction
182
- *
183
- * User must handle the coins from return
184
- * @param param - MultiSwapParams
185
- * @returns a map of coinType to coinObject
186
- */
187
- export const multiSwap = async ({ sender, slippageBps, swaps, tx, commission, }) => {
188
- if (swaps.some((s) => isBluefinXRouting(s.quote))) {
189
- throw Error("BluefinX routing not supported yet");
190
- }
191
- // update oracles price if any
192
- const pythMap = await updatePythPriceFeedsIfAny(tx, swaps.map((s) => s.quote));
193
- const map = {};
194
- const config = await getConfig();
195
- for (const { quote: sorResponse, coinIn } of swaps) {
196
- const routes = groupSwapRoutes(sorResponse);
197
- const splits = routes.map((group) => group[0]?.amount ?? "0");
198
- const coinData = splits.length === 1
199
- ? [coinIn]
200
- : [coinIn, ...tx.splitCoins(coinIn, splits.slice(1))];
201
- const coinObjects = await optimize(pythMap, config, routes, coinData, tx, sender);
202
- if (coinObjects.length > 0) {
203
- const mergeCoin = tx.add(settle(coinObjects, sorResponse, slippageBps, commission));
204
- if (!map[normalizeStructTag(sorResponse.tokenOut)]) {
205
- map[normalizeStructTag(sorResponse.tokenOut)] = [];
206
- }
207
- map[normalizeStructTag(sorResponse.tokenOut)].push(mergeCoin);
208
- }
209
- }
210
- const result = {};
211
- for (const [tokenOut, coins] of Object.entries(map)) {
212
- if (coins.length > 1) {
213
- tx.mergeCoins(coins[0], coins.slice(1));
214
- }
215
- result[tokenOut] = coins[0];
216
- }
217
- tx.setSenderIfNotSet(sender);
218
- return result;
219
- };
@@ -1,149 +0,0 @@
1
- import { fetchClient } from "../../config/fetchClient";
2
- import { API_ENDPOINTS } from "../../constants/apiEndpoints";
3
- export const DEFAULT_CONFIG = {
4
- aftermath: {
5
- name: "Aftermath",
6
- package: "0xc4049b2d1cc0f6e017fda8260e4377cecd236bd7f56a54fee120816e72e2e0dd",
7
- poolRegistry: "0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",
8
- protocolFeeVault: "0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",
9
- treasury: "0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",
10
- insuranceFund: "0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",
11
- referralVault: "0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",
12
- },
13
- bluefin: {
14
- name: "Bluefin",
15
- package: "0x67b34b728c4e28e704dcfecf7c5cf55c7fc593b6c65c20d1836d97c209c1928a",
16
- globalConfig: "0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",
17
- },
18
- bluemove: {
19
- name: "Bluemove",
20
- package: "0x08cd33481587d4c4612865b164796d937df13747d8c763b8a178c87e3244498f",
21
- dexInfo: "0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",
22
- },
23
- cetus: {
24
- name: "Cetus",
25
- package: "0xfbb32ac0fa89a3cb0c56c745b688c6d2a53ac8e43447119ad822763997ffb9c3",
26
- globalConfig: "0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",
27
- },
28
- deepbook_v3: {
29
- name: "Deepbook V3",
30
- package: "",
31
- sponsor: "0x951a01360d85b06722edf896852bf8005b81cdb26375235c935138987f629502",
32
- sponsorFund: "0xf245e7a4b83ed9a26622f5818a158c2ba7a03b91e62717b557a7df1d4dab38df",
33
- },
34
- flowx: {
35
- name: "Flowx Finance",
36
- package: "0xba153169476e8c3114962261d1edc70de5ad9781b83cc617ecc8c1923191cae0",
37
- container: "0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",
38
- },
39
- flowx_v3: {
40
- name: "Flowx Finance V3",
41
- package: "0xe882cd54551e73e64ff5b257146a0c5264546974cf00d78ecc871017cb22df67",
42
- registry: "0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",
43
- version: "0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",
44
- },
45
- kriya: {
46
- name: "Kriya",
47
- package: "0xa0eba10b173538c8fecca1dff298e488402cc9ff374f8a12ca7758eebe830b66",
48
- },
49
- kriya_v3: {
50
- name: "Kriya V3",
51
- package: "0x0d7305a7475ed54adc905365bd081939a81926636b4c438cf2f75f4924b8d960",
52
- version: "0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",
53
- },
54
- obric: {
55
- name: "Obric",
56
- package: "0xb84e63d22ea4822a0a333c250e790f69bf5c2ef0c63f4e120e05a6415991368f",
57
- pythState: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
58
- },
59
- springsui: {
60
- name: "SpringSui",
61
- package: "0x82e6f4f75441eae97d2d5850f41a09d28c7b64a05b067d37748d471f43aaf3f7",
62
- },
63
- stsui: {
64
- name: "AlphaFi stSUI",
65
- package: "0x059f94b85c07eb74d2847f8255d8cc0a67c9a8dcc039eabf9f8b9e23a0de2700",
66
- },
67
- suiswap: {
68
- name: "SuiSwap",
69
- package: "0xd075d51486df71e750872b4edf82ea3409fda397ceecc0b6aedf573d923c54a0",
70
- },
71
- turbos: {
72
- name: "Turbos Finance",
73
- package: "0xd02012c71c1a6a221e540c36c37c81e0224907fe1ee05bfe250025654ff17103",
74
- version: "0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",
75
- },
76
- steamm: {
77
- name: "Steamm",
78
- package: "0x5ef2a1bca239764c8381ba26b758833060eadb8903682e4fb15e58c6406e2488",
79
- script: "0x0755429cba577decc090009348987a89f4fb8397da27a3eaafc366794078af7d",
80
- oracle: "0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",
81
- },
82
- magma: {
83
- name: "Magma",
84
- package: "0x49e9f06c58a36830fe0d83291f002012e72b00a4ec9b3a6304c40fc5712bb6e3",
85
- globalConfig: "0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",
86
- },
87
- haedal_pmm: {
88
- name: "Haedal PMM",
89
- package: "0x486622af8a7250a192e6ee97eed4f54e30343b764d9148bf1535b55f85155204",
90
- },
91
- momentum: {
92
- name: "Momentum",
93
- package: "0xcf60a40f45d46fc1e828871a647c1e25a0915dec860d2662eb10fdb382c3c1d1",
94
- version: "0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",
95
- },
96
- bluefinx: {
97
- name: "BluefinX",
98
- package: "0x9633d611ea4b3a30751135cede2c7871980955473c1c7c883d43567e7e9b164e",
99
- globalConfig: "0xc6b29a60c3924776bedc78df72c127ea52b86aeb655432979a38f13d742dedaa",
100
- },
101
- sevenk_v1: {
102
- name: "7K DEX",
103
- package: "0x4142285db093ba0cf0623b3cbc07372fb4f5ed00af1fb62be6d55f49a42c0b0e",
104
- oracle: "0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",
105
- },
106
- fullsail: {
107
- name: "Fullsail",
108
- package: "0xb3b98d4fda36acc2c2e66dba61f9149b341c38e97a532af802ebbb0c037b9d1f",
109
- globalConfig: "0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",
110
- rewarderGlobalVault: "0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",
111
- priceProvider: "0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",
112
- stats: "0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",
113
- },
114
- cetus_dlmm: {
115
- name: "Cetus DLMM",
116
- package: "0xa4c6f46bd6b456e6477bcddf0652e0d2d8fb4767e306533e6e885302ee28cfab",
117
- globalConfig: "0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",
118
- version: "0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",
119
- },
120
- ferra_dlmm: {
121
- name: "Ferra DLMM",
122
- package: "0x5a5c1d10e4782dbbdec3eb8327ede04bd078b294b97cfdba447b11b846b383ac",
123
- globalConfig: "0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",
124
- },
125
- ferra_clmm: {
126
- name: "Ferra CLMM",
127
- package: "0xc895342d87127c9c67b76c8ad7f9a22b8bfe1dcdc2c5af82bd85266783115e31",
128
- integrate: "0x1dd5538aeb1066315969d87ae9a920ce2692824385342f49854b764ac730a64b",
129
- globalConfig: "0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",
130
- },
131
- };
132
- let config = DEFAULT_CONFIG;
133
- let configTs = 0;
134
- export async function getConfig() {
135
- const ttl = 60;
136
- if (config && Date.now() - configTs < ttl * 1000) {
137
- return config;
138
- }
139
- try {
140
- const response = await fetchClient(`${API_ENDPOINTS.MAIN}/config`);
141
- const quoteResponse = (await response.json());
142
- config = { ...config, ...quoteResponse };
143
- configTs = Date.now();
144
- return config;
145
- }
146
- catch (_) {
147
- return DEFAULT_CONFIG;
148
- }
149
- }
@@ -1,41 +0,0 @@
1
- import { SUI_DECIMALS } from "@mysten/sui/utils";
2
- import { Config } from "../../config";
3
- import { isBluefinXRouting } from "../../types/aggregator";
4
- import { formatBalance } from "../../utils/number";
5
- import { getSuiPrice } from "../prices";
6
- import { buildTx } from "./buildTx";
7
- import { BluefinXTx } from "../../libs/protocols/bluefinx/types";
8
- export async function estimateGasFee({ quoteResponse, accountAddress, slippage, suiPrice: _suiPrice, extendTx, commission, }) {
9
- if (!accountAddress)
10
- return 0;
11
- // BluefinX is sponsored, no need to estimate gas fee
12
- if (!accountAddress || isBluefinXRouting(quoteResponse))
13
- return 0;
14
- const result = await buildTx({
15
- extendTx,
16
- quoteResponse,
17
- accountAddress,
18
- slippage,
19
- commission,
20
- devInspect: true,
21
- }).catch((err) => {
22
- console.log("build tx error: ", err);
23
- return undefined;
24
- });
25
- const { tx } = result || {};
26
- if (!tx || tx instanceof BluefinXTx)
27
- return 0;
28
- const suiPrice = _suiPrice || (await getSuiPrice());
29
- const suiDecimals = SUI_DECIMALS;
30
- const { effects: { gasUsed, status }, } = await Config.getSuiClient().devInspectTransactionBlock({
31
- sender: accountAddress,
32
- transactionBlock: tx,
33
- });
34
- if (status.status !== "success")
35
- return 0;
36
- const fee = BigInt(gasUsed.computationCost) +
37
- BigInt(gasUsed.storageCost) -
38
- BigInt(gasUsed.storageRebate);
39
- const feeUsd = Number(suiPrice) * Number(formatBalance(fee, suiDecimals));
40
- return feeUsd;
41
- }
@@ -1,48 +0,0 @@
1
- import { Config } from "../../config";
2
- import { executeBluefinTx } from "../../libs/protocols/bluefinx/client";
3
- import { BluefinXTx } from "../../libs/protocols/bluefinx/types";
4
- /**
5
- * Execute a transaction after it is signed
6
- *
7
- * Automatically handle BluefinX transaction execution if needed
8
- * @example
9
- * ```ts
10
- * const { mutateAsync: signTransaction } = useSignTransaction();
11
- * const quoteResponse = await getQuote(...quoteParams);
12
- * const { tx } = await buildTx(...buildTxParams);
13
- * const {signature, bytes} = await signTransaction({
14
- * transaction: tx instanceof BluefinXTx ? tx.txBytes : tx,
15
- * });
16
- * const res = await executeTx(tx, signature, bytes);
17
- * ```
18
- * @param tx - AggregatorTx - received from `buildTx`
19
- * @param signature - User signature after signing the transaction
20
- * @param signedTxBytes - Signed transaction bytes after signing the transaction
21
- * @param options - Options for the transaction
22
- * @returns `SuiTransactionBlockResponse`
23
- */
24
- export const executeTx = async (tx, signature, signedTxBytes, options) => {
25
- const isBluefinTx = tx instanceof BluefinXTx;
26
- const client = Config.getSuiClient();
27
- let res;
28
- if (isBluefinTx) {
29
- try {
30
- const result = await executeBluefinTx(tx, signature);
31
- res = await client.waitForTransaction({
32
- digest: result.txDigest,
33
- options,
34
- });
35
- }
36
- catch (e) {
37
- throw Error(`Could not retrieve BluefinX transaction with quoteId: ${tx.quoteId} ${e}`);
38
- }
39
- }
40
- else {
41
- res = await client.executeTransactionBlock({
42
- transactionBlock: signedTxBytes,
43
- signature,
44
- options,
45
- });
46
- }
47
- return res;
48
- };
@@ -1,90 +0,0 @@
1
- import { normalizeStructTag, normalizeSuiObjectId } from "@mysten/sui/utils";
2
- import { fetchClient } from "../../config/fetchClient";
3
- import { API_ENDPOINTS } from "../../constants/apiEndpoints";
4
- import { isBluefinXRouting, } from "../../types/aggregator";
5
- export const DEFAULT_SOURCES = [
6
- "suiswap",
7
- "turbos",
8
- "cetus",
9
- "bluemove",
10
- "kriya",
11
- "kriya_v3",
12
- "aftermath",
13
- "deepbook_v3",
14
- "flowx",
15
- "flowx_v3",
16
- "bluefin",
17
- "springsui",
18
- "obric",
19
- "stsui",
20
- "steamm",
21
- "steamm_oracle_quoter",
22
- "steamm_oracle_quoter_v2",
23
- "magma",
24
- "haedal_pmm",
25
- "momentum",
26
- "sevenk_v1",
27
- "fullsail",
28
- "cetus_dlmm",
29
- "ferra_dlmm",
30
- "ferra_clmm",
31
- ];
32
- export const ORACLE_BASED_SOURCES = new Set([
33
- "obric",
34
- "haedal_pmm",
35
- "sevenk_v1",
36
- "steamm_oracle_quoter",
37
- "steamm_oracle_quoter_v2",
38
- ]);
39
- export async function getQuote({ tokenIn, tokenOut, amountIn, sources: _sources = DEFAULT_SOURCES, commissionBps, targetPools, excludedPools, taker, isSponsored, api, maxPaths, }) {
40
- let sources = _sources;
41
- if (isSponsored) {
42
- sources = _sources.filter((s) => !ORACLE_BASED_SOURCES.has(s));
43
- }
44
- const params = new URLSearchParams({
45
- amount: amountIn,
46
- from: normalizeStructTag(tokenIn),
47
- to: normalizeStructTag(tokenOut),
48
- sources: sources.join(","),
49
- });
50
- if (targetPools?.length) {
51
- params.append("target_pools", targetPools.map((v) => normalizeSuiObjectId(v)).join(","));
52
- }
53
- if (excludedPools?.length) {
54
- params.append("excluded_pools", excludedPools.map((v) => normalizeSuiObjectId(v)).join(","));
55
- }
56
- if (taker) {
57
- params.append("taker", taker);
58
- }
59
- if (maxPaths) {
60
- params.append("max_paths", maxPaths.toString());
61
- }
62
- const response = await fetchClient(`${api || API_ENDPOINTS.MAIN}/quote?${params}`);
63
- if (!response.ok) {
64
- let responseText;
65
- try {
66
- responseText = await response.text();
67
- }
68
- catch {
69
- responseText = "Failed to fetch aggregator quote";
70
- }
71
- throw new Error(responseText);
72
- }
73
- const quoteResponse = (await response.json());
74
- computeReturnAmountAfterCommission(quoteResponse, commissionBps);
75
- return quoteResponse;
76
- }
77
- const computeReturnAmountAfterCommission = (quoteResponse, commissionBps) => {
78
- const _commissionBps = isBluefinXRouting(quoteResponse) ? 0 : commissionBps;
79
- if (quoteResponse.returnAmount && +quoteResponse.returnAmount > 0) {
80
- quoteResponse.returnAmountAfterCommissionWithDecimal = ((BigInt(quoteResponse.returnAmountWithDecimal || 0) *
81
- BigInt(10_000 - (_commissionBps ?? 0))) /
82
- BigInt(10_000)).toString(10);
83
- const exp = Math.round(+quoteResponse.returnAmountWithDecimal / +quoteResponse.returnAmount);
84
- quoteResponse.returnAmountAfterCommission = (+quoteResponse.returnAmountAfterCommissionWithDecimal / exp).toString(10);
85
- }
86
- else {
87
- quoteResponse.returnAmountAfterCommission = "";
88
- quoteResponse.returnAmountAfterCommissionWithDecimal = "";
89
- }
90
- };
@@ -1,18 +0,0 @@
1
- import { fetchClient } from "../../config/fetchClient";
2
- import { API_ENDPOINTS } from "../../constants/apiEndpoints";
3
- import { formatQueryParams } from "../../libs/url";
4
- export async function getSwapHistory({ owner, offset = 0, limit = 10, tokenPair, }) {
5
- const queryParams = {
6
- addr: owner,
7
- offset,
8
- limit,
9
- token_pair: tokenPair,
10
- };
11
- const paramsStr = formatQueryParams(queryParams);
12
- const response = await fetchClient(`${API_ENDPOINTS.STATISTIC}/trading-history?${paramsStr}`);
13
- if (!response.ok) {
14
- throw new Error("Failed to fetch open limit orders");
15
- }
16
- const orders = (await response.json());
17
- return orders;
18
- }
@@ -1,6 +0,0 @@
1
- export * from "./buildTx";
2
- export * from "./buildTxV2";
3
- export * from "./estimateGasFee";
4
- export * from "./executeTx";
5
- export * from "./getQuote";
6
- export * from "./getSwapHistory";
@@ -1,57 +0,0 @@
1
- import { denormalizeTokenType } from "../utils/token";
2
- export function groupSwapRoutes(quoteResponse) {
3
- if (!quoteResponse.routes || !quoteResponse.swaps) {
4
- return [];
5
- }
6
- const poolDetails = mapPoolIdsToDetails(quoteResponse.routes);
7
- const items = getTxSorSwaps(quoteResponse.swaps, poolDetails);
8
- const groupedItems = [];
9
- let currentGroup = [];
10
- for (let i = 0; i < items.length; i++) {
11
- const item = items[i];
12
- currentGroup.push(item);
13
- const nextItem = items[i + 1];
14
- if (!nextItem || BigInt(nextItem.amount) > 0n) {
15
- groupedItems.push(currentGroup);
16
- currentGroup = [];
17
- }
18
- }
19
- if (currentGroup.length > 0) {
20
- groupedItems.push(currentGroup);
21
- }
22
- return groupedItems;
23
- }
24
- function mapPoolIdsToDetails(routes) {
25
- const poolTypes = {};
26
- routes.forEach((route) => {
27
- route.hops.forEach((hop) => {
28
- poolTypes[hop.poolId] = hop.pool;
29
- });
30
- });
31
- return poolTypes;
32
- }
33
- function getTxSorSwaps(swaps, poolDetails) {
34
- return swaps.map((swap) => {
35
- const pool = poolDetails[swap.poolId];
36
- const assetIn = denormalizeTokenType(swap.assetIn);
37
- const assetOut = denormalizeTokenType(swap.assetOut);
38
- const coinX = {
39
- type: denormalizeTokenType(pool?.allTokens?.[0]?.address),
40
- decimals: pool?.allTokens?.[0]?.decimal,
41
- };
42
- const coinY = {
43
- type: denormalizeTokenType(pool?.allTokens?.[1]?.address),
44
- decimals: pool?.allTokens?.[0]?.decimal,
45
- };
46
- const swapXtoY = assetIn === coinX.type;
47
- return {
48
- ...swap,
49
- pool,
50
- assetIn,
51
- assetOut,
52
- coinX,
53
- coinY,
54
- swapXtoY,
55
- };
56
- });
57
- }
@@ -1,31 +0,0 @@
1
- import { BaseContract } from "../base";
2
- import { normalizeTokenType } from "../../../utils/token";
3
- export class AfterMathContract extends BaseContract {
4
- async swap(tx) {
5
- const poolId = this.swapInfo.poolId;
6
- const returnAmount = this.swapInfo.returnAmount;
7
- const coinInType = normalizeTokenType(this.swapInfo.assetIn);
8
- const coinOutType = normalizeTokenType(this.swapInfo.assetOut);
9
- const inputCoinObject = this.inputCoinObject;
10
- const [lpCoinType] = this.getTypeParams();
11
- if (!lpCoinType)
12
- throw new Error("lpCoinType is not defined");
13
- const config = this.config.aftermath;
14
- const [tokenOut] = tx.moveCall({
15
- target: `${config.package}::swap::swap_exact_in`,
16
- typeArguments: [lpCoinType, coinInType, coinOutType],
17
- arguments: [
18
- tx.object(poolId),
19
- tx.object(config.poolRegistry),
20
- tx.object(config.protocolFeeVault),
21
- tx.object(config.treasury),
22
- tx.object(config.insuranceFund),
23
- tx.object(config.referralVault),
24
- inputCoinObject,
25
- tx.pure.u64(returnAmount),
26
- tx.pure.u64("1000000000000000000"), // slippage
27
- ],
28
- });
29
- return tokenOut;
30
- }
31
- }