@alphafi/alphafi-sdk 0.0.76 → 0.0.78

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 (302) hide show
  1. package/dist/cjs/common/constants.d.ts +26 -0
  2. package/dist/cjs/common/constants.d.ts.map +1 -1
  3. package/dist/cjs/common/constants.js +32 -9
  4. package/dist/cjs/common/constants.js.map +1 -1
  5. package/dist/cjs/common/maps.d.ts.map +1 -1
  6. package/dist/cjs/common/maps.js +36 -57
  7. package/dist/cjs/common/maps.js.map +1 -1
  8. package/dist/cjs/common/types.d.ts +1 -1
  9. package/dist/cjs/common/types.d.ts.map +1 -1
  10. package/dist/cjs/common/types.js.map +1 -1
  11. package/dist/cjs/getVaultBalances.d.ts +1 -3
  12. package/dist/cjs/getVaultBalances.d.ts.map +1 -1
  13. package/dist/cjs/getVaultBalances.js +1 -57
  14. package/dist/cjs/getVaultBalances.js.map +1 -1
  15. package/dist/cjs/index.d.ts +3 -3
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +4 -8
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.d.ts +3 -0
  20. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.d.ts.map +1 -0
  21. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.js +19 -0
  22. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.js.map +1 -0
  23. package/dist/cjs/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  24. package/dist/cjs/sui-sdk/events/fetchEvents.js +15 -0
  25. package/dist/cjs/sui-sdk/events/fetchEvents.js.map +1 -1
  26. package/dist/cjs/sui-sdk/events/types.d.ts +11 -1
  27. package/dist/cjs/sui-sdk/events/types.d.ts.map +1 -1
  28. package/dist/cjs/sui-sdk/events/types.js.map +1 -1
  29. package/dist/cjs/transactions/blueRewards.d.ts.map +1 -1
  30. package/dist/cjs/transactions/blueRewards.js +27 -0
  31. package/dist/cjs/transactions/blueRewards.js.map +1 -1
  32. package/dist/cjs/transactions/bluefin.d.ts.map +1 -1
  33. package/dist/cjs/transactions/bluefin.js +57 -0
  34. package/dist/cjs/transactions/bluefin.js.map +1 -1
  35. package/dist/cjs/transactions/navi-looping.d.ts.map +1 -1
  36. package/dist/cjs/transactions/navi-looping.js +38 -12
  37. package/dist/cjs/transactions/navi-looping.js.map +1 -1
  38. package/dist/cjs/transactions/navi.d.ts.map +1 -1
  39. package/dist/cjs/transactions/navi.js +30 -0
  40. package/dist/cjs/transactions/navi.js.map +1 -1
  41. package/dist/cjs/types.d.ts +0 -12
  42. package/dist/cjs/types.d.ts.map +1 -1
  43. package/dist/cjs/types.js.map +1 -1
  44. package/dist/cjs/utils/userHoldings.d.ts +1 -1
  45. package/dist/cjs/utils/userHoldings.d.ts.map +1 -1
  46. package/dist/cjs/utils/userHoldings.js +22 -42
  47. package/dist/cjs/utils/userHoldings.js.map +1 -1
  48. package/dist/esm/common/constants.d.ts +26 -0
  49. package/dist/esm/common/constants.d.ts.map +1 -1
  50. package/dist/esm/common/constants.js +32 -9
  51. package/dist/esm/common/constants.js.map +1 -1
  52. package/dist/esm/common/maps.d.ts.map +1 -1
  53. package/dist/esm/common/maps.js +36 -57
  54. package/dist/esm/common/maps.js.map +1 -1
  55. package/dist/esm/common/types.d.ts +1 -1
  56. package/dist/esm/common/types.d.ts.map +1 -1
  57. package/dist/esm/common/types.js.map +1 -1
  58. package/dist/esm/getVaultBalances.d.ts +1 -3
  59. package/dist/esm/getVaultBalances.d.ts.map +1 -1
  60. package/dist/esm/getVaultBalances.js +1 -55
  61. package/dist/esm/getVaultBalances.js.map +1 -1
  62. package/dist/esm/index.d.ts +3 -3
  63. package/dist/esm/index.d.ts.map +1 -1
  64. package/dist/esm/index.js +2 -2
  65. package/dist/esm/index.js.map +1 -1
  66. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.d.ts +3 -0
  67. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.d.ts.map +1 -0
  68. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.js +16 -0
  69. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.js.map +1 -0
  70. package/dist/esm/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  71. package/dist/esm/sui-sdk/events/fetchEvents.js +15 -0
  72. package/dist/esm/sui-sdk/events/fetchEvents.js.map +1 -1
  73. package/dist/esm/sui-sdk/events/types.d.ts +11 -1
  74. package/dist/esm/sui-sdk/events/types.d.ts.map +1 -1
  75. package/dist/esm/sui-sdk/events/types.js.map +1 -1
  76. package/dist/esm/transactions/blueRewards.d.ts.map +1 -1
  77. package/dist/esm/transactions/blueRewards.js +27 -0
  78. package/dist/esm/transactions/blueRewards.js.map +1 -1
  79. package/dist/esm/transactions/bluefin.d.ts.map +1 -1
  80. package/dist/esm/transactions/bluefin.js +57 -0
  81. package/dist/esm/transactions/bluefin.js.map +1 -1
  82. package/dist/esm/transactions/navi-looping.d.ts.map +1 -1
  83. package/dist/esm/transactions/navi-looping.js +38 -12
  84. package/dist/esm/transactions/navi-looping.js.map +1 -1
  85. package/dist/esm/transactions/navi.d.ts.map +1 -1
  86. package/dist/esm/transactions/navi.js +30 -0
  87. package/dist/esm/transactions/navi.js.map +1 -1
  88. package/dist/esm/types.d.ts +0 -12
  89. package/dist/esm/types.d.ts.map +1 -1
  90. package/dist/esm/types.js.map +1 -1
  91. package/dist/esm/utils/userHoldings.d.ts +1 -1
  92. package/dist/esm/utils/userHoldings.d.ts.map +1 -1
  93. package/dist/esm/utils/userHoldings.js +23 -42
  94. package/dist/esm/utils/userHoldings.js.map +1 -1
  95. package/docs/assets/navigation.js +1 -1
  96. package/docs/assets/search.js +1 -1
  97. package/docs/functions/alphaLpBreakdown.html +1 -1
  98. package/docs/functions/cetusLpBreakdown.html +1 -1
  99. package/docs/functions/claimBlueRewardTxb.html +1 -1
  100. package/docs/functions/claimRewardTxb.html +1 -1
  101. package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -1
  102. package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -1
  103. package/docs/functions/coinsInPool.html +1 -1
  104. package/docs/functions/collectRewards.html +1 -1
  105. package/docs/functions/deposit.html +1 -1
  106. package/docs/functions/depositDoubleAssetTxb.html +1 -1
  107. package/docs/functions/depositSingleAssetTxb.html +1 -1
  108. package/docs/functions/fetchAfterTransactionEvents.html +1 -1
  109. package/docs/functions/fetchAirdropClaimEvents.html +1 -0
  110. package/docs/functions/fetchAutoCompoundingEvents.html +1 -1
  111. package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -1
  112. package/docs/functions/fetchCetusPools.html +1 -1
  113. package/docs/functions/fetchChainIdentifier.html +1 -1
  114. package/docs/functions/fetchCheckRatioEvents.html +1 -1
  115. package/docs/functions/fetchEvents.html +1 -1
  116. package/docs/functions/fetchLiquidityChangeEvents.html +1 -1
  117. package/docs/functions/fetchMultiCategoryEvents.html +1 -1
  118. package/docs/functions/fetchMultiReceipts.html +1 -1
  119. package/docs/functions/fetchNftHolders.html +1 -1
  120. package/docs/functions/fetchPools.html +1 -1
  121. package/docs/functions/fetchPortfolioData.html +1 -1
  122. package/docs/functions/fetchProtocolData.html +1 -1
  123. package/docs/functions/fetchTVL.html +1 -1
  124. package/docs/functions/fetchTransactions.html +1 -1
  125. package/docs/functions/fetchUserVaultBalances.html +1 -1
  126. package/docs/functions/fetchUserVaults.html +1 -1
  127. package/docs/functions/fetchUserWalletData.html +1 -1
  128. package/docs/functions/fetchVoloExchangeRate.html +1 -1
  129. package/docs/functions/fetchWithdrawV2Events.html +1 -1
  130. package/docs/functions/getAirdropShare.html +1 -1
  131. package/docs/functions/getAllDoubleAssetVaults.html +1 -1
  132. package/docs/functions/getAllSingleAssetVaults.html +1 -1
  133. package/docs/functions/getAllVaultBalances.html +1 -1
  134. package/docs/functions/getAllVaults.html +1 -1
  135. package/docs/functions/getAlphaUnlocks.html +1 -1
  136. package/docs/functions/getAlphaVaultBalance.html +1 -1
  137. package/docs/functions/getAmounts.html +1 -1
  138. package/docs/functions/getApr.html +1 -1
  139. package/docs/functions/getAprs.html +1 -1
  140. package/docs/functions/getApy.html +1 -1
  141. package/docs/functions/getApys.html +1 -1
  142. package/docs/functions/getCetusInvestorTicksMap.html +1 -1
  143. package/docs/functions/getCetusPool.html +1 -1
  144. package/docs/functions/getCetusSqrtPriceMap.html +1 -1
  145. package/docs/functions/getCoinAmountsFromLiquidity.html +1 -1
  146. package/docs/functions/getConf.html +1 -1
  147. package/docs/functions/getCurrentTick.html +1 -1
  148. package/docs/functions/getDistributor.html +1 -1
  149. package/docs/functions/getDoubleAssetVaultBalance.html +1 -1
  150. package/docs/functions/getDoubleAssetVaults.html +1 -1
  151. package/docs/functions/getInvestor.html +1 -1
  152. package/docs/functions/getInvestorPoolMap.html +1 -1
  153. package/docs/functions/getLastAutoCompoundTime.html +1 -1
  154. package/docs/functions/getLatestPrices.html +1 -1
  155. package/docs/functions/getLiquidity.html +1 -1
  156. package/docs/functions/getMultiCetusPool.html +1 -1
  157. package/docs/functions/getMultiInvestor.html +1 -1
  158. package/docs/functions/getMultiLatestPrices.html +1 -1
  159. package/docs/functions/getMultiParentPool.html +1 -1
  160. package/docs/functions/getMultiPool.html +1 -1
  161. package/docs/functions/getMultiReceipts.html +1 -1
  162. package/docs/functions/getParentPool.html +1 -1
  163. package/docs/functions/getPool.html +1 -1
  164. package/docs/functions/getPoolExchangeRate.html +1 -1
  165. package/docs/functions/getPoolExchangeRateMap.html +1 -1
  166. package/docs/functions/getPoolsWeightDistribution.html +1 -1
  167. package/docs/functions/getPositionRange.html +1 -1
  168. package/docs/functions/getPositionRanges.html +1 -1
  169. package/docs/functions/getPositionTicks.html +1 -1
  170. package/docs/functions/getPriceToTick.html +1 -1
  171. package/docs/functions/getRebalanceHistories.html +1 -1
  172. package/docs/functions/getRebalanceHistory.html +1 -1
  173. package/docs/functions/getReceipts.html +1 -1
  174. package/docs/functions/getSingleAssetVaultBalance.html +1 -1
  175. package/docs/functions/getSingleAssetVaults.html +1 -1
  176. package/docs/functions/getSuiClient.html +2 -2
  177. package/docs/functions/getSuiNodeUrl.html +2 -2
  178. package/docs/functions/getTVLs-1.html +1 -1
  179. package/docs/functions/getTickSpacing.html +1 -1
  180. package/docs/functions/getTickToPrice.html +1 -1
  181. package/docs/functions/getTvls.html +1 -1
  182. package/docs/functions/getVaultBalance.html +1 -1
  183. package/docs/functions/getVaults.html +1 -1
  184. package/docs/functions/getZapAmounts.html +1 -1
  185. package/docs/functions/lastAutocompoundTime.html +1 -1
  186. package/docs/functions/liquidityToTokens.html +1 -1
  187. package/docs/functions/multiLiquidityToTokens.html +1 -1
  188. package/docs/functions/multiTokensToUsd.html +1 -1
  189. package/docs/functions/multiXTokensToLiquidity.html +1 -1
  190. package/docs/functions/parseUserWalletData.html +1 -1
  191. package/docs/functions/pendingBlueRewardAmount.html +1 -1
  192. package/docs/functions/setCustomSuiClient.html +2 -2
  193. package/docs/functions/setSuiClient.html +2 -2
  194. package/docs/functions/setSuiNodeUrl.html +2 -2
  195. package/docs/functions/setWeights.html +1 -1
  196. package/docs/functions/withdraw.html +1 -1
  197. package/docs/functions/withdrawAlphaTxb.html +1 -1
  198. package/docs/functions/withdrawTxb.html +1 -1
  199. package/docs/functions/zapDepositTxb.html +1 -1
  200. package/docs/index.html +2 -2
  201. package/docs/interfaces/Coin.html +6 -6
  202. package/docs/interfaces/CoinPair.html +2 -2
  203. package/docs/interfaces/CommonEventAttributes.html +2 -2
  204. package/docs/interfaces/NaviVoloData.html +2 -2
  205. package/docs/interfaces/PoolData.html +2 -2
  206. package/docs/interfaces/PoolWeightDistribution.html +2 -2
  207. package/docs/interfaces/RebalanceHistoryType.html +2 -2
  208. package/docs/modules.html +4 -8
  209. package/docs/types/AfterTransactionEventNode.html +1 -1
  210. package/docs/types/AirdropClaimEventNode.html +1 -0
  211. package/docs/types/Allocator.html +1 -1
  212. package/docs/types/AlphaFiDoubleAssetVault.html +1 -1
  213. package/docs/types/AlphaFiMultiVaultBalance.html +1 -1
  214. package/docs/types/AlphaFiSingleAssetVault.html +1 -1
  215. package/docs/types/AlphaFiVault.html +1 -1
  216. package/docs/types/AlphaFiVaultBalance.html +1 -1
  217. package/docs/types/AlphaPoolType.html +1 -1
  218. package/docs/types/AlphaReceipt.html +1 -1
  219. package/docs/types/AlphaReceiptFields.html +1 -1
  220. package/docs/types/AlphaVaultBalance.html +1 -1
  221. package/docs/types/AutoBalancePoolNames.html +1 -1
  222. package/docs/types/AutoCompoundingEventNode.html +1 -1
  223. package/docs/types/BluefinInvestor.html +1 -1
  224. package/docs/types/BluefinPoolType.html +1 -1
  225. package/docs/types/BucketInvestor.html +1 -1
  226. package/docs/types/CetusInvestor.html +1 -1
  227. package/docs/types/CetusPoolType.html +1 -1
  228. package/docs/types/CetusSwapOptions.html +1 -1
  229. package/docs/types/CoinAmounts.html +1 -1
  230. package/docs/types/CoinName.html +1 -1
  231. package/docs/types/CoinType.html +1 -1
  232. package/docs/types/CommonInvestorFields.html +1 -1
  233. package/docs/types/CreatePoolOptions.html +1 -1
  234. package/docs/types/Distributor.html +1 -1
  235. package/docs/types/DoubleAssetMultiVaultBalance.html +1 -1
  236. package/docs/types/DoubleAssetPoolNames.html +1 -1
  237. package/docs/types/DoubleAssetTokenHoldings.html +1 -1
  238. package/docs/types/DoubleAssetVaultBalance.html +1 -1
  239. package/docs/types/EventCategory.html +1 -1
  240. package/docs/types/EventNode.html +1 -1
  241. package/docs/types/GetHoldersParams.html +1 -1
  242. package/docs/types/GetTokenHoldingsParams.html +1 -1
  243. package/docs/types/GetUserTokensFromTransactionsParams.html +1 -1
  244. package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +1 -1
  245. package/docs/types/GetVaultBalanceParams.html +1 -1
  246. package/docs/types/HoldingsObj.html +1 -1
  247. package/docs/types/Icon.html +1 -1
  248. package/docs/types/Investor.html +1 -1
  249. package/docs/types/LiquidityChangeEventNode.html +1 -1
  250. package/docs/types/LiquidityToTokensParams.html +1 -1
  251. package/docs/types/LiquidityToUsdParams.html +1 -1
  252. package/docs/types/LoopingDebt.html +1 -1
  253. package/docs/types/LoopingPoolNames.html +1 -1
  254. package/docs/types/LpBreakdownType.html +1 -1
  255. package/docs/types/MemberPoolDataType.html +1 -1
  256. package/docs/types/MemberType.html +1 -1
  257. package/docs/types/MultiGetVaultBalancesParams.html +1 -1
  258. package/docs/types/NaviInvestor.html +1 -1
  259. package/docs/types/OtherReceiptFields.html +1 -1
  260. package/docs/types/PoolName.html +1 -1
  261. package/docs/types/PoolReceipt.html +1 -1
  262. package/docs/types/PoolType.html +1 -1
  263. package/docs/types/Receipt.html +1 -1
  264. package/docs/types/ReceiptGQL.html +1 -1
  265. package/docs/types/SingleAssetMultiVaultBalance.html +1 -1
  266. package/docs/types/SingleAssetPoolNames.html +1 -1
  267. package/docs/types/SingleAssetTokenHoldings.html +1 -1
  268. package/docs/types/SingleAssetVaultBalance.html +1 -1
  269. package/docs/types/SingleGetVaultBalancesParams.html +1 -1
  270. package/docs/types/StrategyType.html +1 -1
  271. package/docs/types/SuiNetwork.html +1 -1
  272. package/docs/types/SwapOptions.html +1 -1
  273. package/docs/types/TickSpacing.html +1 -1
  274. package/docs/types/TotalWeightType.html +1 -1
  275. package/docs/types/TransactionBlockType.html +1 -1
  276. package/docs/types/UserPoolLiquidity.html +1 -1
  277. package/docs/types/UserPoolTokenHoldings.html +1 -1
  278. package/docs/types/UserUsdHoldings.html +1 -1
  279. package/docs/types/VaultBalance.html +1 -1
  280. package/docs/types/VoteCastEvent.html +1 -1
  281. package/docs/types/WithdrawV2EventNode.html +1 -1
  282. package/docs/variables/bluefinPoolMap.html +1 -1
  283. package/docs/variables/cetusPoolMap.html +1 -1
  284. package/docs/variables/coinsList.html +1 -1
  285. package/docs/variables/defunctPoolsSet.html +1 -1
  286. package/docs/variables/doubleAssetPoolCoinMap.html +1 -1
  287. package/docs/variables/eventCategories.html +1 -1
  288. package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -1
  289. package/docs/variables/loopingAccountAddresses.html +1 -1
  290. package/docs/variables/loopingPoolCoinMap.html +1 -1
  291. package/docs/variables/naviAssetMap.html +1 -1
  292. package/docs/variables/poolIdPoolNameMap.html +1 -1
  293. package/docs/variables/poolInfo.html +1 -1
  294. package/docs/variables/singleAssetPoolCoinMap.html +1 -1
  295. package/docs/variables/stableCoins.html +1 -1
  296. package/package.json +1 -1
  297. package/docs/functions/getHoldersFromTransactions.html +0 -1
  298. package/docs/functions/getUserTokensFromTransactions.html +0 -1
  299. package/docs/functions/getUserTokensInUsdFromTransactions.html +0 -1
  300. package/docs/functions/getVaultBalanceForActiveUsers.html +0 -1
  301. package/docs/functions/getXTokenVaultBalanceForActiveUsers.html +0 -1
  302. package/docs/types/GetVaultBalanceForActiveUsersParams.html +0 -1
@@ -145,13 +145,6 @@ export type LiquidityToUsdParams = {
145
145
  export type LiquidityToTokensParams = {
146
146
  liquidity: string;
147
147
  poolName: string;
148
- ticksCetusMap: {
149
- [pool: string]: {
150
- lower: string;
151
- upper: string;
152
- };
153
- };
154
- sqrtPriceCetusMap: Map<PoolName, string>;
155
148
  };
156
149
  export type UserUsdHoldings = {
157
150
  user: string;
@@ -205,9 +198,4 @@ export type DoubleAssetMultiVaultBalance = {
205
198
  tokenB: string;
206
199
  tokensInUsd: string;
207
200
  };
208
- export type GetVaultBalanceForActiveUsersParams = {
209
- poolNames?: PoolName[];
210
- startTime?: number;
211
- endTime?: number;
212
- };
213
201
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,mCAAmC,GAAG;IAChD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACrD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,MAAM,EAAE;wBACN,GAAG,EAAE;4BACH,IAAI,EAAE,MAAM,CAAC;4BACb,MAAM,EAAE;gCACN,IAAI,EAAE,MAAM,CAAC;6BACd,CAAC;yBACH,CAAC;wBACF,KAAK,EAAE,MAAM,CAAC;qBACf,CAAC;iBACH;aACF,CAAC;SACH,CAAC;KACH,CAAC;IACF,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,EAAE,EAAE;gBACF,EAAE,EAAE,MAAM,CAAC;aACZ,CAAC;YACF,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,MAAM,EAAE;wBACN,GAAG,EAAE;4BACH,IAAI,EAAE,MAAM,CAAC;4BACb,MAAM,EAAE;gCACN,IAAI,EAAE,MAAM,CAAC;6BACd,CAAC;yBACH,CAAC;wBACF,KAAK,EAAE,MAAM,CAAC;qBACf,CAAC;iBACH;aACF,CAAC;SACH,CAAC;KACH,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE;QAC1B,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE;4BACH,MAAM,EAAE;gCACN,IAAI,EAAE,MAAM,CAAC;6BACd,CAAC;4BACF,IAAI,EAAE,MAAM,CAAC;yBACd,CAAC;wBACF,KAAK,EAAE,MAAM,CAAC;qBACf,CAAC;oBACF,IAAI,EAAE,MAAM,CAAC;iBACd;aACF,CAAC;SACH,CAAC;QACF,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE;QACf,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE;4BACH,MAAM,EAAE;gCACN,IAAI,EAAE,MAAM,CAAC;6BACd,CAAC;4BACF,IAAI,EAAE,MAAM,CAAC;yBACd,CAAC;wBACF,KAAK,EAAE,MAAM,CAAC;qBACf,CAAC;oBACF,IAAI,EAAE,MAAM,CAAC;iBACd;aACF,CAAC;SACH,CAAC;QACF,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACpE,iBAAiB,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,aAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,wBAAwB,GACxB,wBAAwB,CAAC;AAE7B,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,qBAAqB,GAC7B,4BAA4B,GAC5B,2BAA2B,CAAC;AAEhC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,SAAS,GACT,wBAAwB,EAAE,CAAC;AAE/B,MAAM,MAAM,wBAAwB,GAChC,4BAA4B,GAC5B,4BAA4B,CAAC;AAEjC,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC"}
@@ -1 +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"]}
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};\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"]}
@@ -1,6 +1,6 @@
1
1
  import { DoubleAssetTokenHoldings, HoldingsObj, SingleAssetTokenHoldings, LiquidityToTokensParams } from "../types.js";
2
2
  export declare function multiXTokensToLiquidity(xTokensHoldings: HoldingsObj[]): Promise<HoldingsObj[]>;
3
3
  export declare function multiLiquidityToTokens(holdings: HoldingsObj[]): Promise<(SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[]>;
4
- export declare function liquidityToTokens(params: LiquidityToTokensParams): string | [string, string];
4
+ export declare function liquidityToTokens(params: LiquidityToTokensParams): Promise<string | [string, string]>;
5
5
  export declare function multiTokensToUsd(tokensHoldings: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[]): Promise<HoldingsObj[]>;
6
6
  //# sourceMappingURL=userHoldings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userHoldings.d.ts","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAarB,wBAAsB,uBAAuB,CAAC,eAAe,EAAE,WAAW,EAAE,0BAmB3E;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,oEA4BnE;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA4B3B;AA0JD,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,EAAE,GACtE,OAAO,CAAC,WAAW,EAAE,CAAC,CAoDxB"}
1
+ {"version":3,"file":"userHoldings.d.ts","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAYrB,wBAAsB,uBAAuB,CAAC,eAAe,EAAE,WAAW,EAAE,0BAmB3E;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,oEA0BnE;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4BpC;AAgID,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,EAAE,GACtE,OAAO,CAAC,WAAW,EAAE,CAAC,CAoDxB"}
@@ -1,9 +1,8 @@
1
- import { getPoolExchangeRateMap, doubleAssetPoolCoinMap, singleAssetPoolCoinMap, poolInfo, coinsInPool, getLiquidityPoolSqrtPriceMap, getLiquidityPoolInvestorTicksMap, } from "../common/maps.js";
1
+ import { getPoolExchangeRateMap, doubleAssetPoolCoinMap, singleAssetPoolCoinMap, poolInfo, coinsInPool, } from "../common/maps.js";
2
2
  import { Decimal } from "decimal.js";
3
- import { ClmmPoolUtil, TickMath, } from "@cetusprotocol/cetus-sui-clmm-sdk";
4
- import BN from "bn.js";
5
3
  import { coinsList } from "../common/coins.js";
6
4
  import { getLatestTokenPricePairs } from "./prices.js";
5
+ import { getCoinAmountsFromLiquidity } from "../index.js";
7
6
  export async function multiXTokensToLiquidity(xTokensHoldings) {
8
7
  let holdings = [];
9
8
  const exchangeRateMap = await getPoolExchangeRateMap();
@@ -21,35 +20,32 @@ export async function multiXTokensToLiquidity(xTokensHoldings) {
21
20
  return holdings;
22
21
  }
23
22
  export async function multiLiquidityToTokens(holdings) {
24
- const sqrtPriceCetusMap = await getLiquidityPoolSqrtPriceMap();
25
- const ticksCetusMap = await getLiquidityPoolInvestorTicksMap();
26
- let tokenHoldings = holdings.map((holdingsObj) => {
27
- const tokens = liquidityToTokens({
23
+ let tokenHoldings = [];
24
+ for (const holdingsObj of holdings) {
25
+ const tokens = await liquidityToTokens({
28
26
  liquidity: holdingsObj.holding,
29
27
  poolName: holdingsObj.poolName,
30
- ticksCetusMap: ticksCetusMap,
31
- sqrtPriceCetusMap: sqrtPriceCetusMap,
32
28
  });
33
29
  if (typeof tokens === "string") {
34
- return {
30
+ tokenHoldings.push({
35
31
  user: holdingsObj.owner,
36
32
  poolName: holdingsObj.poolName,
37
33
  tokens: tokens,
38
- };
34
+ });
39
35
  }
40
36
  else {
41
- return {
37
+ tokenHoldings.push({
42
38
  user: holdingsObj.owner,
43
39
  poolName: holdingsObj.poolName,
44
40
  tokenAmountA: tokens[0],
45
41
  tokenAmountB: tokens[1],
46
- };
42
+ });
47
43
  }
48
- });
44
+ }
49
45
  tokenHoldings = mergeDuplicateTokenHoldings(tokenHoldings);
50
46
  return tokenHoldings;
51
47
  }
52
- export function liquidityToTokens(params) {
48
+ export async function liquidityToTokens(params) {
53
49
  let holdingUSD;
54
50
  if (params.poolName.slice(0, 4) === "NAVI") {
55
51
  holdingUSD = singleAssetLiquidityToTokens(params.liquidity, params.poolName);
@@ -58,7 +54,7 @@ export function liquidityToTokens(params) {
58
54
  holdingUSD = alphaLiquidityToTokens(params.liquidity);
59
55
  }
60
56
  else if (["CETUS", "BLUEFIN"].includes(poolInfo[params.poolName].parentProtocolName)) {
61
- const [holdingA, holdingB] = doubleAssetliquidityToTokens(params);
57
+ const [holdingA, holdingB] = await doubleAssetliquidityToTokens(params);
62
58
  return [holdingA, holdingB];
63
59
  }
64
60
  else if (poolInfo[params.poolName].parentProtocolName === "BUCKET") {
@@ -74,33 +70,18 @@ export function liquidityToTokens(params) {
74
70
  throw new Error(`holdingsUsd undefined for poolName: ${params.poolName}`);
75
71
  return holdingUSD;
76
72
  }
77
- function doubleAssetliquidityToTokens(params) {
78
- const pool = params.poolName;
79
- const liquidity = params.liquidity;
80
- const ticksCetusMap = params.ticksCetusMap;
81
- const sqrtPriceCetusMap = params.sqrtPriceCetusMap;
82
- const upper_bound = 443636;
83
- let lower_tick = Number(ticksCetusMap[pool].lower);
84
- let upper_tick = Number(ticksCetusMap[pool].upper);
85
- if (lower_tick > upper_bound) {
86
- lower_tick = -~(lower_tick - 1);
87
- }
88
- if (upper_tick > upper_bound) {
89
- upper_tick = -~(upper_tick - 1);
90
- }
91
- const liquidityInt = Math.floor(Number(liquidity));
92
- const sqrtPrice = sqrtPriceCetusMap.get(pool);
93
- const coin_amounts = ClmmPoolUtil.getCoinAmountFromLiquidity(new BN(`${liquidityInt}`), new BN(sqrtPrice), TickMath.tickIndexToSqrtPriceX64(lower_tick), TickMath.tickIndexToSqrtPriceX64(upper_tick), true);
94
- const coinAmounts = [
95
- coin_amounts.coinA.toNumber(),
96
- coin_amounts.coinB.toNumber(),
73
+ async function doubleAssetliquidityToTokens(params) {
74
+ const scaled_coin_amounts = await getCoinAmountsFromLiquidity(params.poolName, params.liquidity, false);
75
+ const coins = coinsInPool(params.poolName);
76
+ const coin_amounts = [
77
+ new Decimal(scaled_coin_amounts[0])
78
+ .div(new Decimal(Math.pow(10, coinsList[coins.coinA].expo)))
79
+ .toFixed(5),
80
+ new Decimal(scaled_coin_amounts[1])
81
+ .div(new Decimal(Math.pow(10, coinsList[coins.coinB].expo)))
82
+ .toFixed(5),
97
83
  ];
98
- const ten = new Decimal(10);
99
- const coin1 = doubleAssetPoolCoinMap[pool].coin1;
100
- const coin2 = doubleAssetPoolCoinMap[pool].coin2;
101
- const amount1 = new Decimal(coinAmounts[0]).div(ten.pow(coinsList[coin1].expo));
102
- const amount2 = new Decimal(coinAmounts[1]).div(ten.pow(coinsList[coin2].expo));
103
- return [amount1.toFixed(5).toString(), amount2.toFixed(5).toString()];
84
+ return coin_amounts;
104
85
  }
105
86
  function alphaLiquidityToTokens(liquidity) {
106
87
  const amount = new Decimal(liquidity).div(1e9);
@@ -1 +1 @@
1
- {"version":3,"file":"userHoldings.js","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getPoolExchangeRateMap,\n doubleAssetPoolCoinMap,\n singleAssetPoolCoinMap,\n poolInfo,\n coinsInPool,\n getLiquidityPoolSqrtPriceMap,\n getLiquidityPoolInvestorTicksMap,\n} from \"../common/maps.js\";\nimport {\n DoubleAssetTokenHoldings,\n HoldingsObj,\n SingleAssetTokenHoldings,\n LiquidityToTokensParams,\n} from \"../types.js\";\nimport { Decimal } from \"decimal.js\";\nimport { PoolName, SingleAssetPoolNames } from \"../common/types.js\";\nimport {\n CoinAmounts,\n ClmmPoolUtil,\n TickMath,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getLatestTokenPricePairs } from \"./prices.js\";\nimport { PythPriceIdPair } from \"../common/pyth.js\";\n\nexport async function multiXTokensToLiquidity(xTokensHoldings: HoldingsObj[]) {\n let holdings: HoldingsObj[] = [];\n\n const exchangeRateMap = await getPoolExchangeRateMap();\n holdings = xTokensHoldings.map((holdingsObj) => {\n const conversion = new Decimal(\n exchangeRateMap.get(holdingsObj.poolName) as string,\n );\n const liquidity = new Decimal(holdingsObj.holding)\n .mul(conversion)\n .toString();\n return {\n owner: holdingsObj.owner,\n poolName: holdingsObj.poolName,\n holding: liquidity,\n };\n });\n\n return holdings;\n}\n\nexport async function multiLiquidityToTokens(holdings: HoldingsObj[]) {\n const sqrtPriceCetusMap = await getLiquidityPoolSqrtPriceMap();\n const ticksCetusMap = await getLiquidityPoolInvestorTicksMap();\n let tokenHoldings: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[] =\n holdings.map((holdingsObj) => {\n const tokens = liquidityToTokens({\n liquidity: holdingsObj.holding,\n poolName: holdingsObj.poolName,\n ticksCetusMap: ticksCetusMap,\n sqrtPriceCetusMap: sqrtPriceCetusMap,\n });\n if (typeof tokens === \"string\") {\n return {\n user: holdingsObj.owner,\n poolName: holdingsObj.poolName,\n tokens: tokens,\n } as SingleAssetTokenHoldings;\n } else {\n return {\n user: holdingsObj.owner,\n poolName: holdingsObj.poolName,\n tokenAmountA: tokens[0],\n tokenAmountB: tokens[1],\n } as DoubleAssetTokenHoldings;\n }\n });\n tokenHoldings = mergeDuplicateTokenHoldings(tokenHoldings);\n return tokenHoldings;\n}\n\nexport function liquidityToTokens(\n params: LiquidityToTokensParams,\n): string | [string, string] {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToTokens(\n params.liquidity,\n params.poolName,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToTokens(params.liquidity);\n } else if (\n [\"CETUS\", \"BLUEFIN\"].includes(poolInfo[params.poolName].parentProtocolName)\n ) {\n const [holdingA, holdingB] = doubleAssetliquidityToTokens(params);\n return [holdingA, holdingB];\n } else if (poolInfo[params.poolName].parentProtocolName === \"BUCKET\") {\n if (params.poolName in singleAssetPoolCoinMap) {\n holdingUSD = singleAssetLiquidityToTokens(\n params.liquidity,\n params.poolName,\n );\n }\n } else {\n console.error(params.poolName);\n throw new Error(\"Unexpected Parent Protocol\");\n }\n if (!holdingUSD)\n throw new Error(`holdingsUsd undefined for poolName: ${params.poolName}`);\n return holdingUSD;\n}\n\nfunction doubleAssetliquidityToTokens(params: {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n}): [string, string] {\n const pool = params.poolName;\n const liquidity = params.liquidity;\n const ticksCetusMap = params.ticksCetusMap;\n const sqrtPriceCetusMap = params.sqrtPriceCetusMap;\n\n const upper_bound = 443636;\n let lower_tick = Number(ticksCetusMap[pool].lower);\n let upper_tick = Number(ticksCetusMap[pool].upper);\n\n if (lower_tick > upper_bound) {\n lower_tick = -~(lower_tick - 1);\n }\n if (upper_tick > upper_bound) {\n upper_tick = -~(upper_tick - 1);\n }\n const liquidityInt = Math.floor(Number(liquidity));\n const sqrtPrice = sqrtPriceCetusMap.get(pool as PoolName) as string;\n const coin_amounts: CoinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(\n new BN(`${liquidityInt}`),\n new BN(sqrtPrice),\n TickMath.tickIndexToSqrtPriceX64(lower_tick),\n TickMath.tickIndexToSqrtPriceX64(upper_tick),\n true,\n );\n const coinAmounts = [\n coin_amounts.coinA.toNumber(),\n coin_amounts.coinB.toNumber(),\n ];\n const ten = new Decimal(10);\n const coin1 = doubleAssetPoolCoinMap[pool].coin1;\n const coin2 = doubleAssetPoolCoinMap[pool].coin2;\n\n const amount1 = new Decimal(coinAmounts[0]).div(\n ten.pow(coinsList[coin1].expo),\n );\n const amount2 = new Decimal(coinAmounts[1]).div(\n ten.pow(coinsList[coin2].expo),\n );\n return [amount1.toFixed(5).toString(), amount2.toFixed(5).toString()];\n}\n\nfunction alphaLiquidityToTokens(liquidity: string) {\n const amount = new Decimal(liquidity).div(1e9);\n return amount.toFixed(5);\n}\n\nfunction singleAssetLiquidityToTokens(liquidity: string, pool: string) {\n const singlePool = pool;\n if (\n poolInfo[pool].parentProtocolName === \"NAVI\" &&\n poolInfo[pool].strategyType !== \"LOOPING\"\n ) {\n const coin = singleAssetPoolCoinMap[singlePool].coin;\n let amount = new Decimal(liquidity).div(\n Math.pow(10, 9 - coinsList[coin].expo),\n );\n amount = amount.div(new Decimal(Math.pow(10, coinsList[coin].expo)));\n return amount.toFixed(5);\n } else if (\n poolInfo[pool].parentProtocolName === \"NAVI\" &&\n poolInfo[pool].strategyType === \"LOOPING\"\n ) {\n const coin = coinsInPool(pool as SingleAssetPoolNames);\n const amount = new Decimal(liquidity).div(\n Math.pow(10, coinsList[coin].expo),\n );\n return amount.toFixed(5);\n } else if (\n poolInfo[pool].parentProtocolName === \"BUCKET\" &&\n pool in singleAssetPoolCoinMap\n ) {\n const coin = singleAssetPoolCoinMap[singlePool].coin;\n const amount = new Decimal(liquidity).div(\n new Decimal(Math.pow(10, coinsList[coin].expo)),\n );\n return amount.toFixed(5);\n } else {\n throw new Error(\"Incorrect pool in argument\");\n }\n}\n\nfunction mergeDuplicateTokenHoldings(\n tokenHoldings: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[],\n) {\n const uniqueOwnerPoolMap = new Map<\n string,\n { tokens: string } | { tokenAmountA: string; tokenAmountB: string }\n >();\n\n for (const holding of tokenHoldings) {\n const owner = holding.user;\n const poolName = holding.poolName;\n const key = `${owner}_${poolName}`;\n if (uniqueOwnerPoolMap.has(key)) {\n const existingTokens = uniqueOwnerPoolMap.get(key);\n if (\"tokens\" in existingTokens!) {\n const thisHolding = holding as SingleAssetTokenHoldings;\n uniqueOwnerPoolMap.set(key, {\n tokens: (\n parseFloat(thisHolding.tokens) + parseFloat(existingTokens.tokens)\n )\n .toFixed(5)\n .toString(),\n });\n } else {\n const thisHolding = holding as DoubleAssetTokenHoldings;\n const tokensObj = {\n tokenAmountA: (\n parseFloat(thisHolding.tokenAmountA) +\n parseFloat(existingTokens!.tokenAmountA)\n )\n .toFixed(5)\n .toString(),\n tokenAmountB: (\n parseFloat(thisHolding.tokenAmountB) +\n parseFloat(existingTokens!.tokenAmountB)\n )\n .toFixed(5)\n .toString(),\n };\n uniqueOwnerPoolMap.set(key, tokensObj);\n }\n } else {\n if (\"tokens\" in holding) {\n uniqueOwnerPoolMap.set(key, { tokens: holding.tokens });\n } else {\n uniqueOwnerPoolMap.set(key, {\n tokenAmountA: holding.tokenAmountA,\n tokenAmountB: holding.tokenAmountB,\n });\n }\n }\n }\n\n const uniqueOwnerPoolMapArr = Array.from(uniqueOwnerPoolMap);\n const result: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[] =\n uniqueOwnerPoolMapArr.map(([owner_pool, holding]) => {\n const owner = owner_pool.split(\"_\")[0];\n const poolName = owner_pool.split(\"_\")[1];\n return { user: owner, poolName: poolName, ...holding } as\n | SingleAssetTokenHoldings\n | DoubleAssetTokenHoldings;\n });\n return result;\n}\n\nexport async function multiTokensToUsd(\n tokensHoldings: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[],\n): Promise<HoldingsObj[]> {\n const pricePairs = new Set<PythPriceIdPair>();\n tokensHoldings.map((o) => {\n if (\"tokens\" in o) {\n const thisCoins = coinsInPool(o.poolName);\n pricePairs.add(`${thisCoins}/USD` as PythPriceIdPair);\n } else if (\"tokenAmountA\" in o) {\n const thisCoins = coinsInPool(o.poolName);\n pricePairs.add(`${thisCoins.coinA}/USD` as PythPriceIdPair);\n pricePairs.add(`${thisCoins.coinB}/USD` as PythPriceIdPair);\n }\n });\n\n const usdHoldings: HoldingsObj[] = [];\n const prices = await getLatestTokenPricePairs(Array.from(pricePairs), false);\n\n for (const tokenHolding of tokensHoldings) {\n if (\"tokens\" in tokenHolding) {\n // SingleAssetTokenHoldings\n const singlePool = tokenHolding.poolName;\n const coin = coinsInPool(singlePool);\n const priceOfCoin = prices[`${coin}/USD`];\n if (priceOfCoin) {\n const amountInUSD = new Decimal(tokenHolding.tokens).mul(priceOfCoin);\n usdHoldings.push({\n owner: tokenHolding.user,\n poolName: tokenHolding.poolName,\n holding: amountInUSD.toFixed(2).toString(),\n });\n }\n } else {\n // DoubleAssetTokenHoldings\n const poolName = tokenHolding.poolName;\n const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n const coin2 = doubleAssetPoolCoinMap[poolName].coin2;\n const priceOfCoin1 = prices[`${coin1}/USD`];\n const priceOfCoin2 = prices[`${coin2}/USD`];\n\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = new Decimal(tokenHolding.tokenAmountA)\n .mul(priceOfCoin1)\n .add(new Decimal(tokenHolding.tokenAmountB).mul(priceOfCoin2));\n usdHoldings.push({\n owner: tokenHolding.user,\n poolName: tokenHolding.poolName,\n holding: amount.toFixed(2).toString(),\n });\n }\n }\n }\n\n return usdHoldings;\n}\n"]}
1
+ {"version":3,"file":"userHoldings.js","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getPoolExchangeRateMap,\n doubleAssetPoolCoinMap,\n singleAssetPoolCoinMap,\n poolInfo,\n coinsInPool,\n} from \"../common/maps.js\";\nimport {\n DoubleAssetTokenHoldings,\n HoldingsObj,\n SingleAssetTokenHoldings,\n LiquidityToTokensParams,\n} from \"../types.js\";\nimport { Decimal } from \"decimal.js\";\nimport {\n DoubleAssetPoolNames,\n PoolName,\n SingleAssetPoolNames,\n} from \"../common/types.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getLatestTokenPricePairs } from \"./prices.js\";\nimport { PythPriceIdPair } from \"../common/pyth.js\";\nimport { getCoinAmountsFromLiquidity } from \"../index.js\";\n\nexport async function multiXTokensToLiquidity(xTokensHoldings: HoldingsObj[]) {\n let holdings: HoldingsObj[] = [];\n\n const exchangeRateMap = await getPoolExchangeRateMap();\n holdings = xTokensHoldings.map((holdingsObj) => {\n const conversion = new Decimal(\n exchangeRateMap.get(holdingsObj.poolName) as string,\n );\n const liquidity = new Decimal(holdingsObj.holding)\n .mul(conversion)\n .toString();\n return {\n owner: holdingsObj.owner,\n poolName: holdingsObj.poolName,\n holding: liquidity,\n };\n });\n\n return holdings;\n}\n\nexport async function multiLiquidityToTokens(holdings: HoldingsObj[]) {\n let tokenHoldings: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[] =\n [];\n for (const holdingsObj of holdings) {\n const tokens = await liquidityToTokens({\n liquidity: holdingsObj.holding,\n poolName: holdingsObj.poolName,\n });\n if (typeof tokens === \"string\") {\n tokenHoldings.push({\n user: holdingsObj.owner,\n poolName: holdingsObj.poolName,\n tokens: tokens,\n } as SingleAssetTokenHoldings);\n } else {\n tokenHoldings.push({\n user: holdingsObj.owner,\n poolName: holdingsObj.poolName,\n tokenAmountA: tokens[0],\n tokenAmountB: tokens[1],\n } as DoubleAssetTokenHoldings);\n }\n }\n\n tokenHoldings = mergeDuplicateTokenHoldings(tokenHoldings);\n return tokenHoldings;\n}\n\nexport async function liquidityToTokens(\n params: LiquidityToTokensParams,\n): Promise<string | [string, string]> {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToTokens(\n params.liquidity,\n params.poolName,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToTokens(params.liquidity);\n } else if (\n [\"CETUS\", \"BLUEFIN\"].includes(poolInfo[params.poolName].parentProtocolName)\n ) {\n const [holdingA, holdingB] = await doubleAssetliquidityToTokens(params);\n return [holdingA, holdingB];\n } else if (poolInfo[params.poolName].parentProtocolName === \"BUCKET\") {\n if (params.poolName in singleAssetPoolCoinMap) {\n holdingUSD = singleAssetLiquidityToTokens(\n params.liquidity,\n params.poolName,\n );\n }\n } else {\n console.error(params.poolName);\n throw new Error(\"Unexpected Parent Protocol\");\n }\n if (!holdingUSD)\n throw new Error(`holdingsUsd undefined for poolName: ${params.poolName}`);\n return holdingUSD;\n}\n\nasync function doubleAssetliquidityToTokens(params: {\n liquidity: string;\n poolName: string;\n}): Promise<[string, string]> {\n const scaled_coin_amounts = await getCoinAmountsFromLiquidity(\n params.poolName as PoolName,\n params.liquidity,\n false,\n );\n const coins = coinsInPool(params.poolName as DoubleAssetPoolNames);\n const coin_amounts = [\n new Decimal(scaled_coin_amounts[0])\n .div(new Decimal(Math.pow(10, coinsList[coins.coinA].expo)))\n .toFixed(5),\n new Decimal(scaled_coin_amounts[1])\n .div(new Decimal(Math.pow(10, coinsList[coins.coinB].expo)))\n .toFixed(5),\n ];\n return coin_amounts as [string, string];\n}\n\nfunction alphaLiquidityToTokens(liquidity: string) {\n const amount = new Decimal(liquidity).div(1e9);\n return amount.toFixed(5);\n}\n\nfunction singleAssetLiquidityToTokens(liquidity: string, pool: string) {\n const singlePool = pool;\n if (\n poolInfo[pool].parentProtocolName === \"NAVI\" &&\n poolInfo[pool].strategyType !== \"LOOPING\"\n ) {\n const coin = singleAssetPoolCoinMap[singlePool].coin;\n let amount = new Decimal(liquidity).div(\n Math.pow(10, 9 - coinsList[coin].expo),\n );\n amount = amount.div(new Decimal(Math.pow(10, coinsList[coin].expo)));\n return amount.toFixed(5);\n } else if (\n poolInfo[pool].parentProtocolName === \"NAVI\" &&\n poolInfo[pool].strategyType === \"LOOPING\"\n ) {\n const coin = coinsInPool(pool as SingleAssetPoolNames);\n const amount = new Decimal(liquidity).div(\n Math.pow(10, coinsList[coin].expo),\n );\n return amount.toFixed(5);\n } else if (\n poolInfo[pool].parentProtocolName === \"BUCKET\" &&\n pool in singleAssetPoolCoinMap\n ) {\n const coin = singleAssetPoolCoinMap[singlePool].coin;\n const amount = new Decimal(liquidity).div(\n new Decimal(Math.pow(10, coinsList[coin].expo)),\n );\n return amount.toFixed(5);\n } else {\n throw new Error(\"Incorrect pool in argument\");\n }\n}\n\nfunction mergeDuplicateTokenHoldings(\n tokenHoldings: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[],\n) {\n const uniqueOwnerPoolMap = new Map<\n string,\n { tokens: string } | { tokenAmountA: string; tokenAmountB: string }\n >();\n\n for (const holding of tokenHoldings) {\n const owner = holding.user;\n const poolName = holding.poolName;\n const key = `${owner}_${poolName}`;\n if (uniqueOwnerPoolMap.has(key)) {\n const existingTokens = uniqueOwnerPoolMap.get(key);\n if (\"tokens\" in existingTokens!) {\n const thisHolding = holding as SingleAssetTokenHoldings;\n uniqueOwnerPoolMap.set(key, {\n tokens: (\n parseFloat(thisHolding.tokens) + parseFloat(existingTokens.tokens)\n )\n .toFixed(5)\n .toString(),\n });\n } else {\n const thisHolding = holding as DoubleAssetTokenHoldings;\n const tokensObj = {\n tokenAmountA: (\n parseFloat(thisHolding.tokenAmountA) +\n parseFloat(existingTokens!.tokenAmountA)\n )\n .toFixed(5)\n .toString(),\n tokenAmountB: (\n parseFloat(thisHolding.tokenAmountB) +\n parseFloat(existingTokens!.tokenAmountB)\n )\n .toFixed(5)\n .toString(),\n };\n uniqueOwnerPoolMap.set(key, tokensObj);\n }\n } else {\n if (\"tokens\" in holding) {\n uniqueOwnerPoolMap.set(key, { tokens: holding.tokens });\n } else {\n uniqueOwnerPoolMap.set(key, {\n tokenAmountA: holding.tokenAmountA,\n tokenAmountB: holding.tokenAmountB,\n });\n }\n }\n }\n\n const uniqueOwnerPoolMapArr = Array.from(uniqueOwnerPoolMap);\n const result: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[] =\n uniqueOwnerPoolMapArr.map(([owner_pool, holding]) => {\n const owner = owner_pool.split(\"_\")[0];\n const poolName = owner_pool.split(\"_\")[1];\n return { user: owner, poolName: poolName, ...holding } as\n | SingleAssetTokenHoldings\n | DoubleAssetTokenHoldings;\n });\n return result;\n}\n\nexport async function multiTokensToUsd(\n tokensHoldings: (SingleAssetTokenHoldings | DoubleAssetTokenHoldings)[],\n): Promise<HoldingsObj[]> {\n const pricePairs = new Set<PythPriceIdPair>();\n tokensHoldings.map((o) => {\n if (\"tokens\" in o) {\n const thisCoins = coinsInPool(o.poolName);\n pricePairs.add(`${thisCoins}/USD` as PythPriceIdPair);\n } else if (\"tokenAmountA\" in o) {\n const thisCoins = coinsInPool(o.poolName);\n pricePairs.add(`${thisCoins.coinA}/USD` as PythPriceIdPair);\n pricePairs.add(`${thisCoins.coinB}/USD` as PythPriceIdPair);\n }\n });\n\n const usdHoldings: HoldingsObj[] = [];\n const prices = await getLatestTokenPricePairs(Array.from(pricePairs), false);\n\n for (const tokenHolding of tokensHoldings) {\n if (\"tokens\" in tokenHolding) {\n // SingleAssetTokenHoldings\n const singlePool = tokenHolding.poolName;\n const coin = coinsInPool(singlePool);\n const priceOfCoin = prices[`${coin}/USD`];\n if (priceOfCoin) {\n const amountInUSD = new Decimal(tokenHolding.tokens).mul(priceOfCoin);\n usdHoldings.push({\n owner: tokenHolding.user,\n poolName: tokenHolding.poolName,\n holding: amountInUSD.toFixed(2).toString(),\n });\n }\n } else {\n // DoubleAssetTokenHoldings\n const poolName = tokenHolding.poolName;\n const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n const coin2 = doubleAssetPoolCoinMap[poolName].coin2;\n const priceOfCoin1 = prices[`${coin1}/USD`];\n const priceOfCoin2 = prices[`${coin2}/USD`];\n\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = new Decimal(tokenHolding.tokenAmountA)\n .mul(priceOfCoin1)\n .add(new Decimal(tokenHolding.tokenAmountB).mul(priceOfCoin2));\n usdHoldings.push({\n owner: tokenHolding.user,\n poolName: tokenHolding.poolName,\n holding: amount.toFixed(2).toString(),\n });\n }\n }\n }\n\n return usdHoldings;\n}\n"]}
@@ -1 +1 @@
1
- window.navigationData = "data:application/octet-stream;base64,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"
1
+ window.navigationData = "data:application/octet-stream;base64,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"