@alphafi/alphafi-sdk 0.0.107 → 1.0.1
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/README.md +378 -130
- package/dist/cjs/core/index.d.ts +159 -0
- package/dist/cjs/core/index.d.ts.map +1 -0
- package/dist/cjs/core/index.js +253 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/core/types.d.ts +135 -0
- package/dist/cjs/core/types.d.ts.map +1 -0
- package/dist/cjs/core/types.js +7 -0
- package/dist/cjs/core/types.js.map +1 -0
- package/dist/cjs/index.d.ts +7 -46
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -166
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/models/blockchain.d.ts +45 -0
- package/dist/cjs/models/blockchain.d.ts.map +1 -0
- package/dist/cjs/models/blockchain.js +237 -0
- package/dist/cjs/models/blockchain.js.map +1 -0
- package/dist/cjs/models/coinInfoProvider.d.ts +23 -0
- package/dist/cjs/models/coinInfoProvider.d.ts.map +1 -0
- package/dist/cjs/models/coinInfoProvider.js +87 -0
- package/dist/cjs/models/coinInfoProvider.js.map +1 -0
- package/dist/cjs/models/index.d.ts +3 -0
- package/dist/cjs/models/index.d.ts.map +1 -0
- package/dist/cjs/models/index.js +8 -0
- package/dist/cjs/models/index.js.map +1 -0
- package/dist/cjs/models/portfolio.d.ts +21 -0
- package/dist/cjs/models/portfolio.d.ts.map +1 -0
- package/dist/cjs/models/portfolio.js +173 -0
- package/dist/cjs/models/portfolio.js.map +1 -0
- package/dist/cjs/models/protocol.d.ts +25 -0
- package/dist/cjs/models/protocol.d.ts.map +1 -0
- package/dist/cjs/models/protocol.js +141 -0
- package/dist/cjs/models/protocol.js.map +1 -0
- package/dist/cjs/models/strategyContext.d.ts +150 -0
- package/dist/cjs/models/strategyContext.d.ts.map +1 -0
- package/dist/cjs/models/strategyContext.js +829 -0
- package/dist/cjs/models/strategyContext.js.map +1 -0
- package/dist/cjs/models/swap.d.ts +11 -0
- package/dist/cjs/models/swap.d.ts.map +1 -0
- package/dist/cjs/models/swap.js +60 -0
- package/dist/cjs/models/swap.js.map +1 -0
- package/dist/cjs/models/types.d.ts +145 -0
- package/dist/cjs/models/types.d.ts.map +1 -0
- package/dist/cjs/models/types.js.map +1 -0
- package/dist/cjs/strategies/alphaVault.d.ts +279 -0
- package/dist/cjs/strategies/alphaVault.d.ts.map +1 -0
- package/dist/cjs/strategies/alphaVault.js +891 -0
- package/dist/cjs/strategies/alphaVault.js.map +1 -0
- package/dist/cjs/strategies/autobalanceLp.d.ts +197 -0
- package/dist/cjs/strategies/autobalanceLp.d.ts.map +1 -0
- package/dist/cjs/strategies/autobalanceLp.js +567 -0
- package/dist/cjs/strategies/autobalanceLp.js.map +1 -0
- package/dist/cjs/strategies/fungibleLending.d.ts +98 -0
- package/dist/cjs/strategies/fungibleLending.d.ts.map +1 -0
- package/dist/cjs/strategies/fungibleLending.js +204 -0
- package/dist/cjs/strategies/fungibleLending.js.map +1 -0
- package/dist/cjs/strategies/fungibleLp.d.ts +165 -0
- package/dist/cjs/strategies/fungibleLp.d.ts.map +1 -0
- package/dist/cjs/strategies/fungibleLp.js +398 -0
- package/dist/cjs/strategies/fungibleLp.js.map +1 -0
- package/dist/cjs/strategies/index.d.ts +26 -0
- package/dist/cjs/strategies/index.d.ts.map +1 -0
- package/dist/cjs/strategies/index.js +24 -0
- package/dist/cjs/strategies/index.js.map +1 -0
- package/dist/cjs/strategies/lending.d.ts +155 -0
- package/dist/cjs/strategies/lending.d.ts.map +1 -0
- package/dist/cjs/strategies/lending.js +828 -0
- package/dist/cjs/strategies/lending.js.map +1 -0
- package/dist/cjs/strategies/looping.d.ts +176 -0
- package/dist/cjs/strategies/looping.d.ts.map +1 -0
- package/dist/cjs/strategies/looping.js +978 -0
- package/dist/cjs/strategies/looping.js.map +1 -0
- package/dist/cjs/strategies/lp.d.ts +207 -0
- package/dist/cjs/strategies/lp.d.ts.map +1 -0
- package/dist/cjs/strategies/lp.js +1452 -0
- package/dist/cjs/strategies/lp.js.map +1 -0
- package/dist/cjs/strategies/lyf.d.ts +207 -0
- package/dist/cjs/strategies/lyf.d.ts.map +1 -0
- package/dist/cjs/strategies/lyf.js +649 -0
- package/dist/cjs/strategies/lyf.js.map +1 -0
- package/dist/cjs/strategies/singleAssetLooping.d.ts +152 -0
- package/dist/cjs/strategies/singleAssetLooping.d.ts.map +1 -0
- package/dist/cjs/strategies/singleAssetLooping.js +631 -0
- package/dist/cjs/strategies/singleAssetLooping.js.map +1 -0
- package/dist/cjs/strategies/slushLending.d.ts +131 -0
- package/dist/cjs/strategies/slushLending.d.ts.map +1 -0
- package/dist/cjs/strategies/slushLending.js +392 -0
- package/dist/cjs/strategies/slushLending.js.map +1 -0
- package/dist/cjs/strategies/strategy.d.ts +198 -0
- package/dist/cjs/strategies/strategy.d.ts.map +1 -0
- package/dist/cjs/strategies/strategy.js +196 -0
- package/dist/cjs/strategies/strategy.js.map +1 -0
- package/dist/cjs/utils/cache.d.ts +98 -0
- package/dist/cjs/utils/cache.d.ts.map +1 -0
- package/dist/cjs/utils/cache.js +203 -0
- package/dist/cjs/utils/cache.js.map +1 -0
- package/dist/cjs/utils/constants.d.ts +236 -2
- package/dist/cjs/utils/constants.d.ts.map +1 -1
- package/dist/cjs/utils/constants.js +244 -107
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/poolMap.d.ts +20 -0
- package/dist/cjs/utils/poolMap.d.ts.map +1 -0
- package/dist/cjs/utils/poolMap.js +237 -0
- package/dist/cjs/utils/poolMap.js.map +1 -0
- package/dist/cjs/utils/testing-pools.d.ts +3 -0
- package/dist/cjs/utils/testing-pools.d.ts.map +1 -0
- package/dist/cjs/utils/testing-pools.js +27 -0
- package/dist/cjs/utils/testing-pools.js.map +1 -0
- package/dist/esm/core/index.d.ts +159 -0
- package/dist/esm/core/index.d.ts.map +1 -0
- package/dist/esm/core/index.js +249 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/types.d.ts +135 -0
- package/dist/esm/core/types.d.ts.map +1 -0
- package/dist/esm/core/types.js +6 -0
- package/dist/esm/core/types.js.map +1 -0
- package/dist/esm/index.d.ts +7 -46
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -49
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/blockchain.d.ts +45 -0
- package/dist/esm/models/blockchain.d.ts.map +1 -0
- package/dist/esm/models/blockchain.js +233 -0
- package/dist/esm/models/blockchain.js.map +1 -0
- package/dist/esm/models/coinInfoProvider.d.ts +23 -0
- package/dist/esm/models/coinInfoProvider.d.ts.map +1 -0
- package/dist/esm/models/coinInfoProvider.js +83 -0
- package/dist/esm/models/coinInfoProvider.js.map +1 -0
- package/dist/esm/models/index.d.ts +3 -0
- package/dist/esm/models/index.d.ts.map +1 -0
- package/dist/esm/models/index.js +3 -0
- package/dist/esm/models/index.js.map +1 -0
- package/dist/esm/models/portfolio.d.ts +21 -0
- package/dist/esm/models/portfolio.d.ts.map +1 -0
- package/dist/esm/models/portfolio.js +169 -0
- package/dist/esm/models/portfolio.js.map +1 -0
- package/dist/esm/models/protocol.d.ts +25 -0
- package/dist/esm/models/protocol.d.ts.map +1 -0
- package/dist/esm/models/protocol.js +137 -0
- package/dist/esm/models/protocol.js.map +1 -0
- package/dist/esm/models/strategyContext.d.ts +150 -0
- package/dist/esm/models/strategyContext.d.ts.map +1 -0
- package/dist/esm/models/strategyContext.js +825 -0
- package/dist/esm/models/strategyContext.js.map +1 -0
- package/dist/esm/models/swap.d.ts +11 -0
- package/dist/esm/models/swap.d.ts.map +1 -0
- package/dist/esm/models/swap.js +58 -0
- package/dist/esm/models/swap.js.map +1 -0
- package/dist/esm/models/types.d.ts +145 -0
- package/dist/esm/models/types.d.ts.map +1 -0
- package/dist/esm/models/types.js.map +1 -0
- package/dist/esm/strategies/alphaVault.d.ts +279 -0
- package/dist/esm/strategies/alphaVault.d.ts.map +1 -0
- package/dist/esm/strategies/alphaVault.js +887 -0
- package/dist/esm/strategies/alphaVault.js.map +1 -0
- package/dist/esm/strategies/autobalanceLp.d.ts +197 -0
- package/dist/esm/strategies/autobalanceLp.d.ts.map +1 -0
- package/dist/esm/strategies/autobalanceLp.js +562 -0
- package/dist/esm/strategies/autobalanceLp.js.map +1 -0
- package/dist/esm/strategies/fungibleLending.d.ts +98 -0
- package/dist/esm/strategies/fungibleLending.d.ts.map +1 -0
- package/dist/esm/strategies/fungibleLending.js +200 -0
- package/dist/esm/strategies/fungibleLending.js.map +1 -0
- package/dist/esm/strategies/fungibleLp.d.ts +165 -0
- package/dist/esm/strategies/fungibleLp.d.ts.map +1 -0
- package/dist/esm/strategies/fungibleLp.js +393 -0
- package/dist/esm/strategies/fungibleLp.js.map +1 -0
- package/dist/esm/strategies/index.d.ts +26 -0
- package/dist/esm/strategies/index.d.ts.map +1 -0
- package/dist/esm/strategies/index.js +18 -0
- package/dist/esm/strategies/index.js.map +1 -0
- package/dist/esm/strategies/lending.d.ts +155 -0
- package/dist/esm/strategies/lending.d.ts.map +1 -0
- package/dist/esm/strategies/lending.js +824 -0
- package/dist/esm/strategies/lending.js.map +1 -0
- package/dist/esm/strategies/looping.d.ts +176 -0
- package/dist/esm/strategies/looping.d.ts.map +1 -0
- package/dist/esm/strategies/looping.js +974 -0
- package/dist/esm/strategies/looping.js.map +1 -0
- package/dist/esm/strategies/lp.d.ts +207 -0
- package/dist/esm/strategies/lp.d.ts.map +1 -0
- package/dist/esm/strategies/lp.js +1447 -0
- package/dist/esm/strategies/lp.js.map +1 -0
- package/dist/esm/strategies/lyf.d.ts +207 -0
- package/dist/esm/strategies/lyf.d.ts.map +1 -0
- package/dist/esm/strategies/lyf.js +644 -0
- package/dist/esm/strategies/lyf.js.map +1 -0
- package/dist/esm/strategies/singleAssetLooping.d.ts +152 -0
- package/dist/esm/strategies/singleAssetLooping.d.ts.map +1 -0
- package/dist/esm/strategies/singleAssetLooping.js +627 -0
- package/dist/esm/strategies/singleAssetLooping.js.map +1 -0
- package/dist/esm/strategies/slushLending.d.ts +131 -0
- package/dist/esm/strategies/slushLending.d.ts.map +1 -0
- package/dist/esm/strategies/slushLending.js +388 -0
- package/dist/esm/strategies/slushLending.js.map +1 -0
- package/dist/esm/strategies/strategy.d.ts +198 -0
- package/dist/esm/strategies/strategy.d.ts.map +1 -0
- package/dist/esm/strategies/strategy.js +192 -0
- package/dist/esm/strategies/strategy.js.map +1 -0
- package/dist/esm/utils/cache.d.ts +98 -0
- package/dist/esm/utils/cache.d.ts.map +1 -0
- package/dist/esm/utils/cache.js +198 -0
- package/dist/esm/utils/cache.js.map +1 -0
- package/dist/esm/utils/constants.d.ts +236 -2
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +243 -106
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/poolMap.d.ts +20 -0
- package/dist/esm/utils/poolMap.d.ts.map +1 -0
- package/dist/esm/utils/poolMap.js +233 -0
- package/dist/esm/utils/poolMap.js.map +1 -0
- package/dist/esm/utils/testing-pools.d.ts +3 -0
- package/dist/esm/utils/testing-pools.d.ts.map +1 -0
- package/dist/esm/utils/testing-pools.js +24 -0
- package/dist/esm/utils/testing-pools.js.map +1 -0
- package/package.json +45 -72
- package/dist/cjs/adminFunctions.d.ts +0 -33
- package/dist/cjs/adminFunctions.d.ts.map +0 -1
- package/dist/cjs/adminFunctions.js +0 -306
- package/dist/cjs/adminFunctions.js.map +0 -1
- package/dist/cjs/common/alphaTypes.d.ts +0 -110
- package/dist/cjs/common/alphaTypes.d.ts.map +0 -1
- package/dist/cjs/common/alphaTypes.js +0 -3
- package/dist/cjs/common/alphaTypes.js.map +0 -1
- package/dist/cjs/common/cetus_mainnet_config.d.ts +0 -3
- package/dist/cjs/common/cetus_mainnet_config.d.ts.map +0 -1
- package/dist/cjs/common/cetus_mainnet_config.js +0 -50
- package/dist/cjs/common/cetus_mainnet_config.js.map +0 -1
- package/dist/cjs/common/coins.d.ts +0 -6
- package/dist/cjs/common/coins.d.ts.map +0 -1
- package/dist/cjs/common/coins.js +0 -313
- package/dist/cjs/common/coins.js.map +0 -1
- package/dist/cjs/common/constants.d.ts +0 -3187
- package/dist/cjs/common/constants.d.ts.map +0 -1
- package/dist/cjs/common/constants.js +0 -2564
- package/dist/cjs/common/constants.js.map +0 -1
- package/dist/cjs/common/maps.d.ts +0 -120
- package/dist/cjs/common/maps.d.ts.map +0 -1
- package/dist/cjs/common/maps.js +0 -2527
- package/dist/cjs/common/maps.js.map +0 -1
- package/dist/cjs/common/pyth.d.ts +0 -7
- package/dist/cjs/common/pyth.d.ts.map +0 -1
- package/dist/cjs/common/pyth.js +0 -3
- package/dist/cjs/common/pyth.js.map +0 -1
- package/dist/cjs/common/types.d.ts +0 -736
- package/dist/cjs/common/types.d.ts.map +0 -1
- package/dist/cjs/common/types.js.map +0 -1
- package/dist/cjs/example.d.ts +0 -3
- package/dist/cjs/example.d.ts.map +0 -1
- package/dist/cjs/example.js +0 -42
- package/dist/cjs/example.js.map +0 -1
- package/dist/cjs/getAirdropShare.d.ts +0 -3
- package/dist/cjs/getAirdropShare.d.ts.map +0 -1
- package/dist/cjs/getAirdropShare.js +0 -10
- package/dist/cjs/getAirdropShare.js.map +0 -1
- package/dist/cjs/getAllVaults.d.ts +0 -7
- package/dist/cjs/getAllVaults.d.ts.map +0 -1
- package/dist/cjs/getAllVaults.js +0 -39
- package/dist/cjs/getAllVaults.js.map +0 -1
- package/dist/cjs/getAlphaUnlocks.d.ts +0 -15
- package/dist/cjs/getAlphaUnlocks.d.ts.map +0 -1
- package/dist/cjs/getAlphaUnlocks.js +0 -21
- package/dist/cjs/getAlphaUnlocks.js.map +0 -1
- package/dist/cjs/getAprs.d.ts +0 -14
- package/dist/cjs/getAprs.d.ts.map +0 -1
- package/dist/cjs/getAprs.js +0 -306
- package/dist/cjs/getAprs.js.map +0 -1
- package/dist/cjs/getLastAutoCompoundTime.d.ts +0 -4
- package/dist/cjs/getLastAutoCompoundTime.d.ts.map +0 -1
- package/dist/cjs/getLastAutoCompoundTime.js +0 -18
- package/dist/cjs/getLastAutoCompoundTime.js.map +0 -1
- package/dist/cjs/getRebalanceHistory.d.ts +0 -6
- package/dist/cjs/getRebalanceHistory.d.ts.map +0 -1
- package/dist/cjs/getRebalanceHistory.js +0 -26
- package/dist/cjs/getRebalanceHistory.js.map +0 -1
- package/dist/cjs/getTvls.d.ts +0 -10
- package/dist/cjs/getTvls.d.ts.map +0 -1
- package/dist/cjs/getTvls.js +0 -137
- package/dist/cjs/getTvls.js.map +0 -1
- package/dist/cjs/getVaultBalances.d.ts +0 -13
- package/dist/cjs/getVaultBalances.d.ts.map +0 -1
- package/dist/cjs/getVaultBalances.js +0 -103
- package/dist/cjs/getVaultBalances.js.map +0 -1
- package/dist/cjs/getVaults.d.ts +0 -8
- package/dist/cjs/getVaults.d.ts.map +0 -1
- package/dist/cjs/getVaults.js +0 -34
- package/dist/cjs/getVaults.js.map +0 -1
- package/dist/cjs/graphql/client.d.ts +0 -4
- package/dist/cjs/graphql/client.d.ts.map +0 -1
- package/dist/cjs/graphql/client.js +0 -14
- package/dist/cjs/graphql/client.js.map +0 -1
- package/dist/cjs/graphql/executeMutations.d.ts +0 -19
- package/dist/cjs/graphql/executeMutations.d.ts.map +0 -1
- package/dist/cjs/graphql/executeMutations.js +0 -40
- package/dist/cjs/graphql/executeMutations.js.map +0 -1
- package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.d.ts +0 -28
- package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.d.ts.map +0 -1
- package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js +0 -120
- package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js.map +0 -1
- package/dist/cjs/graphql/fetchData.d.ts +0 -35
- package/dist/cjs/graphql/fetchData.d.ts.map +0 -1
- package/dist/cjs/graphql/fetchData.js +0 -103
- package/dist/cjs/graphql/fetchData.js.map +0 -1
- package/dist/cjs/graphql/fetchNftHolders.d.ts +0 -4
- package/dist/cjs/graphql/fetchNftHolders.d.ts.map +0 -1
- package/dist/cjs/graphql/fetchNftHolders.js +0 -37
- package/dist/cjs/graphql/fetchNftHolders.js.map +0 -1
- package/dist/cjs/graphql/fetchReceipts.d.ts +0 -4
- package/dist/cjs/graphql/fetchReceipts.d.ts.map +0 -1
- package/dist/cjs/graphql/fetchReceipts.js +0 -38
- package/dist/cjs/graphql/fetchReceipts.js.map +0 -1
- package/dist/cjs/graphql/getMultiReceipts.d.ts +0 -4
- package/dist/cjs/graphql/getMultiReceipts.d.ts.map +0 -1
- package/dist/cjs/graphql/getMultiReceipts.js +0 -117
- package/dist/cjs/graphql/getMultiReceipts.js.map +0 -1
- package/dist/cjs/graphql/mutations.d.ts +0 -4
- package/dist/cjs/graphql/mutations.d.ts.map +0 -1
- package/dist/cjs/graphql/mutations.js +0 -33
- package/dist/cjs/graphql/mutations.js.map +0 -1
- package/dist/cjs/graphql/parseData.d.ts +0 -3
- package/dist/cjs/graphql/parseData.d.ts.map +0 -1
- package/dist/cjs/graphql/parseData.js +0 -10
- package/dist/cjs/graphql/parseData.js.map +0 -1
- package/dist/cjs/graphql/parseLockedTableId.d.ts +0 -8
- package/dist/cjs/graphql/parseLockedTableId.d.ts.map +0 -1
- package/dist/cjs/graphql/parseLockedTableId.js +0 -16
- package/dist/cjs/graphql/parseLockedTableId.js.map +0 -1
- package/dist/cjs/graphql/queries/autoCompoundEvents.d.ts +0 -2
- package/dist/cjs/graphql/queries/autoCompoundEvents.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/autoCompoundEvents.js +0 -19
- package/dist/cjs/graphql/queries/autoCompoundEvents.js.map +0 -1
- package/dist/cjs/graphql/queries/cetusPools.d.ts +0 -2
- package/dist/cjs/graphql/queries/cetusPools.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/cetusPools.js +0 -39
- package/dist/cjs/graphql/queries/cetusPools.js.map +0 -1
- package/dist/cjs/graphql/queries/getMultiReceipts.d.ts +0 -3
- package/dist/cjs/graphql/queries/getMultiReceipts.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/getMultiReceipts.js +0 -59
- package/dist/cjs/graphql/queries/getMultiReceipts.js.map +0 -1
- package/dist/cjs/graphql/queries/investors.d.ts +0 -2
- package/dist/cjs/graphql/queries/investors.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/investors.js +0 -39
- package/dist/cjs/graphql/queries/investors.js.map +0 -1
- package/dist/cjs/graphql/queries/lockedTableData.d.ts +0 -2
- package/dist/cjs/graphql/queries/lockedTableData.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/lockedTableData.js +0 -30
- package/dist/cjs/graphql/queries/lockedTableData.js.map +0 -1
- package/dist/cjs/graphql/queries/lockedTableDataFragment.d.ts +0 -2
- package/dist/cjs/graphql/queries/lockedTableDataFragment.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/lockedTableDataFragment.js +0 -24
- package/dist/cjs/graphql/queries/lockedTableDataFragment.js.map +0 -1
- package/dist/cjs/graphql/queries/nftHolders.d.ts +0 -2
- package/dist/cjs/graphql/queries/nftHolders.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/nftHolders.js +0 -23
- package/dist/cjs/graphql/queries/nftHolders.js.map +0 -1
- package/dist/cjs/graphql/queries/pools.d.ts +0 -2
- package/dist/cjs/graphql/queries/pools.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/pools.js +0 -57
- package/dist/cjs/graphql/queries/pools.js.map +0 -1
- package/dist/cjs/graphql/queries/receiptData.d.ts +0 -2
- package/dist/cjs/graphql/queries/receiptData.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/receiptData.js +0 -21
- package/dist/cjs/graphql/queries/receiptData.js.map +0 -1
- package/dist/cjs/graphql/queries/userVaultBalances.d.ts +0 -2
- package/dist/cjs/graphql/queries/userVaultBalances.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/userVaultBalances.js +0 -62
- package/dist/cjs/graphql/queries/userVaultBalances.js.map +0 -1
- package/dist/cjs/graphql/queries/userVaults.d.ts +0 -2
- package/dist/cjs/graphql/queries/userVaults.d.ts.map +0 -1
- package/dist/cjs/graphql/queries/userVaults.js +0 -62
- package/dist/cjs/graphql/queries/userVaults.js.map +0 -1
- package/dist/cjs/graphql/queries.d.ts +0 -15
- package/dist/cjs/graphql/queries.d.ts.map +0 -1
- package/dist/cjs/graphql/queries.js +0 -86
- package/dist/cjs/graphql/queries.js.map +0 -1
- package/dist/cjs/graphql/types.d.ts +0 -112
- package/dist/cjs/graphql/types.d.ts.map +0 -1
- package/dist/cjs/graphql/types.js +0 -3
- package/dist/cjs/graphql/types.js.map +0 -1
- package/dist/cjs/sui-sdk/client.d.ts +0 -44
- package/dist/cjs/sui-sdk/client.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/client.js +0 -90
- package/dist/cjs/sui-sdk/client.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts +0 -10
- package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js +0 -128
- package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.d.ts +0 -4
- package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.js +0 -20
- package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +0 -9
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js +0 -406
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.d.ts +0 -4
- package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.js +0 -47
- package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchEvents.d.ts +0 -4
- package/dist/cjs/sui-sdk/events/fetchEvents.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchEvents.js +0 -453
- package/dist/cjs/sui-sdk/events/fetchEvents.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +0 -4
- package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js +0 -45
- package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.d.ts +0 -9
- package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.js +0 -41
- package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts +0 -7
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js +0 -91
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.d.ts +0 -4
- package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.js +0 -28
- package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.js.map +0 -1
- package/dist/cjs/sui-sdk/events/parseData.d.ts +0 -6
- package/dist/cjs/sui-sdk/events/parseData.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/parseData.js +0 -33
- package/dist/cjs/sui-sdk/events/parseData.js.map +0 -1
- package/dist/cjs/sui-sdk/events/types.d.ts +0 -238
- package/dist/cjs/sui-sdk/events/types.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/events/types.js +0 -9
- package/dist/cjs/sui-sdk/events/types.js.map +0 -1
- package/dist/cjs/sui-sdk/functions/fetchTableData.d.ts +0 -50
- package/dist/cjs/sui-sdk/functions/fetchTableData.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/functions/fetchTableData.js +0 -77
- package/dist/cjs/sui-sdk/functions/fetchTableData.js.map +0 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts +0 -3
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js +0 -73
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js.map +0 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts +0 -3
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js +0 -50
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js.map +0 -1
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts +0 -19
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +0 -314
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +0 -1
- package/dist/cjs/sui-sdk/functions/getPositionRange.d.ts +0 -12
- package/dist/cjs/sui-sdk/functions/getPositionRange.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/functions/getPositionRange.js +0 -88
- package/dist/cjs/sui-sdk/functions/getPositionRange.js.map +0 -1
- package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +0 -69
- package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/functions/getReceipts.js +0 -768
- package/dist/cjs/sui-sdk/functions/getReceipts.js.map +0 -1
- package/dist/cjs/sui-sdk/transactions/constants.d.ts +0 -4
- package/dist/cjs/sui-sdk/transactions/constants.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/transactions/constants.js +0 -90
- package/dist/cjs/sui-sdk/transactions/constants.js.map +0 -1
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts +0 -5
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.js +0 -65
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.js.map +0 -1
- package/dist/cjs/sui-sdk/transactions/types.d.ts +0 -9
- package/dist/cjs/sui-sdk/transactions/types.d.ts.map +0 -1
- package/dist/cjs/sui-sdk/transactions/types.js +0 -3
- package/dist/cjs/sui-sdk/transactions/types.js.map +0 -1
- package/dist/cjs/transactions/7k.d.ts +0 -8
- package/dist/cjs/transactions/7k.d.ts.map +0 -1
- package/dist/cjs/transactions/7k.js +0 -34
- package/dist/cjs/transactions/7k.js.map +0 -1
- package/dist/cjs/transactions/alpha.d.ts +0 -6
- package/dist/cjs/transactions/alpha.d.ts.map +0 -1
- package/dist/cjs/transactions/alpha.js +0 -110
- package/dist/cjs/transactions/alpha.js.map +0 -1
- package/dist/cjs/transactions/alphaVault.d.ts +0 -33
- package/dist/cjs/transactions/alphaVault.d.ts.map +0 -1
- package/dist/cjs/transactions/alphaVault.js +0 -449
- package/dist/cjs/transactions/alphaVault.js.map +0 -1
- package/dist/cjs/transactions/alphalend.d.ts +0 -30
- package/dist/cjs/transactions/alphalend.d.ts.map +0 -1
- package/dist/cjs/transactions/alphalend.js +0 -286
- package/dist/cjs/transactions/alphalend.js.map +0 -1
- package/dist/cjs/transactions/blueRewards.d.ts +0 -15
- package/dist/cjs/transactions/blueRewards.d.ts.map +0 -1
- package/dist/cjs/transactions/blueRewards.js +0 -395
- package/dist/cjs/transactions/blueRewards.js.map +0 -1
- package/dist/cjs/transactions/bluefin.d.ts +0 -60
- package/dist/cjs/transactions/bluefin.d.ts.map +0 -1
- package/dist/cjs/transactions/bluefin.js +0 -3078
- package/dist/cjs/transactions/bluefin.js.map +0 -1
- package/dist/cjs/transactions/bucket.d.ts +0 -8
- package/dist/cjs/transactions/bucket.d.ts.map +0 -1
- package/dist/cjs/transactions/bucket.js +0 -144
- package/dist/cjs/transactions/bucket.js.map +0 -1
- package/dist/cjs/transactions/cetus.d.ts +0 -27
- package/dist/cjs/transactions/cetus.d.ts.map +0 -1
- package/dist/cjs/transactions/cetus.js +0 -466
- package/dist/cjs/transactions/cetus.js.map +0 -1
- package/dist/cjs/transactions/cetusSwap.d.ts +0 -15
- package/dist/cjs/transactions/cetusSwap.d.ts.map +0 -1
- package/dist/cjs/transactions/cetusSwap.js +0 -74
- package/dist/cjs/transactions/cetusSwap.js.map +0 -1
- package/dist/cjs/transactions/collect_rewards.d.ts +0 -11
- package/dist/cjs/transactions/collect_rewards.d.ts.map +0 -1
- package/dist/cjs/transactions/collect_rewards.js +0 -1292
- package/dist/cjs/transactions/collect_rewards.js.map +0 -1
- package/dist/cjs/transactions/deposit.d.ts +0 -15
- package/dist/cjs/transactions/deposit.d.ts.map +0 -1
- package/dist/cjs/transactions/deposit.js +0 -194
- package/dist/cjs/transactions/deposit.js.map +0 -1
- package/dist/cjs/transactions/get_navi_rewards.d.ts +0 -11
- package/dist/cjs/transactions/get_navi_rewards.d.ts.map +0 -1
- package/dist/cjs/transactions/get_navi_rewards.js +0 -39
- package/dist/cjs/transactions/get_navi_rewards.js.map +0 -1
- package/dist/cjs/transactions/navi-looping.d.ts +0 -55
- package/dist/cjs/transactions/navi-looping.d.ts.map +0 -1
- package/dist/cjs/transactions/navi-looping.js +0 -1718
- package/dist/cjs/transactions/navi-looping.js.map +0 -1
- package/dist/cjs/transactions/navi.d.ts +0 -9
- package/dist/cjs/transactions/navi.d.ts.map +0 -1
- package/dist/cjs/transactions/navi.js +0 -2541
- package/dist/cjs/transactions/navi.js.map +0 -1
- package/dist/cjs/transactions/naviOracle.d.ts +0 -5
- package/dist/cjs/transactions/naviOracle.d.ts.map +0 -1
- package/dist/cjs/transactions/naviOracle.js +0 -28
- package/dist/cjs/transactions/naviOracle.js.map +0 -1
- package/dist/cjs/transactions/newZapDeposit.d.ts +0 -19
- package/dist/cjs/transactions/newZapDeposit.d.ts.map +0 -1
- package/dist/cjs/transactions/newZapDeposit.js +0 -1622
- package/dist/cjs/transactions/newZapDeposit.js.map +0 -1
- package/dist/cjs/transactions/slush.d.ts +0 -16
- package/dist/cjs/transactions/slush.d.ts.map +0 -1
- package/dist/cjs/transactions/slush.js +0 -219
- package/dist/cjs/transactions/slush.js.map +0 -1
- package/dist/cjs/transactions/types.d.ts +0 -17
- package/dist/cjs/transactions/types.d.ts.map +0 -1
- package/dist/cjs/transactions/types.js +0 -3
- package/dist/cjs/transactions/types.js.map +0 -1
- package/dist/cjs/transactions/withdraw.d.ts +0 -9
- package/dist/cjs/transactions/withdraw.d.ts.map +0 -1
- package/dist/cjs/transactions/withdraw.js +0 -132
- package/dist/cjs/transactions/withdraw.js.map +0 -1
- package/dist/cjs/transactions/zapDeposit.d.ts +0 -6
- package/dist/cjs/transactions/zapDeposit.d.ts.map +0 -1
- package/dist/cjs/transactions/zapDeposit.js +0 -1731
- package/dist/cjs/transactions/zapDeposit.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -201
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utils/clmm/prices.d.ts +0 -20
- package/dist/cjs/utils/clmm/prices.d.ts.map +0 -1
- package/dist/cjs/utils/clmm/prices.js +0 -321
- package/dist/cjs/utils/clmm/prices.js.map +0 -1
- package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.d.ts +0 -15
- package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.d.ts.map +0 -1
- package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js +0 -200
- package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js.map +0 -1
- package/dist/cjs/utils/clmm/types.d.ts +0 -25
- package/dist/cjs/utils/clmm/types.d.ts.map +0 -1
- package/dist/cjs/utils/clmm/types.js +0 -3
- package/dist/cjs/utils/clmm/types.js.map +0 -1
- package/dist/cjs/utils/getReceipts.d.ts +0 -4
- package/dist/cjs/utils/getReceipts.d.ts.map +0 -1
- package/dist/cjs/utils/getReceipts.js +0 -47
- package/dist/cjs/utils/getReceipts.js.map +0 -1
- package/dist/cjs/utils/hop.d.ts +0 -16
- package/dist/cjs/utils/hop.d.ts.map +0 -1
- package/dist/cjs/utils/hop.js +0 -130
- package/dist/cjs/utils/hop.js.map +0 -1
- package/dist/cjs/utils/prices.d.ts +0 -15
- package/dist/cjs/utils/prices.d.ts.map +0 -1
- package/dist/cjs/utils/prices.js +0 -168
- package/dist/cjs/utils/prices.js.map +0 -1
- package/dist/cjs/utils/simpleCache.d.ts +0 -14
- package/dist/cjs/utils/simpleCache.d.ts.map +0 -1
- package/dist/cjs/utils/simpleCache.js +0 -92
- package/dist/cjs/utils/simpleCache.js.map +0 -1
- package/dist/cjs/utils/types.d.ts +0 -5
- package/dist/cjs/utils/types.d.ts.map +0 -1
- package/dist/cjs/utils/types.js +0 -3
- package/dist/cjs/utils/types.js.map +0 -1
- package/dist/cjs/utils/userHoldings.d.ts +0 -10
- package/dist/cjs/utils/userHoldings.d.ts.map +0 -1
- package/dist/cjs/utils/userHoldings.js +0 -229
- package/dist/cjs/utils/userHoldings.js.map +0 -1
- package/dist/cjs/vaultFunctions.d.ts +0 -8
- package/dist/cjs/vaultFunctions.d.ts.map +0 -1
- package/dist/cjs/vaultFunctions.js +0 -36
- package/dist/cjs/vaultFunctions.js.map +0 -1
- package/dist/esm/adminFunctions.d.ts +0 -33
- package/dist/esm/adminFunctions.d.ts.map +0 -1
- package/dist/esm/adminFunctions.js +0 -290
- package/dist/esm/adminFunctions.js.map +0 -1
- package/dist/esm/common/alphaTypes.d.ts +0 -110
- package/dist/esm/common/alphaTypes.d.ts.map +0 -1
- package/dist/esm/common/alphaTypes.js +0 -2
- package/dist/esm/common/alphaTypes.js.map +0 -1
- package/dist/esm/common/cetus_mainnet_config.d.ts +0 -3
- package/dist/esm/common/cetus_mainnet_config.d.ts.map +0 -1
- package/dist/esm/common/cetus_mainnet_config.js +0 -47
- package/dist/esm/common/cetus_mainnet_config.js.map +0 -1
- package/dist/esm/common/coins.d.ts +0 -6
- package/dist/esm/common/coins.d.ts.map +0 -1
- package/dist/esm/common/coins.js +0 -310
- package/dist/esm/common/coins.js.map +0 -1
- package/dist/esm/common/constants.d.ts +0 -3187
- package/dist/esm/common/constants.d.ts.map +0 -1
- package/dist/esm/common/constants.js +0 -2560
- package/dist/esm/common/constants.js.map +0 -1
- package/dist/esm/common/maps.d.ts +0 -120
- package/dist/esm/common/maps.d.ts.map +0 -1
- package/dist/esm/common/maps.js +0 -2516
- package/dist/esm/common/maps.js.map +0 -1
- package/dist/esm/common/pyth.d.ts +0 -7
- package/dist/esm/common/pyth.d.ts.map +0 -1
- package/dist/esm/common/pyth.js +0 -2
- package/dist/esm/common/pyth.js.map +0 -1
- package/dist/esm/common/types.d.ts +0 -736
- package/dist/esm/common/types.d.ts.map +0 -1
- package/dist/esm/common/types.js.map +0 -1
- package/dist/esm/example.d.ts +0 -3
- package/dist/esm/example.d.ts.map +0 -1
- package/dist/esm/example.js +0 -38
- package/dist/esm/example.js.map +0 -1
- package/dist/esm/getAirdropShare.d.ts +0 -3
- package/dist/esm/getAirdropShare.d.ts.map +0 -1
- package/dist/esm/getAirdropShare.js +0 -7
- package/dist/esm/getAirdropShare.js.map +0 -1
- package/dist/esm/getAllVaults.d.ts +0 -7
- package/dist/esm/getAllVaults.d.ts.map +0 -1
- package/dist/esm/getAllVaults.js +0 -34
- package/dist/esm/getAllVaults.js.map +0 -1
- package/dist/esm/getAlphaUnlocks.d.ts +0 -15
- package/dist/esm/getAlphaUnlocks.d.ts.map +0 -1
- package/dist/esm/getAlphaUnlocks.js +0 -18
- package/dist/esm/getAlphaUnlocks.js.map +0 -1
- package/dist/esm/getAprs.d.ts +0 -14
- package/dist/esm/getAprs.d.ts.map +0 -1
- package/dist/esm/getAprs.js +0 -297
- package/dist/esm/getAprs.js.map +0 -1
- package/dist/esm/getLastAutoCompoundTime.d.ts +0 -4
- package/dist/esm/getLastAutoCompoundTime.d.ts.map +0 -1
- package/dist/esm/getLastAutoCompoundTime.js +0 -15
- package/dist/esm/getLastAutoCompoundTime.js.map +0 -1
- package/dist/esm/getRebalanceHistory.d.ts +0 -6
- package/dist/esm/getRebalanceHistory.d.ts.map +0 -1
- package/dist/esm/getRebalanceHistory.js +0 -22
- package/dist/esm/getRebalanceHistory.js.map +0 -1
- package/dist/esm/getTvls.d.ts +0 -10
- package/dist/esm/getTvls.d.ts.map +0 -1
- package/dist/esm/getTvls.js +0 -130
- package/dist/esm/getTvls.js.map +0 -1
- package/dist/esm/getVaultBalances.d.ts +0 -13
- package/dist/esm/getVaultBalances.d.ts.map +0 -1
- package/dist/esm/getVaultBalances.js +0 -96
- package/dist/esm/getVaultBalances.js.map +0 -1
- package/dist/esm/getVaults.d.ts +0 -8
- package/dist/esm/getVaults.d.ts.map +0 -1
- package/dist/esm/getVaults.js +0 -29
- package/dist/esm/getVaults.js.map +0 -1
- package/dist/esm/graphql/client.d.ts +0 -4
- package/dist/esm/graphql/client.d.ts.map +0 -1
- package/dist/esm/graphql/client.js +0 -12
- package/dist/esm/graphql/client.js.map +0 -1
- package/dist/esm/graphql/executeMutations.d.ts +0 -19
- package/dist/esm/graphql/executeMutations.d.ts.map +0 -1
- package/dist/esm/graphql/executeMutations.js +0 -34
- package/dist/esm/graphql/executeMutations.js.map +0 -1
- package/dist/esm/graphql/fetchAutoCompoundingEventsGql.d.ts +0 -28
- package/dist/esm/graphql/fetchAutoCompoundingEventsGql.d.ts.map +0 -1
- package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js +0 -117
- package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js.map +0 -1
- package/dist/esm/graphql/fetchData.d.ts +0 -35
- package/dist/esm/graphql/fetchData.d.ts.map +0 -1
- package/dist/esm/graphql/fetchData.js +0 -89
- package/dist/esm/graphql/fetchData.js.map +0 -1
- package/dist/esm/graphql/fetchNftHolders.d.ts +0 -4
- package/dist/esm/graphql/fetchNftHolders.d.ts.map +0 -1
- package/dist/esm/graphql/fetchNftHolders.js +0 -33
- package/dist/esm/graphql/fetchNftHolders.js.map +0 -1
- package/dist/esm/graphql/fetchReceipts.d.ts +0 -4
- package/dist/esm/graphql/fetchReceipts.d.ts.map +0 -1
- package/dist/esm/graphql/fetchReceipts.js +0 -34
- package/dist/esm/graphql/fetchReceipts.js.map +0 -1
- package/dist/esm/graphql/getMultiReceipts.d.ts +0 -4
- package/dist/esm/graphql/getMultiReceipts.d.ts.map +0 -1
- package/dist/esm/graphql/getMultiReceipts.js +0 -114
- package/dist/esm/graphql/getMultiReceipts.js.map +0 -1
- package/dist/esm/graphql/mutations.d.ts +0 -4
- package/dist/esm/graphql/mutations.d.ts.map +0 -1
- package/dist/esm/graphql/mutations.js +0 -30
- package/dist/esm/graphql/mutations.js.map +0 -1
- package/dist/esm/graphql/parseData.d.ts +0 -3
- package/dist/esm/graphql/parseData.d.ts.map +0 -1
- package/dist/esm/graphql/parseData.js +0 -7
- package/dist/esm/graphql/parseData.js.map +0 -1
- package/dist/esm/graphql/parseLockedTableId.d.ts +0 -8
- package/dist/esm/graphql/parseLockedTableId.d.ts.map +0 -1
- package/dist/esm/graphql/parseLockedTableId.js +0 -13
- package/dist/esm/graphql/parseLockedTableId.js.map +0 -1
- package/dist/esm/graphql/queries/autoCompoundEvents.d.ts +0 -2
- package/dist/esm/graphql/queries/autoCompoundEvents.d.ts.map +0 -1
- package/dist/esm/graphql/queries/autoCompoundEvents.js +0 -16
- package/dist/esm/graphql/queries/autoCompoundEvents.js.map +0 -1
- package/dist/esm/graphql/queries/cetusPools.d.ts +0 -2
- package/dist/esm/graphql/queries/cetusPools.d.ts.map +0 -1
- package/dist/esm/graphql/queries/cetusPools.js +0 -36
- package/dist/esm/graphql/queries/cetusPools.js.map +0 -1
- package/dist/esm/graphql/queries/getMultiReceipts.d.ts +0 -3
- package/dist/esm/graphql/queries/getMultiReceipts.d.ts.map +0 -1
- package/dist/esm/graphql/queries/getMultiReceipts.js +0 -56
- package/dist/esm/graphql/queries/getMultiReceipts.js.map +0 -1
- package/dist/esm/graphql/queries/investors.d.ts +0 -2
- package/dist/esm/graphql/queries/investors.d.ts.map +0 -1
- package/dist/esm/graphql/queries/investors.js +0 -36
- package/dist/esm/graphql/queries/investors.js.map +0 -1
- package/dist/esm/graphql/queries/lockedTableData.d.ts +0 -2
- package/dist/esm/graphql/queries/lockedTableData.d.ts.map +0 -1
- package/dist/esm/graphql/queries/lockedTableData.js +0 -27
- package/dist/esm/graphql/queries/lockedTableData.js.map +0 -1
- package/dist/esm/graphql/queries/lockedTableDataFragment.d.ts +0 -2
- package/dist/esm/graphql/queries/lockedTableDataFragment.d.ts.map +0 -1
- package/dist/esm/graphql/queries/lockedTableDataFragment.js +0 -21
- package/dist/esm/graphql/queries/lockedTableDataFragment.js.map +0 -1
- package/dist/esm/graphql/queries/nftHolders.d.ts +0 -2
- package/dist/esm/graphql/queries/nftHolders.d.ts.map +0 -1
- package/dist/esm/graphql/queries/nftHolders.js +0 -20
- package/dist/esm/graphql/queries/nftHolders.js.map +0 -1
- package/dist/esm/graphql/queries/pools.d.ts +0 -2
- package/dist/esm/graphql/queries/pools.d.ts.map +0 -1
- package/dist/esm/graphql/queries/pools.js +0 -54
- package/dist/esm/graphql/queries/pools.js.map +0 -1
- package/dist/esm/graphql/queries/receiptData.d.ts +0 -2
- package/dist/esm/graphql/queries/receiptData.d.ts.map +0 -1
- package/dist/esm/graphql/queries/receiptData.js +0 -18
- package/dist/esm/graphql/queries/receiptData.js.map +0 -1
- package/dist/esm/graphql/queries/userVaultBalances.d.ts +0 -2
- package/dist/esm/graphql/queries/userVaultBalances.d.ts.map +0 -1
- package/dist/esm/graphql/queries/userVaultBalances.js +0 -59
- package/dist/esm/graphql/queries/userVaultBalances.js.map +0 -1
- package/dist/esm/graphql/queries/userVaults.d.ts +0 -2
- package/dist/esm/graphql/queries/userVaults.d.ts.map +0 -1
- package/dist/esm/graphql/queries/userVaults.js +0 -59
- package/dist/esm/graphql/queries/userVaults.js.map +0 -1
- package/dist/esm/graphql/queries.d.ts +0 -15
- package/dist/esm/graphql/queries.d.ts.map +0 -1
- package/dist/esm/graphql/queries.js +0 -83
- package/dist/esm/graphql/queries.js.map +0 -1
- package/dist/esm/graphql/types.d.ts +0 -112
- package/dist/esm/graphql/types.d.ts.map +0 -1
- package/dist/esm/graphql/types.js +0 -2
- package/dist/esm/graphql/types.js.map +0 -1
- package/dist/esm/sui-sdk/client.d.ts +0 -44
- package/dist/esm/sui-sdk/client.d.ts.map +0 -1
- package/dist/esm/sui-sdk/client.js +0 -82
- package/dist/esm/sui-sdk/client.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts +0 -10
- package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js +0 -125
- package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.d.ts +0 -4
- package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.js +0 -17
- package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +0 -9
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js +0 -401
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.d.ts +0 -4
- package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.js +0 -44
- package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchEvents.d.ts +0 -4
- package/dist/esm/sui-sdk/events/fetchEvents.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchEvents.js +0 -450
- package/dist/esm/sui-sdk/events/fetchEvents.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +0 -4
- package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js +0 -42
- package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.d.ts +0 -9
- package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.js +0 -38
- package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts +0 -7
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js +0 -86
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js.map +0 -1
- package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.d.ts +0 -4
- package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.js +0 -25
- package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.js.map +0 -1
- package/dist/esm/sui-sdk/events/parseData.d.ts +0 -6
- package/dist/esm/sui-sdk/events/parseData.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/parseData.js +0 -29
- package/dist/esm/sui-sdk/events/parseData.js.map +0 -1
- package/dist/esm/sui-sdk/events/types.d.ts +0 -238
- package/dist/esm/sui-sdk/events/types.d.ts.map +0 -1
- package/dist/esm/sui-sdk/events/types.js +0 -6
- package/dist/esm/sui-sdk/events/types.js.map +0 -1
- package/dist/esm/sui-sdk/functions/fetchTableData.d.ts +0 -50
- package/dist/esm/sui-sdk/functions/fetchTableData.d.ts.map +0 -1
- package/dist/esm/sui-sdk/functions/fetchTableData.js +0 -73
- package/dist/esm/sui-sdk/functions/fetchTableData.js.map +0 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts +0 -3
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +0 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js +0 -70
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js.map +0 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts +0 -3
- package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts.map +0 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js +0 -47
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js.map +0 -1
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts +0 -19
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +0 -1
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +0 -303
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +0 -1
- package/dist/esm/sui-sdk/functions/getPositionRange.d.ts +0 -12
- package/dist/esm/sui-sdk/functions/getPositionRange.d.ts.map +0 -1
- package/dist/esm/sui-sdk/functions/getPositionRange.js +0 -84
- package/dist/esm/sui-sdk/functions/getPositionRange.js.map +0 -1
- package/dist/esm/sui-sdk/functions/getReceipts.d.ts +0 -69
- package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +0 -1
- package/dist/esm/sui-sdk/functions/getReceipts.js +0 -751
- package/dist/esm/sui-sdk/functions/getReceipts.js.map +0 -1
- package/dist/esm/sui-sdk/transactions/constants.d.ts +0 -4
- package/dist/esm/sui-sdk/transactions/constants.d.ts.map +0 -1
- package/dist/esm/sui-sdk/transactions/constants.js +0 -87
- package/dist/esm/sui-sdk/transactions/constants.js.map +0 -1
- package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts +0 -5
- package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts.map +0 -1
- package/dist/esm/sui-sdk/transactions/fetchTransactions.js +0 -62
- package/dist/esm/sui-sdk/transactions/fetchTransactions.js.map +0 -1
- package/dist/esm/sui-sdk/transactions/types.d.ts +0 -9
- package/dist/esm/sui-sdk/transactions/types.d.ts.map +0 -1
- package/dist/esm/sui-sdk/transactions/types.js +0 -2
- package/dist/esm/sui-sdk/transactions/types.js.map +0 -1
- package/dist/esm/transactions/7k.d.ts +0 -8
- package/dist/esm/transactions/7k.d.ts.map +0 -1
- package/dist/esm/transactions/7k.js +0 -30
- package/dist/esm/transactions/7k.js.map +0 -1
- package/dist/esm/transactions/alpha.d.ts +0 -6
- package/dist/esm/transactions/alpha.d.ts.map +0 -1
- package/dist/esm/transactions/alpha.js +0 -105
- package/dist/esm/transactions/alpha.js.map +0 -1
- package/dist/esm/transactions/alphaVault.d.ts +0 -33
- package/dist/esm/transactions/alphaVault.d.ts.map +0 -1
- package/dist/esm/transactions/alphaVault.js +0 -441
- package/dist/esm/transactions/alphaVault.js.map +0 -1
- package/dist/esm/transactions/alphalend.d.ts +0 -30
- package/dist/esm/transactions/alphalend.d.ts.map +0 -1
- package/dist/esm/transactions/alphalend.js +0 -277
- package/dist/esm/transactions/alphalend.js.map +0 -1
- package/dist/esm/transactions/blueRewards.d.ts +0 -15
- package/dist/esm/transactions/blueRewards.d.ts.map +0 -1
- package/dist/esm/transactions/blueRewards.js +0 -357
- package/dist/esm/transactions/blueRewards.js.map +0 -1
- package/dist/esm/transactions/bluefin.d.ts +0 -60
- package/dist/esm/transactions/bluefin.d.ts.map +0 -1
- package/dist/esm/transactions/bluefin.js +0 -3060
- package/dist/esm/transactions/bluefin.js.map +0 -1
- package/dist/esm/transactions/bucket.d.ts +0 -8
- package/dist/esm/transactions/bucket.d.ts.map +0 -1
- package/dist/esm/transactions/bucket.js +0 -140
- package/dist/esm/transactions/bucket.js.map +0 -1
- package/dist/esm/transactions/cetus.d.ts +0 -27
- package/dist/esm/transactions/cetus.d.ts.map +0 -1
- package/dist/esm/transactions/cetus.js +0 -457
- package/dist/esm/transactions/cetus.js.map +0 -1
- package/dist/esm/transactions/cetusSwap.d.ts +0 -15
- package/dist/esm/transactions/cetusSwap.d.ts.map +0 -1
- package/dist/esm/transactions/cetusSwap.js +0 -72
- package/dist/esm/transactions/cetusSwap.js.map +0 -1
- package/dist/esm/transactions/collect_rewards.d.ts +0 -11
- package/dist/esm/transactions/collect_rewards.d.ts.map +0 -1
- package/dist/esm/transactions/collect_rewards.js +0 -1286
- package/dist/esm/transactions/collect_rewards.js.map +0 -1
- package/dist/esm/transactions/deposit.d.ts +0 -15
- package/dist/esm/transactions/deposit.d.ts.map +0 -1
- package/dist/esm/transactions/deposit.js +0 -185
- package/dist/esm/transactions/deposit.js.map +0 -1
- package/dist/esm/transactions/get_navi_rewards.d.ts +0 -11
- package/dist/esm/transactions/get_navi_rewards.d.ts.map +0 -1
- package/dist/esm/transactions/get_navi_rewards.js +0 -36
- package/dist/esm/transactions/get_navi_rewards.js.map +0 -1
- package/dist/esm/transactions/navi-looping.d.ts +0 -55
- package/dist/esm/transactions/navi-looping.d.ts.map +0 -1
- package/dist/esm/transactions/navi-looping.js +0 -1703
- package/dist/esm/transactions/navi-looping.js.map +0 -1
- package/dist/esm/transactions/navi.d.ts +0 -9
- package/dist/esm/transactions/navi.d.ts.map +0 -1
- package/dist/esm/transactions/navi.js +0 -2537
- package/dist/esm/transactions/navi.js.map +0 -1
- package/dist/esm/transactions/naviOracle.d.ts +0 -5
- package/dist/esm/transactions/naviOracle.d.ts.map +0 -1
- package/dist/esm/transactions/naviOracle.js +0 -25
- package/dist/esm/transactions/naviOracle.js.map +0 -1
- package/dist/esm/transactions/newZapDeposit.d.ts +0 -19
- package/dist/esm/transactions/newZapDeposit.d.ts.map +0 -1
- package/dist/esm/transactions/newZapDeposit.js +0 -1617
- package/dist/esm/transactions/newZapDeposit.js.map +0 -1
- package/dist/esm/transactions/slush.d.ts +0 -16
- package/dist/esm/transactions/slush.d.ts.map +0 -1
- package/dist/esm/transactions/slush.js +0 -213
- package/dist/esm/transactions/slush.js.map +0 -1
- package/dist/esm/transactions/types.d.ts +0 -17
- package/dist/esm/transactions/types.d.ts.map +0 -1
- package/dist/esm/transactions/types.js +0 -2
- package/dist/esm/transactions/types.js.map +0 -1
- package/dist/esm/transactions/withdraw.d.ts +0 -9
- package/dist/esm/transactions/withdraw.d.ts.map +0 -1
- package/dist/esm/transactions/withdraw.js +0 -127
- package/dist/esm/transactions/withdraw.js.map +0 -1
- package/dist/esm/transactions/zapDeposit.d.ts +0 -6
- package/dist/esm/transactions/zapDeposit.d.ts.map +0 -1
- package/dist/esm/transactions/zapDeposit.js +0 -1727
- package/dist/esm/transactions/zapDeposit.js.map +0 -1
- package/dist/esm/types.d.ts +0 -201
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils/clmm/prices.d.ts +0 -20
- package/dist/esm/utils/clmm/prices.d.ts.map +0 -1
- package/dist/esm/utils/clmm/prices.js +0 -313
- package/dist/esm/utils/clmm/prices.js.map +0 -1
- package/dist/esm/utils/clmm/tokenAmountFromLiquidity.d.ts +0 -15
- package/dist/esm/utils/clmm/tokenAmountFromLiquidity.d.ts.map +0 -1
- package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js +0 -192
- package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js.map +0 -1
- package/dist/esm/utils/clmm/types.d.ts +0 -25
- package/dist/esm/utils/clmm/types.d.ts.map +0 -1
- package/dist/esm/utils/clmm/types.js +0 -2
- package/dist/esm/utils/clmm/types.js.map +0 -1
- package/dist/esm/utils/getReceipts.d.ts +0 -4
- package/dist/esm/utils/getReceipts.d.ts.map +0 -1
- package/dist/esm/utils/getReceipts.js +0 -44
- package/dist/esm/utils/getReceipts.js.map +0 -1
- package/dist/esm/utils/hop.d.ts +0 -16
- package/dist/esm/utils/hop.d.ts.map +0 -1
- package/dist/esm/utils/hop.js +0 -122
- package/dist/esm/utils/hop.js.map +0 -1
- package/dist/esm/utils/prices.d.ts +0 -15
- package/dist/esm/utils/prices.d.ts.map +0 -1
- package/dist/esm/utils/prices.js +0 -161
- package/dist/esm/utils/prices.js.map +0 -1
- package/dist/esm/utils/simpleCache.d.ts +0 -14
- package/dist/esm/utils/simpleCache.d.ts.map +0 -1
- package/dist/esm/utils/simpleCache.js +0 -88
- package/dist/esm/utils/simpleCache.js.map +0 -1
- package/dist/esm/utils/types.d.ts +0 -5
- package/dist/esm/utils/types.d.ts.map +0 -1
- package/dist/esm/utils/types.js +0 -2
- package/dist/esm/utils/types.js.map +0 -1
- package/dist/esm/utils/userHoldings.d.ts +0 -10
- package/dist/esm/utils/userHoldings.d.ts.map +0 -1
- package/dist/esm/utils/userHoldings.js +0 -223
- package/dist/esm/utils/userHoldings.js.map +0 -1
- package/dist/esm/vaultFunctions.d.ts +0 -8
- package/dist/esm/vaultFunctions.d.ts.map +0 -1
- package/dist/esm/vaultFunctions.js +0 -31
- package/dist/esm/vaultFunctions.js.map +0 -1
- package/docs/assets/hierarchy.js +0 -1
- package/docs/assets/highlight.css +0 -78
- package/docs/assets/icons.js +0 -18
- package/docs/assets/icons.svg +0 -1
- package/docs/assets/main.js +0 -60
- package/docs/assets/navigation.js +0 -1
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1633
- package/docs/functions/addAirdropCoin.html +0 -1
- package/docs/functions/alphaLpBreakdown.html +0 -1
- package/docs/functions/cetusLpBreakdown.html +0 -1
- package/docs/functions/claimAirdropTx.html +0 -1
- package/docs/functions/claimRewardTxb.html +0 -1
- package/docs/functions/claimRewardsTxb.html +0 -1
- package/docs/functions/claimWithdrawAlphaTx.html +0 -1
- package/docs/functions/coinAmountToXTokensDoubleAsset.html +0 -1
- package/docs/functions/coinAmountToXTokensSingleAsset.html +0 -1
- package/docs/functions/coinsInPool.html +0 -1
- package/docs/functions/collectAndSwapRewardsLyf.html +0 -1
- package/docs/functions/collectAndSwapRewardsSingleLoop.html +0 -1
- package/docs/functions/collectRewardTxb.html +0 -1
- package/docs/functions/collectRewards.html +0 -1
- package/docs/functions/collectRewardsAndSwapSlush.html +0 -1
- package/docs/functions/collectUnsuppliedBalance.html +0 -1
- package/docs/functions/deposit.html +0 -1
- package/docs/functions/depositAlphaTx.html +0 -1
- package/docs/functions/depositDoubleAssetTxb.html +0 -1
- package/docs/functions/depositSingleAssetTxb.html +0 -1
- package/docs/functions/fetchAfterTransactionEvents.html +0 -1
- package/docs/functions/fetchAirdropClaimEvents.html +0 -1
- package/docs/functions/fetchAutoCompoundingEvents.html +0 -1
- package/docs/functions/fetchAutoCompoundingEventsGql.html +0 -1
- package/docs/functions/fetchCetusPools.html +0 -1
- package/docs/functions/fetchChainIdentifier.html +0 -1
- package/docs/functions/fetchCheckRatioEvents.html +0 -1
- package/docs/functions/fetchEvents.html +0 -1
- package/docs/functions/fetchLiquidityChangeEvents.html +0 -1
- package/docs/functions/fetchMultiCategoryEvents.html +0 -1
- package/docs/functions/fetchMultiReceipts.html +0 -1
- package/docs/functions/fetchNftHolders.html +0 -1
- package/docs/functions/fetchPools.html +0 -1
- package/docs/functions/fetchPortfolioData.html +0 -1
- package/docs/functions/fetchProtocolData.html +0 -1
- package/docs/functions/fetchRequiredPrices.html +0 -1
- package/docs/functions/fetchTVL.html +0 -1
- package/docs/functions/fetchTransactions.html +0 -1
- package/docs/functions/fetchUserVaultBalances.html +0 -1
- package/docs/functions/fetchUserVaults.html +0 -1
- package/docs/functions/fetchUserWalletData.html +0 -1
- package/docs/functions/fetchVoloExchangeRate.html +0 -1
- package/docs/functions/fetchWithdrawV2Events.html +0 -1
- package/docs/functions/getAirdropShare.html +0 -1
- package/docs/functions/getAllDoubleAssetVaults.html +0 -1
- package/docs/functions/getAllSingleAssetVaults.html +0 -1
- package/docs/functions/getAllVaultBalances.html +0 -1
- package/docs/functions/getAllVaults.html +0 -1
- package/docs/functions/getAlphaUnlocks.html +0 -1
- package/docs/functions/getAlphaVaultBalance.html +0 -1
- package/docs/functions/getAmounts.html +0 -1
- package/docs/functions/getApr.html +0 -1
- package/docs/functions/getAprs.html +0 -1
- package/docs/functions/getApy.html +0 -1
- package/docs/functions/getApys.html +0 -1
- package/docs/functions/getCetusInvestorTicksMap.html +0 -1
- package/docs/functions/getCetusPool.html +0 -1
- package/docs/functions/getCetusSqrtPriceMap.html +0 -1
- package/docs/functions/getCoinAmountsFromLiquidity.html +0 -1
- package/docs/functions/getConf.html +0 -1
- package/docs/functions/getCurrentTick.html +0 -1
- package/docs/functions/getDistributor.html +0 -1
- package/docs/functions/getDoubleAssetVaultBalance.html +0 -1
- package/docs/functions/getDoubleAssetVaults.html +0 -1
- package/docs/functions/getInvestor.html +0 -1
- package/docs/functions/getInvestorPoolMap.html +0 -1
- package/docs/functions/getLastAutoCompoundTime.html +0 -1
- package/docs/functions/getLatestPrices.html +0 -1
- package/docs/functions/getLiquidity.html +0 -1
- package/docs/functions/getMultiCetusPool.html +0 -1
- package/docs/functions/getMultiInvestor.html +0 -1
- package/docs/functions/getMultiLatestPrices.html +0 -1
- package/docs/functions/getMultiParentPool.html +0 -1
- package/docs/functions/getMultiPool.html +0 -1
- package/docs/functions/getMultiReceipts.html +0 -1
- package/docs/functions/getParentPool.html +0 -1
- package/docs/functions/getPool.html +0 -1
- package/docs/functions/getPoolExchangeRate.html +0 -1
- package/docs/functions/getPoolExchangeRateMap.html +0 -1
- package/docs/functions/getPoolsWeightDistribution.html +0 -1
- package/docs/functions/getPositionRange.html +0 -1
- package/docs/functions/getPositionRanges.html +0 -1
- package/docs/functions/getPositionTicks.html +0 -1
- package/docs/functions/getPriceToTick.html +0 -1
- package/docs/functions/getRebalanceCap.html +0 -1
- package/docs/functions/getRebalanceHistories.html +0 -1
- package/docs/functions/getRebalanceHistory.html +0 -1
- package/docs/functions/getReceipts.html +0 -1
- package/docs/functions/getSingleAssetVaultBalance.html +0 -1
- package/docs/functions/getSingleAssetVaults.html +0 -1
- package/docs/functions/getSlushUserTotalXtokens.html +0 -1
- package/docs/functions/getSuiClient.html +0 -3
- package/docs/functions/getSuiNodeUrl.html +0 -3
- package/docs/functions/getTVLs-1.html +0 -1
- package/docs/functions/getTickSpacing.html +0 -1
- package/docs/functions/getTickToPrice.html +0 -1
- package/docs/functions/getTvls.html +0 -1
- package/docs/functions/getVaultBalance.html +0 -1
- package/docs/functions/getVaults.html +0 -1
- package/docs/functions/getWithdrawRequestsAndUnsuppliedAmount.html +0 -1
- package/docs/functions/initiateWithdrawAlpha.html +0 -1
- package/docs/functions/lastAutocompoundTime.html +0 -1
- package/docs/functions/liquidityToTokens.html +0 -1
- package/docs/functions/migrateBoostedToLoop.html +0 -1
- package/docs/functions/multiLiquidityToTokens.html +0 -1
- package/docs/functions/multiTokensToUsd.html +0 -1
- package/docs/functions/multiXTokensToLiquidity.html +0 -1
- package/docs/functions/parseUserWalletData.html +0 -1
- package/docs/functions/pendingRewardAmount.html +0 -1
- package/docs/functions/processWithdrawRequestsManual.html +0 -1
- package/docs/functions/setCustomSuiClient.html +0 -5
- package/docs/functions/setSuiClient.html +0 -7
- package/docs/functions/setSuiNodeUrl.html +0 -5
- package/docs/functions/setWeights.html +0 -1
- package/docs/functions/slushDeposit.html +0 -1
- package/docs/functions/slushWithdraw.html +0 -1
- package/docs/functions/updateSingleTokenPrice.html +0 -1
- package/docs/functions/withdraw.html +0 -1
- package/docs/functions/withdrawAlphaTxb.html +0 -1
- package/docs/functions/withdrawTxb.html +0 -1
- package/docs/functions/zapDepositQuoteTxb.html +0 -1
- package/docs/functions/zapDepositTxb.html +0 -1
- package/docs/hierarchy.html +0 -1
- package/docs/index.html +0 -82
- package/docs/interfaces/Coin.html +0 -12
- package/docs/interfaces/CoinPair.html +0 -3
- package/docs/interfaces/CommonEventAttributes.html +0 -7
- package/docs/interfaces/NaviVoloData.html +0 -3
- package/docs/interfaces/PoolData.html +0 -8
- package/docs/interfaces/PoolWeightDistribution.html +0 -4
- package/docs/interfaces/RebalanceHistoryType.html +0 -9
- package/docs/modules.html +0 -1
- package/docs/types/AfterTransactionEventNode.html +0 -1
- package/docs/types/AirdropClaimEventNode.html +0 -1
- package/docs/types/Allocator.html +0 -3
- package/docs/types/AlphaFiDoubleAssetVault.html +0 -9
- package/docs/types/AlphaFiMultiVaultBalance.html +0 -1
- package/docs/types/AlphaFiSingleAssetVault.html +0 -7
- package/docs/types/AlphaFiVault.html +0 -1
- package/docs/types/AlphaFiVaultBalance.html +0 -1
- package/docs/types/AlphaLendInvestor.html +0 -1
- package/docs/types/AlphaPoolType.html +0 -5
- package/docs/types/AlphaReceipt.html +0 -4
- package/docs/types/AlphaReceiptFields.html +0 -11
- package/docs/types/AlphaVaultBalance.html +0 -7
- package/docs/types/AutoBalancePoolNames.html +0 -1
- package/docs/types/AutoCompoundingEventNode.html +0 -1
- package/docs/types/Bag.html +0 -3
- package/docs/types/BluefinInvestor.html +0 -1
- package/docs/types/BluefinLyfInvestor.html +0 -1
- package/docs/types/BluefinPoolType.html +0 -5
- package/docs/types/BucketInvestor.html +0 -2
- package/docs/types/CetusInvestor.html +0 -2
- package/docs/types/CetusPoolType.html +0 -5
- package/docs/types/CetusSwapOptions.html +0 -1
- package/docs/types/CoinAmounts.html +0 -3
- package/docs/types/CoinName.html +0 -1
- package/docs/types/CoinType.html +0 -1
- package/docs/types/CommonInvestorFields.html +0 -6
- package/docs/types/CreatePoolOptions.html +0 -8
- package/docs/types/Distributor.html +0 -6
- package/docs/types/DoubleAssetMultiVaultBalance.html +0 -6
- package/docs/types/DoubleAssetPoolNames.html +0 -1
- package/docs/types/DoubleAssetTokenHoldings.html +0 -5
- package/docs/types/DoubleAssetVaultBalance.html +0 -4
- package/docs/types/EventCategory.html +0 -1
- package/docs/types/EventNode.html +0 -1
- package/docs/types/GetHoldersParams.html +0 -4
- package/docs/types/GetTokenHoldingsParams.html +0 -4
- package/docs/types/GetUserTokensFromTransactionsParams.html +0 -5
- package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +0 -6
- package/docs/types/GetVaultBalanceParams.html +0 -1
- package/docs/types/HoldingsObj.html +0 -4
- package/docs/types/Icon.html +0 -1
- package/docs/types/Investor.html +0 -1
- package/docs/types/LiquidityChangeEventNode.html +0 -1
- package/docs/types/LiquidityToTokensParams.html +0 -3
- package/docs/types/LiquidityToUsdParams.html +0 -6
- package/docs/types/LoopingDebt.html +0 -5
- package/docs/types/LoopingPoolNames.html +0 -1
- package/docs/types/LpBreakdownType.html +0 -6
- package/docs/types/MemberPoolDataType.html +0 -3
- package/docs/types/MemberType.html +0 -3
- package/docs/types/MultiGetVaultBalancesParams.html +0 -4
- package/docs/types/NaviInvestor.html +0 -2
- package/docs/types/ObjectTable.html +0 -1
- package/docs/types/OtherReceiptFields.html +0 -9
- package/docs/types/PoolName.html +0 -1
- package/docs/types/PoolReceipt.html +0 -1
- package/docs/types/PoolType.html +0 -5
- package/docs/types/Receipt.html +0 -5
- package/docs/types/ReceiptGQL.html +0 -6
- package/docs/types/SingleAssetMultiVaultBalance.html +0 -5
- package/docs/types/SingleAssetPoolNames.html +0 -1
- package/docs/types/SingleAssetTokenHoldings.html +0 -4
- package/docs/types/SingleAssetVaultBalance.html +0 -3
- package/docs/types/SingleGetVaultBalancesParams.html +0 -3
- package/docs/types/StrategyType.html +0 -1
- package/docs/types/SuiNetwork.html +0 -1
- package/docs/types/SwapOptions.html +0 -1
- package/docs/types/TickSpacing.html +0 -1
- package/docs/types/TotalWeightType.html +0 -3
- package/docs/types/TransactionBlockType.html +0 -6
- package/docs/types/UserPoolLiquidity.html +0 -4
- package/docs/types/UserPoolTokenHoldings.html +0 -1
- package/docs/types/UserUsdHoldings.html +0 -4
- package/docs/types/VaultBalance.html +0 -1
- package/docs/types/VecMap.html +0 -3
- package/docs/types/VoteCastEvent.html +0 -1
- package/docs/types/WithdrawV2EventNode.html +0 -1
- package/docs/variables/AUTOBALANCE_SUI_FIRST_POOLS.html +0 -1
- package/docs/variables/AUTOBALANCE_SUI_SECOND_POOLS.html +0 -1
- package/docs/variables/AUTOBALANCE_TYPE_1_POOLS.html +0 -1
- package/docs/variables/alphalendMarketIdMap.html +0 -1
- package/docs/variables/bluefinPoolMap.html +0 -1
- package/docs/variables/cetusPoolMap.html +0 -1
- package/docs/variables/coinsList.html +0 -1
- package/docs/variables/defunctPoolsSet.html +0 -1
- package/docs/variables/doubleAssetPoolCoinMap.html +0 -1
- package/docs/variables/eventCategories.html +0 -1
- package/docs/variables/ignoredWalletsForDailyRevenue.html +0 -1
- package/docs/variables/loopingAccountAddresses.html +0 -1
- package/docs/variables/loopingPoolCoinMap.html +0 -1
- package/docs/variables/naviAssetMap.html +0 -1
- package/docs/variables/naviPriceFeedMap.html +0 -1
- package/docs/variables/poolIdPoolNameMap.html +0 -1
- package/docs/variables/poolInfo.html +0 -1
- package/docs/variables/singleAssetPoolCoinMap.html +0 -1
- package/docs/variables/stableCoins.html +0 -1
- package/eslint.config.js +0 -53
- package/prettier.config.js +0 -3
- package/scripts/package-lock.json +0 -2506
- package/scripts/package.json +0 -30
- package/scripts/testRun.ts +0 -117
- package/scripts/utils.ts +0 -108
- /package/dist/cjs/{common → models}/types.js +0 -0
- /package/dist/esm/{common → models}/types.js +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provides coin metadata and pricing data from AlphaLend API with automatic caching.
|
|
3
|
+
*/
|
|
4
|
+
import { Decimal } from 'decimal.js';
|
|
5
|
+
import { CoinInfo } from './types.js';
|
|
6
|
+
export declare class CoinInfoProvider {
|
|
7
|
+
private readonly apiUrl;
|
|
8
|
+
private readonly cache;
|
|
9
|
+
constructor();
|
|
10
|
+
/** Get all coin metadata with caching and promise deduplication. */
|
|
11
|
+
getAllCoins(): Promise<Map<string, CoinInfo>>;
|
|
12
|
+
/** Get coin metadata by symbol. */
|
|
13
|
+
getCoinBySymbol(symbol: string): Promise<CoinInfo | undefined>;
|
|
14
|
+
/** Get coin metadata by type. */
|
|
15
|
+
getCoinByType(coinType: string): Promise<CoinInfo | undefined>;
|
|
16
|
+
/** Get coin price (Pyth preferred, fallback to CoinGecko). */
|
|
17
|
+
getPriceByType(coinType: string): Promise<Decimal>;
|
|
18
|
+
/** Clear the cache to force fresh data on next request. */
|
|
19
|
+
clear(): void;
|
|
20
|
+
/** Fetch coin data from AlphaLend GraphQL API. */
|
|
21
|
+
private fetchFromApi;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=coinInfoProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coinInfoProvider.d.ts","sourceRoot":"","sources":["../../../src/models/coinInfoProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAetC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;;IAO9D,oEAAoE;IAC9D,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAInD,mCAAmC;IAC7B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAOpE,iCAAiC;IAC3B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAKpE,8DAA8D;IACxD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQxD,2DAA2D;IAC3D,KAAK,IAAI,IAAI;IAIb,kDAAkD;YACpC,YAAY;CAqD3B"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Provides coin metadata and pricing data from AlphaLend API with automatic caching.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CoinInfoProvider = void 0;
|
|
7
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
8
|
+
const decimal_js_1 = require("decimal.js");
|
|
9
|
+
const cache_js_1 = require("../utils/cache.js");
|
|
10
|
+
const constants_js_1 = require("../utils/constants.js");
|
|
11
|
+
class CoinInfoProvider {
|
|
12
|
+
apiUrl = constants_js_1.URLS.COININFO_API;
|
|
13
|
+
cache;
|
|
14
|
+
constructor() {
|
|
15
|
+
// 5 minute TTL for coin data
|
|
16
|
+
this.cache = new cache_js_1.SingletonCache(constants_js_1.CACHE_TTL.COIN_INFO);
|
|
17
|
+
}
|
|
18
|
+
/** Get all coin metadata with caching and promise deduplication. */
|
|
19
|
+
async getAllCoins() {
|
|
20
|
+
return this.cache.getOrFetch(() => this.fetchFromApi());
|
|
21
|
+
}
|
|
22
|
+
/** Get coin metadata by symbol. */
|
|
23
|
+
async getCoinBySymbol(symbol) {
|
|
24
|
+
const coins = await this.getAllCoins();
|
|
25
|
+
return Array.from(coins.values()).find((coin) => coin.symbol.toUpperCase() === symbol.toUpperCase());
|
|
26
|
+
}
|
|
27
|
+
/** Get coin metadata by type. */
|
|
28
|
+
async getCoinByType(coinType) {
|
|
29
|
+
const coins = await this.getAllCoins();
|
|
30
|
+
return coins.get((0, utils_1.normalizeStructTag)(coinType));
|
|
31
|
+
}
|
|
32
|
+
/** Get coin price (Pyth preferred, fallback to CoinGecko). */
|
|
33
|
+
async getPriceByType(coinType) {
|
|
34
|
+
const coin = await this.getCoinByType((0, utils_1.normalizeStructTag)(coinType));
|
|
35
|
+
if (!coin)
|
|
36
|
+
throw new Error(`Coin not found: ${coinType}`);
|
|
37
|
+
const price = coin.pythPrice ?? coin.coingeckoPrice;
|
|
38
|
+
if (!price)
|
|
39
|
+
throw new Error(`No price available for: ${coinType}`);
|
|
40
|
+
return price;
|
|
41
|
+
}
|
|
42
|
+
/** Clear the cache to force fresh data on next request. */
|
|
43
|
+
clear() {
|
|
44
|
+
this.cache.clear();
|
|
45
|
+
}
|
|
46
|
+
/** Fetch coin data from AlphaLend GraphQL API. */
|
|
47
|
+
async fetchFromApi() {
|
|
48
|
+
const query = `
|
|
49
|
+
query {
|
|
50
|
+
coinInfo {
|
|
51
|
+
coinType
|
|
52
|
+
symbol
|
|
53
|
+
decimals
|
|
54
|
+
coingeckoPrice
|
|
55
|
+
pythPrice
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
const response = await fetch(this.apiUrl, {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
headers: { 'Content-Type': 'application/json' },
|
|
62
|
+
body: JSON.stringify({ query }),
|
|
63
|
+
});
|
|
64
|
+
if (!response.ok) {
|
|
65
|
+
throw new Error(`AlphaLend API error: ${response.status}`);
|
|
66
|
+
}
|
|
67
|
+
const json = (await response.json());
|
|
68
|
+
const apiCoins = json?.data?.coinInfo ?? [];
|
|
69
|
+
const coins = new Map();
|
|
70
|
+
apiCoins.forEach((apiCoin) => {
|
|
71
|
+
coins.set((0, utils_1.normalizeStructTag)(apiCoin.coinType), {
|
|
72
|
+
coinType: (0, utils_1.normalizeStructTag)(apiCoin.coinType),
|
|
73
|
+
symbol: apiCoin.symbol,
|
|
74
|
+
decimals: apiCoin.decimals,
|
|
75
|
+
coingeckoPrice: apiCoin.coingeckoPrice !== undefined && apiCoin.coingeckoPrice !== null
|
|
76
|
+
? new decimal_js_1.Decimal(apiCoin.coingeckoPrice)
|
|
77
|
+
: undefined,
|
|
78
|
+
pythPrice: apiCoin.pythPrice !== undefined && apiCoin.pythPrice !== null
|
|
79
|
+
? new decimal_js_1.Decimal(apiCoin.pythPrice)
|
|
80
|
+
: undefined,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
return coins;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.CoinInfoProvider = CoinInfoProvider;
|
|
87
|
+
//# sourceMappingURL=coinInfoProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coinInfoProvider.js","sourceRoot":"","sources":["../../../src/models/coinInfoProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Provides coin metadata and pricing data from AlphaLend API with automatic caching.\n */\n\nimport { normalizeStructTag } from '@mysten/sui/utils';\nimport { Decimal } from 'decimal.js';\nimport { SingletonCache } from '../utils/cache.js';\nimport { CoinInfo } from './types.js';\nimport { CACHE_TTL, URLS } from '../utils/constants.js';\n\ntype GraphQLResponse = {\n data: {\n coinInfo: Array<{\n coinType: string;\n symbol: string;\n decimals: number;\n coingeckoPrice?: number | null;\n pythPrice?: number | null;\n }>;\n };\n};\n\nexport class CoinInfoProvider {\n private readonly apiUrl: string = URLS.COININFO_API;\n private readonly cache: SingletonCache<Map<string, CoinInfo>>;\n\n constructor() {\n // 5 minute TTL for coin data\n this.cache = new SingletonCache<Map<string, CoinInfo>>(CACHE_TTL.COIN_INFO);\n }\n\n /** Get all coin metadata with caching and promise deduplication. */\n async getAllCoins(): Promise<Map<string, CoinInfo>> {\n return this.cache.getOrFetch(() => this.fetchFromApi());\n }\n\n /** Get coin metadata by symbol. */\n async getCoinBySymbol(symbol: string): Promise<CoinInfo | undefined> {\n const coins = await this.getAllCoins();\n return Array.from(coins.values()).find(\n (coin) => coin.symbol.toUpperCase() === symbol.toUpperCase(),\n );\n }\n\n /** Get coin metadata by type. */\n async getCoinByType(coinType: string): Promise<CoinInfo | undefined> {\n const coins = await this.getAllCoins();\n return coins.get(normalizeStructTag(coinType));\n }\n\n /** Get coin price (Pyth preferred, fallback to CoinGecko). */\n async getPriceByType(coinType: string): Promise<Decimal> {\n const coin = await this.getCoinByType(normalizeStructTag(coinType));\n if (!coin) throw new Error(`Coin not found: ${coinType}`);\n const price = coin.pythPrice ?? coin.coingeckoPrice;\n if (!price) throw new Error(`No price available for: ${coinType}`);\n return price;\n }\n\n /** Clear the cache to force fresh data on next request. */\n clear(): void {\n this.cache.clear();\n }\n\n /** Fetch coin data from AlphaLend GraphQL API. */\n private async fetchFromApi(): Promise<Map<string, CoinInfo>> {\n const query = `\n query {\n coinInfo {\n coinType\n symbol\n decimals\n coingeckoPrice\n pythPrice\n }\n }\n `;\n\n const response = await fetch(this.apiUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ query }),\n });\n\n if (!response.ok) {\n throw new Error(`AlphaLend API error: ${response.status}`);\n }\n\n const json = (await response.json()) as GraphQLResponse;\n const apiCoins = json?.data?.coinInfo ?? [];\n\n const coins: Map<string, CoinInfo> = new Map();\n apiCoins.forEach(\n (apiCoin: {\n coinType: string;\n symbol: string;\n decimals: number;\n coingeckoPrice?: number | null;\n pythPrice?: number | null;\n }) => {\n coins.set(normalizeStructTag(apiCoin.coinType), {\n coinType: normalizeStructTag(apiCoin.coinType),\n symbol: apiCoin.symbol,\n decimals: apiCoin.decimals,\n coingeckoPrice:\n apiCoin.coingeckoPrice !== undefined && apiCoin.coingeckoPrice !== null\n ? new Decimal(apiCoin.coingeckoPrice)\n : undefined,\n pythPrice:\n apiCoin.pythPrice !== undefined && apiCoin.pythPrice !== null\n ? new Decimal(apiCoin.pythPrice)\n : undefined,\n });\n },\n );\n\n return coins;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Protocol = exports.Blockchain = void 0;
|
|
4
|
+
var blockchain_js_1 = require("./blockchain.js");
|
|
5
|
+
Object.defineProperty(exports, "Blockchain", { enumerable: true, get: function () { return blockchain_js_1.Blockchain; } });
|
|
6
|
+
var protocol_js_1 = require("./protocol.js");
|
|
7
|
+
Object.defineProperty(exports, "Protocol", { enumerable: true, get: function () { return protocol_js_1.Protocol; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA","sourcesContent":["export { Blockchain } from './blockchain.js';\nexport { Protocol } from './protocol.js';\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User portfolio manager that calculates balances, net worth, and aggregated APY.
|
|
3
|
+
*/
|
|
4
|
+
import { Protocol } from './protocol.js';
|
|
5
|
+
import { StrategyContext } from './strategyContext.js';
|
|
6
|
+
import { UserPortfolioData } from './types.js';
|
|
7
|
+
import { Strategy, StrategyType } from '../strategies/strategy.js';
|
|
8
|
+
export declare class Portfolio {
|
|
9
|
+
protocol: Protocol;
|
|
10
|
+
strategyContext: StrategyContext;
|
|
11
|
+
constructor(protocol: Protocol, strategyContext: StrategyContext);
|
|
12
|
+
/** Get all coin balances in user's wallet. */
|
|
13
|
+
getWalletCoins(userAddress: string): Promise<Map<string, string>>;
|
|
14
|
+
getAllPoolStrategies(userAddress: string): Promise<Map<string, Strategy>>;
|
|
15
|
+
getPoolStrategy(userAddress: string, poolId: string): Promise<Strategy>;
|
|
16
|
+
/** Calculate user's complete portfolio including net worth, aggregated APY, and alpha rewards. */
|
|
17
|
+
getUserPortfolio(userAddress: string, strategiesType?: StrategyType[]): Promise<UserPortfolioData>;
|
|
18
|
+
/** Update strategies with user's receipt objects and positions. */
|
|
19
|
+
private updateStrategiesWithReceipts;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=portfolio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/models/portfolio.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAe,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAenE,qBAAa,SAAS;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;gBAErB,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe;IAKhE,8CAA8C;IACxC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAYjE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAMzE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAM7E,kGAAkG;IAC5F,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,YAAY,EAAE,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAkD7B,mEAAmE;YACrD,4BAA4B;CAgI3C"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* User portfolio manager that calculates balances, net worth, and aggregated APY.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Portfolio = void 0;
|
|
7
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
8
|
+
const decimal_js_1 = require("decimal.js");
|
|
9
|
+
class Portfolio {
|
|
10
|
+
protocol;
|
|
11
|
+
strategyContext;
|
|
12
|
+
constructor(protocol, strategyContext) {
|
|
13
|
+
this.protocol = protocol;
|
|
14
|
+
this.strategyContext = strategyContext;
|
|
15
|
+
}
|
|
16
|
+
/** Get all coin balances in user's wallet. */
|
|
17
|
+
async getWalletCoins(userAddress) {
|
|
18
|
+
const res = await this.strategyContext.blockchain.suiClient.getAllBalances({
|
|
19
|
+
owner: userAddress,
|
|
20
|
+
});
|
|
21
|
+
const resMap = new Map();
|
|
22
|
+
res.forEach((entry) => {
|
|
23
|
+
resMap.set((0, utils_1.normalizeStructTag)(entry.coinType), entry.totalBalance);
|
|
24
|
+
});
|
|
25
|
+
return resMap;
|
|
26
|
+
}
|
|
27
|
+
async getAllPoolStrategies(userAddress) {
|
|
28
|
+
const strategies = await this.protocol.getStrategies();
|
|
29
|
+
await this.updateStrategiesWithReceipts(userAddress, strategies);
|
|
30
|
+
return strategies;
|
|
31
|
+
}
|
|
32
|
+
async getPoolStrategy(userAddress, poolId) {
|
|
33
|
+
const strategy = await this.protocol.getSinglePoolStrategy(poolId);
|
|
34
|
+
await this.updateStrategiesWithReceipts(userAddress, new Map([[poolId, strategy]]));
|
|
35
|
+
return strategy;
|
|
36
|
+
}
|
|
37
|
+
/** Calculate user's complete portfolio including net worth, aggregated APY, and alpha rewards. */
|
|
38
|
+
async getUserPortfolio(userAddress, strategiesType) {
|
|
39
|
+
const strategies = await this.protocol.getStrategies(strategiesType);
|
|
40
|
+
await this.updateStrategiesWithReceipts(userAddress, strategies);
|
|
41
|
+
// Fetch APR map once for all strategies
|
|
42
|
+
const aprMap = await this.strategyContext.getAprMap();
|
|
43
|
+
const balancesWithIds = await Promise.all(Array.from(strategies.entries()).map(async ([poolId, strategy]) => {
|
|
44
|
+
const balance = await strategy.getBalance(userAddress);
|
|
45
|
+
return [poolId, balance];
|
|
46
|
+
}));
|
|
47
|
+
const poolBalances = new Map(balancesWithIds);
|
|
48
|
+
let [netWorth, aggregatedApy] = [new decimal_js_1.Decimal(0), new decimal_js_1.Decimal(0)];
|
|
49
|
+
Array.from(poolBalances.entries()).forEach(([poolId, balance]) => {
|
|
50
|
+
const balanceUsd = 'stakedAlphaUsdValue' in balance ? balance.stakedAlphaUsdValue : balance.usdValue;
|
|
51
|
+
// Cap retired pool APY at 1000%
|
|
52
|
+
const aprData = aprMap.get(poolId) || {
|
|
53
|
+
baseApr: new decimal_js_1.Decimal(0),
|
|
54
|
+
alphaMiningApr: new decimal_js_1.Decimal(0),
|
|
55
|
+
apy: new decimal_js_1.Decimal(0),
|
|
56
|
+
lastAutocompounded: new Date(),
|
|
57
|
+
};
|
|
58
|
+
let apy = new decimal_js_1.Decimal(aprData.apy);
|
|
59
|
+
const isActive = strategies.get(poolId)?.getPoolLabel()?.isActive;
|
|
60
|
+
if (isActive === false && apy.gt(1000)) {
|
|
61
|
+
apy = new decimal_js_1.Decimal(1000);
|
|
62
|
+
}
|
|
63
|
+
netWorth = netWorth.add(balanceUsd);
|
|
64
|
+
aggregatedApy = aggregatedApy.add(balanceUsd.mul(apy));
|
|
65
|
+
});
|
|
66
|
+
aggregatedApy = netWorth.isZero() ? new decimal_js_1.Decimal(0) : aggregatedApy.div(netWorth);
|
|
67
|
+
// Sum alpha rewards across all strategies
|
|
68
|
+
const distributor = await this.strategyContext.getDistributorObject();
|
|
69
|
+
let alphaRewardsToClaim = new decimal_js_1.Decimal(0);
|
|
70
|
+
for (const strategy of strategies.values()) {
|
|
71
|
+
alphaRewardsToClaim = alphaRewardsToClaim.add(strategy.getAlphaMiningRewardsToClaim(distributor));
|
|
72
|
+
}
|
|
73
|
+
return { netWorth, aggregatedApy, alphaRewardsToClaim, poolBalances };
|
|
74
|
+
}
|
|
75
|
+
/** Update strategies with user's receipt objects and positions. */
|
|
76
|
+
async updateStrategiesWithReceipts(userAddress, strategies) {
|
|
77
|
+
const poolLabels = Array.from(strategies.values()).map((strategy) => strategy.getPoolLabel());
|
|
78
|
+
const receiptTypes = [];
|
|
79
|
+
let [hasSlushLending, hasFungible, hasAlphaVault] = [false, false, false];
|
|
80
|
+
poolLabels.forEach((poolLabel) => {
|
|
81
|
+
switch (poolLabel.strategyType) {
|
|
82
|
+
case 'AlphaVault':
|
|
83
|
+
hasAlphaVault = true;
|
|
84
|
+
break;
|
|
85
|
+
case 'AutobalanceLp':
|
|
86
|
+
case 'Lending':
|
|
87
|
+
case 'Looping':
|
|
88
|
+
case 'Lp':
|
|
89
|
+
case 'Lyf':
|
|
90
|
+
case 'SingleAssetLooping':
|
|
91
|
+
receiptTypes.push(poolLabel.receipt.type);
|
|
92
|
+
break;
|
|
93
|
+
case 'FungibleLp':
|
|
94
|
+
hasFungible = true;
|
|
95
|
+
break;
|
|
96
|
+
case 'SlushLending':
|
|
97
|
+
hasSlushLending = true;
|
|
98
|
+
break;
|
|
99
|
+
case 'FungibleLending':
|
|
100
|
+
hasFungible = true;
|
|
101
|
+
break;
|
|
102
|
+
default:
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
const [slushPositions, alphafiPositions, receiptObjects, coinBalances] = await Promise.all([
|
|
107
|
+
hasSlushLending
|
|
108
|
+
? this.strategyContext.getAllSlushPositions(userAddress)
|
|
109
|
+
: Promise.resolve(new Map()),
|
|
110
|
+
hasAlphaVault
|
|
111
|
+
? this.strategyContext.getPositionsFromAlphaFiReceipts(userAddress)
|
|
112
|
+
: Promise.resolve(new Map()),
|
|
113
|
+
this.strategyContext.blockchain.multiGetReceipts(userAddress, receiptTypes),
|
|
114
|
+
hasFungible ? this.getWalletCoins(userAddress) : Promise.resolve(new Map()),
|
|
115
|
+
]);
|
|
116
|
+
strategies.forEach((strategy, poolId) => {
|
|
117
|
+
switch (strategy.getPoolLabel().strategyType) {
|
|
118
|
+
case 'AlphaVault': {
|
|
119
|
+
const alphaVaultStrategy = strategy;
|
|
120
|
+
alphaVaultStrategy.updateReceipts(receiptObjects.get(alphaVaultStrategy.getPoolLabel().receipt.type) ?? [], alphafiPositions.get(poolId) ?? []);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case 'AutobalanceLp': {
|
|
124
|
+
const autobalanceLpStrategy = strategy;
|
|
125
|
+
autobalanceLpStrategy.updateReceipts(receiptObjects.get(autobalanceLpStrategy.getPoolLabel().receipt.type) ?? []);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case 'FungibleLp': {
|
|
129
|
+
const fungibleLpStrategy = strategy;
|
|
130
|
+
fungibleLpStrategy.updateReceipts(new decimal_js_1.Decimal(coinBalances.get(strategy.getPoolLabel().fungibleCoin.type) ?? '0'));
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case 'Lending': {
|
|
134
|
+
const lendingStrategy = strategy;
|
|
135
|
+
lendingStrategy.updateReceipts(receiptObjects.get(lendingStrategy.getPoolLabel().receipt.type) ?? []);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
case 'Looping': {
|
|
139
|
+
const loopingStrategy = strategy;
|
|
140
|
+
loopingStrategy.updateReceipts(receiptObjects.get(loopingStrategy.getPoolLabel().receipt.type) ?? []);
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case 'Lp': {
|
|
144
|
+
const lpStrategy = strategy;
|
|
145
|
+
lpStrategy.updateReceipts(receiptObjects.get(lpStrategy.getPoolLabel().receipt.type) ?? []);
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case 'Lyf': {
|
|
149
|
+
const lyfStrategy = strategy;
|
|
150
|
+
lyfStrategy.updateReceipts(receiptObjects.get(lyfStrategy.getPoolLabel().receipt.type) ?? []);
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
case 'SingleAssetLooping': {
|
|
154
|
+
const singleAssetLoopingStrategy = strategy;
|
|
155
|
+
singleAssetLoopingStrategy.updateReceipts(receiptObjects.get(singleAssetLoopingStrategy.getPoolLabel().receipt.type) ?? []);
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
case 'SlushLending': {
|
|
159
|
+
const slushLendingStrategy = strategy;
|
|
160
|
+
slushLendingStrategy.updateReceipts(slushPositions.get(poolId) ?? []);
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case 'FungibleLending': {
|
|
164
|
+
const fungibleLpStrategy = strategy;
|
|
165
|
+
fungibleLpStrategy.updateReceipts(new decimal_js_1.Decimal(coinBalances.get(strategy.getPoolLabel().fungibleCoin.type) ?? '0'));
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.Portfolio = Portfolio;
|
|
173
|
+
//# sourceMappingURL=portfolio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../../src/models/portfolio.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * User portfolio manager that calculates balances, net worth, and aggregated APY.\n */\n\nimport { Protocol } from './protocol.js';\nimport { normalizeStructTag } from '@mysten/sui/utils';\nimport { StrategyContext } from './strategyContext.js';\nimport { PoolBalance, UserPortfolioData } from './types.js';\nimport { Decimal } from 'decimal.js';\nimport { Strategy, StrategyType } from '../strategies/strategy.js';\nimport { AlphaVaultStrategy } from '../strategies/alphaVault.js';\nimport { AutobalanceLpStrategy } from '../strategies/autobalanceLp.js';\nimport { LendingStrategy } from '../strategies/lending.js';\nimport { LoopingStrategy } from '../strategies/looping.js';\nimport { LpStrategy } from '../strategies/lp.js';\nimport { LyfStrategy } from '../strategies/lyf.js';\nimport { SingleAssetLoopingStrategy } from '../strategies/singleAssetLooping.js';\nimport { FungibleLpPoolLabel, FungibleLpStrategy } from '../strategies/fungibleLp.js';\nimport {\n FungibleLendingPoolLabel,\n FungibleLendingStrategy,\n} from '../strategies/fungibleLending.js';\nimport { SlushLendingStrategy } from '../strategies/slushLending.js';\n\nexport class Portfolio {\n protocol: Protocol;\n strategyContext: StrategyContext;\n\n constructor(protocol: Protocol, strategyContext: StrategyContext) {\n this.protocol = protocol;\n this.strategyContext = strategyContext;\n }\n\n /** Get all coin balances in user's wallet. */\n async getWalletCoins(userAddress: string): Promise<Map<string, string>> {\n const res = await this.strategyContext.blockchain.suiClient.getAllBalances({\n owner: userAddress,\n });\n\n const resMap: Map<string, string> = new Map();\n res.forEach((entry: { coinType: string; totalBalance: string }) => {\n resMap.set(normalizeStructTag(entry.coinType), entry.totalBalance);\n });\n return resMap;\n }\n\n async getAllPoolStrategies(userAddress: string): Promise<Map<string, Strategy>> {\n const strategies = await this.protocol.getStrategies();\n await this.updateStrategiesWithReceipts(userAddress, strategies);\n return strategies;\n }\n\n async getPoolStrategy(userAddress: string, poolId: string): Promise<Strategy> {\n const strategy = await this.protocol.getSinglePoolStrategy(poolId);\n await this.updateStrategiesWithReceipts(userAddress, new Map([[poolId, strategy]]));\n return strategy;\n }\n\n /** Calculate user's complete portfolio including net worth, aggregated APY, and alpha rewards. */\n async getUserPortfolio(\n userAddress: string,\n strategiesType?: StrategyType[],\n ): Promise<UserPortfolioData> {\n const strategies = await this.protocol.getStrategies(strategiesType);\n await this.updateStrategiesWithReceipts(userAddress, strategies);\n\n // Fetch APR map once for all strategies\n const aprMap = await this.strategyContext.getAprMap();\n\n const balancesWithIds = await Promise.all(\n Array.from(strategies.entries()).map(async ([poolId, strategy]) => {\n const balance = await strategy.getBalance(userAddress);\n return [poolId, balance] as [string, PoolBalance];\n }),\n );\n const poolBalances: Map<string, PoolBalance> = new Map(balancesWithIds);\n\n let [netWorth, aggregatedApy] = [new Decimal(0), new Decimal(0)];\n Array.from(poolBalances.entries()).forEach(([poolId, balance]) => {\n const balanceUsd =\n 'stakedAlphaUsdValue' in balance ? balance.stakedAlphaUsdValue : balance.usdValue;\n\n // Cap retired pool APY at 1000%\n const aprData = aprMap.get(poolId) || {\n baseApr: new Decimal(0),\n alphaMiningApr: new Decimal(0),\n apy: new Decimal(0),\n lastAutocompounded: new Date(),\n };\n let apy = new Decimal(aprData.apy);\n const isActive = (strategies.get(poolId)?.getPoolLabel() as any)?.isActive;\n if (isActive === false && apy.gt(1000)) {\n apy = new Decimal(1000);\n }\n\n netWorth = netWorth.add(balanceUsd);\n aggregatedApy = aggregatedApy.add(balanceUsd.mul(apy));\n });\n aggregatedApy = netWorth.isZero() ? new Decimal(0) : aggregatedApy.div(netWorth);\n\n // Sum alpha rewards across all strategies\n const distributor = await this.strategyContext.getDistributorObject();\n let alphaRewardsToClaim = new Decimal(0);\n for (const strategy of strategies.values()) {\n alphaRewardsToClaim = alphaRewardsToClaim.add(\n strategy.getAlphaMiningRewardsToClaim(distributor),\n );\n }\n\n return { netWorth, aggregatedApy, alphaRewardsToClaim, poolBalances };\n }\n\n /** Update strategies with user's receipt objects and positions. */\n private async updateStrategiesWithReceipts(\n userAddress: string,\n strategies: Map<string, Strategy>,\n ) {\n const poolLabels = Array.from(strategies.values()).map((strategy) => strategy.getPoolLabel());\n const receiptTypes: string[] = [];\n\n let [hasSlushLending, hasFungible, hasAlphaVault] = [false, false, false];\n poolLabels.forEach((poolLabel) => {\n switch (poolLabel.strategyType) {\n case 'AlphaVault':\n hasAlphaVault = true;\n break;\n case 'AutobalanceLp':\n case 'Lending':\n case 'Looping':\n case 'Lp':\n case 'Lyf':\n case 'SingleAssetLooping':\n receiptTypes.push(poolLabel.receipt.type);\n break;\n case 'FungibleLp':\n hasFungible = true;\n break;\n case 'SlushLending':\n hasSlushLending = true;\n break;\n case 'FungibleLending':\n hasFungible = true;\n break;\n default:\n break;\n }\n });\n\n const [slushPositions, alphafiPositions, receiptObjects, coinBalances] = await Promise.all([\n hasSlushLending\n ? this.strategyContext.getAllSlushPositions(userAddress)\n : Promise.resolve(new Map()),\n hasAlphaVault\n ? this.strategyContext.getPositionsFromAlphaFiReceipts(userAddress)\n : Promise.resolve(new Map()),\n this.strategyContext.blockchain.multiGetReceipts(userAddress, receiptTypes),\n hasFungible ? this.getWalletCoins(userAddress) : Promise.resolve(new Map()),\n ]);\n\n strategies.forEach((strategy, poolId) => {\n switch (strategy.getPoolLabel().strategyType) {\n case 'AlphaVault': {\n const alphaVaultStrategy = strategy as AlphaVaultStrategy;\n alphaVaultStrategy.updateReceipts(\n receiptObjects.get(alphaVaultStrategy.getPoolLabel().receipt.type) ?? [],\n alphafiPositions.get(poolId) ?? [],\n );\n break;\n }\n case 'AutobalanceLp': {\n const autobalanceLpStrategy = strategy as AutobalanceLpStrategy;\n autobalanceLpStrategy.updateReceipts(\n receiptObjects.get(autobalanceLpStrategy.getPoolLabel().receipt.type) ?? [],\n );\n break;\n }\n case 'FungibleLp': {\n const fungibleLpStrategy = strategy as FungibleLpStrategy;\n fungibleLpStrategy.updateReceipts(\n new Decimal(\n coinBalances.get(\n (strategy.getPoolLabel() as FungibleLpPoolLabel).fungibleCoin.type,\n ) ?? '0',\n ),\n );\n break;\n }\n case 'Lending': {\n const lendingStrategy = strategy as LendingStrategy;\n lendingStrategy.updateReceipts(\n receiptObjects.get(lendingStrategy.getPoolLabel().receipt.type) ?? [],\n );\n break;\n }\n case 'Looping': {\n const loopingStrategy = strategy as LoopingStrategy;\n loopingStrategy.updateReceipts(\n receiptObjects.get(loopingStrategy.getPoolLabel().receipt.type) ?? [],\n );\n break;\n }\n case 'Lp': {\n const lpStrategy = strategy as LpStrategy;\n lpStrategy.updateReceipts(\n receiptObjects.get(lpStrategy.getPoolLabel().receipt.type) ?? [],\n );\n break;\n }\n case 'Lyf': {\n const lyfStrategy = strategy as LyfStrategy;\n lyfStrategy.updateReceipts(\n receiptObjects.get(lyfStrategy.getPoolLabel().receipt.type) ?? [],\n );\n break;\n }\n case 'SingleAssetLooping': {\n const singleAssetLoopingStrategy = strategy as SingleAssetLoopingStrategy;\n singleAssetLoopingStrategy.updateReceipts(\n receiptObjects.get(singleAssetLoopingStrategy.getPoolLabel().receipt.type) ?? [],\n );\n break;\n }\n case 'SlushLending': {\n const slushLendingStrategy = strategy as SlushLendingStrategy;\n slushLendingStrategy.updateReceipts(slushPositions.get(poolId) ?? []);\n break;\n }\n case 'FungibleLending': {\n const fungibleLpStrategy = strategy as FungibleLendingStrategy;\n fungibleLpStrategy.updateReceipts(\n new Decimal(\n coinBalances.get(\n (strategy.getPoolLabel() as FungibleLendingPoolLabel).fungibleCoin.type,\n ) ?? '0',\n ),\n );\n break;\n }\n }\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core protocol manager that handles strategy initialization and data retrieval.
|
|
3
|
+
* Uses per-pool caching for granular cache management.
|
|
4
|
+
*/
|
|
5
|
+
import { StrategyContext } from './strategyContext.js';
|
|
6
|
+
import { Strategy, StrategyType } from '../strategies/strategy.js';
|
|
7
|
+
import { PoolData } from './types.js';
|
|
8
|
+
export declare class Protocol {
|
|
9
|
+
strategyContext: StrategyContext;
|
|
10
|
+
private strategyCache;
|
|
11
|
+
constructor(strategyContext: StrategyContext);
|
|
12
|
+
/** Get pool data from strategies, optionally filtered by type. */
|
|
13
|
+
getPoolsData(strategiesType?: StrategyType[]): Promise<Map<string, PoolData>>;
|
|
14
|
+
/** Get initialized strategies, optionally filtered by type. */
|
|
15
|
+
getStrategies(strategiesType?: StrategyType[]): Promise<Map<string, Strategy>>;
|
|
16
|
+
/** Get a single pool strategy by poolId. Uses cache with lazy loading and promise memoization. */
|
|
17
|
+
getSinglePoolStrategy(poolId: string): Promise<Strategy>;
|
|
18
|
+
/** Build strategies from on-chain data for specified pool labels. */
|
|
19
|
+
private buildPoolStrategies;
|
|
20
|
+
/** Clear the strategy cache. */
|
|
21
|
+
clearCache(): void;
|
|
22
|
+
/** Clear cache for a specific pool. */
|
|
23
|
+
clearPoolCache(poolId: string): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/models/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAavD,OAAO,EAAa,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,qBAAa,QAAQ;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,aAAa,CAA0B;gBAEnC,eAAe,EAAE,eAAe;IAK5C,kEAAkE;IAC5D,YAAY,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAQnF,+DAA+D;IACzD,aAAa,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAyCpF,kGAAkG;IAC5F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkB9D,qEAAqE;YACvD,mBAAmB;IA2IjC,gCAAgC;IAChC,UAAU,IAAI,IAAI;IAIlB,uCAAuC;IACvC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGrC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Protocol = void 0;
|
|
4
|
+
const lp_js_1 = require("../strategies/lp.js");
|
|
5
|
+
const lyf_js_1 = require("../strategies/lyf.js");
|
|
6
|
+
const autobalanceLp_js_1 = require("../strategies/autobalanceLp.js");
|
|
7
|
+
const fungibleLp_js_1 = require("../strategies/fungibleLp.js");
|
|
8
|
+
const alphaVault_js_1 = require("../strategies/alphaVault.js");
|
|
9
|
+
const lending_js_1 = require("../strategies/lending.js");
|
|
10
|
+
const slushLending_js_1 = require("../strategies/slushLending.js");
|
|
11
|
+
const looping_js_1 = require("../strategies/looping.js");
|
|
12
|
+
const singleAssetLooping_js_1 = require("../strategies/singleAssetLooping.js");
|
|
13
|
+
const cache_js_1 = require("../utils/cache.js");
|
|
14
|
+
const constants_js_1 = require("../utils/constants.js");
|
|
15
|
+
const fungibleLending_js_1 = require("../strategies/fungibleLending.js");
|
|
16
|
+
class Protocol {
|
|
17
|
+
strategyContext;
|
|
18
|
+
strategyCache;
|
|
19
|
+
constructor(strategyContext) {
|
|
20
|
+
this.strategyContext = strategyContext;
|
|
21
|
+
this.strategyCache = new cache_js_1.Cache(constants_js_1.CACHE_TTL.STRATEGY_CACHE);
|
|
22
|
+
}
|
|
23
|
+
/** Get pool data from strategies, optionally filtered by type. */
|
|
24
|
+
async getPoolsData(strategiesType) {
|
|
25
|
+
const strategies = await this.getStrategies(strategiesType);
|
|
26
|
+
const poolsData = await Promise.all(Array.from(strategies.values()).map((strategy) => strategy.getData()));
|
|
27
|
+
return new Map(poolsData.map((poolData) => [poolData.poolId, poolData]));
|
|
28
|
+
}
|
|
29
|
+
/** Get initialized strategies, optionally filtered by type. */
|
|
30
|
+
async getStrategies(strategiesType) {
|
|
31
|
+
const poolLabels = await this.strategyContext.getPoolLabels();
|
|
32
|
+
// Filter by strategy types if specified
|
|
33
|
+
const filteredLabels = strategiesType
|
|
34
|
+
? Array.from(poolLabels.values()).filter((label) => strategiesType.includes(label.strategyType))
|
|
35
|
+
: Array.from(poolLabels.values());
|
|
36
|
+
// Get pool IDs that need to be built (not in cache or expired)
|
|
37
|
+
const poolIdsToBuild = [];
|
|
38
|
+
const cachedStrategies = new Map();
|
|
39
|
+
for (const label of filteredLabels) {
|
|
40
|
+
const cached = this.strategyCache.get(label.poolId);
|
|
41
|
+
if (cached) {
|
|
42
|
+
cachedStrategies.set(label.poolId, cached);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
poolIdsToBuild.push(label.poolId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Build strategies for pools not in cache
|
|
49
|
+
if (poolIdsToBuild.length > 0) {
|
|
50
|
+
const labelsToBuild = poolIdsToBuild
|
|
51
|
+
.map((id) => poolLabels.get(id))
|
|
52
|
+
.filter((label) => label !== undefined);
|
|
53
|
+
const newStrategies = await this.buildPoolStrategies(labelsToBuild);
|
|
54
|
+
// Cache the new strategies
|
|
55
|
+
newStrategies.forEach((strategy, poolId) => {
|
|
56
|
+
this.strategyCache.set(poolId, strategy);
|
|
57
|
+
cachedStrategies.set(poolId, strategy);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return cachedStrategies;
|
|
61
|
+
}
|
|
62
|
+
/** Get a single pool strategy by poolId. Uses cache with lazy loading and promise memoization. */
|
|
63
|
+
async getSinglePoolStrategy(poolId) {
|
|
64
|
+
return this.strategyCache.getOrFetch(poolId, async () => {
|
|
65
|
+
const poolLabel = await this.strategyContext.getPoolLabel(poolId);
|
|
66
|
+
if (!poolLabel) {
|
|
67
|
+
throw new Error(`Pool label not found for poolId: ${poolId}`);
|
|
68
|
+
}
|
|
69
|
+
const strategies = await this.buildPoolStrategies([poolLabel]);
|
|
70
|
+
const strategy = strategies.get(poolId);
|
|
71
|
+
if (!strategy) {
|
|
72
|
+
throw new Error(`Failed to build strategy for poolId: ${poolId}`);
|
|
73
|
+
}
|
|
74
|
+
return strategy;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/** Build strategies from on-chain data for specified pool labels. */
|
|
78
|
+
async buildPoolStrategies(poolLabels) {
|
|
79
|
+
if (poolLabels.length === 0) {
|
|
80
|
+
return new Map();
|
|
81
|
+
}
|
|
82
|
+
const poolIds = poolLabels.map((poolLabel) => poolLabel.poolId);
|
|
83
|
+
const investorIds = poolLabels
|
|
84
|
+
.filter((poolLabel) => 'investorId' in poolLabel && poolLabel.investorId)
|
|
85
|
+
.map((poolLabel) => poolLabel.investorId);
|
|
86
|
+
const parentPoolIds = poolLabels
|
|
87
|
+
.filter((poolLabel) => 'parentPoolId' in poolLabel && poolLabel.parentPoolId)
|
|
88
|
+
.map((poolLabel) => poolLabel.parentPoolId);
|
|
89
|
+
const [poolObjects, investorObjects, parentPoolObjects] = await Promise.all([
|
|
90
|
+
this.strategyContext.blockchain.multiGetObjects(poolIds),
|
|
91
|
+
this.strategyContext.blockchain.multiGetObjects(investorIds),
|
|
92
|
+
this.strategyContext.blockchain.multiGetObjects(parentPoolIds),
|
|
93
|
+
]);
|
|
94
|
+
const resMap = new Map();
|
|
95
|
+
poolLabels.forEach((poolLabel) => {
|
|
96
|
+
switch (poolLabel.strategyType) {
|
|
97
|
+
case 'Lp':
|
|
98
|
+
resMap.set(poolLabel.poolId, new lp_js_1.LpStrategy(poolLabel, poolObjects.get(poolLabel.poolId), investorObjects.get(poolLabel.investorId), parentPoolObjects.get(poolLabel.parentPoolId), this.strategyContext));
|
|
99
|
+
break;
|
|
100
|
+
case 'Lyf':
|
|
101
|
+
resMap.set(poolLabel.poolId, new lyf_js_1.LyfStrategy(poolLabel, poolObjects.get(poolLabel.poolId), parentPoolObjects.get(poolLabel.parentPoolId), this.strategyContext));
|
|
102
|
+
break;
|
|
103
|
+
case 'AutobalanceLp':
|
|
104
|
+
resMap.set(poolLabel.poolId, new autobalanceLp_js_1.AutobalanceLpStrategy(poolLabel, poolObjects.get(poolLabel.poolId), investorObjects.get(poolLabel.investorId), parentPoolObjects.get(poolLabel.parentPoolId), this.strategyContext));
|
|
105
|
+
break;
|
|
106
|
+
case 'FungibleLp':
|
|
107
|
+
resMap.set(poolLabel.poolId, new fungibleLp_js_1.FungibleLpStrategy(poolLabel, poolObjects.get(poolLabel.poolId), investorObjects.get(poolLabel.investorId), parentPoolObjects.get(poolLabel.parentPoolId), this.strategyContext));
|
|
108
|
+
break;
|
|
109
|
+
case 'AlphaVault':
|
|
110
|
+
resMap.set(poolLabel.poolId, new alphaVault_js_1.AlphaVaultStrategy(poolLabel, poolObjects.get(poolLabel.poolId), investorObjects.get(poolLabel.investorId), this.strategyContext));
|
|
111
|
+
break;
|
|
112
|
+
case 'Lending':
|
|
113
|
+
resMap.set(poolLabel.poolId, new lending_js_1.LendingStrategy(poolLabel, poolObjects.get(poolLabel.poolId), investorObjects.get(poolLabel.investorId), parentPoolObjects.get(poolLabel.parentPoolId), this.strategyContext));
|
|
114
|
+
break;
|
|
115
|
+
case 'SlushLending':
|
|
116
|
+
resMap.set(poolLabel.poolId, new slushLending_js_1.SlushLendingStrategy(poolLabel, poolObjects.get(poolLabel.poolId), this.strategyContext));
|
|
117
|
+
break;
|
|
118
|
+
case 'Looping':
|
|
119
|
+
resMap.set(poolLabel.poolId, new looping_js_1.LoopingStrategy(poolLabel, poolObjects.get(poolLabel.poolId), investorObjects.get(poolLabel.investorId), this.strategyContext));
|
|
120
|
+
break;
|
|
121
|
+
case 'SingleAssetLooping':
|
|
122
|
+
resMap.set(poolLabel.poolId, new singleAssetLooping_js_1.SingleAssetLoopingStrategy(poolLabel, poolObjects.get(poolLabel.poolId), investorObjects.get(poolLabel.investorId), this.strategyContext));
|
|
123
|
+
break;
|
|
124
|
+
case 'FungibleLending':
|
|
125
|
+
resMap.set(poolLabel.poolId, new fungibleLending_js_1.FungibleLendingStrategy(poolLabel, poolObjects.get(poolLabel.poolId), this.strategyContext));
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
return resMap;
|
|
130
|
+
}
|
|
131
|
+
/** Clear the strategy cache. */
|
|
132
|
+
clearCache() {
|
|
133
|
+
this.strategyCache.clear();
|
|
134
|
+
}
|
|
135
|
+
/** Clear cache for a specific pool. */
|
|
136
|
+
clearPoolCache(poolId) {
|
|
137
|
+
this.strategyCache.delete(poolId);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.Protocol = Protocol;
|
|
141
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/models/protocol.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Core protocol manager that handles strategy initialization and data retrieval.\n * Uses per-pool caching for granular cache management.\n */\nimport { StrategyContext } from './strategyContext.js';\nimport { LpPoolLabel, LpStrategy } from '../strategies/lp.js';\nimport { LyfPoolLabel, LyfStrategy } from '../strategies/lyf.js';\nimport { AutobalanceLpPoolLabel, AutobalanceLpStrategy } from '../strategies/autobalanceLp.js';\nimport { FungibleLpPoolLabel, FungibleLpStrategy } from '../strategies/fungibleLp.js';\nimport { AlphaVaultPoolLabel, AlphaVaultStrategy } from '../strategies/alphaVault.js';\nimport { LendingPoolLabel, LendingStrategy } from '../strategies/lending.js';\nimport { SlushLendingStrategy } from '../strategies/slushLending.js';\nimport { LoopingPoolLabel, LoopingStrategy } from '../strategies/looping.js';\nimport {\n SingleAssetLoopingPoolLabel,\n SingleAssetLoopingStrategy,\n} from '../strategies/singleAssetLooping.js';\nimport { PoolLabel, Strategy, StrategyType } from '../strategies/strategy.js';\nimport { PoolData } from './types.js';\nimport { Cache } from '../utils/cache.js';\nimport { CACHE_TTL } from '../utils/constants.js';\nimport { FungibleLendingStrategy } from '../strategies/fungibleLending.js';\n\nexport class Protocol {\n strategyContext: StrategyContext;\n private strategyCache: Cache<string, Strategy>;\n\n constructor(strategyContext: StrategyContext) {\n this.strategyContext = strategyContext;\n this.strategyCache = new Cache<string, Strategy>(CACHE_TTL.STRATEGY_CACHE);\n }\n\n /** Get pool data from strategies, optionally filtered by type. */\n async getPoolsData(strategiesType?: StrategyType[]): Promise<Map<string, PoolData>> {\n const strategies = await this.getStrategies(strategiesType);\n const poolsData = await Promise.all(\n Array.from(strategies.values()).map((strategy) => strategy.getData()),\n );\n return new Map(poolsData.map((poolData) => [poolData.poolId, poolData]));\n }\n\n /** Get initialized strategies, optionally filtered by type. */\n async getStrategies(strategiesType?: StrategyType[]): Promise<Map<string, Strategy>> {\n const poolLabels = await this.strategyContext.getPoolLabels();\n\n // Filter by strategy types if specified\n const filteredLabels = strategiesType\n ? Array.from(poolLabels.values()).filter((label) =>\n strategiesType.includes(label.strategyType),\n )\n : Array.from(poolLabels.values());\n\n // Get pool IDs that need to be built (not in cache or expired)\n const poolIdsToBuild: string[] = [];\n const cachedStrategies: Map<string, Strategy> = new Map();\n\n for (const label of filteredLabels) {\n const cached = this.strategyCache.get(label.poolId);\n if (cached) {\n cachedStrategies.set(label.poolId, cached);\n } else {\n poolIdsToBuild.push(label.poolId);\n }\n }\n\n // Build strategies for pools not in cache\n if (poolIdsToBuild.length > 0) {\n const labelsToBuild = poolIdsToBuild\n .map((id) => poolLabels.get(id))\n .filter((label): label is PoolLabel => label !== undefined);\n\n const newStrategies = await this.buildPoolStrategies(labelsToBuild);\n\n // Cache the new strategies\n newStrategies.forEach((strategy, poolId) => {\n this.strategyCache.set(poolId, strategy);\n cachedStrategies.set(poolId, strategy);\n });\n }\n\n return cachedStrategies;\n }\n\n /** Get a single pool strategy by poolId. Uses cache with lazy loading and promise memoization. */\n async getSinglePoolStrategy(poolId: string): Promise<Strategy> {\n return this.strategyCache.getOrFetch(poolId, async () => {\n const poolLabel = await this.strategyContext.getPoolLabel(poolId);\n if (!poolLabel) {\n throw new Error(`Pool label not found for poolId: ${poolId}`);\n }\n\n const strategies = await this.buildPoolStrategies([poolLabel]);\n const strategy = strategies.get(poolId);\n\n if (!strategy) {\n throw new Error(`Failed to build strategy for poolId: ${poolId}`);\n }\n\n return strategy;\n });\n }\n\n /** Build strategies from on-chain data for specified pool labels. */\n private async buildPoolStrategies(poolLabels: PoolLabel[]): Promise<Map<string, Strategy>> {\n if (poolLabels.length === 0) {\n return new Map();\n }\n\n const poolIds = poolLabels.map((poolLabel) => poolLabel.poolId);\n const investorIds = poolLabels\n .filter((poolLabel) => 'investorId' in poolLabel && poolLabel.investorId)\n .map((poolLabel) => (poolLabel as any).investorId);\n const parentPoolIds = poolLabels\n .filter((poolLabel) => 'parentPoolId' in poolLabel && poolLabel.parentPoolId)\n .map((poolLabel) => (poolLabel as any).parentPoolId);\n\n const [poolObjects, investorObjects, parentPoolObjects] = await Promise.all([\n this.strategyContext.blockchain.multiGetObjects(poolIds),\n this.strategyContext.blockchain.multiGetObjects(investorIds),\n this.strategyContext.blockchain.multiGetObjects(parentPoolIds),\n ]);\n\n const resMap: Map<string, Strategy> = new Map();\n poolLabels.forEach((poolLabel) => {\n switch (poolLabel.strategyType) {\n case 'Lp':\n resMap.set(\n poolLabel.poolId,\n new LpStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n investorObjects.get((poolLabel as LpPoolLabel).investorId),\n parentPoolObjects.get((poolLabel as LpPoolLabel).parentPoolId),\n this.strategyContext,\n ),\n );\n break;\n case 'Lyf':\n resMap.set(\n poolLabel.poolId,\n new LyfStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n parentPoolObjects.get((poolLabel as LyfPoolLabel).parentPoolId),\n this.strategyContext,\n ),\n );\n break;\n case 'AutobalanceLp':\n resMap.set(\n poolLabel.poolId,\n new AutobalanceLpStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n investorObjects.get((poolLabel as AutobalanceLpPoolLabel).investorId),\n parentPoolObjects.get((poolLabel as AutobalanceLpPoolLabel).parentPoolId),\n this.strategyContext,\n ),\n );\n break;\n case 'FungibleLp':\n resMap.set(\n poolLabel.poolId,\n new FungibleLpStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n investorObjects.get((poolLabel as FungibleLpPoolLabel).investorId),\n parentPoolObjects.get((poolLabel as FungibleLpPoolLabel).parentPoolId),\n this.strategyContext,\n ),\n );\n break;\n case 'AlphaVault':\n resMap.set(\n poolLabel.poolId,\n new AlphaVaultStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n investorObjects.get((poolLabel as AlphaVaultPoolLabel).investorId),\n this.strategyContext,\n ),\n );\n break;\n case 'Lending':\n resMap.set(\n poolLabel.poolId,\n new LendingStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n investorObjects.get((poolLabel as LendingPoolLabel).investorId),\n parentPoolObjects.get((poolLabel as LendingPoolLabel).parentPoolId),\n this.strategyContext,\n ),\n );\n break;\n case 'SlushLending':\n resMap.set(\n poolLabel.poolId,\n new SlushLendingStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n this.strategyContext,\n ),\n );\n break;\n case 'Looping':\n resMap.set(\n poolLabel.poolId,\n new LoopingStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n investorObjects.get((poolLabel as LoopingPoolLabel).investorId),\n this.strategyContext,\n ),\n );\n break;\n case 'SingleAssetLooping':\n resMap.set(\n poolLabel.poolId,\n new SingleAssetLoopingStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n investorObjects.get((poolLabel as SingleAssetLoopingPoolLabel).investorId),\n this.strategyContext,\n ),\n );\n break;\n case 'FungibleLending':\n resMap.set(\n poolLabel.poolId,\n new FungibleLendingStrategy(\n poolLabel,\n poolObjects.get(poolLabel.poolId),\n this.strategyContext,\n ),\n );\n break;\n }\n });\n return resMap;\n }\n\n /** Clear the strategy cache. */\n clearCache(): void {\n this.strategyCache.clear();\n }\n\n /** Clear cache for a specific pool. */\n clearPoolCache(poolId: string): void {\n this.strategyCache.delete(poolId);\n }\n}\n"]}
|