@alphafi/alphafi-sdk 0.0.19 → 0.0.21

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 (463) hide show
  1. package/README.md +14 -5
  2. package/dist/cjs/common/alphaTypes.d.ts.map +1 -0
  3. package/dist/cjs/common/alphaTypes.js +3 -0
  4. package/dist/cjs/common/alphaTypes.js.map +1 -0
  5. package/dist/cjs/common/cetus_mainnet_config.d.ts.map +1 -0
  6. package/dist/cjs/common/cetus_mainnet_config.js +50 -0
  7. package/dist/cjs/common/cetus_mainnet_config.js.map +1 -0
  8. package/dist/cjs/common/coins.d.ts.map +1 -0
  9. package/dist/cjs/common/coins.js +135 -0
  10. package/dist/cjs/common/coins.js.map +1 -0
  11. package/dist/cjs/common/constants.d.ts.map +1 -0
  12. package/dist/cjs/common/constants.js +465 -0
  13. package/dist/cjs/common/constants.js.map +1 -0
  14. package/dist/cjs/common/maps.d.ts.map +1 -0
  15. package/dist/cjs/common/maps.js +535 -0
  16. package/dist/cjs/common/maps.js.map +1 -0
  17. package/dist/cjs/common/pyth.d.ts.map +1 -0
  18. package/dist/cjs/common/pyth.js +3 -0
  19. package/dist/cjs/common/pyth.js.map +1 -0
  20. package/dist/cjs/common/types.d.ts.map +1 -0
  21. package/dist/cjs/common/types.js +18 -0
  22. package/dist/cjs/common/types.js.map +1 -0
  23. package/dist/cjs/example.d.ts.map +1 -0
  24. package/dist/cjs/example.js +42 -0
  25. package/dist/cjs/example.js.map +1 -0
  26. package/dist/cjs/getAirdropShare.d.ts.map +1 -0
  27. package/dist/cjs/getAirdropShare.js +9 -0
  28. package/dist/cjs/getAirdropShare.js.map +1 -0
  29. package/dist/cjs/getAllVaults.d.ts.map +1 -0
  30. package/dist/cjs/getAllVaults.js +32 -0
  31. package/dist/cjs/getAllVaults.js.map +1 -0
  32. package/dist/cjs/getAlphaUnlocks.d.ts.map +1 -0
  33. package/dist/cjs/getAlphaUnlocks.js +20 -0
  34. package/dist/cjs/getAlphaUnlocks.js.map +1 -0
  35. package/dist/cjs/getAprs.d.ts.map +1 -0
  36. package/dist/cjs/getAprs.js +56 -0
  37. package/dist/cjs/getAprs.js.map +1 -0
  38. package/dist/cjs/getHoldersFromTransactions.d.ts.map +1 -0
  39. package/dist/cjs/getHoldersFromTransactions.js +87 -0
  40. package/dist/cjs/getHoldersFromTransactions.js.map +1 -0
  41. package/dist/cjs/getLastAutoCompoundTime.d.ts.map +1 -0
  42. package/dist/cjs/getLastAutoCompoundTime.js +17 -0
  43. package/dist/cjs/getLastAutoCompoundTime.js.map +1 -0
  44. package/dist/cjs/getRebalanceHistory.d.ts.map +1 -0
  45. package/dist/cjs/getRebalanceHistory.js +24 -0
  46. package/dist/cjs/getRebalanceHistory.js.map +1 -0
  47. package/dist/cjs/getVaultBalances.d.ts.map +1 -0
  48. package/dist/cjs/getVaultBalances.js +132 -0
  49. package/dist/cjs/getVaultBalances.js.map +1 -0
  50. package/dist/cjs/getVaults.d.ts.map +1 -0
  51. package/dist/cjs/getVaults.js +31 -0
  52. package/dist/cjs/getVaults.js.map +1 -0
  53. package/dist/cjs/graphql/client.d.ts.map +1 -0
  54. package/dist/cjs/graphql/client.js +14 -0
  55. package/dist/cjs/graphql/client.js.map +1 -0
  56. package/dist/cjs/graphql/executeMutations.d.ts.map +1 -0
  57. package/dist/cjs/graphql/executeMutations.js +31 -0
  58. package/dist/cjs/graphql/executeMutations.js.map +1 -0
  59. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.d.ts.map +1 -0
  60. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js +119 -0
  61. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js.map +1 -0
  62. package/dist/cjs/graphql/fetchData.d.ts.map +1 -0
  63. package/dist/cjs/graphql/fetchData.js +95 -0
  64. package/dist/cjs/graphql/fetchData.js.map +1 -0
  65. package/dist/cjs/graphql/fetchNftHolders.d.ts.map +1 -0
  66. package/dist/cjs/graphql/fetchNftHolders.js +34 -0
  67. package/dist/cjs/graphql/fetchNftHolders.js.map +1 -0
  68. package/dist/cjs/graphql/fetchReceipts.d.ts.map +1 -0
  69. package/dist/cjs/graphql/fetchReceipts.js +35 -0
  70. package/dist/cjs/graphql/fetchReceipts.js.map +1 -0
  71. package/dist/cjs/graphql/mutations.d.ts.map +1 -0
  72. package/dist/cjs/graphql/mutations.js +33 -0
  73. package/dist/cjs/graphql/mutations.js.map +1 -0
  74. package/dist/cjs/graphql/parseData.d.ts.map +1 -0
  75. package/dist/cjs/graphql/parseData.js +9 -0
  76. package/dist/cjs/graphql/parseData.js.map +1 -0
  77. package/dist/cjs/graphql/parseLockedTableId.d.ts.map +1 -0
  78. package/dist/cjs/graphql/parseLockedTableId.js +15 -0
  79. package/dist/cjs/graphql/parseLockedTableId.js.map +1 -0
  80. package/dist/cjs/graphql/queries/autoCompoundEvents.d.ts.map +1 -0
  81. package/dist/cjs/graphql/queries/autoCompoundEvents.js +19 -0
  82. package/dist/cjs/graphql/queries/autoCompoundEvents.js.map +1 -0
  83. package/dist/cjs/graphql/queries/cetusPools.d.ts.map +1 -0
  84. package/dist/cjs/graphql/queries/cetusPools.js +39 -0
  85. package/dist/cjs/graphql/queries/cetusPools.js.map +1 -0
  86. package/dist/cjs/graphql/queries/investors.d.ts.map +1 -0
  87. package/dist/cjs/graphql/queries/investors.js +39 -0
  88. package/dist/cjs/graphql/queries/investors.js.map +1 -0
  89. package/dist/cjs/graphql/queries/lockedTableData.d.ts.map +1 -0
  90. package/dist/cjs/graphql/queries/lockedTableData.js +30 -0
  91. package/dist/cjs/graphql/queries/lockedTableData.js.map +1 -0
  92. package/dist/cjs/graphql/queries/lockedTableDataFragment.d.ts.map +1 -0
  93. package/dist/cjs/graphql/queries/lockedTableDataFragment.js +24 -0
  94. package/dist/cjs/graphql/queries/lockedTableDataFragment.js.map +1 -0
  95. package/dist/cjs/graphql/queries/nftHolders.d.ts.map +1 -0
  96. package/dist/cjs/graphql/queries/nftHolders.js +23 -0
  97. package/dist/cjs/graphql/queries/nftHolders.js.map +1 -0
  98. package/dist/cjs/graphql/queries/pools.d.ts.map +1 -0
  99. package/dist/cjs/graphql/queries/pools.js +57 -0
  100. package/dist/cjs/graphql/queries/pools.js.map +1 -0
  101. package/dist/cjs/graphql/queries/receiptData.d.ts.map +1 -0
  102. package/dist/cjs/graphql/queries/receiptData.js +21 -0
  103. package/dist/cjs/graphql/queries/receiptData.js.map +1 -0
  104. package/dist/cjs/graphql/queries/userVaultBalances.d.ts.map +1 -0
  105. package/dist/cjs/graphql/queries/userVaultBalances.js +62 -0
  106. package/dist/cjs/graphql/queries/userVaultBalances.js.map +1 -0
  107. package/dist/cjs/graphql/queries/userVaults.d.ts.map +1 -0
  108. package/dist/cjs/graphql/queries/userVaults.js +62 -0
  109. package/dist/cjs/graphql/queries/userVaults.js.map +1 -0
  110. package/dist/cjs/graphql/queries.d.ts.map +1 -0
  111. package/dist/cjs/graphql/queries.js +86 -0
  112. package/dist/cjs/graphql/queries.js.map +1 -0
  113. package/dist/cjs/graphql/types.d.ts.map +1 -0
  114. package/dist/cjs/graphql/types.js +3 -0
  115. package/dist/cjs/graphql/types.js.map +1 -0
  116. package/dist/cjs/index.d.ts.map +1 -0
  117. package/dist/cjs/index.js +70 -0
  118. package/dist/cjs/index.js.map +1 -0
  119. package/dist/cjs/sui-sdk/client.d.ts.map +1 -0
  120. package/dist/cjs/sui-sdk/client.js +69 -0
  121. package/dist/cjs/sui-sdk/client.js.map +1 -0
  122. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -0
  123. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js +201 -0
  124. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -0
  125. package/dist/cjs/sui-sdk/events/fetchEvents.d.ts.map +1 -0
  126. package/dist/cjs/sui-sdk/events/fetchEvents.js +184 -0
  127. package/dist/cjs/sui-sdk/events/fetchEvents.js.map +1 -0
  128. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +1 -0
  129. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js +44 -0
  130. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js.map +1 -0
  131. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -0
  132. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js +90 -0
  133. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js.map +1 -0
  134. package/dist/cjs/sui-sdk/events/parseData.d.ts.map +1 -0
  135. package/dist/cjs/sui-sdk/events/parseData.js +31 -0
  136. package/dist/cjs/sui-sdk/events/parseData.js.map +1 -0
  137. package/dist/cjs/sui-sdk/events/types.d.ts.map +1 -0
  138. package/dist/cjs/sui-sdk/events/types.js +3 -0
  139. package/dist/cjs/sui-sdk/events/types.js.map +1 -0
  140. package/dist/cjs/sui-sdk/functions/fetchTableData.d.ts.map +1 -0
  141. package/dist/cjs/sui-sdk/functions/fetchTableData.js +77 -0
  142. package/dist/cjs/sui-sdk/functions/fetchTableData.js.map +1 -0
  143. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -0
  144. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js +82 -0
  145. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -0
  146. package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -0
  147. package/dist/cjs/sui-sdk/functions/fetchUserVaults.js +45 -0
  148. package/dist/cjs/sui-sdk/functions/fetchUserVaults.js.map +1 -0
  149. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -0
  150. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +246 -0
  151. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -0
  152. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -0
  153. package/dist/cjs/sui-sdk/functions/getReceipts.js +375 -0
  154. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -0
  155. package/dist/cjs/sui-sdk/transactions/constants.d.ts.map +1 -0
  156. package/dist/cjs/sui-sdk/transactions/constants.js +90 -0
  157. package/dist/cjs/sui-sdk/transactions/constants.js.map +1 -0
  158. package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -0
  159. package/dist/cjs/sui-sdk/transactions/fetchTransactions.js +88 -0
  160. package/dist/cjs/sui-sdk/transactions/fetchTransactions.js.map +1 -0
  161. package/dist/cjs/sui-sdk/transactions/types.d.ts.map +1 -0
  162. package/dist/cjs/sui-sdk/transactions/types.js +3 -0
  163. package/dist/cjs/sui-sdk/transactions/types.js.map +1 -0
  164. package/dist/cjs/types.d.ts.map +1 -0
  165. package/dist/cjs/types.js +3 -0
  166. package/dist/cjs/types.js.map +1 -0
  167. package/dist/cjs/utils/clmm/prices.d.ts.map +1 -0
  168. package/dist/cjs/utils/clmm/prices.js +317 -0
  169. package/dist/cjs/utils/clmm/prices.js.map +1 -0
  170. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.d.ts.map +1 -0
  171. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js +196 -0
  172. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js.map +1 -0
  173. package/dist/cjs/utils/clmm/types.d.ts.map +1 -0
  174. package/dist/cjs/utils/clmm/types.js +3 -0
  175. package/dist/cjs/utils/clmm/types.js.map +1 -0
  176. package/dist/cjs/utils/constants.d.ts.map +1 -0
  177. package/dist/cjs/utils/constants.js +104 -0
  178. package/dist/cjs/utils/constants.js.map +1 -0
  179. package/dist/cjs/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -0
  180. package/dist/cjs/utils/getHoldersFromTransactionsUtils.js +132 -0
  181. package/dist/cjs/utils/getHoldersFromTransactionsUtils.js.map +1 -0
  182. package/dist/cjs/utils/getReceipts.d.ts.map +1 -0
  183. package/dist/cjs/utils/getReceipts.js +45 -0
  184. package/dist/cjs/utils/getReceipts.js.map +1 -0
  185. package/dist/cjs/utils/hop.d.ts.map +1 -0
  186. package/dist/cjs/utils/hop.js +125 -0
  187. package/dist/cjs/utils/hop.js.map +1 -0
  188. package/dist/cjs/utils/prices.d.ts.map +1 -0
  189. package/dist/cjs/utils/prices.js +231 -0
  190. package/dist/cjs/utils/prices.js.map +1 -0
  191. package/dist/cjs/utils/simpleCache.d.ts.map +1 -0
  192. package/dist/cjs/utils/simpleCache.js +43 -0
  193. package/dist/cjs/utils/simpleCache.js.map +1 -0
  194. package/dist/cjs/utils/types.d.ts.map +1 -0
  195. package/dist/cjs/utils/types.js +3 -0
  196. package/dist/cjs/utils/types.js.map +1 -0
  197. package/dist/cjs/utils/userHoldings.d.ts.map +1 -0
  198. package/dist/cjs/utils/userHoldings.js +202 -0
  199. package/dist/cjs/utils/userHoldings.js.map +1 -0
  200. package/dist/cjs/vaultFunctions.d.ts.map +1 -0
  201. package/dist/cjs/vaultFunctions.js +32 -0
  202. package/dist/cjs/vaultFunctions.js.map +1 -0
  203. package/dist/esm/common/alphaTypes.d.ts.map +1 -0
  204. package/dist/esm/common/alphaTypes.js +2 -0
  205. package/dist/esm/common/alphaTypes.js.map +1 -0
  206. package/dist/esm/common/cetus_mainnet_config.d.ts.map +1 -0
  207. package/dist/esm/common/cetus_mainnet_config.js +47 -0
  208. package/dist/esm/common/cetus_mainnet_config.js.map +1 -0
  209. package/dist/esm/common/coins.d.ts.map +1 -0
  210. package/dist/esm/common/coins.js +132 -0
  211. package/dist/esm/common/coins.js.map +1 -0
  212. package/dist/esm/common/constants.d.ts.map +1 -0
  213. package/dist/esm/common/constants.js +462 -0
  214. package/dist/esm/common/constants.js.map +1 -0
  215. package/dist/esm/common/maps.d.ts.map +1 -0
  216. package/dist/esm/common/maps.js +527 -0
  217. package/dist/esm/common/maps.js.map +1 -0
  218. package/dist/esm/common/pyth.d.ts.map +1 -0
  219. package/dist/esm/common/pyth.js +2 -0
  220. package/dist/esm/common/pyth.js.map +1 -0
  221. package/dist/esm/common/types.d.ts.map +1 -0
  222. package/dist/esm/common/types.js +16 -0
  223. package/dist/esm/common/types.js.map +1 -0
  224. package/dist/esm/example.d.ts.map +1 -0
  225. package/dist/esm/example.js +38 -0
  226. package/dist/esm/example.js.map +1 -0
  227. package/dist/esm/getAirdropShare.d.ts.map +1 -0
  228. package/dist/esm/getAirdropShare.js +6 -0
  229. package/dist/esm/getAirdropShare.js.map +1 -0
  230. package/dist/esm/getAllVaults.d.ts.map +1 -0
  231. package/dist/esm/getAllVaults.js +27 -0
  232. package/dist/esm/getAllVaults.js.map +1 -0
  233. package/dist/esm/getAlphaUnlocks.d.ts.map +1 -0
  234. package/dist/esm/getAlphaUnlocks.js +17 -0
  235. package/dist/esm/getAlphaUnlocks.js.map +1 -0
  236. package/dist/esm/getAprs.d.ts.map +1 -0
  237. package/dist/esm/getAprs.js +50 -0
  238. package/dist/esm/getAprs.js.map +1 -0
  239. package/dist/esm/getHoldersFromTransactions.d.ts.map +1 -0
  240. package/dist/esm/getHoldersFromTransactions.js +82 -0
  241. package/dist/esm/getHoldersFromTransactions.js.map +1 -0
  242. package/dist/esm/getLastAutoCompoundTime.d.ts.map +1 -0
  243. package/dist/esm/getLastAutoCompoundTime.js +14 -0
  244. package/dist/esm/getLastAutoCompoundTime.js.map +1 -0
  245. package/dist/esm/getRebalanceHistory.d.ts.map +1 -0
  246. package/dist/esm/getRebalanceHistory.js +20 -0
  247. package/dist/esm/getRebalanceHistory.js.map +1 -0
  248. package/dist/esm/getVaultBalances.d.ts.map +1 -0
  249. package/dist/esm/getVaultBalances.js +124 -0
  250. package/dist/esm/getVaultBalances.js.map +1 -0
  251. package/dist/esm/getVaults.d.ts.map +1 -0
  252. package/dist/esm/getVaults.js +26 -0
  253. package/dist/esm/getVaults.js.map +1 -0
  254. package/dist/esm/graphql/client.d.ts.map +1 -0
  255. package/dist/esm/graphql/client.js +12 -0
  256. package/dist/esm/graphql/client.js.map +1 -0
  257. package/dist/esm/graphql/executeMutations.d.ts.map +1 -0
  258. package/dist/esm/graphql/executeMutations.js +25 -0
  259. package/dist/esm/graphql/executeMutations.js.map +1 -0
  260. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.d.ts.map +1 -0
  261. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js +116 -0
  262. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js.map +1 -0
  263. package/dist/esm/graphql/fetchData.d.ts.map +1 -0
  264. package/dist/esm/graphql/fetchData.js +81 -0
  265. package/dist/esm/graphql/fetchData.js.map +1 -0
  266. package/dist/esm/graphql/fetchNftHolders.d.ts.map +1 -0
  267. package/dist/esm/graphql/fetchNftHolders.js +30 -0
  268. package/dist/esm/graphql/fetchNftHolders.js.map +1 -0
  269. package/dist/esm/graphql/fetchReceipts.d.ts.map +1 -0
  270. package/dist/esm/graphql/fetchReceipts.js +31 -0
  271. package/dist/esm/graphql/fetchReceipts.js.map +1 -0
  272. package/dist/esm/graphql/mutations.d.ts.map +1 -0
  273. package/dist/esm/graphql/mutations.js +30 -0
  274. package/dist/esm/graphql/mutations.js.map +1 -0
  275. package/dist/esm/graphql/parseData.d.ts.map +1 -0
  276. package/dist/esm/graphql/parseData.js +6 -0
  277. package/dist/esm/graphql/parseData.js.map +1 -0
  278. package/dist/esm/graphql/parseLockedTableId.d.ts.map +1 -0
  279. package/dist/esm/graphql/parseLockedTableId.js +12 -0
  280. package/dist/esm/graphql/parseLockedTableId.js.map +1 -0
  281. package/dist/esm/graphql/queries/autoCompoundEvents.d.ts.map +1 -0
  282. package/dist/esm/graphql/queries/autoCompoundEvents.js +16 -0
  283. package/dist/esm/graphql/queries/autoCompoundEvents.js.map +1 -0
  284. package/dist/esm/graphql/queries/cetusPools.d.ts.map +1 -0
  285. package/dist/esm/graphql/queries/cetusPools.js +36 -0
  286. package/dist/esm/graphql/queries/cetusPools.js.map +1 -0
  287. package/dist/esm/graphql/queries/investors.d.ts.map +1 -0
  288. package/dist/esm/graphql/queries/investors.js +36 -0
  289. package/dist/esm/graphql/queries/investors.js.map +1 -0
  290. package/dist/esm/graphql/queries/lockedTableData.d.ts.map +1 -0
  291. package/dist/esm/graphql/queries/lockedTableData.js +27 -0
  292. package/dist/esm/graphql/queries/lockedTableData.js.map +1 -0
  293. package/dist/esm/graphql/queries/lockedTableDataFragment.d.ts.map +1 -0
  294. package/dist/esm/graphql/queries/lockedTableDataFragment.js +21 -0
  295. package/dist/esm/graphql/queries/lockedTableDataFragment.js.map +1 -0
  296. package/dist/esm/graphql/queries/nftHolders.d.ts.map +1 -0
  297. package/dist/esm/graphql/queries/nftHolders.js +20 -0
  298. package/dist/esm/graphql/queries/nftHolders.js.map +1 -0
  299. package/dist/esm/graphql/queries/pools.d.ts.map +1 -0
  300. package/dist/esm/graphql/queries/pools.js +54 -0
  301. package/dist/esm/graphql/queries/pools.js.map +1 -0
  302. package/dist/esm/graphql/queries/receiptData.d.ts.map +1 -0
  303. package/dist/esm/graphql/queries/receiptData.js +18 -0
  304. package/dist/esm/graphql/queries/receiptData.js.map +1 -0
  305. package/dist/esm/graphql/queries/userVaultBalances.d.ts.map +1 -0
  306. package/dist/esm/graphql/queries/userVaultBalances.js +59 -0
  307. package/dist/esm/graphql/queries/userVaultBalances.js.map +1 -0
  308. package/dist/esm/graphql/queries/userVaults.d.ts.map +1 -0
  309. package/dist/esm/graphql/queries/userVaults.js +59 -0
  310. package/dist/esm/graphql/queries/userVaults.js.map +1 -0
  311. package/dist/esm/graphql/queries.d.ts.map +1 -0
  312. package/dist/esm/graphql/queries.js +83 -0
  313. package/dist/esm/graphql/queries.js.map +1 -0
  314. package/dist/esm/graphql/types.d.ts.map +1 -0
  315. package/dist/esm/graphql/types.js +2 -0
  316. package/dist/esm/graphql/types.js.map +1 -0
  317. package/dist/esm/index.d.ts.map +1 -0
  318. package/dist/{index.d.ts → esm/index.js} +23 -19
  319. package/dist/esm/index.js.map +1 -0
  320. package/dist/esm/sui-sdk/client.d.ts.map +1 -0
  321. package/dist/esm/sui-sdk/client.js +63 -0
  322. package/dist/esm/sui-sdk/client.js.map +1 -0
  323. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -0
  324. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js +196 -0
  325. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -0
  326. package/dist/esm/sui-sdk/events/fetchEvents.d.ts.map +1 -0
  327. package/dist/esm/sui-sdk/events/fetchEvents.js +181 -0
  328. package/dist/esm/sui-sdk/events/fetchEvents.js.map +1 -0
  329. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +1 -0
  330. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js +41 -0
  331. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js.map +1 -0
  332. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -0
  333. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js +85 -0
  334. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js.map +1 -0
  335. package/dist/esm/sui-sdk/events/parseData.d.ts.map +1 -0
  336. package/dist/esm/sui-sdk/events/parseData.js +27 -0
  337. package/dist/esm/sui-sdk/events/parseData.js.map +1 -0
  338. package/dist/esm/sui-sdk/events/types.d.ts.map +1 -0
  339. package/dist/esm/sui-sdk/events/types.js +2 -0
  340. package/dist/esm/sui-sdk/events/types.js.map +1 -0
  341. package/dist/esm/sui-sdk/functions/fetchTableData.d.ts.map +1 -0
  342. package/dist/esm/sui-sdk/functions/fetchTableData.js +73 -0
  343. package/dist/esm/sui-sdk/functions/fetchTableData.js.map +1 -0
  344. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -0
  345. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js +79 -0
  346. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -0
  347. package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -0
  348. package/dist/esm/sui-sdk/functions/fetchUserVaults.js +42 -0
  349. package/dist/esm/sui-sdk/functions/fetchUserVaults.js.map +1 -0
  350. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -0
  351. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +238 -0
  352. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -0
  353. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -0
  354. package/dist/esm/sui-sdk/functions/getReceipts.js +364 -0
  355. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -0
  356. package/dist/esm/sui-sdk/transactions/constants.d.ts.map +1 -0
  357. package/dist/esm/sui-sdk/transactions/constants.js +87 -0
  358. package/dist/esm/sui-sdk/transactions/constants.js.map +1 -0
  359. package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -0
  360. package/dist/esm/sui-sdk/transactions/fetchTransactions.js +85 -0
  361. package/dist/esm/sui-sdk/transactions/fetchTransactions.js.map +1 -0
  362. package/dist/esm/sui-sdk/transactions/types.d.ts.map +1 -0
  363. package/dist/esm/sui-sdk/transactions/types.js +2 -0
  364. package/dist/esm/sui-sdk/transactions/types.js.map +1 -0
  365. package/dist/esm/types.d.ts.map +1 -0
  366. package/dist/esm/types.js +2 -0
  367. package/dist/esm/types.js.map +1 -0
  368. package/dist/esm/utils/clmm/prices.d.ts.map +1 -0
  369. package/dist/esm/utils/clmm/prices.js +309 -0
  370. package/dist/esm/utils/clmm/prices.js.map +1 -0
  371. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.d.ts.map +1 -0
  372. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js +188 -0
  373. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js.map +1 -0
  374. package/dist/esm/utils/clmm/types.d.ts.map +1 -0
  375. package/dist/esm/utils/clmm/types.js +2 -0
  376. package/dist/esm/utils/clmm/types.js.map +1 -0
  377. package/dist/esm/utils/constants.d.ts.map +1 -0
  378. package/dist/esm/utils/constants.js +101 -0
  379. package/dist/esm/utils/constants.js.map +1 -0
  380. package/dist/esm/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -0
  381. package/dist/esm/utils/getHoldersFromTransactionsUtils.js +127 -0
  382. package/dist/esm/utils/getHoldersFromTransactionsUtils.js.map +1 -0
  383. package/dist/esm/utils/getReceipts.d.ts.map +1 -0
  384. package/dist/esm/utils/getReceipts.js +42 -0
  385. package/dist/esm/utils/getReceipts.js.map +1 -0
  386. package/dist/esm/utils/hop.d.ts.map +1 -0
  387. package/dist/esm/utils/hop.js +118 -0
  388. package/dist/esm/utils/hop.js.map +1 -0
  389. package/dist/esm/utils/prices.d.ts.map +1 -0
  390. package/dist/esm/utils/prices.js +226 -0
  391. package/dist/esm/utils/prices.js.map +1 -0
  392. package/dist/esm/utils/simpleCache.d.ts.map +1 -0
  393. package/dist/esm/utils/simpleCache.js +40 -0
  394. package/dist/esm/utils/simpleCache.js.map +1 -0
  395. package/dist/esm/utils/types.d.ts.map +1 -0
  396. package/dist/esm/utils/types.js +2 -0
  397. package/dist/esm/utils/types.js.map +1 -0
  398. package/dist/esm/utils/userHoldings.d.ts.map +1 -0
  399. package/dist/esm/utils/userHoldings.js +195 -0
  400. package/dist/esm/utils/userHoldings.js.map +1 -0
  401. package/dist/esm/vaultFunctions.d.ts.map +1 -0
  402. package/dist/esm/vaultFunctions.js +27 -0
  403. package/dist/esm/vaultFunctions.js.map +1 -0
  404. package/package.json +29 -13
  405. package/dist/common/alphaTypes.d.ts +0 -109
  406. package/dist/common/cetus_mainnet_config.d.ts +0 -2
  407. package/dist/common/coins.d.ts +0 -4
  408. package/dist/common/constants.d.ts +0 -401
  409. package/dist/common/maps.d.ts +0 -56
  410. package/dist/common/pyth.d.ts +0 -6
  411. package/dist/common/types.d.ts +0 -459
  412. package/dist/example.d.ts +0 -2
  413. package/dist/getAirdropShare.d.ts +0 -1
  414. package/dist/getAllVaults.d.ts +0 -3
  415. package/dist/getAlphaUnlocks.d.ts +0 -13
  416. package/dist/getAprs.d.ts +0 -5
  417. package/dist/getHoldersFromTransactions.d.ts +0 -8
  418. package/dist/getLastAutoCompoundTime.d.ts +0 -2
  419. package/dist/getRebalanceHistory.d.ts +0 -3
  420. package/dist/getVaultBalances.d.ts +0 -8
  421. package/dist/getVaults.d.ts +0 -4
  422. package/dist/graphql/client.d.ts +0 -3
  423. package/dist/graphql/executeMutations.d.ts +0 -3
  424. package/dist/graphql/fetchAutoCompoundingEventsGql.d.ts +0 -26
  425. package/dist/graphql/fetchData.d.ts +0 -10
  426. package/dist/graphql/fetchNftHolders.d.ts +0 -2
  427. package/dist/graphql/fetchReceipts.d.ts +0 -2
  428. package/dist/graphql/mutations.d.ts +0 -3
  429. package/dist/graphql/parseData.d.ts +0 -1
  430. package/dist/graphql/parseLockedTableId.d.ts +0 -6
  431. package/dist/graphql/queries.d.ts +0 -14
  432. package/dist/graphql/types.d.ts +0 -69
  433. package/dist/index.js +0 -3
  434. package/dist/index.js.LICENSE.txt +0 -48
  435. package/dist/index.js.map +0 -1
  436. package/dist/sui-sdk/client.d.ts +0 -30
  437. package/dist/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +0 -5
  438. package/dist/sui-sdk/events/fetchEvents.d.ts +0 -2
  439. package/dist/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +0 -2
  440. package/dist/sui-sdk/events/fetchRebalanceEvents.d.ts +0 -4
  441. package/dist/sui-sdk/events/parseData.d.ts +0 -3
  442. package/dist/sui-sdk/events/types.d.ts +0 -93
  443. package/dist/sui-sdk/functions/fetchTableData.d.ts +0 -49
  444. package/dist/sui-sdk/functions/fetchUserVaultBalances.d.ts +0 -2
  445. package/dist/sui-sdk/functions/fetchUserVaults.d.ts +0 -2
  446. package/dist/sui-sdk/functions/getPortfolioAmounts.d.ts +0 -32
  447. package/dist/sui-sdk/functions/getReceipts.d.ts +0 -10
  448. package/dist/sui-sdk/transactions/constants.d.ts +0 -3
  449. package/dist/sui-sdk/transactions/fetchTransactions.d.ts +0 -3
  450. package/dist/sui-sdk/transactions/types.d.ts +0 -7
  451. package/dist/types.d.ts +0 -212
  452. package/dist/utils/clmm/prices.d.ts +0 -19
  453. package/dist/utils/clmm/tokenAmountFromLiquidity.d.ts +0 -10
  454. package/dist/utils/clmm/types.d.ts +0 -24
  455. package/dist/utils/constants.d.ts +0 -2
  456. package/dist/utils/getHoldersFromTransactionsUtils.d.ts +0 -5
  457. package/dist/utils/getReceipts.d.ts +0 -3
  458. package/dist/utils/hop.d.ts +0 -15
  459. package/dist/utils/prices.d.ts +0 -6
  460. package/dist/utils/simpleCache.d.ts +0 -9
  461. package/dist/utils/types.d.ts +0 -4
  462. package/dist/utils/userHoldings.d.ts +0 -5
  463. package/dist/vaultFunctions.d.ts +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n CoinName,\n DoubleAssetPoolNames,\n PoolName,\n SingleAssetPoolNames,\n AlphaFiVaultBalance,\n} from \"./common/types.js\";\n\nexport type GetUserTokensFromTransactionsParams = {\n poolNames?: string[];\n startTime?: number;\n endTime?: number;\n owners?: string[];\n};\n\nexport type GetUserTokensInUsdFromTransactionsParams = {\n poolNames?: string[];\n startTime?: number;\n endTime?: number;\n owners?: string[];\n userTokensHoldings?: [string, string, string][];\n};\n\nexport type AlphaReceiptFields = {\n id: { id: string };\n image_url: string;\n last_acc_reward_per_xtoken: {\n type: string;\n fields: {\n contents: [\n {\n type: string;\n fields: {\n key: {\n type: string;\n fields: {\n name: string;\n };\n };\n value: string;\n };\n },\n ];\n };\n };\n locked_balance: {\n type: string;\n fields: {\n head: string;\n id: {\n id: string;\n };\n size: string;\n tail: string;\n };\n };\n name: string;\n owner: string;\n pending_rewards: {\n type: string;\n fields: {\n contents: [\n {\n type: string;\n fields: {\n key: {\n type: string;\n fields: {\n name: string;\n };\n };\n value: string;\n };\n },\n ];\n };\n };\n pool_id: string;\n unlocked_xtokens: string;\n xTokenBalance: string;\n};\n\nexport type OtherReceiptFields = {\n id: { id: string };\n image_url: string;\n last_acc_reward_per_xtoken: {\n fields: {\n contents: [\n {\n fields: {\n key: {\n fields: {\n name: string;\n };\n type: string;\n };\n value: string;\n };\n type: string;\n },\n ];\n };\n type: string;\n };\n name: string;\n owner: string;\n pending_rewards: {\n fields: {\n contents: [\n {\n fields: {\n key: {\n fields: {\n name: string;\n };\n type: string;\n };\n value: string;\n };\n type: string;\n },\n ];\n };\n type: string;\n };\n pool_id: string;\n xTokenBalance: string;\n};\n\nexport type GetHoldersParams = {\n poolNames?: string[];\n startTime?: number;\n endTime?: number;\n};\n\nexport type GetTokenHoldingsParams = {\n poolNames?: PoolName[];\n startTime?: number;\n endTime?: number;\n};\n\nexport type LiquidityToUsdParams = {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n tokenPriceMap: Map<CoinName, string>;\n};\n\nexport type LiquidityToTokensParams = {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n};\n\nexport type UserUsdHoldings = {\n user: string;\n poolName: PoolName;\n usdHoldings: string;\n};\n\nexport type UserPoolLiquidity = {\n user: string;\n poolName: string;\n liquidity: string;\n};\n\nexport type UserPoolTokenHoldings =\n | SingleAssetTokenHoldings\n | DoubleAssetTokenHoldings;\n\nexport type SingleAssetTokenHoldings = {\n user: string;\n poolName: SingleAssetPoolNames;\n tokens: string;\n};\n\nexport type DoubleAssetTokenHoldings = {\n user: string;\n poolName: DoubleAssetPoolNames;\n tokenAmountA: string;\n tokenAmountB: string;\n};\n\nexport type MultiGetVaultBalancesParams = {\n poolNames?: PoolName[];\n startTime?: number;\n endTime?: number;\n};\nexport type SingleGetVaultBalancesParams = {\n address?: string;\n poolName?: PoolName;\n};\nexport type GetVaultBalanceParams =\n | SingleGetVaultBalancesParams\n | MultiGetVaultBalancesParams;\n\nexport type HoldingsObj = {\n owner: string;\n poolName: PoolName;\n holding: string;\n};\n\nexport type VaultBalance =\n | AlphaFiVaultBalance\n | undefined\n | AlphaFiMultiVaultBalance[];\n\nexport type AlphaFiMultiVaultBalance =\n | SingleAssetMultiVaultBalance\n | DoubleAssetMultiVaultBalance;\n\nexport type SingleAssetMultiVaultBalance = {\n owner: string;\n poolName: PoolName;\n tokens: string;\n tokensInUsd: string;\n};\nexport type DoubleAssetMultiVaultBalance = {\n owner: string;\n poolName: PoolName;\n tokenA: string;\n tokenB: string;\n tokensInUsd: string;\n};\n\nexport type GetVaultBalanceForActiveUsersParams = {\n poolNames?: PoolName[];\n startTime?: number;\n endTime?: number;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,IAAI,EAGJ,oBAAoB,EAKrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAiGjE,wBAAsB,aAAa,CACjC,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyC7B;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgBhE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgBhE;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAe;gBAEnB,UAAU,EAAE,UAAU;IAK5B,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE;IAoChD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkClE,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0C/D,0BAA0B,CAC9B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,WAAW,CAAC;CA6ExB"}
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CetusGateway = void 0;
4
+ exports.getAlphaPrice = getAlphaPrice;
5
+ exports.getUSDYPrice = getUSDYPrice;
6
+ exports.getBUCKPrice = getBUCKPrice;
7
+ exports.getPriceFromCetus = getPriceFromCetus;
8
+ const tslib_1 = require("tslib");
9
+ const cetus_sui_clmm_sdk_1 = require("@cetusprotocol/cetus-sui-clmm-sdk");
10
+ const bn_js_1 = tslib_1.__importDefault(require("bn.js"));
11
+ const coins_js_1 = require("../../common/coins.js");
12
+ const cetus_mainnet_config_js_1 = require("../../common/cetus_mainnet_config.js");
13
+ const prices_js_1 = require("../prices.js");
14
+ const simpleCache_js_1 = require("../simpleCache.js");
15
+ const poolData = {
16
+ "SUI/USDC": {
17
+ pair: "SUI/USDC",
18
+ id: "0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630",
19
+ a2b: false,
20
+ },
21
+ "USDC/SUI": {
22
+ pair: "USDC/SUI",
23
+ id: "0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630",
24
+ a2b: true,
25
+ },
26
+ "SUI/USDT": {
27
+ pair: "SUI/USDT",
28
+ id: "0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3",
29
+ a2b: false,
30
+ },
31
+ "USDT/SUI": {
32
+ pair: "USDT/SUI",
33
+ id: "0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3",
34
+ a2b: true,
35
+ },
36
+ "USDC/USDT": {
37
+ pair: "USDC/USDT",
38
+ id: "0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20",
39
+ a2b: false,
40
+ },
41
+ "USDT/USDC": {
42
+ pair: "USDT/USDC",
43
+ id: "0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20",
44
+ a2b: true,
45
+ },
46
+ "SUI/VSUI": {
47
+ pair: "SUI/VSUI",
48
+ id: "0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535",
49
+ a2b: false,
50
+ },
51
+ "VSUI/SUI": {
52
+ pair: "VSUI/SUI",
53
+ id: "0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535",
54
+ a2b: true,
55
+ },
56
+ "SUI/NAVX": {
57
+ pair: "SUI/NAVX",
58
+ id: "0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703",
59
+ a2b: false,
60
+ },
61
+ "NAVX/SUI": {
62
+ pair: "NAVX/SUI",
63
+ id: "0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703",
64
+ a2b: true,
65
+ },
66
+ "ALPHA/SUI": {
67
+ pair: "ALPHA/SUI",
68
+ id: "0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720",
69
+ a2b: true,
70
+ },
71
+ "SUI/ALPHA": {
72
+ pair: "ALPHA/SUI",
73
+ id: "0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720",
74
+ a2b: false,
75
+ },
76
+ "USDY/USDC": {
77
+ pair: "USDY/USDC",
78
+ id: "0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d",
79
+ a2b: true,
80
+ },
81
+ "USDC/USDY": {
82
+ pair: "USDY/USDC",
83
+ id: "0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d",
84
+ a2b: false,
85
+ },
86
+ "BUCK/USDC": {
87
+ pair: "BUCK/USDC",
88
+ id: "0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5",
89
+ a2b: true,
90
+ },
91
+ "USDC/BUCK": {
92
+ pair: "USDC/BUCK",
93
+ id: "0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5",
94
+ a2b: false,
95
+ },
96
+ };
97
+ const alphaPricePromiseCache = new simpleCache_js_1.SimpleCache(60000);
98
+ const alphaPriceCache = new simpleCache_js_1.SimpleCache(60000);
99
+ async function getAlphaPrice(ignoreCache = false) {
100
+ const cacheKey = `getAlphaPrice`;
101
+ if (ignoreCache) {
102
+ alphaPriceCache.delete(cacheKey);
103
+ alphaPricePromiseCache.delete(cacheKey);
104
+ }
105
+ const cachedResponse = alphaPriceCache.get(cacheKey);
106
+ if (cachedResponse) {
107
+ return cachedResponse;
108
+ }
109
+ let alphaPrice = 0;
110
+ let cachedPromise = alphaPricePromiseCache.get(cacheKey);
111
+ if (!cachedPromise) {
112
+ cachedPromise = (async () => {
113
+ const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
114
+ const swapOption = {
115
+ pair: { coinA: coins_js_1.coins.ALPHA, coinB: coins_js_1.coins.SUI },
116
+ senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
117
+ slippage: 1,
118
+ inAmount: new bn_js_1.default(1000000000),
119
+ };
120
+ const res = await cetusGateway.getPrice(swapOption);
121
+ const latestSuiPrice = await (0, prices_js_1.getLatestPrice)("SUI/USD");
122
+ if (latestSuiPrice) {
123
+ alphaPrice =
124
+ res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;
125
+ alphaPriceCache.set(cacheKey, alphaPrice);
126
+ alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache
127
+ }
128
+ return alphaPrice;
129
+ })().catch((error) => {
130
+ alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache
131
+ throw error;
132
+ });
133
+ alphaPricePromiseCache.set(cacheKey, cachedPromise);
134
+ }
135
+ return cachedPromise;
136
+ }
137
+ async function getUSDYPrice() {
138
+ const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
139
+ const swapOption = {
140
+ pair: { coinA: coins_js_1.coins.USDY, coinB: coins_js_1.coins.USDC },
141
+ senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
142
+ slippage: 1,
143
+ inAmount: new bn_js_1.default(1000000),
144
+ };
145
+ const res = await cetusGateway.getPrice(swapOption);
146
+ const latestUSDCPrice = await (0, prices_js_1.getLatestPrice)("USDC/USD");
147
+ if (latestUSDCPrice) {
148
+ return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;
149
+ }
150
+ else {
151
+ return undefined;
152
+ }
153
+ }
154
+ async function getBUCKPrice() {
155
+ const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
156
+ const swapOption = {
157
+ pair: { coinA: coins_js_1.coins.BUCK, coinB: coins_js_1.coins.USDC },
158
+ senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
159
+ slippage: 1,
160
+ inAmount: new bn_js_1.default(1000000000),
161
+ };
162
+ const res = await cetusGateway.getPrice(swapOption);
163
+ const latestUSDCPrice = await (0, prices_js_1.getLatestPrice)("USDC/USD");
164
+ if (latestUSDCPrice) {
165
+ return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;
166
+ }
167
+ else {
168
+ return undefined;
169
+ }
170
+ }
171
+ async function getPriceFromCetus(coinType) {
172
+ return coinType;
173
+ }
174
+ class CetusGateway {
175
+ constructor(sdkOptions) {
176
+ this.cetusSDK = new cetus_sui_clmm_sdk_1.CetusClmmSDK(sdkOptions);
177
+ this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;
178
+ }
179
+ async getPools(pairs) {
180
+ const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);
181
+ const matchedPools = [];
182
+ pairs.forEach((pair) => {
183
+ const filteredPools = allPools.filter((pool) => {
184
+ if (pair.coinA && pair.coinB) {
185
+ return ((pool.coinTypeA === pair.coinA.type &&
186
+ pool.coinTypeB === pair.coinB.type) ||
187
+ (pool.coinTypeA === pair.coinB.type &&
188
+ pool.coinTypeB === pair.coinA.type));
189
+ }
190
+ else if (pair.coinA && !pair.coinB) {
191
+ return (pool.coinTypeA === pair.coinA.type ||
192
+ pool.coinTypeB === pair.coinA.type);
193
+ }
194
+ else if (!pair.coinA && pair.coinB) {
195
+ return (pool.coinTypeB === pair.coinB.type ||
196
+ pool.coinTypeB === pair.coinB.type);
197
+ }
198
+ else {
199
+ return undefined;
200
+ }
201
+ });
202
+ matchedPools.push(...filteredPools);
203
+ });
204
+ console.log(matchedPools);
205
+ console.log(`Matched pools for specified pairs: ${matchedPools.length}`);
206
+ console.log(`Total pools: ${allPools.length}`);
207
+ return matchedPools;
208
+ }
209
+ async getPrice(options) {
210
+ const { pair, inAmount, outAmount } = options;
211
+ const poolDatum = poolData[pair.coinA.name + "/" + pair.coinB.name];
212
+ let amount = new bn_js_1.default(0);
213
+ let byAmountIn = true;
214
+ if (inAmount) {
215
+ byAmountIn = true;
216
+ amount = inAmount;
217
+ }
218
+ else if (outAmount) {
219
+ byAmountIn = false;
220
+ amount = outAmount;
221
+ }
222
+ const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);
223
+ const swapTicks = await this.cetusSDK.Pool.fetchTicks({
224
+ pool_id: pool.poolAddress,
225
+ coinTypeA: pool.coinTypeA,
226
+ coinTypeB: pool.coinTypeB,
227
+ });
228
+ const res = this.cetusSDK.Swap.calculateRates({
229
+ decimalsA: pair.coinA.expo,
230
+ decimalsB: pair.coinB.expo,
231
+ a2b: poolDatum.a2b,
232
+ byAmountIn,
233
+ amount,
234
+ swapTicks,
235
+ currentPool: pool,
236
+ });
237
+ return res;
238
+ }
239
+ async getTransaction(options) {
240
+ const res = await this.getPrice(options);
241
+ const { pair, senderAddress, slippage, inAmount, outAmount } = options;
242
+ const poolDatum = poolData[pair.coinA.name + "/" + pair.coinB.name];
243
+ const poolID = poolDatum.id;
244
+ const pool = await this.cetusSDK.Pool.getPool(poolID);
245
+ let byAmountIn = true;
246
+ if (inAmount) {
247
+ byAmountIn = true;
248
+ }
249
+ else if (outAmount) {
250
+ byAmountIn = false;
251
+ }
252
+ const slippagePercentage = new cetus_sui_clmm_sdk_1.Percentage(new bn_js_1.default(Math.floor(slippage * 100).toString()), new bn_js_1.default(100));
253
+ const toAmount = byAmountIn
254
+ ? res.estimatedAmountOut
255
+ : res.estimatedAmountIn;
256
+ const amountLimit = (0, cetus_sui_clmm_sdk_1.adjustForSlippage)(toAmount, slippagePercentage, !byAmountIn);
257
+ // TransactionBlock
258
+ this.cetusSDK.senderAddress = senderAddress;
259
+ const txb = this.cetusSDK.Swap.createSwapTransactionPayload({
260
+ pool_id: pool.poolAddress,
261
+ coinTypeA: pool.coinTypeA,
262
+ coinTypeB: pool.coinTypeB,
263
+ a2b: poolDatum.a2b,
264
+ by_amount_in: byAmountIn,
265
+ amount: res.amount.toString(),
266
+ amount_limit: amountLimit.toString(),
267
+ });
268
+ return txb;
269
+ }
270
+ async createPoolTransactionBlock(options) {
271
+ console.log((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coins[options.coinNameA].expo, coins_js_1.coins[options.coinNameB].expo);
272
+ const initializeSqrtPrice = cetus_sui_clmm_sdk_1.TickMath.priceToSqrtPriceX64((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coins[options.coinNameA].expo, coins_js_1.coins[options.coinNameB].expo).toString();
273
+ const current_tick_index = cetus_sui_clmm_sdk_1.TickMath.sqrtPriceX64ToTickIndex(new bn_js_1.default(Math.floor(parseFloat(initializeSqrtPrice)).toString()));
274
+ // build tick range
275
+ const lowerTick = cetus_sui_clmm_sdk_1.TickMath.getPrevInitializableTickIndex(new bn_js_1.default(Math.floor(current_tick_index).toString()).toNumber(), new bn_js_1.default(options.tickSpacing.toString()).toNumber());
276
+ const upperTick = cetus_sui_clmm_sdk_1.TickMath.getNextInitializableTickIndex(new bn_js_1.default(Math.floor(current_tick_index).toString()).toNumber(), new bn_js_1.default(options.tickSpacing.toString()).toNumber());
277
+ // slippage value 0.05 means 5%
278
+ const slippage = 0.01;
279
+ // Estimate liquidity and token amount from one amounts
280
+ const liquidityInput = cetus_sui_clmm_sdk_1.ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(lowerTick, upperTick, new bn_js_1.default(options.amount.toString()), options.isAmountA, true, slippage, new bn_js_1.default(initializeSqrtPrice.toString()));
281
+ // Estimate token a and token b amount
282
+ const amount_a = options.isAmountA
283
+ ? options.amount
284
+ : liquidityInput.tokenMaxA.toNumber();
285
+ const amount_b = options.isAmountA
286
+ ? liquidityInput.tokenMaxB.toNumber()
287
+ : options.amount;
288
+ console.log({
289
+ coinTypeA: coins_js_1.coins[options.coinNameA].type,
290
+ coinTypeB: coins_js_1.coins[options.coinNameB].type,
291
+ tick_spacing: options.tickSpacing,
292
+ initialize_sqrt_price: `${initializeSqrtPrice}`,
293
+ uri: options.imageUrl,
294
+ amount_a: amount_a,
295
+ amount_b: amount_b,
296
+ fix_amount_a: options.isAmountA,
297
+ tick_lower: lowerTick,
298
+ tick_upper: upperTick,
299
+ });
300
+ // build creatPoolPayload Payload
301
+ const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({
302
+ coinTypeA: coins_js_1.coins[options.coinNameA].type,
303
+ coinTypeB: coins_js_1.coins[options.coinNameB].type,
304
+ tick_spacing: options.tickSpacing,
305
+ initialize_sqrt_price: `${initializeSqrtPrice}`,
306
+ uri: options.imageUrl,
307
+ amount_a: amount_a,
308
+ amount_b: amount_b,
309
+ fix_amount_a: options.isAmountA,
310
+ tick_lower: lowerTick,
311
+ tick_upper: upperTick,
312
+ });
313
+ return txb;
314
+ }
315
+ }
316
+ exports.CetusGateway = CetusGateway;
317
+ //# sourceMappingURL=prices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SdkOptions,\n Pool,\n Percentage,\n adjustForSlippage,\n CalculateRatesResult,\n ClmmPoolUtil,\n TickMath,\n d,\n CetusClmmSDK,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { Coin } from \"../../common/types.js\";\nimport { coins } from \"../../common/coins.js\";\nimport { CetusSwapOptions, CreatePoolOptions } from \"./types.js\";\nimport { cetusMainnetSDKOptions } from \"../../common/cetus_mainnet_config.js\";\nimport { getLatestPrice } from \"../prices.js\";\nimport { SimpleCache } from \"../simpleCache.js\";\n\ninterface PoolData {\n pair: string;\n id: string;\n a2b: boolean;\n}\n\nconst poolData: { [key: string]: PoolData } = {\n \"SUI/USDC\": {\n pair: \"SUI/USDC\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: false,\n },\n \"USDC/SUI\": {\n pair: \"USDC/SUI\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: true,\n },\n \"SUI/USDT\": {\n pair: \"SUI/USDT\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: false,\n },\n \"USDT/SUI\": {\n pair: \"USDT/SUI\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: true,\n },\n \"USDC/USDT\": {\n pair: \"USDC/USDT\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: false,\n },\n \"USDT/USDC\": {\n pair: \"USDT/USDC\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: true,\n },\n \"SUI/VSUI\": {\n pair: \"SUI/VSUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: false,\n },\n \"VSUI/SUI\": {\n pair: \"VSUI/SUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: true,\n },\n \"SUI/NAVX\": {\n pair: \"SUI/NAVX\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: false,\n },\n \"NAVX/SUI\": {\n pair: \"NAVX/SUI\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: true,\n },\n \"ALPHA/SUI\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: true,\n },\n \"SUI/ALPHA\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: false,\n },\n \"USDY/USDC\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: true,\n },\n \"USDC/USDY\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: false,\n },\n \"BUCK/USDC\": {\n pair: \"BUCK/USDC\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: true,\n },\n \"USDC/BUCK\": {\n pair: \"USDC/BUCK\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: false,\n },\n};\n\nconst alphaPricePromiseCache = new SimpleCache<Promise<number>>(60000);\nconst alphaPriceCache = new SimpleCache<number>(60000);\n\nexport async function getAlphaPrice(\n ignoreCache: boolean = false,\n): Promise<number | undefined> {\n const cacheKey = `getAlphaPrice`;\n if (ignoreCache) {\n alphaPriceCache.delete(cacheKey);\n alphaPricePromiseCache.delete(cacheKey);\n }\n const cachedResponse = alphaPriceCache.get(cacheKey);\n\n if (cachedResponse) {\n return cachedResponse;\n }\n let alphaPrice = 0;\n let cachedPromise = alphaPricePromiseCache.get(cacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<number> => {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.ALPHA, coinB: coins.SUI },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const latestSuiPrice = await getLatestPrice(\"SUI/USD\");\n if (latestSuiPrice) {\n alphaPrice =\n res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;\n alphaPriceCache.set(cacheKey, alphaPrice);\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n }\n return alphaPrice;\n })().catch((error) => {\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n throw error;\n });\n\n alphaPricePromiseCache.set(cacheKey, cachedPromise);\n }\n\n return cachedPromise;\n}\n\nexport async function getUSDYPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.USDY, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const latestUSDCPrice = await getLatestPrice(\"USDC/USD\");\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getBUCKPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.BUCK, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const latestUSDCPrice = await getLatestPrice(\"USDC/USD\");\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getPriceFromCetus(coinType: string): Promise<string> {\n return coinType;\n}\n\nexport class CetusGateway {\n private cetusSDK: CetusClmmSDK;\n\n constructor(sdkOptions: SdkOptions) {\n this.cetusSDK = new CetusClmmSDK(sdkOptions);\n this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;\n }\n\n async getPools(pairs: { coinA?: Coin; coinB?: Coin }[]) {\n const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);\n const matchedPools: Pool[] = [];\n\n pairs.forEach((pair) => {\n const filteredPools: Pool[] = allPools.filter((pool: Pool) => {\n if (pair.coinA && pair.coinB) {\n return (\n (pool.coinTypeA === pair.coinA.type &&\n pool.coinTypeB === pair.coinB.type) ||\n (pool.coinTypeA === pair.coinB.type &&\n pool.coinTypeB === pair.coinA.type)\n );\n } else if (pair.coinA && !pair.coinB) {\n return (\n pool.coinTypeA === pair.coinA.type ||\n pool.coinTypeB === pair.coinA.type\n );\n } else if (!pair.coinA && pair.coinB) {\n return (\n pool.coinTypeB === pair.coinB.type ||\n pool.coinTypeB === pair.coinB.type\n );\n } else {\n return undefined;\n }\n });\n matchedPools.push(...filteredPools);\n });\n\n console.log(matchedPools);\n console.log(`Matched pools for specified pairs: ${matchedPools.length}`);\n console.log(`Total pools: ${allPools.length}`);\n return matchedPools;\n }\n\n async getPrice(options: CetusSwapOptions): Promise<CalculateRatesResult> {\n const { pair, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n let amount: BN = new BN(0);\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n amount = inAmount;\n } else if (outAmount) {\n byAmountIn = false;\n amount = outAmount;\n }\n\n const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);\n\n const swapTicks = await this.cetusSDK.Pool.fetchTicks({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n });\n\n const res = this.cetusSDK.Swap.calculateRates({\n decimalsA: pair.coinA.expo,\n decimalsB: pair.coinB.expo,\n a2b: poolDatum.a2b,\n byAmountIn,\n amount,\n swapTicks,\n currentPool: pool,\n });\n\n return res;\n }\n\n async getTransaction(options: CetusSwapOptions): Promise<Transaction> {\n const res = await this.getPrice(options);\n\n const { pair, senderAddress, slippage, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n const poolID = poolDatum.id;\n const pool = await this.cetusSDK.Pool.getPool(poolID);\n\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n } else if (outAmount) {\n byAmountIn = false;\n }\n\n const slippagePercentage = new Percentage(\n new BN(Math.floor(slippage * 100).toString()),\n new BN(100),\n );\n const toAmount = byAmountIn\n ? res.estimatedAmountOut\n : res.estimatedAmountIn;\n const amountLimit = adjustForSlippage(\n toAmount,\n slippagePercentage,\n !byAmountIn,\n );\n // TransactionBlock\n this.cetusSDK.senderAddress = senderAddress;\n const txb = this.cetusSDK.Swap.createSwapTransactionPayload({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n a2b: poolDatum.a2b,\n by_amount_in: byAmountIn,\n amount: res.amount.toString(),\n amount_limit: amountLimit.toString(),\n });\n\n return txb;\n }\n\n async createPoolTransactionBlock(\n options: CreatePoolOptions,\n ): Promise<Transaction> {\n console.log(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n );\n\n const initializeSqrtPrice = TickMath.priceToSqrtPriceX64(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n ).toString();\n\n const current_tick_index = TickMath.sqrtPriceX64ToTickIndex(\n new BN(Math.floor(parseFloat(initializeSqrtPrice)).toString()),\n );\n\n // build tick range\n const lowerTick = TickMath.getPrevInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n const upperTick = TickMath.getNextInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n\n // slippage value 0.05 means 5%\n const slippage = 0.01;\n // Estimate liquidity and token amount from one amounts\n const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(\n lowerTick,\n upperTick,\n new BN(options.amount.toString()),\n options.isAmountA,\n true,\n slippage,\n new BN(initializeSqrtPrice.toString()),\n );\n\n // Estimate token a and token b amount\n const amount_a = options.isAmountA\n ? options.amount\n : liquidityInput.tokenMaxA.toNumber();\n const amount_b = options.isAmountA\n ? liquidityInput.tokenMaxB.toNumber()\n : options.amount;\n\n console.log({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n // build creatPoolPayload Payload\n const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n return txb;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenAmountFromLiquidity.d.ts","sourceRoot":"","sources":["../../../../src/utils/clmm/tokenAmountFromLiquidity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvB,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAIzE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAyIpE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,aAsH7D;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,aAKxD;AAKD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,OAAO,GACf;IAAE,YAAY,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,SAAS,CAAA;CAAE,CA0CtD"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signedShiftRight = signedShiftRight;
4
+ exports.tickIndexToSqrtPricePositive = tickIndexToSqrtPricePositive;
5
+ exports.tickIndexToSqrtPriceNegative = tickIndexToSqrtPriceNegative;
6
+ exports.tickIndexToSqrtPriceX64 = tickIndexToSqrtPriceX64;
7
+ exports.getTokenAmountsFromLiquidity = getTokenAmountsFromLiquidity;
8
+ const tslib_1 = require("tslib");
9
+ /* eslint-disable no-bitwise */
10
+ const bignumber_js_1 = require("bignumber.js");
11
+ const bn_js_1 = tslib_1.__importDefault(require("bn.js"));
12
+ const decimal_js_1 = require("decimal.js");
13
+ function signedShiftRight(n0, shiftBy, bitWidth) {
14
+ const twoN0 = n0.toTwos(bitWidth).shrn(shiftBy);
15
+ twoN0.imaskn(bitWidth - shiftBy + 1);
16
+ return twoN0.fromTwos(bitWidth - shiftBy);
17
+ }
18
+ function tickIndexToSqrtPricePositive(tick) {
19
+ let ratio;
20
+ if ((tick & 1) !== 0) {
21
+ ratio = new bn_js_1.default("79232123823359799118286999567");
22
+ }
23
+ else {
24
+ ratio = new bn_js_1.default("79228162514264337593543950336");
25
+ }
26
+ if ((tick & 2) !== 0) {
27
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79236085330515764027303304731")), 96, 256);
28
+ }
29
+ if ((tick & 4) !== 0) {
30
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79244008939048815603706035061")), 96, 256);
31
+ }
32
+ if ((tick & 8) !== 0) {
33
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79259858533276714757314932305")), 96, 256);
34
+ }
35
+ if ((tick & 16) !== 0) {
36
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79291567232598584799939703904")), 96, 256);
37
+ }
38
+ if ((tick & 32) !== 0) {
39
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79355022692464371645785046466")), 96, 256);
40
+ }
41
+ if ((tick & 64) !== 0) {
42
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79482085999252804386437311141")), 96, 256);
43
+ }
44
+ if ((tick & 128) !== 0) {
45
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79736823300114093921829183326")), 96, 256);
46
+ }
47
+ if ((tick & 256) !== 0) {
48
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("80248749790819932309965073892")), 96, 256);
49
+ }
50
+ if ((tick & 512) !== 0) {
51
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("81282483887344747381513967011")), 96, 256);
52
+ }
53
+ if ((tick & 1024) !== 0) {
54
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("83390072131320151908154831281")), 96, 256);
55
+ }
56
+ if ((tick & 2048) !== 0) {
57
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("87770609709833776024991924138")), 96, 256);
58
+ }
59
+ if ((tick & 4096) !== 0) {
60
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("97234110755111693312479820773")), 96, 256);
61
+ }
62
+ if ((tick & 8192) !== 0) {
63
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("119332217159966728226237229890")), 96, 256);
64
+ }
65
+ if ((tick & 16384) !== 0) {
66
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("179736315981702064433883588727")), 96, 256);
67
+ }
68
+ if ((tick & 32768) !== 0) {
69
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("407748233172238350107850275304")), 96, 256);
70
+ }
71
+ if ((tick & 65536) !== 0) {
72
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("2098478828474011932436660412517")), 96, 256);
73
+ }
74
+ if ((tick & 131072) !== 0) {
75
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("55581415166113811149459800483533")), 96, 256);
76
+ }
77
+ if ((tick & 262144) !== 0) {
78
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("38992368544603139932233054999993551")), 96, 256);
79
+ }
80
+ return new bignumber_js_1.BigNumber(signedShiftRight(ratio, 32, 256).toString());
81
+ }
82
+ function tickIndexToSqrtPriceNegative(tickIndex) {
83
+ const tick = Math.abs(tickIndex);
84
+ let ratio;
85
+ if ((tick & 1) !== 0) {
86
+ ratio = new bn_js_1.default("18445821805675392311");
87
+ }
88
+ else {
89
+ ratio = new bn_js_1.default("18446744073709551616");
90
+ }
91
+ if ((tick & 2) !== 0) {
92
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18444899583751176498")), 64, 256);
93
+ }
94
+ if ((tick & 4) !== 0) {
95
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18443055278223354162")), 64, 256);
96
+ }
97
+ if ((tick & 8) !== 0) {
98
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18439367220385604838")), 64, 256);
99
+ }
100
+ if ((tick & 16) !== 0) {
101
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18431993317065449817")), 64, 256);
102
+ }
103
+ if ((tick & 32) !== 0) {
104
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18417254355718160513")), 64, 256);
105
+ }
106
+ if ((tick & 64) !== 0) {
107
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18387811781193591352")), 64, 256);
108
+ }
109
+ if ((tick & 128) !== 0) {
110
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18329067761203520168")), 64, 256);
111
+ }
112
+ if ((tick & 256) !== 0) {
113
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18212142134806087854")), 64, 256);
114
+ }
115
+ if ((tick & 512) !== 0) {
116
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("17980523815641551639")), 64, 256);
117
+ }
118
+ if ((tick & 1024) !== 0) {
119
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("17526086738831147013")), 64, 256);
120
+ }
121
+ if ((tick & 2048) !== 0) {
122
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("16651378430235024244")), 64, 256);
123
+ }
124
+ if ((tick & 4096) !== 0) {
125
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("15030750278693429944")), 64, 256);
126
+ }
127
+ if ((tick & 8192) !== 0) {
128
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("12247334978882834399")), 64, 256);
129
+ }
130
+ if ((tick & 16384) !== 0) {
131
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("8131365268884726200")), 64, 256);
132
+ }
133
+ if ((tick & 32768) !== 0) {
134
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("3584323654723342297")), 64, 256);
135
+ }
136
+ if ((tick & 65536) !== 0) {
137
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("696457651847595233")), 64, 256);
138
+ }
139
+ if ((tick & 131072) !== 0) {
140
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("26294789957452057")), 64, 256);
141
+ }
142
+ if ((tick & 262144) !== 0) {
143
+ ratio = signedShiftRight(ratio.mul(new bn_js_1.default("37481735321082")), 64, 256);
144
+ }
145
+ return new bignumber_js_1.BigNumber(ratio.toString());
146
+ }
147
+ function tickIndexToSqrtPriceX64(tickIndex) {
148
+ if (tickIndex > 0) {
149
+ return new bignumber_js_1.BigNumber(tickIndexToSqrtPricePositive(tickIndex));
150
+ }
151
+ return new bignumber_js_1.BigNumber(tickIndexToSqrtPriceNegative(tickIndex));
152
+ }
153
+ const fromX64Decimal = (num) => num.times(decimal_js_1.Decimal.pow(2, -64));
154
+ const toX64Decimal = (num) => num.times(decimal_js_1.Decimal.pow(2, 64));
155
+ function getTokenAmountsFromLiquidity(liquidity, tickCurrentIndex, tickLowerIndex, tickUpperIndex, roundUp) {
156
+ const currentSqrtPrice = tickIndexToSqrtPriceX64(tickCurrentIndex);
157
+ const lowerSqrtPrice = tickIndexToSqrtPriceX64(tickLowerIndex);
158
+ const upperSqrtPrice = tickIndexToSqrtPriceX64(tickUpperIndex);
159
+ const decLiquidity = new decimal_js_1.Decimal(liquidity.toString());
160
+ const currentPrice = new decimal_js_1.Decimal(currentSqrtPrice.toString());
161
+ const lowerPrice = new decimal_js_1.Decimal(lowerSqrtPrice.toString());
162
+ const upperPrice = new decimal_js_1.Decimal(upperSqrtPrice.toString());
163
+ let tokenA;
164
+ let tokenB;
165
+ if (currentSqrtPrice.lt(lowerSqrtPrice)) {
166
+ // x = L * (pb - pa) / (pa * pb)
167
+ tokenA = toX64Decimal(decLiquidity)
168
+ .times(upperPrice.sub(lowerPrice))
169
+ .div(lowerPrice.mul(upperPrice));
170
+ tokenB = new decimal_js_1.Decimal(0);
171
+ }
172
+ else if (currentSqrtPrice.lt(upperSqrtPrice)) {
173
+ // x = L * (pb - p) / (p * pb)
174
+ // y = L * (p - pa)
175
+ tokenA = toX64Decimal(decLiquidity)
176
+ .times(upperPrice.sub(currentPrice))
177
+ .div(currentPrice.mul(upperPrice));
178
+ tokenB = fromX64Decimal(decLiquidity.mul(currentPrice.sub(lowerPrice)));
179
+ }
180
+ else {
181
+ // y = L * (pb - pa)
182
+ tokenA = new decimal_js_1.Decimal(0);
183
+ tokenB = fromX64Decimal(decLiquidity.mul(upperPrice.sub(lowerPrice)));
184
+ }
185
+ if (roundUp) {
186
+ return {
187
+ tokenAmountA: new bignumber_js_1.BigNumber(tokenA.ceil().toString()),
188
+ tokenAmountB: new bignumber_js_1.BigNumber(tokenB.ceil().toString()),
189
+ };
190
+ }
191
+ return {
192
+ tokenAmountA: new bignumber_js_1.BigNumber(tokenA.floor().toString()),
193
+ tokenAmountB: new bignumber_js_1.BigNumber(tokenB.floor().toString()),
194
+ };
195
+ }
196
+ //# sourceMappingURL=tokenAmountFromLiquidity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenAmountFromLiquidity.js","sourceRoot":"","sources":["../../../../src/utils/clmm/tokenAmountFromLiquidity.ts"],"names":[],"mappings":";;AAKA,4CAIC;AAED,oEAyIC;AAED,oEAsHC;AAED,0DAKC;AAKD,oEAgDC;;AAxUD,+BAA+B;AAC/B,+CAAyC;AACzC,0DAAuB;AACvB,2CAAqC;AAErC,SAAgB,gBAAgB,CAAC,EAAM,EAAE,OAAe,EAAE,QAAgB;IACxE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,4BAA4B,CAAC,IAAY;IACvD,IAAI,KAAS,CAAC;IAEd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,+BAA+B,CAAC,CAAC,EAClD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,gCAAgC,CAAC,CAAC,EACnD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,gCAAgC,CAAC,CAAC,EACnD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,gCAAgC,CAAC,CAAC,EACnD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,iCAAiC,CAAC,CAAC,EACpD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,kCAAkC,CAAC,CAAC,EACrD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,qCAAqC,CAAC,CAAC,EACxD,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,wBAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,4BAA4B,CAAC,SAAiB;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,KAAS,CAAC;IAEd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,gBAAgB,CACtB,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,sBAAsB,CAAC,CAAC,EACzC,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,eAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,IAAI,wBAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,wBAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,wBAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAErE,SAAgB,4BAA4B,CAC1C,SAAoB,EACpB,gBAAwB,EACxB,cAAsB,EACtB,cAAsB,EACtB,OAAgB;IAEhB,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,IAAI,oBAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,oBAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,IAAI,MAAe,CAAC;IACpB,IAAI,MAAe,CAAC;IAEpB,IAAI,gBAAgB,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;QACxC,gCAAgC;QAChC,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC;aAChC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aACjC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACnC,MAAM,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,8BAA8B;QAC9B,mBAAmB;QACnB,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC;aAChC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACnC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,oBAAoB;QACpB,MAAM,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,YAAY,EAAE,IAAI,wBAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YACrD,YAAY,EAAE,IAAI,wBAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY,EAAE,IAAI,wBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtD,YAAY,EAAE,IAAI,wBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC","sourcesContent":["/* eslint-disable no-bitwise */\nimport { BigNumber } from \"bignumber.js\";\nimport BN from \"bn.js\";\nimport { Decimal } from \"decimal.js\";\n\nexport function signedShiftRight(n0: BN, shiftBy: number, bitWidth: number) {\n const twoN0 = n0.toTwos(bitWidth).shrn(shiftBy);\n twoN0.imaskn(bitWidth - shiftBy + 1);\n return twoN0.fromTwos(bitWidth - shiftBy);\n}\n\nexport function tickIndexToSqrtPricePositive(tick: number): BigNumber {\n let ratio: BN;\n\n if ((tick & 1) !== 0) {\n ratio = new BN(\"79232123823359799118286999567\");\n } else {\n ratio = new BN(\"79228162514264337593543950336\");\n }\n\n if ((tick & 2) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79236085330515764027303304731\")),\n 96,\n 256,\n );\n }\n if ((tick & 4) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79244008939048815603706035061\")),\n 96,\n 256,\n );\n }\n if ((tick & 8) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79259858533276714757314932305\")),\n 96,\n 256,\n );\n }\n if ((tick & 16) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79291567232598584799939703904\")),\n 96,\n 256,\n );\n }\n if ((tick & 32) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79355022692464371645785046466\")),\n 96,\n 256,\n );\n }\n if ((tick & 64) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79482085999252804386437311141\")),\n 96,\n 256,\n );\n }\n if ((tick & 128) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79736823300114093921829183326\")),\n 96,\n 256,\n );\n }\n if ((tick & 256) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"80248749790819932309965073892\")),\n 96,\n 256,\n );\n }\n if ((tick & 512) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"81282483887344747381513967011\")),\n 96,\n 256,\n );\n }\n if ((tick & 1024) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"83390072131320151908154831281\")),\n 96,\n 256,\n );\n }\n if ((tick & 2048) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"87770609709833776024991924138\")),\n 96,\n 256,\n );\n }\n if ((tick & 4096) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"97234110755111693312479820773\")),\n 96,\n 256,\n );\n }\n if ((tick & 8192) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"119332217159966728226237229890\")),\n 96,\n 256,\n );\n }\n if ((tick & 16384) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"179736315981702064433883588727\")),\n 96,\n 256,\n );\n }\n if ((tick & 32768) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"407748233172238350107850275304\")),\n 96,\n 256,\n );\n }\n if ((tick & 65536) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"2098478828474011932436660412517\")),\n 96,\n 256,\n );\n }\n if ((tick & 131072) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"55581415166113811149459800483533\")),\n 96,\n 256,\n );\n }\n if ((tick & 262144) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"38992368544603139932233054999993551\")),\n 96,\n 256,\n );\n }\n\n return new BigNumber(signedShiftRight(ratio, 32, 256).toString());\n}\n\nexport function tickIndexToSqrtPriceNegative(tickIndex: number) {\n const tick = Math.abs(tickIndex);\n let ratio: BN;\n\n if ((tick & 1) !== 0) {\n ratio = new BN(\"18445821805675392311\");\n } else {\n ratio = new BN(\"18446744073709551616\");\n }\n\n if ((tick & 2) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18444899583751176498\")),\n 64,\n 256,\n );\n }\n if ((tick & 4) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18443055278223354162\")),\n 64,\n 256,\n );\n }\n if ((tick & 8) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18439367220385604838\")),\n 64,\n 256,\n );\n }\n if ((tick & 16) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18431993317065449817\")),\n 64,\n 256,\n );\n }\n if ((tick & 32) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18417254355718160513\")),\n 64,\n 256,\n );\n }\n if ((tick & 64) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18387811781193591352\")),\n 64,\n 256,\n );\n }\n if ((tick & 128) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18329067761203520168\")),\n 64,\n 256,\n );\n }\n if ((tick & 256) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18212142134806087854\")),\n 64,\n 256,\n );\n }\n if ((tick & 512) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"17980523815641551639\")),\n 64,\n 256,\n );\n }\n if ((tick & 1024) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"17526086738831147013\")),\n 64,\n 256,\n );\n }\n if ((tick & 2048) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"16651378430235024244\")),\n 64,\n 256,\n );\n }\n if ((tick & 4096) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"15030750278693429944\")),\n 64,\n 256,\n );\n }\n if ((tick & 8192) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"12247334978882834399\")),\n 64,\n 256,\n );\n }\n if ((tick & 16384) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"8131365268884726200\")), 64, 256);\n }\n if ((tick & 32768) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"3584323654723342297\")), 64, 256);\n }\n if ((tick & 65536) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"696457651847595233\")), 64, 256);\n }\n if ((tick & 131072) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"26294789957452057\")), 64, 256);\n }\n if ((tick & 262144) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"37481735321082\")), 64, 256);\n }\n\n return new BigNumber(ratio.toString());\n}\n\nexport function tickIndexToSqrtPriceX64(tickIndex: number) {\n if (tickIndex > 0) {\n return new BigNumber(tickIndexToSqrtPricePositive(tickIndex));\n }\n return new BigNumber(tickIndexToSqrtPriceNegative(tickIndex));\n}\n\nconst fromX64Decimal = (num: Decimal) => num.times(Decimal.pow(2, -64));\nconst toX64Decimal = (num: Decimal) => num.times(Decimal.pow(2, 64));\n\nexport function getTokenAmountsFromLiquidity(\n liquidity: BigNumber,\n tickCurrentIndex: number,\n tickLowerIndex: number,\n tickUpperIndex: number,\n roundUp: boolean,\n): { tokenAmountA: BigNumber; tokenAmountB: BigNumber } {\n const currentSqrtPrice = tickIndexToSqrtPriceX64(tickCurrentIndex);\n const lowerSqrtPrice = tickIndexToSqrtPriceX64(tickLowerIndex);\n const upperSqrtPrice = tickIndexToSqrtPriceX64(tickUpperIndex);\n\n const decLiquidity = new Decimal(liquidity.toString());\n const currentPrice = new Decimal(currentSqrtPrice.toString());\n const lowerPrice = new Decimal(lowerSqrtPrice.toString());\n const upperPrice = new Decimal(upperSqrtPrice.toString());\n let tokenA: Decimal;\n let tokenB: Decimal;\n\n if (currentSqrtPrice.lt(lowerSqrtPrice)) {\n // x = L * (pb - pa) / (pa * pb)\n tokenA = toX64Decimal(decLiquidity)\n .times(upperPrice.sub(lowerPrice))\n .div(lowerPrice.mul(upperPrice));\n tokenB = new Decimal(0);\n } else if (currentSqrtPrice.lt(upperSqrtPrice)) {\n // x = L * (pb - p) / (p * pb)\n // y = L * (p - pa)\n tokenA = toX64Decimal(decLiquidity)\n .times(upperPrice.sub(currentPrice))\n .div(currentPrice.mul(upperPrice));\n tokenB = fromX64Decimal(decLiquidity.mul(currentPrice.sub(lowerPrice)));\n } else {\n // y = L * (pb - pa)\n tokenA = new Decimal(0);\n tokenB = fromX64Decimal(decLiquidity.mul(upperPrice.sub(lowerPrice)));\n }\n\n if (roundUp) {\n return {\n tokenAmountA: new BigNumber(tokenA.ceil().toString()),\n tokenAmountB: new BigNumber(tokenB.ceil().toString()),\n };\n }\n\n return {\n tokenAmountA: new BigNumber(tokenA.floor().toString()),\n tokenAmountB: new BigNumber(tokenB.floor().toString()),\n };\n}\n"]}