@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":"parseData.js","sourceRoot":"","sources":["../../../../src/sui-sdk/events/parseData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,UAAU,wBAAwB,CAAC,MAAkC;IACzE,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,uBAAuB,CAAC,MAAkC;IACxE,IAAI,WAAW,GAA+B,EAAE,CAAC;IACjD,MAAM,kBAAkB,GAAqC,EAAE,CAAC;IAChE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,0BAA0B,CAAC;QACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,kBAAkB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACpC,CAAC;IACH,CAAC;IACD,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE;QACvB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC,CACF,CAAC;IACF,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["import { LiquidityChangeEventNode } from \"./types.js\";\nimport { poolIdPoolNameMap } from \"../../common/maps.js\";\n\nexport function parseHoldersFromLCEvents(events: LiquidityChangeEventNode[]) {\n const holders: Set<string> = new Set<string>();\n for (const event of events) {\n holders.add(event.sender);\n }\n return Array.from(holders);\n}\n\n// From descending order events\nexport function parseXTokensFromLCEvent(events: LiquidityChangeEventNode[]) {\n let userXTokens: [string, string, string][] = [];\n const ownerPoolTokensMap: { [owner_pool: string]: string } = {};\n for (const event of events) {\n const sender = event.sender;\n const xTokens = event.user_total_x_token_balance;\n const pool = poolIdPoolNameMap[event.pool_id];\n const key = `${sender}_${pool}`;\n if (!ownerPoolTokensMap[key]) {\n ownerPoolTokensMap[key] = xTokens;\n }\n }\n userXTokens = Object.entries(ownerPoolTokensMap).map(\n ([owner_pool, xToken]) => {\n return [owner_pool.split(\"_\")[0], owner_pool.split(\"_\")[1], xToken];\n },\n );\n return userXTokens;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/events/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/sui-sdk/events/types.ts"],"names":[],"mappings":"","sourcesContent":["import { PoolName } from \"../../common/types.js\";\n\ninterface CommonEventAttributes {\n type: string;\n timestamp: number;\n}\n\nexport interface CetusAutoCompoundingEvent {\n compound_amount_a: bigint;\n compound_amount_b: bigint;\n current_liquidity: bigint;\n fee_collected_a: bigint;\n fee_collected_b: bigint;\n free_balance_a: bigint;\n free_balance_b: bigint;\n investor_id: string;\n total_amount_a: bigint;\n total_amount_b: bigint;\n}\n\nexport interface NaviAutoCompoundingEvent {\n compound_amount: bigint;\n fee_collected: bigint;\n investor_id: string;\n location: number;\n total_amount: bigint;\n}\n\nexport interface NaviLoopAutoCompoundingEvent extends NaviAutoCompoundingEvent {\n cur_total_debt: bigint;\n accrued_interest: bigint;\n}\n\nexport interface RebalanceEvent {\n investor_id: string;\n lower_tick_after: string;\n upper_tick_after: string;\n sqrt_price_after: string;\n amount_a_before: string;\n amount_b_before: string;\n amount_a_after: string;\n amount_b_after: string;\n}\n\nexport interface AlphaAutoCompoundingEvent {\n amount: string;\n investor_id: string;\n}\n\nexport interface CetusLiquidityChangeEvent {\n amount_a: string;\n amount_b: string;\n event_type: number;\n fee_collected_a: string;\n fee_collected_b: string;\n pool_id: string;\n sender: string;\n tokens_invested: string;\n total_amount_a: string;\n total_amount_b: string;\n user_total_x_token_balance: string;\n x_token_supply: string;\n}\n\nexport interface NaviLiquidityChangeEvent {\n amount: string;\n event_type: number;\n fee_collected: string;\n pool_id: string;\n sender: string;\n tokens_invested: string;\n user_total_x_token_balance: string;\n x_token_supply: string;\n}\n\nexport interface AlphaLiquidityChangeEvent {\n amount: string;\n event_type: number;\n fee_collected: string;\n pool_id: string;\n sender: string;\n tokens_invested: string;\n user_total_x_token_balance: string;\n x_token_supply: string;\n}\n\nexport type AutoCompoundingEventNode =\n | (CetusAutoCompoundingEvent & CommonEventAttributes)\n | (NaviAutoCompoundingEvent & CommonEventAttributes)\n | (NaviLoopAutoCompoundingEvent & CommonEventAttributes)\n | (AlphaAutoCompoundingEvent & CommonEventAttributes);\n\nexport type RebalanceEventNode = RebalanceEvent & CommonEventAttributes;\n\nexport type LiquidityChangeEventNode =\n | (CetusLiquidityChangeEvent & CommonEventAttributes)\n | (NaviLiquidityChangeEvent & CommonEventAttributes)\n | (AlphaLiquidityChangeEvent & CommonEventAttributes);\n\nexport type EventNode =\n | AutoCompoundingEventNode\n | RebalanceEventNode\n | LiquidityChangeEventNode;\n// export type EventNode = AutoCompoundingEventNode | RebalanceEventNode;\n\nexport type FetchAutoCompoundingEventsParams = {\n startTime?: number;\n endTime?: number;\n poolNames?: PoolName[];\n};\n\nexport type FetchRebalanceEventsParams = FetchAutoCompoundingEventsParams;\n\nexport type FetchLiquidityChangeEventsParams = FetchAutoCompoundingEventsParams;\n\nexport type FetchEventsParams = {\n eventTypes: string[];\n startTime?: number;\n endTime?: number;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchTableData.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/fetchTableData.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,iBAAiB,EAAE,OAAO,CAAC;QAC3B,MAAM,EAAE;YACN,EAAE,EAAE;gBACF,EAAE,EAAE,MAAM,CAAC;aACZ,CAAC;YACF,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,CAAC;gBACb,MAAM,EAAE;oBAAE,IAAI,EAAE,MAAM,CAAC;oBAAC,IAAI,EAAE,MAAM,CAAC;oBAAC,KAAK,EAAE,MAAM,CAAA;iBAAE,CAAC;aACvD,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,CAsDrC;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAC9B,OAAO,CAAC,YAAY,EAAE,CAAC,CAsBzB"}
@@ -0,0 +1,73 @@
1
+ import { getSuiClient } from "../client.js";
2
+ import { Decimal } from "decimal.js";
3
+ import { getPoolExchangeRate } from "./getReceipts.js";
4
+ export async function getTableDataXtokens(owner, table) {
5
+ let locked_alpha_pos_arr = [];
6
+ const suiClient = getSuiClient();
7
+ let currentCursor = null;
8
+ do {
9
+ const response = await suiClient.getDynamicFields({
10
+ parentId: table,
11
+ cursor: currentCursor,
12
+ });
13
+ locked_alpha_pos_arr = locked_alpha_pos_arr.concat(response.data);
14
+ if (response.hasNextPage && response.nextCursor) {
15
+ currentCursor = response.nextCursor;
16
+ }
17
+ else {
18
+ break;
19
+ }
20
+ } while (true);
21
+ if (locked_alpha_pos_arr.length > 0) {
22
+ const promises = locked_alpha_pos_arr.map(async (locked_obj) => {
23
+ const locked_item1 = await suiClient.getDynamicFieldObject({
24
+ parentId: table,
25
+ name: locked_obj.name,
26
+ });
27
+ if (locked_item1 && locked_item1.data) {
28
+ const locked_item_object = locked_item1.data;
29
+ const value = locked_item_object.content.fields.value.fields.value;
30
+ return {
31
+ value: value,
32
+ timestamp: locked_item_object.content.fields.name,
33
+ };
34
+ }
35
+ // If no data, return undefined or handle as needed
36
+ return undefined;
37
+ });
38
+ const results = (await Promise.all(promises)).filter((result) => result !== undefined);
39
+ const unlocks = results.map((o) => {
40
+ return {
41
+ address: owner,
42
+ timestampMs: Number(o.timestamp),
43
+ tokens: o.value,
44
+ };
45
+ });
46
+ return unlocks;
47
+ }
48
+ return undefined;
49
+ }
50
+ export async function getUnlocksData(owner_table) {
51
+ let allUnlocksData = [];
52
+ const alphaExchangeRate = await getPoolExchangeRate("ALPHA", true);
53
+ for (const entry of owner_table) {
54
+ const [owner, table] = entry;
55
+ const unlocksXtokens = await getTableDataXtokens(owner, table);
56
+ if (unlocksXtokens) {
57
+ const unlocks = unlocksXtokens?.map((o) => {
58
+ const tokens = new Decimal(o.tokens)
59
+ .mul(alphaExchangeRate)
60
+ .div(1e9)
61
+ .toString();
62
+ return {
63
+ address: o.address,
64
+ timestampMs: o.timestampMs,
65
+ tokens: tokens,
66
+ };
67
+ });
68
+ allUnlocksData = allUnlocksData.concat(unlocks);
69
+ }
70
+ }
71
+ return allUnlocksData;
72
+ }
73
+ //# sourceMappingURL=fetchTableData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchTableData.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/fetchTableData.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSuiClient } from \"../client.js\";\nimport { Decimal } from \"decimal.js\";\nimport { getPoolExchangeRate } from \"./getReceipts.js\";\n\nexport interface LockedAlphaObject {\n name: { type: string; value: string };\n bcsName: string;\n type: string;\n objectType: string;\n objectId: string;\n version: string;\n digest: string;\n}\n\nexport interface LockedAlphaItem {\n objectId: string;\n version: string;\n digest: string;\n type: string;\n owner: {\n ObjectOwner: string;\n };\n previousTransaction: string;\n storageRebate: string;\n content: {\n dataType: string;\n type: string;\n hasPublicTransfer: boolean;\n fields: {\n id: {\n id: string;\n };\n name: string;\n value: {\n type: string;\n fields: { next: string; prev: string; value: string };\n };\n };\n };\n}\n\nexport type AlphaUnlocks = {\n address: string;\n tokens: string;\n timestampMs: number;\n};\n\nexport async function getTableDataXtokens(\n owner: string,\n table: string,\n): Promise<AlphaUnlocks[] | undefined> {\n let locked_alpha_pos_arr: LockedAlphaObject[] = [];\n const suiClient = getSuiClient();\n\n let currentCursor: string | null | undefined = null;\n do {\n const response = await suiClient.getDynamicFields({\n parentId: table,\n cursor: currentCursor,\n });\n\n locked_alpha_pos_arr = locked_alpha_pos_arr.concat(\n response.data as LockedAlphaObject[],\n );\n\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n break;\n }\n } while (true);\n\n if (locked_alpha_pos_arr.length > 0) {\n const promises = locked_alpha_pos_arr.map(\n async (locked_obj: LockedAlphaObject) => {\n const locked_item1: any = await suiClient.getDynamicFieldObject({\n parentId: table,\n name: locked_obj.name,\n });\n if (locked_item1 && locked_item1.data) {\n const locked_item_object: LockedAlphaItem = locked_item1.data;\n const value = locked_item_object.content.fields.value.fields.value;\n return {\n value: value,\n timestamp: locked_item_object.content.fields.name,\n };\n }\n // If no data, return undefined or handle as needed\n return undefined;\n },\n );\n const results = (await Promise.all(promises)).filter(\n (result) => result !== undefined,\n );\n const unlocks: AlphaUnlocks[] = results.map((o) => {\n return {\n address: owner,\n timestampMs: Number(o.timestamp),\n tokens: o.value,\n };\n });\n return unlocks;\n }\n return undefined;\n}\n\nexport async function getUnlocksData(\n owner_table: [string, string][],\n): Promise<AlphaUnlocks[]> {\n let allUnlocksData: AlphaUnlocks[] = [];\n const alphaExchangeRate = await getPoolExchangeRate(\"ALPHA\", true);\n for (const entry of owner_table) {\n const [owner, table] = entry;\n const unlocksXtokens = await getTableDataXtokens(owner, table);\n if (unlocksXtokens) {\n const unlocks: AlphaUnlocks[] = unlocksXtokens?.map((o) => {\n const tokens = new Decimal(o.tokens)\n .mul(alphaExchangeRate as Decimal)\n .div(1e9)\n .toString();\n return {\n address: o.address,\n timestampMs: o.timestampMs,\n tokens: tokens,\n };\n });\n allUnlocksData = allUnlocksData.concat(unlocks);\n }\n }\n return allUnlocksData;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchUserVaultBalances.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/fetchUserVaultBalances.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,QAAQ,EAET,MAAM,uBAAuB,CAAC;AAW/B,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CA0F1C"}
@@ -0,0 +1,79 @@
1
+ import { poolInfo } from "../../common/maps.js";
2
+ import { getSuiClient } from "../client.js";
3
+ import { getAlphaPortfolioAmount, getAlphaPortfolioAmountInUSD, getPortfolioAmount, getDoubleAssetPortfolioAmountInUSD, getSingleAssetPortfolioAmount, getSingleAssetPortfolioAmountInUSD, } from "./getPortfolioAmounts.js";
4
+ export async function fetchUserVaultBalances(address, poolName) {
5
+ const suiClient = getSuiClient();
6
+ let vaultBalance;
7
+ if (poolInfo[poolName].parentProtocolName === "ALPHAFI") {
8
+ const lockedPortfolioAmount = await getAlphaPortfolioAmount("ALPHA", {
9
+ suiClient,
10
+ address,
11
+ isLocked: true,
12
+ });
13
+ const lockedPortfolioAmountInUSD = await getAlphaPortfolioAmountInUSD("ALPHA", { suiClient, address, isLocked: true });
14
+ const unlockedPortfolioAmount = await getAlphaPortfolioAmount("ALPHA", {
15
+ suiClient,
16
+ address,
17
+ isLocked: false,
18
+ });
19
+ const unlockedPortfolioAmountInUSD = await getAlphaPortfolioAmountInUSD("ALPHA", { suiClient, address, isLocked: false });
20
+ const portfolioAmount = await getAlphaPortfolioAmount("ALPHA", {
21
+ suiClient,
22
+ address,
23
+ });
24
+ const portfolioAmountInUSD = await getAlphaPortfolioAmountInUSD("ALPHA", {
25
+ suiClient,
26
+ address,
27
+ });
28
+ if (lockedPortfolioAmount !== undefined &&
29
+ lockedPortfolioAmountInUSD !== undefined &&
30
+ unlockedPortfolioAmount !== undefined &&
31
+ unlockedPortfolioAmountInUSD !== undefined &&
32
+ portfolioAmount !== undefined &&
33
+ portfolioAmountInUSD !== undefined) {
34
+ const res = {
35
+ lockedAlphaCoins: lockedPortfolioAmount,
36
+ lockedAlphaCoinsInUSD: lockedPortfolioAmountInUSD,
37
+ unlockedAlphaCoins: unlockedPortfolioAmount,
38
+ unlockedAlphaCoinsInUSD: unlockedPortfolioAmountInUSD,
39
+ totalAlphaCoins: portfolioAmount,
40
+ totalAlphaCoinsInUSD: portfolioAmountInUSD,
41
+ };
42
+ vaultBalance = res;
43
+ }
44
+ }
45
+ else if (poolInfo[poolName].parentProtocolName === "CETUS") {
46
+ const portfolioAmount = await getPortfolioAmount(poolName, {
47
+ suiClient,
48
+ address,
49
+ });
50
+ const portfolioAmountInUSD = await getDoubleAssetPortfolioAmountInUSD(poolName, { suiClient, address });
51
+ if (portfolioAmount !== undefined && portfolioAmountInUSD !== undefined) {
52
+ const res = {
53
+ coinA: portfolioAmount[0].toString(),
54
+ coinB: portfolioAmount[1].toString(),
55
+ valueInUSD: portfolioAmountInUSD,
56
+ };
57
+ vaultBalance = res;
58
+ }
59
+ }
60
+ else if (poolInfo[poolName].parentProtocolName === "NAVI") {
61
+ const portfolioAmount = await getSingleAssetPortfolioAmount(poolName, {
62
+ suiClient,
63
+ address,
64
+ });
65
+ const portfolioAmountInUSD = await getSingleAssetPortfolioAmountInUSD(poolName, {
66
+ suiClient,
67
+ address,
68
+ });
69
+ if (portfolioAmount !== undefined && portfolioAmountInUSD !== undefined) {
70
+ const res = {
71
+ coin: portfolioAmount.toString(),
72
+ valueInUSD: portfolioAmountInUSD,
73
+ };
74
+ vaultBalance = res;
75
+ }
76
+ }
77
+ return vaultBalance;
78
+ }
79
+ //# sourceMappingURL=fetchUserVaultBalances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchUserVaultBalances.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/fetchUserVaultBalances.ts"],"names":[],"mappings":"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","sourcesContent":["import { poolInfo } from \"../../common/maps.js\";\nimport {\n AlphaFiVaultBalance,\n PoolName,\n SingleAssetPoolNames,\n} from \"../../common/types.js\";\nimport { getSuiClient } from \"../client.js\";\nimport {\n getAlphaPortfolioAmount,\n getAlphaPortfolioAmountInUSD,\n getPortfolioAmount,\n getDoubleAssetPortfolioAmountInUSD,\n getSingleAssetPortfolioAmount,\n getSingleAssetPortfolioAmountInUSD,\n} from \"./getPortfolioAmounts.js\";\n\nexport async function fetchUserVaultBalances(\n address: string,\n poolName: PoolName,\n): Promise<AlphaFiVaultBalance | undefined> {\n const suiClient = getSuiClient();\n\n let vaultBalance;\n if (poolInfo[poolName].parentProtocolName === \"ALPHAFI\") {\n const lockedPortfolioAmount = await getAlphaPortfolioAmount(\"ALPHA\", {\n suiClient,\n address,\n isLocked: true,\n });\n const lockedPortfolioAmountInUSD = await getAlphaPortfolioAmountInUSD(\n \"ALPHA\",\n { suiClient, address, isLocked: true },\n );\n const unlockedPortfolioAmount = await getAlphaPortfolioAmount(\"ALPHA\", {\n suiClient,\n address,\n isLocked: false,\n });\n const unlockedPortfolioAmountInUSD = await getAlphaPortfolioAmountInUSD(\n \"ALPHA\",\n { suiClient, address, isLocked: false },\n );\n const portfolioAmount = await getAlphaPortfolioAmount(\"ALPHA\", {\n suiClient,\n address,\n });\n const portfolioAmountInUSD = await getAlphaPortfolioAmountInUSD(\"ALPHA\", {\n suiClient,\n address,\n });\n if (\n lockedPortfolioAmount !== undefined &&\n lockedPortfolioAmountInUSD !== undefined &&\n unlockedPortfolioAmount !== undefined &&\n unlockedPortfolioAmountInUSD !== undefined &&\n portfolioAmount !== undefined &&\n portfolioAmountInUSD !== undefined\n ) {\n const res: AlphaFiVaultBalance = {\n lockedAlphaCoins: lockedPortfolioAmount,\n lockedAlphaCoinsInUSD: lockedPortfolioAmountInUSD,\n unlockedAlphaCoins: unlockedPortfolioAmount,\n unlockedAlphaCoinsInUSD: unlockedPortfolioAmountInUSD,\n totalAlphaCoins: portfolioAmount,\n totalAlphaCoinsInUSD: portfolioAmountInUSD,\n };\n vaultBalance = res;\n }\n } else if (poolInfo[poolName].parentProtocolName === \"CETUS\") {\n const portfolioAmount = await getPortfolioAmount(poolName as PoolName, {\n suiClient,\n address,\n });\n const portfolioAmountInUSD = await getDoubleAssetPortfolioAmountInUSD(\n poolName as PoolName,\n { suiClient, address },\n );\n if (portfolioAmount !== undefined && portfolioAmountInUSD !== undefined) {\n const res: AlphaFiVaultBalance = {\n coinA: portfolioAmount[0].toString(),\n coinB: portfolioAmount[1].toString(),\n valueInUSD: portfolioAmountInUSD,\n };\n vaultBalance = res;\n }\n } else if (poolInfo[poolName].parentProtocolName === \"NAVI\") {\n const portfolioAmount = await getSingleAssetPortfolioAmount(\n poolName as SingleAssetPoolNames,\n {\n suiClient,\n address,\n },\n );\n const portfolioAmountInUSD = await getSingleAssetPortfolioAmountInUSD(\n poolName as SingleAssetPoolNames,\n {\n suiClient,\n address,\n },\n );\n if (portfolioAmount !== undefined && portfolioAmountInUSD !== undefined) {\n const res: AlphaFiVaultBalance = {\n coin: portfolioAmount.toString(),\n valueInUSD: portfolioAmountInUSD,\n };\n vaultBalance = res;\n }\n }\n return vaultBalance;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchUserVaults.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/fetchUserVaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIb,MAAM,gBAAgB,CAAC;AASxB,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,EAAE,CAAC,CAwCzB"}
@@ -0,0 +1,42 @@
1
+ import { coinNameTypeMap, poolCoinMap, poolCoinPairMap, poolInfo, } from "../../common/maps.js";
2
+ import { getReceipts } from "./getReceipts.js";
3
+ export async function fetchUserVaults(address) {
4
+ const vaultsArr = [];
5
+ await Promise.all(Object.keys(poolInfo).map(async (pool) => {
6
+ const receipt = await getReceipts(pool, address);
7
+ if (receipt.length > 0) {
8
+ const name = receipt[0].content.fields.name;
9
+ let res = undefined;
10
+ if (poolInfo[pool].parentProtocolName === "ALPHAFI" ||
11
+ poolInfo[pool].parentProtocolName === "NAVI") {
12
+ const coin = poolCoinMap[pool];
13
+ res = {
14
+ poolId: poolInfo[pool].poolId,
15
+ poolName: pool,
16
+ receiptName: name,
17
+ receiptType: receipt[0].content.type,
18
+ coinName: coin,
19
+ coinType: coinNameTypeMap[coin],
20
+ };
21
+ }
22
+ else if (poolInfo[pool].parentProtocolName === "CETUS") {
23
+ const coinA = poolCoinPairMap[pool].coinA;
24
+ const coinB = poolCoinPairMap[pool].coinB;
25
+ res = {
26
+ poolId: poolInfo[pool].poolId,
27
+ poolName: pool,
28
+ receiptName: name,
29
+ receiptType: receipt[0].content.type,
30
+ coinNameA: coinA,
31
+ coinTypeA: coinNameTypeMap[coinA],
32
+ coinNameB: coinB,
33
+ coinTypeB: coinNameTypeMap[coinB],
34
+ };
35
+ }
36
+ if (res)
37
+ vaultsArr.push(res);
38
+ }
39
+ }));
40
+ return vaultsArr;
41
+ }
42
+ //# sourceMappingURL=fetchUserVaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchUserVaults.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/fetchUserVaults.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,eAAe,EACf,WAAW,EACX,eAAe,EACf,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe;IAEf,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5C,IAAI,GAAG,GAA6B,SAAS,CAAC;YAC9C,IACE,QAAQ,CAAC,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS;gBAC/C,QAAQ,CAAC,IAAI,CAAC,CAAC,kBAAkB,KAAK,MAAM,EAC5C,CAAC;gBACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAA4B,CAAC,CAAC;gBACvD,GAAG,GAAG;oBACJ,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM;oBAC7B,QAAQ,EAAE,IAAgB;oBAC1B,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;oBACpC,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC;iBAChC,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,kBAAkB,KAAK,OAAO,EAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,eAAe,CAAC,IAA4B,CAAC,CAAC,KAAK,CAAC;gBAClE,MAAM,KAAK,GAAG,eAAe,CAAC,IAA4B,CAAC,CAAC,KAAK,CAAC;gBAClE,GAAG,GAAG;oBACJ,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM;oBAC7B,QAAQ,EAAE,IAAgB;oBAC1B,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;oBACpC,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC;oBACjC,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC;iBAClC,CAAC;YACJ,CAAC;YACD,IAAI,GAAG;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import {\n AlphaFiVault,\n DoubleAssetPoolNames,\n PoolName,\n SingleAssetPoolNames,\n} from \"../../index.js\";\nimport {\n coinNameTypeMap,\n poolCoinMap,\n poolCoinPairMap,\n poolInfo,\n} from \"../../common/maps.js\";\nimport { getReceipts } from \"./getReceipts.js\";\n\nexport async function fetchUserVaults(\n address: string,\n): Promise<AlphaFiVault[]> {\n const vaultsArr: AlphaFiVault[] = [];\n await Promise.all(\n Object.keys(poolInfo).map(async (pool) => {\n const receipt = await getReceipts(pool, address);\n if (receipt.length > 0) {\n const name = receipt[0].content.fields.name;\n let res: AlphaFiVault | undefined = undefined;\n if (\n poolInfo[pool].parentProtocolName === \"ALPHAFI\" ||\n poolInfo[pool].parentProtocolName === \"NAVI\"\n ) {\n const coin = poolCoinMap[pool as SingleAssetPoolNames];\n res = {\n poolId: poolInfo[pool].poolId,\n poolName: pool as PoolName,\n receiptName: name,\n receiptType: receipt[0].content.type,\n coinName: coin,\n coinType: coinNameTypeMap[coin],\n };\n } else if (poolInfo[pool].parentProtocolName === \"CETUS\") {\n const coinA = poolCoinPairMap[pool as DoubleAssetPoolNames].coinA;\n const coinB = poolCoinPairMap[pool as DoubleAssetPoolNames].coinB;\n res = {\n poolId: poolInfo[pool].poolId,\n poolName: pool as PoolName,\n receiptName: name,\n receiptType: receipt[0].content.type,\n coinNameA: coinA,\n coinTypeA: coinNameTypeMap[coinA],\n coinNameB: coinB,\n coinTypeB: coinNameTypeMap[coinB],\n };\n }\n if (res) vaultsArr.push(res);\n }\n }),\n );\n return vaultsArr;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPortfolioAmounts.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getPortfolioAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAEL,QAAQ,EAIR,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAgBxB,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BA+CvE;AAED,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BASvE;AAMD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EACtE,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAwDvC;AAED,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EACtE,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiC7B;AAMD,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EACtE,WAAW,GAAE,OAAe,mBA+H7B;AAED,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EACtE,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA4B7B"}
@@ -0,0 +1,238 @@
1
+ import { Decimal } from "decimal.js";
2
+ import { getCoinAmountsFromLiquidity, getPool, getPoolExchangeRate, getReceipts, getNaviInvestor, fetchVoloExchangeRate, } from "./getReceipts.js";
3
+ import { SimpleCache } from "../../utils/simpleCache.js";
4
+ import { coins } from "../../common/coins.js";
5
+ import { poolCoinMap, poolCoinPairMap } from "../../common/maps.js";
6
+ import { getLatestPrice } from "../../utils/prices.js";
7
+ import { getAlphaPrice } from "../../utils/clmm/prices.js";
8
+ export async function getAlphaPortfolioAmount(poolName, options) {
9
+ const receipts = await getReceipts(poolName, options.address);
10
+ const pool = await getPool(poolName);
11
+ if (!pool) {
12
+ throw new Error("Pool not found");
13
+ }
14
+ const exchangeRate = await getPoolExchangeRate(poolName);
15
+ let totalXTokens = new Decimal(0);
16
+ if (!exchangeRate) {
17
+ return "0"; // if pool has 0 xtokens
18
+ }
19
+ if (options.isLocked === true) {
20
+ receipts.forEach(async (receipt) => {
21
+ const xTokens = new Decimal(receipt.content.fields.xTokenBalance);
22
+ const bal = new Decimal(Number(receipt.content.fields.unlocked_xtokens) *
23
+ exchangeRate.toNumber());
24
+ totalXTokens = totalXTokens.add(xTokens.sub(bal));
25
+ });
26
+ }
27
+ else if (options.isLocked === false) {
28
+ receipts.forEach((receipt) => {
29
+ const bal = new Decimal(Number(receipt.content.fields.unlocked_xtokens) *
30
+ exchangeRate.toNumber());
31
+ totalXTokens = totalXTokens.add(bal);
32
+ });
33
+ }
34
+ else {
35
+ receipts.forEach((receipt) => {
36
+ const xTokens = receipt.content.fields.xTokenBalance;
37
+ totalXTokens = totalXTokens.add(xTokens);
38
+ });
39
+ }
40
+ if (totalXTokens.gt(0)) {
41
+ const poolExchangeRate = await getPoolExchangeRate(poolName);
42
+ if (poolExchangeRate) {
43
+ const tokens = totalXTokens.div(1e9).mul(poolExchangeRate);
44
+ return `${tokens}`;
45
+ }
46
+ else {
47
+ console.error(`Could not get poolExchangeRate for poolName: ${poolName}`);
48
+ }
49
+ }
50
+ else {
51
+ return "0";
52
+ }
53
+ }
54
+ export async function getAlphaPortfolioAmountInUSD(poolName, options) {
55
+ const tokens = await getAlphaPortfolioAmount(poolName, options);
56
+ const priceOfAlpha = await getAlphaPrice();
57
+ if (priceOfAlpha && tokens) {
58
+ let amount = new Decimal(tokens);
59
+ amount = amount.mul(priceOfAlpha);
60
+ return amount.toString();
61
+ }
62
+ }
63
+ const portfolioAmountCache = new SimpleCache();
64
+ const portfolioAmountPromiseCache = new SimpleCache();
65
+ export async function getPortfolioAmount(poolName, options, ignoreCache = false) {
66
+ let portfolioAmount = [0, 0];
67
+ const portfolioAmountCacheKey = `getPortfolioAmount:${poolName}-${options.address}}`;
68
+ if (ignoreCache) {
69
+ portfolioAmountCache.delete(portfolioAmountCacheKey);
70
+ portfolioAmountPromiseCache.delete(portfolioAmountCacheKey);
71
+ }
72
+ const cachedResponse = portfolioAmountCache.get(portfolioAmountCacheKey);
73
+ if (cachedResponse) {
74
+ return cachedResponse;
75
+ }
76
+ let cachedPromise = portfolioAmountPromiseCache.get(portfolioAmountCacheKey);
77
+ if (!cachedPromise) {
78
+ cachedPromise = (async () => {
79
+ const receipts = await getReceipts(poolName, options.address);
80
+ let totalXTokens = new Decimal(0);
81
+ if (receipts) {
82
+ receipts.forEach((receipt) => {
83
+ const xTokens = receipt.content.fields.xTokenBalance;
84
+ totalXTokens = totalXTokens.add(xTokens);
85
+ });
86
+ }
87
+ if (totalXTokens.gt(0)) {
88
+ const poolExchangeRate = await getPoolExchangeRate(poolName);
89
+ if (poolExchangeRate) {
90
+ const tokens = totalXTokens.mul(poolExchangeRate);
91
+ const poolTokenAmounts = await getCoinAmountsFromLiquidity(poolName, tokens.toNumber());
92
+ portfolioAmount = poolTokenAmounts;
93
+ }
94
+ else {
95
+ console.error(`Could not get poolExchangeRate for poolName: ${poolName}`);
96
+ }
97
+ }
98
+ else {
99
+ portfolioAmount = [0, 0];
100
+ }
101
+ portfolioAmountCache.set(portfolioAmountCacheKey, portfolioAmount);
102
+ portfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache
103
+ return portfolioAmount;
104
+ })().catch((error) => {
105
+ portfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache
106
+ throw error;
107
+ });
108
+ portfolioAmountPromiseCache.set(portfolioAmountCacheKey, cachedPromise);
109
+ }
110
+ return cachedPromise;
111
+ }
112
+ export async function getDoubleAssetPortfolioAmountInUSD(poolName, options, ignoreCache = false) {
113
+ if (poolName !== undefined) {
114
+ const amounts = await getPortfolioAmount(poolName, options, ignoreCache);
115
+ if (amounts !== undefined) {
116
+ const ten = new Decimal(10);
117
+ const pool1 = poolCoinPairMap[poolName]
118
+ .coinA;
119
+ const pool2 = poolCoinPairMap[poolName]
120
+ .coinB;
121
+ const amount0 = new Decimal(amounts[0]).div(ten.pow(coins[pool1].expo));
122
+ const amount1 = new Decimal(amounts[1]).div(ten.pow(coins[pool2].expo));
123
+ const tokens = poolName.split("-");
124
+ const priceOfCoin0 = await getLatestPrice(`${tokens[0]}/USD`);
125
+ const priceOfCoin1 = await getLatestPrice(`${tokens[1]}/USD`);
126
+ if (priceOfCoin0 && priceOfCoin1) {
127
+ const amount = amount0.mul(priceOfCoin0).add(amount1.mul(priceOfCoin1));
128
+ return amount.toString();
129
+ }
130
+ }
131
+ else {
132
+ console.error(`getPortfolioAmountInUSD is not implemented for poolName: ${poolName}`);
133
+ }
134
+ return "0";
135
+ }
136
+ }
137
+ const singleAssetPortfolioAmountCache = new SimpleCache();
138
+ const singleAssetPortfolioAmountPromiseCache = new SimpleCache();
139
+ export async function getSingleAssetPortfolioAmount(poolName, options, ignoreCache = false) {
140
+ let portfolioAmount = 0;
141
+ const portfolioAmountCacheKey = `getPortfolioAmount:${poolName}-${options.address}}`;
142
+ if (ignoreCache) {
143
+ singleAssetPortfolioAmountCache.delete(portfolioAmountCacheKey);
144
+ singleAssetPortfolioAmountPromiseCache.delete(portfolioAmountCacheKey);
145
+ }
146
+ const cachedResponse = singleAssetPortfolioAmountCache.get(portfolioAmountCacheKey);
147
+ if (cachedResponse) {
148
+ return cachedResponse;
149
+ }
150
+ let cachedPromise = singleAssetPortfolioAmountPromiseCache.get(portfolioAmountCacheKey);
151
+ if (!cachedPromise) {
152
+ cachedPromise = (async () => {
153
+ const receipts = await getReceipts(poolName, options.address, ignoreCache);
154
+ let totalXTokens = new Decimal(0);
155
+ if (receipts) {
156
+ receipts.forEach((receipt) => {
157
+ const xTokens = receipt.content.fields.xTokenBalance;
158
+ totalXTokens = totalXTokens.add(xTokens);
159
+ });
160
+ }
161
+ if (totalXTokens.gt(0)) {
162
+ if (poolName == "NAVI-LOOP-SUI-VSUI" ||
163
+ poolName == "NAVI-LOOP-USDT-USDC") {
164
+ const pool = await getPool(poolName, ignoreCache);
165
+ const investor = (await getNaviInvestor(poolName, ignoreCache));
166
+ if (pool && investor) {
167
+ const liquidity = new Decimal(investor.content.fields.tokensDeposited);
168
+ const debtToSupplyRatio = new Decimal(investor.content.fields.current_debt_to_supply_ratio);
169
+ const tokensInvested = liquidity.mul(new Decimal(1).minus(new Decimal(debtToSupplyRatio).div(1e20)));
170
+ const xTokenSupplyInPool = new Decimal(pool.content.fields.xTokenSupply);
171
+ const userTokens = totalXTokens
172
+ .mul(tokensInvested)
173
+ .div(xTokenSupplyInPool);
174
+ const tokens = userTokens.div(Math.pow(10, 9 - coins[poolCoinMap[poolName]].expo));
175
+ if (poolName == "NAVI-LOOP-SUI-VSUI") {
176
+ // const { SevenKGateway } = await import("../");
177
+ // const sevenKInstance = new SevenKGateway();
178
+ // const numberOfTokensInSui = (await sevenKInstance.getQuote({
179
+ // slippage: 1,
180
+ // senderAddress: options.address,
181
+ // pair: { coinA: coins["VSUI"], coinB: coins["SUI"] },
182
+ // inAmount: new BN(tokens.toNumber()),
183
+ // })) as QuoteResponse;
184
+ const voloExchRate = await fetchVoloExchangeRate();
185
+ portfolioAmount = Number(tokens.mul(parseFloat(voloExchRate.data.exchangeRate)));
186
+ }
187
+ // TODO: Whenever NAVI-LOOP-USDT-USDC is released, change this else implementation
188
+ else {
189
+ portfolioAmount = Number(tokens);
190
+ }
191
+ }
192
+ else {
193
+ console.error(`Could not get object for poolName: ${poolName}`);
194
+ }
195
+ }
196
+ else {
197
+ const poolExchangeRate = await getPoolExchangeRate(poolName, ignoreCache);
198
+ if (poolExchangeRate) {
199
+ let tokens = totalXTokens.mul(poolExchangeRate);
200
+ tokens = tokens.div(Math.pow(10, 9 -
201
+ coins[poolCoinMap[poolName]].expo));
202
+ portfolioAmount = tokens.toNumber();
203
+ }
204
+ else {
205
+ console.error(`Could not get poolExchangeRate for poolName: ${poolName}`);
206
+ }
207
+ }
208
+ }
209
+ else {
210
+ portfolioAmount = 0;
211
+ }
212
+ singleAssetPortfolioAmountCache.set(portfolioAmountCacheKey, portfolioAmount);
213
+ singleAssetPortfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache
214
+ return portfolioAmount;
215
+ })().catch((error) => {
216
+ singleAssetPortfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache
217
+ throw error;
218
+ });
219
+ singleAssetPortfolioAmountPromiseCache.set(portfolioAmountCacheKey, cachedPromise);
220
+ }
221
+ return cachedPromise;
222
+ }
223
+ export async function getSingleAssetPortfolioAmountInUSD(poolName, options, ignoreCache = false) {
224
+ const amounts = await getSingleAssetPortfolioAmount(poolName, options, ignoreCache);
225
+ if (amounts !== undefined) {
226
+ const amount = new Decimal(amounts).div(new Decimal(Math.pow(10, coins[poolCoinMap[poolName]].expo)));
227
+ const priceOfCoin = await getLatestPrice(`${poolCoinMap[poolName]}/USD`);
228
+ if (priceOfCoin) {
229
+ const amountInUSD = amount.mul(priceOfCoin);
230
+ return amountInUSD.toString();
231
+ }
232
+ }
233
+ else {
234
+ console.error(`getPortfolioAmountInUSD is not implemented for poolName: ${poolName}`);
235
+ }
236
+ return "0";
237
+ }
238
+ //# sourceMappingURL=getPortfolioAmounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPortfolioAmounts.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getPortfolioAmounts.ts"],"names":[],"mappings":"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","sourcesContent":["import { SuiClient } from \"@mysten/sui/client\";\nimport { Decimal } from \"decimal.js\";\nimport {\n CoinName,\n PoolName,\n DoubleAssetPoolNames,\n NaviInvestor,\n CommonInvestorFields,\n SingleAssetPoolNames,\n} from \"../../index.js\";\nimport {\n getCoinAmountsFromLiquidity,\n getPool,\n getPoolExchangeRate,\n getReceipts,\n getNaviInvestor,\n fetchVoloExchangeRate,\n} from \"./getReceipts.js\";\nimport { SimpleCache } from \"../../utils/simpleCache.js\";\nimport { coins } from \"../../common/coins.js\";\nimport { poolCoinMap, poolCoinPairMap } from \"../../common/maps.js\";\nimport { PythPriceIdPair } from \"../../common/pyth.js\";\nimport { getLatestPrice } from \"../../utils/prices.js\";\nimport { getAlphaPrice } from \"../../utils/clmm/prices.js\";\n\nexport async function getAlphaPortfolioAmount(\n poolName: PoolName,\n options: { suiClient: SuiClient; address: string; isLocked?: boolean },\n) {\n const receipts = await getReceipts(poolName, options.address);\n const pool = await getPool(poolName);\n if (!pool) {\n throw new Error(\"Pool not found\");\n }\n\n const exchangeRate = await getPoolExchangeRate(poolName);\n let totalXTokens = new Decimal(0);\n if (!exchangeRate) {\n return \"0\"; // if pool has 0 xtokens\n }\n if (options.isLocked === true) {\n receipts.forEach(async (receipt) => {\n const xTokens = new Decimal(receipt.content.fields.xTokenBalance);\n const bal = new Decimal(\n Number(receipt.content.fields.unlocked_xtokens) *\n exchangeRate.toNumber(),\n );\n totalXTokens = totalXTokens.add(xTokens.sub(bal));\n });\n } else if (options.isLocked === false) {\n receipts.forEach((receipt) => {\n const bal = new Decimal(\n Number(receipt.content.fields.unlocked_xtokens) *\n exchangeRate.toNumber(),\n );\n totalXTokens = totalXTokens.add(bal);\n });\n } else {\n receipts.forEach((receipt) => {\n const xTokens = receipt.content.fields.xTokenBalance;\n totalXTokens = totalXTokens.add(xTokens);\n });\n }\n if (totalXTokens.gt(0)) {\n const poolExchangeRate = await getPoolExchangeRate(poolName);\n if (poolExchangeRate) {\n const tokens = totalXTokens.div(1e9).mul(poolExchangeRate);\n return `${tokens}`;\n } else {\n console.error(`Could not get poolExchangeRate for poolName: ${poolName}`);\n }\n } else {\n return \"0\";\n }\n}\n\nexport async function getAlphaPortfolioAmountInUSD(\n poolName: PoolName,\n options: { suiClient: SuiClient; address: string; isLocked?: boolean },\n) {\n const tokens = await getAlphaPortfolioAmount(poolName, options);\n const priceOfAlpha = await getAlphaPrice();\n if (priceOfAlpha && tokens) {\n let amount = new Decimal(tokens);\n amount = amount.mul(priceOfAlpha);\n return amount.toString();\n }\n}\n\nconst portfolioAmountCache = new SimpleCache<[number, number]>();\nconst portfolioAmountPromiseCache = new SimpleCache<\n Promise<[number, number]>\n>();\nexport async function getPortfolioAmount(\n poolName: PoolName,\n options: { suiClient: SuiClient; address: string; isLocked?: boolean },\n ignoreCache: boolean = false,\n): Promise<[number, number] | undefined> {\n let portfolioAmount: [number, number] = [0, 0];\n const portfolioAmountCacheKey = `getPortfolioAmount:${poolName}-${options.address}}`;\n if (ignoreCache) {\n portfolioAmountCache.delete(portfolioAmountCacheKey);\n portfolioAmountPromiseCache.delete(portfolioAmountCacheKey);\n }\n const cachedResponse = portfolioAmountCache.get(portfolioAmountCacheKey);\n\n if (cachedResponse) {\n return cachedResponse;\n }\n\n let cachedPromise = portfolioAmountPromiseCache.get(portfolioAmountCacheKey);\n\n if (!cachedPromise) {\n cachedPromise = (async () => {\n const receipts = await getReceipts(poolName, options.address);\n let totalXTokens = new Decimal(0);\n if (receipts) {\n receipts.forEach((receipt) => {\n const xTokens = receipt.content.fields.xTokenBalance;\n totalXTokens = totalXTokens.add(xTokens);\n });\n }\n\n if (totalXTokens.gt(0)) {\n const poolExchangeRate = await getPoolExchangeRate(poolName);\n if (poolExchangeRate) {\n const tokens = totalXTokens.mul(poolExchangeRate);\n const poolTokenAmounts = await getCoinAmountsFromLiquidity(\n poolName,\n tokens.toNumber(),\n );\n portfolioAmount = poolTokenAmounts;\n } else {\n console.error(\n `Could not get poolExchangeRate for poolName: ${poolName}`,\n );\n }\n } else {\n portfolioAmount = [0, 0];\n }\n\n portfolioAmountCache.set(portfolioAmountCacheKey, portfolioAmount);\n portfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache\n return portfolioAmount;\n })().catch((error) => {\n portfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache\n throw error;\n });\n\n portfolioAmountPromiseCache.set(portfolioAmountCacheKey, cachedPromise);\n }\n\n return cachedPromise;\n}\n\nexport async function getDoubleAssetPortfolioAmountInUSD(\n poolName: PoolName,\n options: { suiClient: SuiClient; address: string; isLocked?: boolean },\n ignoreCache: boolean = false,\n): Promise<string | undefined> {\n if ((poolName as DoubleAssetPoolNames) !== undefined) {\n const amounts = await getPortfolioAmount(poolName, options, ignoreCache);\n if (amounts !== undefined) {\n const ten = new Decimal(10);\n const pool1 = poolCoinPairMap[poolName as DoubleAssetPoolNames]\n .coinA as CoinName;\n const pool2 = poolCoinPairMap[poolName as DoubleAssetPoolNames]\n .coinB as CoinName;\n const amount0 = new Decimal(amounts[0]).div(\n ten.pow(coins[pool1 as CoinName].expo),\n );\n const amount1 = new Decimal(amounts[1]).div(\n ten.pow(coins[pool2 as CoinName].expo),\n );\n const tokens = poolName.split(\"-\");\n const priceOfCoin0 = await getLatestPrice(\n `${tokens[0]}/USD` as PythPriceIdPair,\n );\n const priceOfCoin1 = await getLatestPrice(\n `${tokens[1]}/USD` as PythPriceIdPair,\n );\n if (priceOfCoin0 && priceOfCoin1) {\n const amount = amount0.mul(priceOfCoin0).add(amount1.mul(priceOfCoin1));\n return amount.toString();\n }\n } else {\n console.error(\n `getPortfolioAmountInUSD is not implemented for poolName: ${poolName}`,\n );\n }\n return \"0\";\n }\n}\n\nconst singleAssetPortfolioAmountCache = new SimpleCache<number>();\nconst singleAssetPortfolioAmountPromiseCache = new SimpleCache<\n Promise<number>\n>();\nexport async function getSingleAssetPortfolioAmount(\n poolName: SingleAssetPoolNames,\n options: { suiClient: SuiClient; address: string; isLocked?: boolean },\n ignoreCache: boolean = false,\n) {\n let portfolioAmount: number = 0;\n const portfolioAmountCacheKey = `getPortfolioAmount:${poolName}-${options.address}}`;\n if (ignoreCache) {\n singleAssetPortfolioAmountCache.delete(portfolioAmountCacheKey);\n singleAssetPortfolioAmountPromiseCache.delete(portfolioAmountCacheKey);\n }\n const cachedResponse = singleAssetPortfolioAmountCache.get(\n portfolioAmountCacheKey,\n );\n\n if (cachedResponse) {\n return cachedResponse;\n }\n\n let cachedPromise = singleAssetPortfolioAmountPromiseCache.get(\n portfolioAmountCacheKey,\n );\n\n if (!cachedPromise) {\n cachedPromise = (async () => {\n const receipts = await getReceipts(\n poolName,\n options.address,\n ignoreCache,\n );\n let totalXTokens = new Decimal(0);\n if (receipts) {\n receipts.forEach((receipt) => {\n const xTokens = receipt.content.fields.xTokenBalance;\n totalXTokens = totalXTokens.add(xTokens);\n });\n }\n if (totalXTokens.gt(0)) {\n if (\n poolName == \"NAVI-LOOP-SUI-VSUI\" ||\n poolName == \"NAVI-LOOP-USDT-USDC\"\n ) {\n const pool = await getPool(poolName, ignoreCache);\n const investor = (await getNaviInvestor(\n poolName,\n ignoreCache,\n )) as NaviInvestor & CommonInvestorFields;\n if (pool && investor) {\n const liquidity = new Decimal(\n investor.content.fields.tokensDeposited,\n );\n const debtToSupplyRatio = new Decimal(\n investor.content.fields.current_debt_to_supply_ratio,\n );\n const tokensInvested = liquidity.mul(\n new Decimal(1).minus(new Decimal(debtToSupplyRatio).div(1e20)),\n );\n const xTokenSupplyInPool = new Decimal(\n pool.content.fields.xTokenSupply,\n );\n const userTokens = totalXTokens\n .mul(tokensInvested)\n .div(xTokenSupplyInPool);\n const tokens = userTokens.div(\n Math.pow(10, 9 - coins[poolCoinMap[poolName]].expo),\n );\n if (poolName == \"NAVI-LOOP-SUI-VSUI\") {\n // const { SevenKGateway } = await import(\"../\");\n // const sevenKInstance = new SevenKGateway();\n // const numberOfTokensInSui = (await sevenKInstance.getQuote({\n // slippage: 1,\n // senderAddress: options.address,\n // pair: { coinA: coins[\"VSUI\"], coinB: coins[\"SUI\"] },\n // inAmount: new BN(tokens.toNumber()),\n // })) as QuoteResponse;\n const voloExchRate = await fetchVoloExchangeRate();\n portfolioAmount = Number(\n tokens.mul(parseFloat(voloExchRate.data.exchangeRate)),\n );\n }\n // TODO: Whenever NAVI-LOOP-USDT-USDC is released, change this else implementation\n else {\n portfolioAmount = Number(tokens);\n }\n } else {\n console.error(`Could not get object for poolName: ${poolName}`);\n }\n } else {\n const poolExchangeRate = await getPoolExchangeRate(\n poolName,\n ignoreCache,\n );\n if (poolExchangeRate) {\n let tokens = totalXTokens.mul(poolExchangeRate);\n tokens = tokens.div(\n Math.pow(\n 10,\n 9 -\n coins[poolCoinMap[poolName as keyof typeof poolCoinMap]].expo,\n ),\n );\n portfolioAmount = tokens.toNumber();\n } else {\n console.error(\n `Could not get poolExchangeRate for poolName: ${poolName}`,\n );\n }\n }\n } else {\n portfolioAmount = 0;\n }\n\n singleAssetPortfolioAmountCache.set(\n portfolioAmountCacheKey,\n portfolioAmount,\n );\n singleAssetPortfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache\n return portfolioAmount;\n })().catch((error) => {\n singleAssetPortfolioAmountPromiseCache.delete(portfolioAmountCacheKey); // Remove the promise from cache\n throw error;\n });\n\n singleAssetPortfolioAmountPromiseCache.set(\n portfolioAmountCacheKey,\n cachedPromise,\n );\n }\n\n return cachedPromise;\n}\n\nexport async function getSingleAssetPortfolioAmountInUSD(\n poolName: SingleAssetPoolNames,\n options: { suiClient: SuiClient; address: string; isLocked?: boolean },\n ignoreCache: boolean = false,\n): Promise<string | undefined> {\n const amounts = await getSingleAssetPortfolioAmount(\n poolName,\n options,\n ignoreCache,\n );\n if (amounts !== undefined) {\n const amount = new Decimal(amounts).div(\n new Decimal(\n Math.pow(\n 10,\n coins[poolCoinMap[poolName as keyof typeof poolCoinMap]].expo,\n ),\n ),\n );\n const priceOfCoin = await getLatestPrice(\n `${poolCoinMap[poolName as keyof typeof poolCoinMap]}/USD` as PythPriceIdPair,\n );\n if (priceOfCoin) {\n const amountInUSD = amount.mul(priceOfCoin);\n return amountInUSD.toString();\n }\n } else {\n console.error(\n `getPortfolioAmountInUSD is not implemented for poolName: ${poolName}`,\n );\n }\n return \"0\";\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getReceipts.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getReceipts.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,aAAa,EAEb,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,oBAAoB,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,CAoEpB;AAID,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAiD9B;AAED,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA6B3B;AAOD,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC,CAkD/C;AAOD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA+CpC;AAOD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA8CpC;AASD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,CAAC,YAAY,GAAG,oBAAoB,CAAC,GAAG,SAAS,CAAC,CA8C5D;AAOD,wBAAsB,qBAAqB,CACzC,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,YAAY,CAAC,CAoCvB"}