@alphafi/alphafi-sdk 0.0.83 → 0.0.84
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.
- package/dist/cjs/common/coins.d.ts.map +1 -1
- package/dist/cjs/common/coins.js +12 -0
- package/dist/cjs/common/coins.js.map +1 -1
- package/dist/cjs/common/constants.d.ts +70 -24
- package/dist/cjs/common/constants.d.ts.map +1 -1
- package/dist/cjs/common/constants.js +88 -29
- package/dist/cjs/common/constants.js.map +1 -1
- package/dist/cjs/common/maps.d.ts.map +1 -1
- package/dist/cjs/common/maps.js +41 -27
- package/dist/cjs/common/maps.js.map +1 -1
- package/dist/cjs/common/pyth.d.ts +1 -1
- package/dist/cjs/common/pyth.d.ts.map +1 -1
- package/dist/cjs/common/pyth.js.map +1 -1
- package/dist/cjs/common/types.d.ts +5 -4
- package/dist/cjs/common/types.d.ts.map +1 -1
- package/dist/cjs/common/types.js.map +1 -1
- package/dist/cjs/getAllVaults.d.ts.map +1 -1
- package/dist/cjs/getAllVaults.js +2 -1
- package/dist/cjs/getAllVaults.js.map +1 -1
- package/dist/cjs/getTvls.d.ts.map +1 -1
- package/dist/cjs/getTvls.js +11 -0
- package/dist/cjs/getTvls.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js +1 -0
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js +2 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js.map +1 -1
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +5 -4
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
- package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +1 -1
- package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/functions/getReceipts.js +13 -3
- package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.js +2 -42
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.js.map +1 -1
- package/dist/cjs/transactions/alphalend.d.ts +17 -0
- package/dist/cjs/transactions/alphalend.d.ts.map +1 -0
- package/dist/cjs/transactions/alphalend.js +198 -0
- package/dist/cjs/transactions/alphalend.js.map +1 -0
- package/dist/cjs/transactions/bluefin.js +5 -5
- package/dist/cjs/transactions/bluefin.js.map +1 -1
- package/dist/cjs/transactions/collect_rewards.js +1 -1
- package/dist/cjs/transactions/collect_rewards.js.map +1 -1
- package/dist/cjs/transactions/deposit.d.ts.map +1 -1
- package/dist/cjs/transactions/deposit.js +6 -0
- package/dist/cjs/transactions/deposit.js.map +1 -1
- package/dist/cjs/transactions/navi-looping.d.ts +3 -0
- package/dist/cjs/transactions/navi-looping.d.ts.map +1 -1
- package/dist/cjs/transactions/navi-looping.js +287 -54
- package/dist/cjs/transactions/navi-looping.js.map +1 -1
- package/dist/cjs/transactions/navi.d.ts.map +1 -1
- package/dist/cjs/transactions/navi.js +40 -34
- package/dist/cjs/transactions/navi.js.map +1 -1
- package/dist/cjs/transactions/withdraw.d.ts.map +1 -1
- package/dist/cjs/transactions/withdraw.js +8 -0
- package/dist/cjs/transactions/withdraw.js.map +1 -1
- package/dist/cjs/utils/getReceipts.d.ts.map +1 -1
- package/dist/cjs/utils/getReceipts.js +2 -0
- package/dist/cjs/utils/getReceipts.js.map +1 -1
- package/dist/cjs/utils/userHoldings.d.ts.map +1 -1
- package/dist/cjs/utils/userHoldings.js +3 -2
- package/dist/cjs/utils/userHoldings.js.map +1 -1
- package/dist/cjs/vaultFunctions.d.ts.map +1 -1
- package/dist/cjs/vaultFunctions.js +1 -0
- package/dist/cjs/vaultFunctions.js.map +1 -1
- package/dist/esm/common/coins.d.ts.map +1 -1
- package/dist/esm/common/coins.js +12 -0
- package/dist/esm/common/coins.js.map +1 -1
- package/dist/esm/common/constants.d.ts +70 -24
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +88 -29
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/common/maps.d.ts.map +1 -1
- package/dist/esm/common/maps.js +41 -27
- package/dist/esm/common/maps.js.map +1 -1
- package/dist/esm/common/pyth.d.ts +1 -1
- package/dist/esm/common/pyth.d.ts.map +1 -1
- package/dist/esm/common/pyth.js.map +1 -1
- package/dist/esm/common/types.d.ts +5 -4
- package/dist/esm/common/types.d.ts.map +1 -1
- package/dist/esm/common/types.js.map +1 -1
- package/dist/esm/getAllVaults.d.ts.map +1 -1
- package/dist/esm/getAllVaults.js +2 -1
- package/dist/esm/getAllVaults.js.map +1 -1
- package/dist/esm/getTvls.d.ts.map +1 -1
- package/dist/esm/getTvls.js +12 -1
- package/dist/esm/getTvls.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js +1 -0
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js +2 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js.map +1 -1
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +5 -4
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
- package/dist/esm/sui-sdk/functions/getReceipts.d.ts +1 -1
- package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
- package/dist/esm/sui-sdk/functions/getReceipts.js +13 -3
- package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
- package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -1
- package/dist/esm/sui-sdk/transactions/fetchTransactions.js +2 -42
- package/dist/esm/sui-sdk/transactions/fetchTransactions.js.map +1 -1
- package/dist/esm/transactions/alphalend.d.ts +17 -0
- package/dist/esm/transactions/alphalend.d.ts.map +1 -0
- package/dist/esm/transactions/alphalend.js +191 -0
- package/dist/esm/transactions/alphalend.js.map +1 -0
- package/dist/esm/transactions/bluefin.js +5 -5
- package/dist/esm/transactions/bluefin.js.map +1 -1
- package/dist/esm/transactions/collect_rewards.js +1 -1
- package/dist/esm/transactions/collect_rewards.js.map +1 -1
- package/dist/esm/transactions/deposit.d.ts.map +1 -1
- package/dist/esm/transactions/deposit.js +6 -0
- package/dist/esm/transactions/deposit.js.map +1 -1
- package/dist/esm/transactions/navi-looping.d.ts +3 -0
- package/dist/esm/transactions/navi-looping.d.ts.map +1 -1
- package/dist/esm/transactions/navi-looping.js +286 -54
- package/dist/esm/transactions/navi-looping.js.map +1 -1
- package/dist/esm/transactions/navi.d.ts.map +1 -1
- package/dist/esm/transactions/navi.js +40 -34
- package/dist/esm/transactions/navi.js.map +1 -1
- package/dist/esm/transactions/withdraw.d.ts.map +1 -1
- package/dist/esm/transactions/withdraw.js +8 -0
- package/dist/esm/transactions/withdraw.js.map +1 -1
- package/dist/esm/utils/getReceipts.d.ts.map +1 -1
- package/dist/esm/utils/getReceipts.js +2 -0
- package/dist/esm/utils/getReceipts.js.map +1 -1
- package/dist/esm/utils/userHoldings.d.ts.map +1 -1
- package/dist/esm/utils/userHoldings.js +3 -2
- package/dist/esm/utils/userHoldings.js.map +1 -1
- package/dist/esm/vaultFunctions.d.ts.map +1 -1
- package/dist/esm/vaultFunctions.js +1 -0
- package/dist/esm/vaultFunctions.js.map +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/functions/alphaLpBreakdown.html +1 -1
- package/docs/functions/cetusLpBreakdown.html +1 -1
- package/docs/functions/claimBlueRewardTxb.html +1 -1
- package/docs/functions/claimRewardTxb.html +1 -1
- package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -1
- package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -1
- package/docs/functions/coinsInPool.html +1 -1
- package/docs/functions/collectRewards.html +1 -1
- package/docs/functions/deposit.html +1 -1
- package/docs/functions/depositDoubleAssetTxb.html +1 -1
- package/docs/functions/depositSingleAssetTxb.html +1 -1
- package/docs/functions/fetchAfterTransactionEvents.html +1 -1
- package/docs/functions/fetchAirdropClaimEvents.html +1 -1
- package/docs/functions/fetchAutoCompoundingEvents.html +1 -1
- package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -1
- package/docs/functions/fetchCetusPools.html +1 -1
- package/docs/functions/fetchChainIdentifier.html +1 -1
- package/docs/functions/fetchCheckRatioEvents.html +1 -1
- package/docs/functions/fetchEvents.html +1 -1
- package/docs/functions/fetchLiquidityChangeEvents.html +1 -1
- package/docs/functions/fetchMultiCategoryEvents.html +1 -1
- package/docs/functions/fetchMultiReceipts.html +1 -1
- package/docs/functions/fetchNftHolders.html +1 -1
- package/docs/functions/fetchPools.html +1 -1
- package/docs/functions/fetchPortfolioData.html +1 -1
- package/docs/functions/fetchProtocolData.html +1 -1
- package/docs/functions/fetchTVL.html +1 -1
- package/docs/functions/fetchTransactions.html +1 -1
- package/docs/functions/fetchUserVaultBalances.html +1 -1
- package/docs/functions/fetchUserVaults.html +1 -1
- package/docs/functions/fetchUserWalletData.html +1 -1
- package/docs/functions/fetchVoloExchangeRate.html +1 -1
- package/docs/functions/fetchWithdrawV2Events.html +1 -1
- package/docs/functions/getAirdropShare.html +1 -1
- package/docs/functions/getAllDoubleAssetVaults.html +1 -1
- package/docs/functions/getAllSingleAssetVaults.html +1 -1
- package/docs/functions/getAllVaultBalances.html +1 -1
- package/docs/functions/getAllVaults.html +1 -1
- package/docs/functions/getAlphaUnlocks.html +1 -1
- package/docs/functions/getAlphaVaultBalance.html +1 -1
- package/docs/functions/getAmounts.html +1 -1
- package/docs/functions/getApr.html +1 -1
- package/docs/functions/getAprs.html +1 -1
- package/docs/functions/getApy.html +1 -1
- package/docs/functions/getApys.html +1 -1
- package/docs/functions/getCetusInvestorTicksMap.html +1 -1
- package/docs/functions/getCetusPool.html +1 -1
- package/docs/functions/getCetusSqrtPriceMap.html +1 -1
- package/docs/functions/getCoinAmountsFromLiquidity.html +1 -1
- package/docs/functions/getConf.html +1 -1
- package/docs/functions/getCurrentTick.html +1 -1
- package/docs/functions/getDistributor.html +1 -1
- package/docs/functions/getDoubleAssetVaultBalance.html +1 -1
- package/docs/functions/getDoubleAssetVaults.html +1 -1
- package/docs/functions/getInvestor.html +1 -1
- package/docs/functions/getInvestorPoolMap.html +1 -1
- package/docs/functions/getLastAutoCompoundTime.html +1 -1
- package/docs/functions/getLatestPrices.html +1 -1
- package/docs/functions/getLiquidity.html +1 -1
- package/docs/functions/getMultiCetusPool.html +1 -1
- package/docs/functions/getMultiInvestor.html +1 -1
- package/docs/functions/getMultiLatestPrices.html +1 -1
- package/docs/functions/getMultiParentPool.html +1 -1
- package/docs/functions/getMultiPool.html +1 -1
- package/docs/functions/getMultiReceipts.html +1 -1
- package/docs/functions/getParentPool.html +1 -1
- package/docs/functions/getPool.html +1 -1
- package/docs/functions/getPoolExchangeRate.html +1 -1
- package/docs/functions/getPoolExchangeRateMap.html +1 -1
- package/docs/functions/getPoolsWeightDistribution.html +1 -1
- package/docs/functions/getPositionRange.html +1 -1
- package/docs/functions/getPositionRanges.html +1 -1
- package/docs/functions/getPositionTicks.html +1 -1
- package/docs/functions/getPriceToTick.html +1 -1
- package/docs/functions/getRebalanceHistories.html +1 -1
- package/docs/functions/getRebalanceHistory.html +1 -1
- package/docs/functions/getReceipts.html +1 -1
- package/docs/functions/getSingleAssetVaultBalance.html +1 -1
- package/docs/functions/getSingleAssetVaults.html +1 -1
- package/docs/functions/getSuiClient.html +2 -2
- package/docs/functions/getSuiNodeUrl.html +2 -2
- package/docs/functions/getTVLs-1.html +1 -1
- package/docs/functions/getTickSpacing.html +1 -1
- package/docs/functions/getTickToPrice.html +1 -1
- package/docs/functions/getTvls.html +1 -1
- package/docs/functions/getVaultBalance.html +1 -1
- package/docs/functions/getVaults.html +1 -1
- package/docs/functions/getZapAmounts.html +1 -1
- package/docs/functions/lastAutocompoundTime.html +1 -1
- package/docs/functions/liquidityToTokens.html +1 -1
- package/docs/functions/migrateBoostedToLoop.html +1 -0
- package/docs/functions/multiLiquidityToTokens.html +1 -1
- package/docs/functions/multiTokensToUsd.html +1 -1
- package/docs/functions/multiXTokensToLiquidity.html +1 -1
- package/docs/functions/parseUserWalletData.html +1 -1
- package/docs/functions/pendingBlueRewardAmount.html +1 -1
- package/docs/functions/setCustomSuiClient.html +2 -2
- package/docs/functions/setSuiClient.html +2 -2
- package/docs/functions/setSuiNodeUrl.html +2 -2
- package/docs/functions/setWeights.html +1 -1
- package/docs/functions/withdraw.html +1 -1
- package/docs/functions/withdrawAlphaTxb.html +1 -1
- package/docs/functions/withdrawTxb.html +1 -1
- package/docs/functions/zapDepositTxb.html +1 -1
- package/docs/index.html +2 -2
- package/docs/interfaces/Coin.html +6 -6
- package/docs/interfaces/CoinPair.html +2 -2
- package/docs/interfaces/CommonEventAttributes.html +2 -2
- package/docs/interfaces/NaviVoloData.html +2 -2
- package/docs/interfaces/PoolData.html +2 -2
- package/docs/interfaces/PoolWeightDistribution.html +2 -2
- package/docs/interfaces/RebalanceHistoryType.html +2 -2
- package/docs/modules.html +4 -2
- package/docs/types/AfterTransactionEventNode.html +1 -1
- package/docs/types/AirdropClaimEventNode.html +1 -1
- package/docs/types/Allocator.html +1 -1
- package/docs/types/AlphaFiDoubleAssetVault.html +1 -1
- package/docs/types/AlphaFiMultiVaultBalance.html +1 -1
- package/docs/types/AlphaFiSingleAssetVault.html +1 -1
- package/docs/types/AlphaFiVault.html +1 -1
- package/docs/types/AlphaFiVaultBalance.html +1 -1
- package/docs/types/AlphaLendInvestor.html +1 -0
- package/docs/types/AlphaPoolType.html +1 -1
- package/docs/types/AlphaReceipt.html +1 -1
- package/docs/types/AlphaReceiptFields.html +1 -1
- package/docs/types/AlphaVaultBalance.html +1 -1
- package/docs/types/AutoBalancePoolNames.html +1 -1
- package/docs/types/AutoCompoundingEventNode.html +1 -1
- package/docs/types/BluefinInvestor.html +1 -1
- package/docs/types/BluefinPoolType.html +1 -1
- package/docs/types/BucketInvestor.html +1 -1
- package/docs/types/CetusInvestor.html +1 -1
- package/docs/types/CetusPoolType.html +1 -1
- package/docs/types/CetusSwapOptions.html +1 -1
- package/docs/types/CoinAmounts.html +1 -1
- package/docs/types/CoinName.html +1 -1
- package/docs/types/CoinType.html +1 -1
- package/docs/types/CommonInvestorFields.html +1 -1
- package/docs/types/CreatePoolOptions.html +1 -1
- package/docs/types/Distributor.html +1 -1
- package/docs/types/DoubleAssetMultiVaultBalance.html +1 -1
- package/docs/types/DoubleAssetPoolNames.html +1 -1
- package/docs/types/DoubleAssetTokenHoldings.html +1 -1
- package/docs/types/DoubleAssetVaultBalance.html +1 -1
- package/docs/types/EventCategory.html +1 -1
- package/docs/types/EventNode.html +1 -1
- package/docs/types/GetHoldersParams.html +1 -1
- package/docs/types/GetTokenHoldingsParams.html +1 -1
- package/docs/types/GetUserTokensFromTransactionsParams.html +1 -1
- package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +1 -1
- package/docs/types/GetVaultBalanceParams.html +1 -1
- package/docs/types/HoldingsObj.html +1 -1
- package/docs/types/Icon.html +1 -1
- package/docs/types/Investor.html +1 -1
- package/docs/types/LiquidityChangeEventNode.html +1 -1
- package/docs/types/LiquidityToTokensParams.html +1 -1
- package/docs/types/LiquidityToUsdParams.html +1 -1
- package/docs/types/LoopingDebt.html +1 -1
- package/docs/types/LoopingPoolNames.html +1 -1
- package/docs/types/LpBreakdownType.html +1 -1
- package/docs/types/MemberPoolDataType.html +1 -1
- package/docs/types/MemberType.html +1 -1
- package/docs/types/MultiGetVaultBalancesParams.html +1 -1
- package/docs/types/NaviInvestor.html +1 -1
- package/docs/types/OtherReceiptFields.html +1 -1
- package/docs/types/PoolName.html +1 -1
- package/docs/types/PoolReceipt.html +1 -1
- package/docs/types/PoolType.html +1 -1
- package/docs/types/Receipt.html +1 -1
- package/docs/types/ReceiptGQL.html +1 -1
- package/docs/types/SingleAssetMultiVaultBalance.html +1 -1
- package/docs/types/SingleAssetPoolNames.html +1 -1
- package/docs/types/SingleAssetTokenHoldings.html +1 -1
- package/docs/types/SingleAssetVaultBalance.html +1 -1
- package/docs/types/SingleGetVaultBalancesParams.html +1 -1
- package/docs/types/StrategyType.html +1 -1
- package/docs/types/SuiNetwork.html +1 -1
- package/docs/types/SwapOptions.html +1 -1
- package/docs/types/TickSpacing.html +1 -1
- package/docs/types/TotalWeightType.html +1 -1
- package/docs/types/TransactionBlockType.html +1 -1
- package/docs/types/UserPoolLiquidity.html +1 -1
- package/docs/types/UserPoolTokenHoldings.html +1 -1
- package/docs/types/UserUsdHoldings.html +1 -1
- package/docs/types/VaultBalance.html +1 -1
- package/docs/types/VoteCastEvent.html +1 -1
- package/docs/types/WithdrawV2EventNode.html +1 -1
- package/docs/variables/bluefinPoolMap.html +1 -1
- package/docs/variables/cetusPoolMap.html +1 -1
- package/docs/variables/coinsList.html +1 -1
- package/docs/variables/defunctPoolsSet.html +1 -1
- package/docs/variables/doubleAssetPoolCoinMap.html +1 -1
- package/docs/variables/eventCategories.html +1 -1
- package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -1
- package/docs/variables/loopingAccountAddresses.html +1 -1
- package/docs/variables/loopingPoolCoinMap.html +1 -1
- package/docs/variables/naviAssetMap.html +1 -1
- package/docs/variables/poolIdPoolNameMap.html +1 -1
- package/docs/variables/poolInfo.html +1 -1
- package/docs/variables/singleAssetPoolCoinMap.html +1 -1
- package/docs/variables/stableCoins.html +1 -1
- package/package.json +3 -2
- package/#t.ts# +0 -8
- package/dist/cjs/collectReward.d.ts +0 -2
- package/dist/cjs/collectReward.d.ts.map +0 -1
- package/dist/cjs/collectReward.js +0 -7
- package/dist/cjs/collectReward.js.map +0 -1
- package/dist/cjs/getHoldersFromTransactions.d.ts +0 -9
- package/dist/cjs/getHoldersFromTransactions.d.ts.map +0 -1
- package/dist/cjs/getHoldersFromTransactions.js +0 -87
- package/dist/cjs/getHoldersFromTransactions.js.map +0 -1
- package/dist/cjs/getTVL.d.ts +0 -5
- package/dist/cjs/getTVL.d.ts.map +0 -1
- package/dist/cjs/getTVL.js +0 -109
- package/dist/cjs/getTVL.js.map +0 -1
- package/dist/cjs/transactions/deposit1.d.ts +0 -1
- package/dist/cjs/transactions/deposit1.d.ts.map +0 -1
- package/dist/cjs/transactions/deposit1.js +0 -86
- package/dist/cjs/transactions/deposit1.js.map +0 -1
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.d.ts +0 -6
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.d.ts.map +0 -1
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.js +0 -132
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.js.map +0 -1
- package/dist/esm/collectReward.d.ts +0 -2
- package/dist/esm/collectReward.d.ts.map +0 -1
- package/dist/esm/collectReward.js +0 -4
- package/dist/esm/collectReward.js.map +0 -1
- package/dist/esm/getHoldersFromTransactions.d.ts +0 -9
- package/dist/esm/getHoldersFromTransactions.d.ts.map +0 -1
- package/dist/esm/getHoldersFromTransactions.js +0 -82
- package/dist/esm/getHoldersFromTransactions.js.map +0 -1
- package/dist/esm/getTVL.d.ts +0 -5
- package/dist/esm/getTVL.d.ts.map +0 -1
- package/dist/esm/getTVL.js +0 -103
- package/dist/esm/getTVL.js.map +0 -1
- package/dist/esm/transactions/deposit1.d.ts +0 -2
- package/dist/esm/transactions/deposit1.d.ts.map +0 -1
- package/dist/esm/transactions/deposit1.js +0 -86
- package/dist/esm/transactions/deposit1.js.map +0 -1
- package/dist/esm/utils/getHoldersFromTransactionsUtils.d.ts +0 -6
- package/dist/esm/utils/getHoldersFromTransactionsUtils.d.ts.map +0 -1
- package/dist/esm/utils/getHoldersFromTransactionsUtils.js +0 -127
- package/dist/esm/utils/getHoldersFromTransactionsUtils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getHoldersFromTransactionsUtils.js","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SuiObjectResponse } from \"@mysten/sui/client\";\nimport {\n AlphaReceiptFields,\n OtherReceiptFields,\n LiquidityToUsdParams,\n} from \"../types.js\";\nimport {\n poolIdPoolNameMap,\n doubleAssetPoolCoinMap,\n getPoolExchangeRateMap,\n singleAssetPoolCoinMap,\n} from \"../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BN } from \"bn.js\";\nimport { PoolName, CoinName } from \"../common/types.js\";\nimport {\n ClmmPoolUtil,\n TickMath,\n CoinAmounts,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport { coinsList } from \"../common/coins.js\";\n\nexport async function parseTokensFromReceipts(\n receipts: SuiObjectResponse[],\n): Promise<[string, string, string][]> {\n let userTokens: [string, string, string][] = [];\n\n for (const receipt of receipts) {\n const nftData = receipt.data?.content;\n if (nftData?.dataType === \"moveObject\") {\n const fields = nftData.fields as AlphaReceiptFields | OtherReceiptFields;\n const owner = fields.owner;\n const pool = poolIdPoolNameMap[fields.pool_id] as string;\n const xTokens = fields.xTokenBalance;\n userTokens.push([owner, pool, xTokens]);\n }\n }\n const conversionMap = await getPoolExchangeRateMap();\n userTokens = userTokens.map(([owner, pool, xTokens]) => {\n const conversion = new Decimal(\n conversionMap.get(pool as PoolName) as string,\n );\n const tokens = new Decimal(xTokens).mul(conversion).toFixed(4).toString();\n return [owner, pool, tokens];\n });\n\n return userTokens;\n}\n\nexport function liquidityToUsd(\n params: LiquidityToUsdParams,\n): string | undefined {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToUSD(\n params.liquidity,\n params.poolName,\n params.tokenPriceMap,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToUSD(params.liquidity, params.tokenPriceMap);\n } else {\n holdingUSD = doubleAssetliquidityToUSD(params);\n }\n return holdingUSD;\n}\nfunction doubleAssetliquidityToUSD(params: {\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}): string | undefined {\n const pool = params.poolName;\n const liquidity = params.liquidity;\n const ticksCetusMap = params.ticksCetusMap;\n const sqrtPriceCetusMap = params.sqrtPriceCetusMap;\n const tokenPriceMap = params.tokenPriceMap;\n\n try {\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 const priceOfCoin1 = tokenPriceMap.get(coin1);\n const priceOfCoin2 = tokenPriceMap.get(coin2);\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = amount1.mul(priceOfCoin1).add(amount2.mul(priceOfCoin2));\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\nfunction alphaLiquidityToUSD(\n liquidity: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const priceOfAlpha = tokenPriceMap.get(\"ALPHA\");\n if (priceOfAlpha) {\n let amount = new Decimal(liquidity).div(1e9);\n amount = amount.mul(priceOfAlpha);\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ALPHA:`, error);\n return undefined;\n }\n}\nfunction singleAssetLiquidityToUSD(\n liquidity: string,\n pool: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const singlePool = pool as Extract<\n PoolName,\n \"NAVI-VSUI\" | \"NAVI-SUI\" | \"NAVI-WETH\" | \"NAVI-USDC\" | \"NAVI-USDT\"\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 const priceOfCoin = tokenPriceMap.get(coin);\n if (priceOfCoin) {\n const amountInUSD = amount.mul(priceOfCoin);\n return amountInUSD.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\n\nexport function mergeDuplicateHoldings(\n userTokens: [string, string, string][],\n): [string, string, string][] {\n const address_poolValueMap = new Map<string, number>();\n userTokens.forEach(([address, pool, value]) => {\n const key = `${address}_${pool}`;\n const numericValue = parseFloat(value);\n if (address_poolValueMap.has(key)) {\n address_poolValueMap.set(\n key,\n address_poolValueMap.get(key)! + numericValue,\n );\n } else {\n address_poolValueMap.set(key, numericValue);\n }\n });\n return Array.from(address_poolValueMap.entries()).map(([key, value]) => {\n const [address, pool] = key.split(\"_\");\n return [address, pool, value.toFixed(2).toString()];\n });\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collectReward.d.ts","sourceRoot":"","sources":["../../src/collectReward.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,SAE5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collectReward.js","sourceRoot":"","sources":["../../src/collectReward.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjC,CAAC","sourcesContent":["export function collectReward() {\n console.log(\"Not implemented\");\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { GetUserTokensFromTransactionsParams, GetUserTokensInUsdFromTransactionsParams, UserUsdHoldings } from "./types.js";
|
|
2
|
-
export declare function getHoldersFromTransactions(params?: {
|
|
3
|
-
poolNames?: string[];
|
|
4
|
-
startTime?: number;
|
|
5
|
-
endTime?: number;
|
|
6
|
-
}): Promise<string[]>;
|
|
7
|
-
export declare function getUserTokensFromTransactions(params?: GetUserTokensFromTransactionsParams): Promise<[string, string, string][]>;
|
|
8
|
-
export declare function getUserTokensInUsdFromTransactions(params?: GetUserTokensInUsdFromTransactionsParams): Promise<UserUsdHoldings[]>;
|
|
9
|
-
//# sourceMappingURL=getHoldersFromTransactions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getHoldersFromTransactions.d.ts","sourceRoot":"","sources":["../../src/getHoldersFromTransactions.ts"],"names":[],"mappings":"AASA,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,eAAe,EAEhB,MAAM,YAAY,CAAC;AAepB,wBAAsB,0BAA0B,CAAC,MAAM,CAAC,EAAE;IACxD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBpB;AAED,wBAAsB,6BAA6B,CACjD,MAAM,CAAC,EAAE,mCAAmC,GAC3C,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAiBrC;AAED,wBAAsB,kCAAkC,CACtD,MAAM,CAAC,EAAE,wCAAwC,GAChD,OAAO,CAAC,eAAe,EAAE,CAAC,CAoC5B"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { fetchTransactions } from "./sui-sdk/transactions/fetchTransactions.js";
|
|
2
|
-
import { nonAlphaDepositFilters, alphaDepositFilters, } from "./sui-sdk/transactions/constants.js";
|
|
3
|
-
import { getReceipts } from "./utils/getReceipts.js";
|
|
4
|
-
import { getCetusSqrtPriceMap, getCetusInvestorTicksMap, getTokenPriceMap, } from "./common/maps.js";
|
|
5
|
-
import { parseTokensFromReceipts, liquidityToUsd, mergeDuplicateHoldings, } from "./utils/getHoldersFromTransactionsUtils.js";
|
|
6
|
-
// TODO: add functionality for Pool
|
|
7
|
-
export async function getHoldersFromTransactions(params) {
|
|
8
|
-
const now = Date.now();
|
|
9
|
-
const twentyFourHoursAgo = now - 24 * 60 * 60 * 1000; // timestamp for 24 hours ago
|
|
10
|
-
const startTime = params?.startTime ? params.startTime : twentyFourHoursAgo;
|
|
11
|
-
const endTime = params?.endTime ? params.endTime : now;
|
|
12
|
-
const filters = [
|
|
13
|
-
...alphaDepositFilters,
|
|
14
|
-
...nonAlphaDepositFilters,
|
|
15
|
-
];
|
|
16
|
-
const transactions = await fetchTransactions({
|
|
17
|
-
startTime: startTime,
|
|
18
|
-
endTime: endTime,
|
|
19
|
-
filter: filters,
|
|
20
|
-
sort: "descending",
|
|
21
|
-
});
|
|
22
|
-
const users = transactions.map((tx) => {
|
|
23
|
-
const owner = tx.effects?.gasObject.owner;
|
|
24
|
-
return owner.AddressOwner;
|
|
25
|
-
});
|
|
26
|
-
const userSet = new Set(users);
|
|
27
|
-
return Array.from(userSet);
|
|
28
|
-
}
|
|
29
|
-
export async function getUserTokensFromTransactions(params) {
|
|
30
|
-
let owners;
|
|
31
|
-
if (params?.owners) {
|
|
32
|
-
owners = params.owners;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
owners = await getHoldersFromTransactions({
|
|
36
|
-
poolNames: params?.poolNames,
|
|
37
|
-
startTime: params?.startTime,
|
|
38
|
-
endTime: params?.endTime,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
const receipts = await getReceipts({
|
|
42
|
-
poolNames: params?.poolNames,
|
|
43
|
-
owners: owners,
|
|
44
|
-
});
|
|
45
|
-
const userTokens = parseTokensFromReceipts(receipts);
|
|
46
|
-
return userTokens;
|
|
47
|
-
}
|
|
48
|
-
export async function getUserTokensInUsdFromTransactions(params) {
|
|
49
|
-
let usdHoldings = [];
|
|
50
|
-
// format: [address pool tokens][]
|
|
51
|
-
let tokenHoldings;
|
|
52
|
-
if (params?.userTokensHoldings) {
|
|
53
|
-
tokenHoldings = params.userTokensHoldings;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
tokenHoldings = await getUserTokensFromTransactions(params);
|
|
57
|
-
}
|
|
58
|
-
const sqrtPriceCetusMap = await getCetusSqrtPriceMap();
|
|
59
|
-
const ticksCetusMap = await getCetusInvestorTicksMap();
|
|
60
|
-
const tokenPriceMap = await getTokenPriceMap();
|
|
61
|
-
usdHoldings = tokenHoldings.map(([address, poolName, tokens]) => {
|
|
62
|
-
const params = {
|
|
63
|
-
liquidity: tokens,
|
|
64
|
-
poolName: poolName,
|
|
65
|
-
ticksCetusMap: ticksCetusMap,
|
|
66
|
-
sqrtPriceCetusMap: sqrtPriceCetusMap,
|
|
67
|
-
tokenPriceMap: tokenPriceMap,
|
|
68
|
-
};
|
|
69
|
-
const usdVal = liquidityToUsd(params);
|
|
70
|
-
return [address, poolName, usdVal];
|
|
71
|
-
});
|
|
72
|
-
usdHoldings = mergeDuplicateHoldings(usdHoldings);
|
|
73
|
-
const userUsdHoldings = usdHoldings.map(([address, pool, value]) => {
|
|
74
|
-
return {
|
|
75
|
-
user: address,
|
|
76
|
-
poolName: pool,
|
|
77
|
-
usdHoldings: value,
|
|
78
|
-
};
|
|
79
|
-
});
|
|
80
|
-
return userUsdHoldings;
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=getHoldersFromTransactions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getHoldersFromTransactions.js","sourceRoot":"","sources":["../../src/getHoldersFromTransactions.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SuiTransactionBlockResponse,\n TransactionFilter,\n} from \"@mysten/sui/client\";\nimport { fetchTransactions } from \"./sui-sdk/transactions/fetchTransactions.js\";\nimport {\n nonAlphaDepositFilters,\n alphaDepositFilters,\n} from \"./sui-sdk/transactions/constants.js\";\nimport {\n GetUserTokensFromTransactionsParams,\n GetUserTokensInUsdFromTransactionsParams,\n UserUsdHoldings,\n LiquidityToUsdParams,\n} from \"./types.js\";\nimport { getReceipts } from \"./utils/getReceipts.js\";\nimport {\n getCetusSqrtPriceMap,\n getCetusInvestorTicksMap,\n getTokenPriceMap,\n} from \"./common/maps.js\";\nimport { PoolName } from \"./common/types.js\";\nimport {\n parseTokensFromReceipts,\n liquidityToUsd,\n mergeDuplicateHoldings,\n} from \"./utils/getHoldersFromTransactionsUtils.js\";\n\n// TODO: add functionality for Pool\nexport async function getHoldersFromTransactions(params?: {\n poolNames?: string[];\n startTime?: number;\n endTime?: number;\n}): Promise<string[]> {\n const now = Date.now();\n const twentyFourHoursAgo = now - 24 * 60 * 60 * 1000; // timestamp for 24 hours ago\n const startTime = params?.startTime ? params.startTime : twentyFourHoursAgo;\n const endTime = params?.endTime ? params.endTime : now;\n\n const filters: TransactionFilter[] = [\n ...alphaDepositFilters,\n ...nonAlphaDepositFilters,\n ];\n const transactions: SuiTransactionBlockResponse[] = await fetchTransactions({\n startTime: startTime,\n endTime: endTime,\n filter: filters,\n sort: \"descending\",\n });\n const users = transactions.map((tx) => {\n const owner = tx.effects?.gasObject.owner as { AddressOwner: string };\n return owner.AddressOwner;\n });\n\n const userSet = new Set<string>(users);\n return Array.from(userSet);\n}\n\nexport async function getUserTokensFromTransactions(\n params?: GetUserTokensFromTransactionsParams,\n): Promise<[string, string, string][]> {\n let owners: string[];\n if (params?.owners) {\n owners = params.owners;\n } else {\n owners = await getHoldersFromTransactions({\n poolNames: params?.poolNames,\n startTime: params?.startTime,\n endTime: params?.endTime,\n });\n }\n const receipts = await getReceipts({\n poolNames: params?.poolNames,\n owners: owners,\n });\n const userTokens = parseTokensFromReceipts(receipts);\n return userTokens;\n}\n\nexport async function getUserTokensInUsdFromTransactions(\n params?: GetUserTokensInUsdFromTransactionsParams,\n): Promise<UserUsdHoldings[]> {\n let usdHoldings: [string, string, string][] = [];\n\n // format: [address pool tokens][]\n let tokenHoldings: [string, string, string][];\n if (params?.userTokensHoldings) {\n tokenHoldings = params.userTokensHoldings;\n } else {\n tokenHoldings = await getUserTokensFromTransactions(params);\n }\n const sqrtPriceCetusMap = await getCetusSqrtPriceMap();\n const ticksCetusMap = await getCetusInvestorTicksMap();\n const tokenPriceMap = await getTokenPriceMap();\n usdHoldings = tokenHoldings.map(([address, poolName, tokens]) => {\n const params: LiquidityToUsdParams = {\n liquidity: tokens,\n poolName: poolName,\n ticksCetusMap: ticksCetusMap,\n sqrtPriceCetusMap: sqrtPriceCetusMap,\n tokenPriceMap: tokenPriceMap,\n };\n const usdVal = liquidityToUsd(params) as string;\n return [address, poolName, usdVal];\n });\n usdHoldings = mergeDuplicateHoldings(usdHoldings);\n const userUsdHoldings: UserUsdHoldings[] = usdHoldings.map(\n ([address, pool, value]) => {\n return {\n user: address,\n poolName: pool as PoolName,\n usdHoldings: value,\n };\n },\n );\n\n return userUsdHoldings;\n}\n"]}
|
package/dist/esm/getTVL.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { CetusInvestor, CommonInvestorFields, CetusPoolType, PoolName, BluefinInvestor, BluefinPoolType } from "./index.js";
|
|
2
|
-
export declare function getTVLs(): Promise<Map<PoolName, string>>;
|
|
3
|
-
export declare function fetchTVL(poolName: PoolName, ignoreCache: boolean): Promise<string>;
|
|
4
|
-
export declare function fetchAlphafiV3PoolTVL(poolName: PoolName, clmmPool: CetusPoolType | BluefinPoolType, investor: (CetusInvestor | BluefinInvestor) & CommonInvestorFields, ignoreCache: boolean): Promise<string>;
|
|
5
|
-
//# sourceMappingURL=getTVL.d.ts.map
|
package/dist/esm/getTVL.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTVL.d.ts","sourceRoot":"","sources":["../../src/getTVL.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EAEb,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,eAAe,EAIf,eAAe,EAGhB,MAAM,YAAY,CAAC;AAapB,wBAAsB,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAY9D;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC,CAkGjB;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,aAAa,GAAG,eAAe,EACzC,QAAQ,EAAE,CAAC,aAAa,GAAG,eAAe,CAAC,GAAG,oBAAoB,EAClE,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC,CAuCjB"}
|
package/dist/esm/getTVL.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Decimal } from "decimal.js";
|
|
2
|
-
import { getPool, poolInfo, singleAssetPoolCoinMap, coinsList, doubleAssetPoolCoinMap, } from "./index.js";
|
|
3
|
-
import { getDistributor, getInvestor, getMultiInvestor, getMultiParentPool, getParentPool, } from "./sui-sdk/functions/getReceipts.js";
|
|
4
|
-
import { getLatestPrices, getMultiLatestPrices } from "./utils/prices.js";
|
|
5
|
-
import BN from "bn.js";
|
|
6
|
-
import { ClmmPoolUtil, TickMath } from "@cetusprotocol/cetus-sui-clmm-sdk";
|
|
7
|
-
export async function getTVLs() {
|
|
8
|
-
const tvlMap = new Map();
|
|
9
|
-
await getMultiInvestor();
|
|
10
|
-
await getMultiLatestPrices();
|
|
11
|
-
await getMultiParentPool();
|
|
12
|
-
// await getMultiPool();
|
|
13
|
-
const pools = Object.keys(poolInfo);
|
|
14
|
-
for (const key of pools) {
|
|
15
|
-
const tvl = await fetchTVL(key, false);
|
|
16
|
-
tvlMap.set(key, tvl);
|
|
17
|
-
}
|
|
18
|
-
return tvlMap;
|
|
19
|
-
}
|
|
20
|
-
export async function fetchTVL(poolName, ignoreCache) {
|
|
21
|
-
const pool = await getPool(poolName, ignoreCache);
|
|
22
|
-
if (poolInfo[poolName].parentProtocolName == "NAVI") {
|
|
23
|
-
const poolToken = singleAssetPoolCoinMap[poolName].coin;
|
|
24
|
-
const [priceOfCoin] = await getLatestPrices([`${poolToken}/USD`], ignoreCache);
|
|
25
|
-
let tvl = new Decimal(0);
|
|
26
|
-
if (poolInfo[poolName].strategyType === "LOOPING") {
|
|
27
|
-
const investor = (await getInvestor(poolName, ignoreCache));
|
|
28
|
-
const liquidity = new Decimal(investor.content.fields.tokensDeposited);
|
|
29
|
-
const debtToSupplyRatio = new Decimal(investor.content.fields.current_debt_to_supply_ratio);
|
|
30
|
-
const tokensInvested = liquidity.mul(new Decimal(1).minus(debtToSupplyRatio.div(new Decimal(1e20))));
|
|
31
|
-
if (poolName == "NAVI-LOOP-SUI-VSUI") {
|
|
32
|
-
const [vsuiPrice] = await getLatestPrices([`VSUI/USD`], ignoreCache);
|
|
33
|
-
if (vsuiPrice) {
|
|
34
|
-
tvl = new Decimal(tokensInvested).mul(vsuiPrice).div(1e9);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
tvl = tokensInvested.div(1e9).mul(priceOfCoin);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
const liquidity = new Decimal(pool.content.fields.tokensInvested);
|
|
43
|
-
const tokensInvested = liquidity.div(new Decimal(Math.pow(10, 9)));
|
|
44
|
-
tvl = tokensInvested.mul(priceOfCoin);
|
|
45
|
-
}
|
|
46
|
-
return tvl.toString();
|
|
47
|
-
}
|
|
48
|
-
else if (poolInfo[poolName].parentProtocolName == "BUCKET") {
|
|
49
|
-
const poolToken = singleAssetPoolCoinMap[poolName].coin;
|
|
50
|
-
const [priceOfCoin] = await getLatestPrices([`${poolToken}/USD`], ignoreCache);
|
|
51
|
-
const liquidity = new Decimal(pool.content.fields.tokensInvested);
|
|
52
|
-
const tokensInvested = liquidity.div(new Decimal(Math.pow(10, coinsList[singleAssetPoolCoinMap[poolName].coin].expo)));
|
|
53
|
-
const tvl = tokensInvested.mul(priceOfCoin);
|
|
54
|
-
return tvl.toString();
|
|
55
|
-
}
|
|
56
|
-
else if (poolInfo[poolName].parentProtocolName === "ALPHAFI") {
|
|
57
|
-
const distributor = await getDistributor(ignoreCache);
|
|
58
|
-
const [priceOfAlpha] = await getLatestPrices(["ALPHA/USD"], ignoreCache);
|
|
59
|
-
if (pool && distributor && priceOfAlpha) {
|
|
60
|
-
const tokensInvested = new Decimal(pool.content.fields.tokensInvested);
|
|
61
|
-
const tvl = tokensInvested.div(1e9).mul(new Decimal(priceOfAlpha));
|
|
62
|
-
return tvl.toString();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
else if (poolInfo[poolName].parentProtocolName === "CETUS") {
|
|
66
|
-
const cetus_pool = (await getParentPool(poolName, ignoreCache));
|
|
67
|
-
const investor = (await getInvestor(poolName, ignoreCache));
|
|
68
|
-
return await fetchAlphafiV3PoolTVL(poolName, cetus_pool, investor, ignoreCache);
|
|
69
|
-
}
|
|
70
|
-
else if (poolInfo[poolName].parentProtocolName === "BLUEFIN") {
|
|
71
|
-
const bluefin_pool = (await getParentPool(poolName, ignoreCache));
|
|
72
|
-
const investor = (await getInvestor(poolName, ignoreCache));
|
|
73
|
-
return await fetchAlphafiV3PoolTVL(poolName, bluefin_pool, investor, ignoreCache);
|
|
74
|
-
}
|
|
75
|
-
return "0";
|
|
76
|
-
}
|
|
77
|
-
export async function fetchAlphafiV3PoolTVL(poolName, clmmPool, investor, ignoreCache) {
|
|
78
|
-
const pool = await getPool(poolName, ignoreCache);
|
|
79
|
-
const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
|
|
80
|
-
const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
|
|
81
|
-
const [priceOfCoin0, priceOfCoin1] = await getLatestPrices([`${pool1}/USD`, `${pool2}/USD`], ignoreCache);
|
|
82
|
-
const liquidity = new BN(pool.content.fields.tokensInvested);
|
|
83
|
-
const current_sqrt_price = new BN(clmmPool.content.fields.current_sqrt_price);
|
|
84
|
-
let upper_tick = parseInt(investor.content.fields.upper_tick);
|
|
85
|
-
let lower_tick = parseInt(investor.content.fields.lower_tick);
|
|
86
|
-
if (Math.abs(lower_tick - Math.pow(2, 32)) < lower_tick) {
|
|
87
|
-
lower_tick = lower_tick - Math.pow(2, 32);
|
|
88
|
-
}
|
|
89
|
-
if (Math.abs(upper_tick - Math.pow(2, 32)) < upper_tick) {
|
|
90
|
-
upper_tick = upper_tick - Math.pow(2, 32);
|
|
91
|
-
}
|
|
92
|
-
const upper_sqrt_price = TickMath.tickIndexToSqrtPriceX64(upper_tick);
|
|
93
|
-
const lower_sqrt_price = TickMath.tickIndexToSqrtPriceX64(lower_tick);
|
|
94
|
-
const { coinA, coinB } = ClmmPoolUtil.getCoinAmountFromLiquidity(liquidity, current_sqrt_price, lower_sqrt_price, upper_sqrt_price, false);
|
|
95
|
-
let amount0 = new Decimal(coinA.toString());
|
|
96
|
-
let amount1 = new Decimal(coinB.toString());
|
|
97
|
-
const ten = new Decimal(10);
|
|
98
|
-
amount0 = amount0.div(ten.pow(coinsList[pool1].expo));
|
|
99
|
-
amount1 = amount1.div(ten.pow(coinsList[pool2].expo));
|
|
100
|
-
const tvl = amount0.mul(priceOfCoin0).add(amount1.mul(priceOfCoin1));
|
|
101
|
-
return tvl.toString();
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=getTVL.js.map
|
package/dist/esm/getTVL.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTVL.js","sourceRoot":"","sources":["../../src/getTVL.ts"],"names":[],"mappings":"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","sourcesContent":["import { Decimal } from \"decimal.js\";\nimport {\n CetusInvestor,\n NaviInvestor,\n CommonInvestorFields,\n CetusPoolType,\n PoolName,\n BluefinInvestor,\n getPool,\n poolInfo,\n singleAssetPoolCoinMap,\n BluefinPoolType,\n coinsList,\n doubleAssetPoolCoinMap,\n} from \"./index.js\";\nimport {\n getDistributor,\n getInvestor,\n getMultiInvestor,\n getMultiParentPool,\n getParentPool,\n} from \"./sui-sdk/functions/getReceipts.js\";\nimport { getLatestPrices, getMultiLatestPrices } from \"./utils/prices.js\";\nimport { PythPriceIdPair } from \"./common/pyth.js\";\nimport BN from \"bn.js\";\nimport { ClmmPoolUtil, TickMath } from \"@cetusprotocol/cetus-sui-clmm-sdk\";\n\nexport async function getTVLs(): Promise<Map<PoolName, string>> {\n const tvlMap = new Map<PoolName, string>();\n await getMultiInvestor();\n await getMultiLatestPrices();\n await getMultiParentPool();\n // await getMultiPool();\n const pools = Object.keys(poolInfo);\n for (const key of pools) {\n const tvl = await fetchTVL(key as PoolName, false);\n tvlMap.set(key as PoolName, tvl);\n }\n return tvlMap;\n}\n\nexport async function fetchTVL(\n poolName: PoolName,\n ignoreCache: boolean,\n): Promise<string> {\n const pool = await getPool(poolName, ignoreCache);\n\n if (poolInfo[poolName].parentProtocolName == \"NAVI\") {\n const poolToken = singleAssetPoolCoinMap[poolName].coin;\n const [priceOfCoin] = await getLatestPrices(\n [`${poolToken}/USD` as PythPriceIdPair],\n ignoreCache,\n );\n let tvl = new Decimal(0);\n if (poolInfo[poolName].strategyType === \"LOOPING\") {\n const investor = (await getInvestor(\n poolName,\n ignoreCache,\n )) as NaviInvestor & CommonInvestorFields;\n const liquidity = new Decimal(investor.content.fields.tokensDeposited);\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(debtToSupplyRatio.div(new Decimal(1e20))),\n );\n if (poolName == \"NAVI-LOOP-SUI-VSUI\") {\n const [vsuiPrice] = await getLatestPrices(\n [`VSUI/USD` as PythPriceIdPair],\n ignoreCache,\n );\n if (vsuiPrice) {\n tvl = new Decimal(tokensInvested).mul(vsuiPrice).div(1e9);\n }\n } else {\n tvl = tokensInvested.div(1e9).mul(priceOfCoin);\n }\n } else {\n const liquidity = new Decimal(pool.content.fields.tokensInvested);\n const tokensInvested = liquidity.div(new Decimal(Math.pow(10, 9)));\n tvl = tokensInvested.mul(priceOfCoin);\n }\n\n return tvl.toString();\n } else if (poolInfo[poolName].parentProtocolName == \"BUCKET\") {\n const poolToken = singleAssetPoolCoinMap[poolName].coin;\n const [priceOfCoin] = await getLatestPrices(\n [`${poolToken}/USD` as PythPriceIdPair],\n ignoreCache,\n );\n const liquidity = new Decimal(pool.content.fields.tokensInvested);\n const tokensInvested = liquidity.div(\n new Decimal(\n Math.pow(10, coinsList[singleAssetPoolCoinMap[poolName].coin].expo),\n ),\n );\n const tvl = tokensInvested.mul(priceOfCoin);\n\n return tvl.toString();\n } else if (poolInfo[poolName].parentProtocolName === \"ALPHAFI\") {\n const distributor = await getDistributor(ignoreCache);\n const [priceOfAlpha] = await getLatestPrices([\"ALPHA/USD\"], ignoreCache);\n if (pool && distributor && priceOfAlpha) {\n const tokensInvested = new Decimal(pool.content.fields.tokensInvested);\n const tvl = tokensInvested.div(1e9).mul(new Decimal(priceOfAlpha));\n\n return tvl.toString();\n }\n } else if (poolInfo[poolName].parentProtocolName === \"CETUS\") {\n const cetus_pool = (await getParentPool(\n poolName,\n ignoreCache,\n )) as CetusPoolType;\n const investor = (await getInvestor(\n poolName,\n ignoreCache,\n )) as CetusInvestor & CommonInvestorFields;\n\n return await fetchAlphafiV3PoolTVL(\n poolName,\n cetus_pool,\n investor,\n ignoreCache,\n );\n } else if (poolInfo[poolName].parentProtocolName === \"BLUEFIN\") {\n const bluefin_pool = (await getParentPool(\n poolName,\n ignoreCache,\n )) as BluefinPoolType;\n const investor = (await getInvestor(\n poolName,\n ignoreCache,\n )) as BluefinInvestor & CommonInvestorFields;\n\n return await fetchAlphafiV3PoolTVL(\n poolName,\n bluefin_pool,\n investor,\n ignoreCache,\n );\n }\n return \"0\";\n}\n\nexport async function fetchAlphafiV3PoolTVL(\n poolName: PoolName,\n clmmPool: CetusPoolType | BluefinPoolType,\n investor: (CetusInvestor | BluefinInvestor) & CommonInvestorFields,\n ignoreCache: boolean,\n): Promise<string> {\n const pool = await getPool(poolName, ignoreCache);\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const [priceOfCoin0, priceOfCoin1] = await getLatestPrices(\n [`${pool1}/USD` as PythPriceIdPair, `${pool2}/USD` as PythPriceIdPair],\n ignoreCache,\n );\n\n const liquidity = new BN(pool.content.fields.tokensInvested);\n const current_sqrt_price = new BN(clmmPool.content.fields.current_sqrt_price);\n let upper_tick = parseInt(investor.content.fields.upper_tick);\n let lower_tick = parseInt(investor.content.fields.lower_tick);\n if (Math.abs(lower_tick - Math.pow(2, 32)) < lower_tick) {\n lower_tick = lower_tick - Math.pow(2, 32);\n }\n if (Math.abs(upper_tick - Math.pow(2, 32)) < upper_tick) {\n upper_tick = upper_tick - Math.pow(2, 32);\n }\n const upper_sqrt_price = TickMath.tickIndexToSqrtPriceX64(upper_tick);\n const lower_sqrt_price = TickMath.tickIndexToSqrtPriceX64(lower_tick);\n const { coinA, coinB } = ClmmPoolUtil.getCoinAmountFromLiquidity(\n liquidity,\n current_sqrt_price,\n lower_sqrt_price,\n upper_sqrt_price,\n false,\n );\n let amount0 = new Decimal(coinA.toString());\n let amount1 = new Decimal(coinB.toString());\n\n const ten = new Decimal(10);\n amount0 = amount0.div(ten.pow(coinsList[pool1].expo));\n amount1 = amount1.div(ten.pow(coinsList[pool2].expo));\n\n const tvl = amount0.mul(priceOfCoin0).add(amount1.mul(priceOfCoin1));\n\n return tvl.toString();\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deposit1.d.ts","sourceRoot":"","sources":["../../../src/transactions/deposit1.ts"],"names":[],"mappings":""}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
// import { Transaction } from "@mysten/sui/transactions";
|
|
2
|
-
// import { doubleAssetPoolCoinMap, poolInfo } from "../common/maps.js";
|
|
3
|
-
// import { depositAlphaTxb } from "./alpha.js";
|
|
4
|
-
// import { naviDepositTx } from "./navi.js";
|
|
5
|
-
// import { bucketDepositTx } from "./bucket.js";
|
|
6
|
-
// import {
|
|
7
|
-
// depositCetusAlphaSuiTxb,
|
|
8
|
-
// depositCetusSuiTxb,
|
|
9
|
-
// depositCetusTxb,
|
|
10
|
-
// } from "./cetus.js";
|
|
11
|
-
// import {
|
|
12
|
-
// depositBluefinSuiFirstTxb,
|
|
13
|
-
// depositBluefinType1Txb,
|
|
14
|
-
// } from "./bluefin.js";
|
|
15
|
-
// import {
|
|
16
|
-
// DepositParams,
|
|
17
|
-
// DoubleAssetDepositParams,
|
|
18
|
-
// SingleAssetDepositParams,
|
|
19
|
-
// } from "./types.js";
|
|
20
|
-
export {};
|
|
21
|
-
// export async function depositTxb(params: DepositParams) {
|
|
22
|
-
// let txb = new Transaction();
|
|
23
|
-
// if (poolInfo[params.poolName].assetType.length === 1) {
|
|
24
|
-
// txb = await depositSingleAssetTxb(params as SingleAssetDepositParams);
|
|
25
|
-
// } else if (poolInfo[params.poolName].assetType.length === 1) {
|
|
26
|
-
// txb = await depositDoubleAssetTxb(params as DoubleAssetDepositParams);
|
|
27
|
-
// }
|
|
28
|
-
// return txb;
|
|
29
|
-
// }
|
|
30
|
-
// export async function depositSingleAssetTxb(params: SingleAssetDepositParams) {
|
|
31
|
-
// let txb = new Transaction();
|
|
32
|
-
// const { poolName, address, amount } = params;
|
|
33
|
-
// if (poolInfo[poolName].parentProtocolName === "ALPHAFI") {
|
|
34
|
-
// txb = await depositAlphaTxb(amount, address);
|
|
35
|
-
// } else if (poolInfo[poolName].parentProtocolName === "NAVI") {
|
|
36
|
-
// txb = await naviDepositTx(Number(amount), poolName, { address });
|
|
37
|
-
// } else if (poolInfo[poolName].parentProtocolName === "BUCKET") {
|
|
38
|
-
// txb = await bucketDepositTx(Number(amount), { address });
|
|
39
|
-
// }
|
|
40
|
-
// return txb;
|
|
41
|
-
// }
|
|
42
|
-
// export async function depositDoubleAssetTxb(params: DoubleAssetDepositParams) {
|
|
43
|
-
// let txb = new Transaction();
|
|
44
|
-
// const { poolName, address, amount, isAmountA } = params;
|
|
45
|
-
// if (poolInfo[poolName].parentProtocolName === "CETUS") {
|
|
46
|
-
// const coin1 = doubleAssetPoolCoinMap[poolName].coin1;
|
|
47
|
-
// const coin2 = doubleAssetPoolCoinMap[poolName].coin2;
|
|
48
|
-
// if (coin1 === "CETUS" && coin2 === "SUI") {
|
|
49
|
-
// txb = await depositCetusSuiTxb(amount, poolName, isAmountA, { address });
|
|
50
|
-
// } else if (coin2 === "SUI") {
|
|
51
|
-
// txb = await depositCetusAlphaSuiTxb(amount, poolName, isAmountA, {
|
|
52
|
-
// address,
|
|
53
|
-
// });
|
|
54
|
-
// } else {
|
|
55
|
-
// txb = await depositCetusTxb(amount, poolName, isAmountA, { address });
|
|
56
|
-
// }
|
|
57
|
-
// } else if (poolInfo[poolName].parentProtocolName === "BLUEFIN") {
|
|
58
|
-
// const coin1 = doubleAssetPoolCoinMap[poolName].coin1;
|
|
59
|
-
// if (coin1 === "SUI") {
|
|
60
|
-
// txb = await depositBluefinSuiFirstTxb(amount, poolName, isAmountA, {
|
|
61
|
-
// address,
|
|
62
|
-
// });
|
|
63
|
-
// } else {
|
|
64
|
-
// txb = await depositBluefinType1Txb(amount, poolName, isAmountA, {
|
|
65
|
-
// address,
|
|
66
|
-
// });
|
|
67
|
-
// }
|
|
68
|
-
// }
|
|
69
|
-
// return txb;
|
|
70
|
-
// }
|
|
71
|
-
// function extractXTokensAmount(transaction: Transaction): string {
|
|
72
|
-
// const inputWithPure = transaction
|
|
73
|
-
// .getData()
|
|
74
|
-
// .inputs.find((input) => input.Pure !== undefined);
|
|
75
|
-
// if (!inputWithPure || !inputWithPure.Pure?.bytes) {
|
|
76
|
-
// throw new Error("Unable to extract xTokensAmount from inputs");
|
|
77
|
-
// }
|
|
78
|
-
// const bytes = inputWithPure.Pure.bytes;
|
|
79
|
-
// console.log(bytes);
|
|
80
|
-
// const parsedU128 = bcs.u128().parse(fromB64(bytes));
|
|
81
|
-
// const parsedBytes = bcs.bytes(4).parse(fromB64(bytes));
|
|
82
|
-
// console.log("u128", parsedU128);
|
|
83
|
-
// console.log("bytes", parsedBytes);
|
|
84
|
-
// return new BigNumber(toHEX(fromB64(bytes)), 16).toString();
|
|
85
|
-
// }
|
|
86
|
-
//# sourceMappingURL=deposit1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deposit1.js","sourceRoot":"","sources":["../../../src/transactions/deposit1.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,wEAAwE;AACxE,gDAAgD;AAChD,6CAA6C;AAC7C,iDAAiD;AACjD,WAAW;AACX,6BAA6B;AAC7B,wBAAwB;AACxB,qBAAqB;AACrB,uBAAuB;AACvB,WAAW;AACX,+BAA+B;AAC/B,4BAA4B;AAC5B,yBAAyB;AACzB,WAAW;AACX,mBAAmB;AACnB,8BAA8B;AAC9B,8BAA8B;AAC9B,uBAAuB;;AAEvB,4DAA4D;AAC5D,iCAAiC;AACjC,4DAA4D;AAC5D,6EAA6E;AAC7E,mEAAmE;AACnE,6EAA6E;AAC7E,MAAM;AACN,gBAAgB;AAChB,IAAI;AAEJ,kFAAkF;AAClF,iCAAiC;AACjC,kDAAkD;AAClD,+DAA+D;AAC/D,oDAAoD;AACpD,mEAAmE;AACnE,wEAAwE;AACxE,qEAAqE;AACrE,gEAAgE;AAChE,MAAM;AACN,gBAAgB;AAChB,IAAI;AAEJ,kFAAkF;AAClF,iCAAiC;AACjC,6DAA6D;AAC7D,6DAA6D;AAC7D,4DAA4D;AAC5D,4DAA4D;AAC5D,kDAAkD;AAClD,kFAAkF;AAClF,oCAAoC;AACpC,2EAA2E;AAC3E,mBAAmB;AACnB,YAAY;AACZ,eAAe;AACf,+EAA+E;AAC/E,QAAQ;AACR,sEAAsE;AACtE,4DAA4D;AAC5D,6BAA6B;AAC7B,6EAA6E;AAC7E,mBAAmB;AACnB,YAAY;AACZ,eAAe;AACf,0EAA0E;AAC1E,mBAAmB;AACnB,YAAY;AACZ,QAAQ;AACR,MAAM;AACN,gBAAgB;AAChB,IAAI;AAEJ,oEAAoE;AACpE,sCAAsC;AACtC,iBAAiB;AACjB,yDAAyD;AACzD,wDAAwD;AACxD,sEAAsE;AACtE,MAAM;AAEN,4CAA4C;AAC5C,wBAAwB;AACxB,yDAAyD;AACzD,4DAA4D;AAC5D,qCAAqC;AACrC,uCAAuC;AACvC,gEAAgE;AAChE,IAAI","sourcesContent":["// import { Transaction } from \"@mysten/sui/transactions\";\n// import { doubleAssetPoolCoinMap, poolInfo } from \"../common/maps.js\";\n// import { depositAlphaTxb } from \"./alpha.js\";\n// import { naviDepositTx } from \"./navi.js\";\n// import { bucketDepositTx } from \"./bucket.js\";\n// import {\n// depositCetusAlphaSuiTxb,\n// depositCetusSuiTxb,\n// depositCetusTxb,\n// } from \"./cetus.js\";\n// import {\n// depositBluefinSuiFirstTxb,\n// depositBluefinType1Txb,\n// } from \"./bluefin.js\";\n// import {\n// DepositParams,\n// DoubleAssetDepositParams,\n// SingleAssetDepositParams,\n// } from \"./types.js\";\n\n// export async function depositTxb(params: DepositParams) {\n// let txb = new Transaction();\n// if (poolInfo[params.poolName].assetType.length === 1) {\n// txb = await depositSingleAssetTxb(params as SingleAssetDepositParams);\n// } else if (poolInfo[params.poolName].assetType.length === 1) {\n// txb = await depositDoubleAssetTxb(params as DoubleAssetDepositParams);\n// }\n// return txb;\n// }\n\n// export async function depositSingleAssetTxb(params: SingleAssetDepositParams) {\n// let txb = new Transaction();\n// const { poolName, address, amount } = params;\n// if (poolInfo[poolName].parentProtocolName === \"ALPHAFI\") {\n// txb = await depositAlphaTxb(amount, address);\n// } else if (poolInfo[poolName].parentProtocolName === \"NAVI\") {\n// txb = await naviDepositTx(Number(amount), poolName, { address });\n// } else if (poolInfo[poolName].parentProtocolName === \"BUCKET\") {\n// txb = await bucketDepositTx(Number(amount), { address });\n// }\n// return txb;\n// }\n\n// export async function depositDoubleAssetTxb(params: DoubleAssetDepositParams) {\n// let txb = new Transaction();\n// const { poolName, address, amount, isAmountA } = params;\n// if (poolInfo[poolName].parentProtocolName === \"CETUS\") {\n// const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const coin2 = doubleAssetPoolCoinMap[poolName].coin2;\n// if (coin1 === \"CETUS\" && coin2 === \"SUI\") {\n// txb = await depositCetusSuiTxb(amount, poolName, isAmountA, { address });\n// } else if (coin2 === \"SUI\") {\n// txb = await depositCetusAlphaSuiTxb(amount, poolName, isAmountA, {\n// address,\n// });\n// } else {\n// txb = await depositCetusTxb(amount, poolName, isAmountA, { address });\n// }\n// } else if (poolInfo[poolName].parentProtocolName === \"BLUEFIN\") {\n// const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n// if (coin1 === \"SUI\") {\n// txb = await depositBluefinSuiFirstTxb(amount, poolName, isAmountA, {\n// address,\n// });\n// } else {\n// txb = await depositBluefinType1Txb(amount, poolName, isAmountA, {\n// address,\n// });\n// }\n// }\n// return txb;\n// }\n\n// function extractXTokensAmount(transaction: Transaction): string {\n// const inputWithPure = transaction\n// .getData()\n// .inputs.find((input) => input.Pure !== undefined);\n// if (!inputWithPure || !inputWithPure.Pure?.bytes) {\n// throw new Error(\"Unable to extract xTokensAmount from inputs\");\n// }\n\n// const bytes = inputWithPure.Pure.bytes;\n// console.log(bytes);\n// const parsedU128 = bcs.u128().parse(fromB64(bytes));\n// const parsedBytes = bcs.bytes(4).parse(fromB64(bytes));\n// console.log(\"u128\", parsedU128);\n// console.log(\"bytes\", parsedBytes);\n// return new BigNumber(toHEX(fromB64(bytes)), 16).toString();\n// }\n"]}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { SuiObjectResponse } from "@mysten/sui/client";
|
|
2
|
-
import { LiquidityToUsdParams } from "../types.js";
|
|
3
|
-
export declare function parseTokensFromReceipts(receipts: SuiObjectResponse[]): Promise<[string, string, string][]>;
|
|
4
|
-
export declare function liquidityToUsd(params: LiquidityToUsdParams): string | undefined;
|
|
5
|
-
export declare function mergeDuplicateHoldings(userTokens: [string, string, string][]): [string, string, string][];
|
|
6
|
-
//# sourceMappingURL=getHoldersFromTransactionsUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getHoldersFromTransactionsUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAGL,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAiBrB,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAuBrC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,MAAM,GAAG,SAAS,CAcpB;AAqGD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAkB5B"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { poolIdPoolNameMap, doubleAssetPoolCoinMap, getPoolExchangeRateMap, singleAssetPoolCoinMap, } from "../common/maps.js";
|
|
2
|
-
import { Decimal } from "decimal.js";
|
|
3
|
-
import { BN } from "bn.js";
|
|
4
|
-
import { ClmmPoolUtil, TickMath, } from "@cetusprotocol/cetus-sui-clmm-sdk";
|
|
5
|
-
import { coinsList } from "../common/coins.js";
|
|
6
|
-
export async function parseTokensFromReceipts(receipts) {
|
|
7
|
-
let userTokens = [];
|
|
8
|
-
for (const receipt of receipts) {
|
|
9
|
-
const nftData = receipt.data?.content;
|
|
10
|
-
if (nftData?.dataType === "moveObject") {
|
|
11
|
-
const fields = nftData.fields;
|
|
12
|
-
const owner = fields.owner;
|
|
13
|
-
const pool = poolIdPoolNameMap[fields.pool_id];
|
|
14
|
-
const xTokens = fields.xTokenBalance;
|
|
15
|
-
userTokens.push([owner, pool, xTokens]);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
const conversionMap = await getPoolExchangeRateMap();
|
|
19
|
-
userTokens = userTokens.map(([owner, pool, xTokens]) => {
|
|
20
|
-
const conversion = new Decimal(conversionMap.get(pool));
|
|
21
|
-
const tokens = new Decimal(xTokens).mul(conversion).toFixed(4).toString();
|
|
22
|
-
return [owner, pool, tokens];
|
|
23
|
-
});
|
|
24
|
-
return userTokens;
|
|
25
|
-
}
|
|
26
|
-
export function liquidityToUsd(params) {
|
|
27
|
-
let holdingUSD;
|
|
28
|
-
if (params.poolName.slice(0, 4) === "NAVI") {
|
|
29
|
-
holdingUSD = singleAssetLiquidityToUSD(params.liquidity, params.poolName, params.tokenPriceMap);
|
|
30
|
-
}
|
|
31
|
-
else if (params.poolName === "ALPHA") {
|
|
32
|
-
holdingUSD = alphaLiquidityToUSD(params.liquidity, params.tokenPriceMap);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
holdingUSD = doubleAssetliquidityToUSD(params);
|
|
36
|
-
}
|
|
37
|
-
return holdingUSD;
|
|
38
|
-
}
|
|
39
|
-
function doubleAssetliquidityToUSD(params) {
|
|
40
|
-
const pool = params.poolName;
|
|
41
|
-
const liquidity = params.liquidity;
|
|
42
|
-
const ticksCetusMap = params.ticksCetusMap;
|
|
43
|
-
const sqrtPriceCetusMap = params.sqrtPriceCetusMap;
|
|
44
|
-
const tokenPriceMap = params.tokenPriceMap;
|
|
45
|
-
try {
|
|
46
|
-
const upper_bound = 443636;
|
|
47
|
-
let lower_tick = Number(ticksCetusMap[pool].lower);
|
|
48
|
-
let upper_tick = Number(ticksCetusMap[pool].upper);
|
|
49
|
-
if (lower_tick > upper_bound) {
|
|
50
|
-
lower_tick = -~(lower_tick - 1);
|
|
51
|
-
}
|
|
52
|
-
if (upper_tick > upper_bound) {
|
|
53
|
-
upper_tick = -~(upper_tick - 1);
|
|
54
|
-
}
|
|
55
|
-
const liquidityInt = Math.floor(Number(liquidity));
|
|
56
|
-
const sqrtPrice = sqrtPriceCetusMap.get(pool);
|
|
57
|
-
const coin_amounts = ClmmPoolUtil.getCoinAmountFromLiquidity(new BN(`${liquidityInt}`), new BN(sqrtPrice), TickMath.tickIndexToSqrtPriceX64(lower_tick), TickMath.tickIndexToSqrtPriceX64(upper_tick), true);
|
|
58
|
-
const coinAmounts = [
|
|
59
|
-
coin_amounts.coinA.toNumber(),
|
|
60
|
-
coin_amounts.coinB.toNumber(),
|
|
61
|
-
];
|
|
62
|
-
const ten = new Decimal(10);
|
|
63
|
-
const coin1 = doubleAssetPoolCoinMap[pool].coin1;
|
|
64
|
-
const coin2 = doubleAssetPoolCoinMap[pool].coin2;
|
|
65
|
-
const amount1 = new Decimal(coinAmounts[0]).div(ten.pow(coinsList[coin1].expo));
|
|
66
|
-
const amount2 = new Decimal(coinAmounts[1]).div(ten.pow(coinsList[coin2].expo));
|
|
67
|
-
const priceOfCoin1 = tokenPriceMap.get(coin1);
|
|
68
|
-
const priceOfCoin2 = tokenPriceMap.get(coin2);
|
|
69
|
-
if (priceOfCoin1 && priceOfCoin2) {
|
|
70
|
-
const amount = amount1.mul(priceOfCoin1).add(amount2.mul(priceOfCoin2));
|
|
71
|
-
return amount.toFixed(2).toString();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
console.error(`Error fetching price of ${pool}:`, error);
|
|
76
|
-
return undefined;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function alphaLiquidityToUSD(liquidity, tokenPriceMap) {
|
|
80
|
-
try {
|
|
81
|
-
const priceOfAlpha = tokenPriceMap.get("ALPHA");
|
|
82
|
-
if (priceOfAlpha) {
|
|
83
|
-
let amount = new Decimal(liquidity).div(1e9);
|
|
84
|
-
amount = amount.mul(priceOfAlpha);
|
|
85
|
-
return amount.toFixed(2).toString();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
console.error(`Error fetching price of ALPHA:`, error);
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
function singleAssetLiquidityToUSD(liquidity, pool, tokenPriceMap) {
|
|
94
|
-
try {
|
|
95
|
-
const singlePool = pool;
|
|
96
|
-
const coin = singleAssetPoolCoinMap[singlePool].coin;
|
|
97
|
-
let amount = new Decimal(liquidity).div(Math.pow(10, 9 - coinsList[coin].expo));
|
|
98
|
-
amount = amount.div(new Decimal(Math.pow(10, coinsList[coin].expo)));
|
|
99
|
-
const priceOfCoin = tokenPriceMap.get(coin);
|
|
100
|
-
if (priceOfCoin) {
|
|
101
|
-
const amountInUSD = amount.mul(priceOfCoin);
|
|
102
|
-
return amountInUSD.toFixed(2).toString();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
console.error(`Error fetching price of ${pool}:`, error);
|
|
107
|
-
return undefined;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
export function mergeDuplicateHoldings(userTokens) {
|
|
111
|
-
const address_poolValueMap = new Map();
|
|
112
|
-
userTokens.forEach(([address, pool, value]) => {
|
|
113
|
-
const key = `${address}_${pool}`;
|
|
114
|
-
const numericValue = parseFloat(value);
|
|
115
|
-
if (address_poolValueMap.has(key)) {
|
|
116
|
-
address_poolValueMap.set(key, address_poolValueMap.get(key) + numericValue);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
address_poolValueMap.set(key, numericValue);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
return Array.from(address_poolValueMap.entries()).map(([key, value]) => {
|
|
123
|
-
const [address, pool] = key.split("_");
|
|
124
|
-
return [address, pool, value.toFixed(2).toString()];
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=getHoldersFromTransactionsUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getHoldersFromTransactionsUtils.js","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,QAAQ,GAET,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA6B;IAE7B,IAAI,UAAU,GAA+B,EAAE,CAAC;IAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QACtC,IAAI,OAAO,EAAE,QAAQ,KAAK,YAAY,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAiD,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAW,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,sBAAsB,EAAE,CAAC;IACrD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;QACrD,MAAM,UAAU,GAAG,IAAI,OAAO,CAC5B,aAAa,CAAC,GAAG,CAAC,IAAgB,CAAW,CAC9C,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1E,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAA4B;IAE5B,IAAI,UAA8B,CAAC;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC3C,UAAU,GAAG,yBAAyB,CACpC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,aAAa,CACrB,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACvC,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,SAAS,yBAAyB,CAAC,MAMlC;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACnD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC;QAC3B,IAAI,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;YAC7B,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;YAC7B,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAgB,CAAW,CAAC;QACpE,MAAM,YAAY,GAAgB,YAAY,CAAC,0BAA0B,CACvE,IAAI,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EACzB,IAAI,EAAE,CAAC,SAAS,CAAC,EACjB,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAC5C,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAC5C,IAAI,CACL,CAAC;QACF,MAAM,WAAW,GAAG;YAClB,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC7B,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;SAC9B,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AACD,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,aAAoC;IAEpC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,MAAM,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AACD,SAAS,yBAAyB,CAChC,SAAiB,EACjB,IAAY,EACZ,aAAoC;IAEpC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAGlB,CAAC;QACF,MAAM,IAAI,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,MAAM,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CACrC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CACvC,CAAC;QACF,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5C,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAsC;IAEtC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,oBAAoB,CAAC,GAAG,CACtB,GAAG,EACH,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,YAAY,CAC9C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { SuiObjectResponse } from \"@mysten/sui/client\";\nimport {\n AlphaReceiptFields,\n OtherReceiptFields,\n LiquidityToUsdParams,\n} from \"../types.js\";\nimport {\n poolIdPoolNameMap,\n doubleAssetPoolCoinMap,\n getPoolExchangeRateMap,\n singleAssetPoolCoinMap,\n} from \"../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BN } from \"bn.js\";\nimport { PoolName, CoinName } from \"../common/types.js\";\nimport {\n ClmmPoolUtil,\n TickMath,\n CoinAmounts,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport { coinsList } from \"../common/coins.js\";\n\nexport async function parseTokensFromReceipts(\n receipts: SuiObjectResponse[],\n): Promise<[string, string, string][]> {\n let userTokens: [string, string, string][] = [];\n\n for (const receipt of receipts) {\n const nftData = receipt.data?.content;\n if (nftData?.dataType === \"moveObject\") {\n const fields = nftData.fields as AlphaReceiptFields | OtherReceiptFields;\n const owner = fields.owner;\n const pool = poolIdPoolNameMap[fields.pool_id] as string;\n const xTokens = fields.xTokenBalance;\n userTokens.push([owner, pool, xTokens]);\n }\n }\n const conversionMap = await getPoolExchangeRateMap();\n userTokens = userTokens.map(([owner, pool, xTokens]) => {\n const conversion = new Decimal(\n conversionMap.get(pool as PoolName) as string,\n );\n const tokens = new Decimal(xTokens).mul(conversion).toFixed(4).toString();\n return [owner, pool, tokens];\n });\n\n return userTokens;\n}\n\nexport function liquidityToUsd(\n params: LiquidityToUsdParams,\n): string | undefined {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToUSD(\n params.liquidity,\n params.poolName,\n params.tokenPriceMap,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToUSD(params.liquidity, params.tokenPriceMap);\n } else {\n holdingUSD = doubleAssetliquidityToUSD(params);\n }\n return holdingUSD;\n}\nfunction doubleAssetliquidityToUSD(params: {\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}): string | undefined {\n const pool = params.poolName;\n const liquidity = params.liquidity;\n const ticksCetusMap = params.ticksCetusMap;\n const sqrtPriceCetusMap = params.sqrtPriceCetusMap;\n const tokenPriceMap = params.tokenPriceMap;\n\n try {\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 const priceOfCoin1 = tokenPriceMap.get(coin1);\n const priceOfCoin2 = tokenPriceMap.get(coin2);\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = amount1.mul(priceOfCoin1).add(amount2.mul(priceOfCoin2));\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\nfunction alphaLiquidityToUSD(\n liquidity: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const priceOfAlpha = tokenPriceMap.get(\"ALPHA\");\n if (priceOfAlpha) {\n let amount = new Decimal(liquidity).div(1e9);\n amount = amount.mul(priceOfAlpha);\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ALPHA:`, error);\n return undefined;\n }\n}\nfunction singleAssetLiquidityToUSD(\n liquidity: string,\n pool: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const singlePool = pool as Extract<\n PoolName,\n \"NAVI-VSUI\" | \"NAVI-SUI\" | \"NAVI-WETH\" | \"NAVI-USDC\" | \"NAVI-USDT\"\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 const priceOfCoin = tokenPriceMap.get(coin);\n if (priceOfCoin) {\n const amountInUSD = amount.mul(priceOfCoin);\n return amountInUSD.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\n\nexport function mergeDuplicateHoldings(\n userTokens: [string, string, string][],\n): [string, string, string][] {\n const address_poolValueMap = new Map<string, number>();\n userTokens.forEach(([address, pool, value]) => {\n const key = `${address}_${pool}`;\n const numericValue = parseFloat(value);\n if (address_poolValueMap.has(key)) {\n address_poolValueMap.set(\n key,\n address_poolValueMap.get(key)! + numericValue,\n );\n } else {\n address_poolValueMap.set(key, numericValue);\n }\n });\n return Array.from(address_poolValueMap.entries()).map(([key, value]) => {\n const [address, pool] = key.split(\"_\");\n return [address, pool, value.toFixed(2).toString()];\n });\n}\n"]}
|