@alphafi/alphafi-sdk 0.0.19 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -5
- package/dist/cjs/common/alphaTypes.d.ts.map +1 -0
- package/dist/cjs/common/alphaTypes.js +3 -0
- package/dist/cjs/common/alphaTypes.js.map +1 -0
- package/dist/cjs/common/cetus_mainnet_config.d.ts.map +1 -0
- package/dist/cjs/common/cetus_mainnet_config.js +50 -0
- package/dist/cjs/common/cetus_mainnet_config.js.map +1 -0
- package/dist/cjs/common/coins.d.ts.map +1 -0
- package/dist/cjs/common/coins.js +135 -0
- package/dist/cjs/common/coins.js.map +1 -0
- package/dist/cjs/common/constants.d.ts.map +1 -0
- package/dist/cjs/common/constants.js +465 -0
- package/dist/cjs/common/constants.js.map +1 -0
- package/dist/cjs/common/maps.d.ts.map +1 -0
- package/dist/cjs/common/maps.js +535 -0
- package/dist/cjs/common/maps.js.map +1 -0
- package/dist/cjs/common/pyth.d.ts.map +1 -0
- package/dist/cjs/common/pyth.js +3 -0
- package/dist/cjs/common/pyth.js.map +1 -0
- package/dist/cjs/common/types.d.ts.map +1 -0
- package/dist/cjs/common/types.js +18 -0
- package/dist/cjs/common/types.js.map +1 -0
- package/dist/cjs/example.d.ts.map +1 -0
- package/dist/cjs/example.js +42 -0
- package/dist/cjs/example.js.map +1 -0
- package/dist/cjs/getAirdropShare.d.ts.map +1 -0
- package/dist/cjs/getAirdropShare.js +9 -0
- package/dist/cjs/getAirdropShare.js.map +1 -0
- package/dist/cjs/getAllVaults.d.ts.map +1 -0
- package/dist/cjs/getAllVaults.js +32 -0
- package/dist/cjs/getAllVaults.js.map +1 -0
- package/dist/cjs/getAlphaUnlocks.d.ts.map +1 -0
- package/dist/cjs/getAlphaUnlocks.js +20 -0
- package/dist/cjs/getAlphaUnlocks.js.map +1 -0
- package/dist/cjs/getAprs.d.ts.map +1 -0
- package/dist/cjs/getAprs.js +56 -0
- package/dist/cjs/getAprs.js.map +1 -0
- package/dist/cjs/getHoldersFromTransactions.d.ts.map +1 -0
- package/dist/cjs/getHoldersFromTransactions.js +87 -0
- package/dist/cjs/getHoldersFromTransactions.js.map +1 -0
- package/dist/cjs/getLastAutoCompoundTime.d.ts.map +1 -0
- package/dist/cjs/getLastAutoCompoundTime.js +17 -0
- package/dist/cjs/getLastAutoCompoundTime.js.map +1 -0
- package/dist/cjs/getRebalanceHistory.d.ts.map +1 -0
- package/dist/cjs/getRebalanceHistory.js +24 -0
- package/dist/cjs/getRebalanceHistory.js.map +1 -0
- package/dist/cjs/getVaultBalances.d.ts.map +1 -0
- package/dist/cjs/getVaultBalances.js +132 -0
- package/dist/cjs/getVaultBalances.js.map +1 -0
- package/dist/cjs/getVaults.d.ts.map +1 -0
- package/dist/cjs/getVaults.js +31 -0
- package/dist/cjs/getVaults.js.map +1 -0
- package/dist/cjs/graphql/client.d.ts.map +1 -0
- package/dist/cjs/graphql/client.js +14 -0
- package/dist/cjs/graphql/client.js.map +1 -0
- package/dist/cjs/graphql/executeMutations.d.ts.map +1 -0
- package/dist/cjs/graphql/executeMutations.js +31 -0
- package/dist/cjs/graphql/executeMutations.js.map +1 -0
- package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.d.ts.map +1 -0
- package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js +119 -0
- package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js.map +1 -0
- package/dist/cjs/graphql/fetchData.d.ts.map +1 -0
- package/dist/cjs/graphql/fetchData.js +95 -0
- package/dist/cjs/graphql/fetchData.js.map +1 -0
- package/dist/cjs/graphql/fetchNftHolders.d.ts.map +1 -0
- package/dist/cjs/graphql/fetchNftHolders.js +34 -0
- package/dist/cjs/graphql/fetchNftHolders.js.map +1 -0
- package/dist/cjs/graphql/fetchReceipts.d.ts.map +1 -0
- package/dist/cjs/graphql/fetchReceipts.js +35 -0
- package/dist/cjs/graphql/fetchReceipts.js.map +1 -0
- package/dist/cjs/graphql/mutations.d.ts.map +1 -0
- package/dist/cjs/graphql/mutations.js +33 -0
- package/dist/cjs/graphql/mutations.js.map +1 -0
- package/dist/cjs/graphql/parseData.d.ts.map +1 -0
- package/dist/cjs/graphql/parseData.js +9 -0
- package/dist/cjs/graphql/parseData.js.map +1 -0
- package/dist/cjs/graphql/parseLockedTableId.d.ts.map +1 -0
- package/dist/cjs/graphql/parseLockedTableId.js +15 -0
- package/dist/cjs/graphql/parseLockedTableId.js.map +1 -0
- package/dist/cjs/graphql/queries/autoCompoundEvents.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/autoCompoundEvents.js +19 -0
- package/dist/cjs/graphql/queries/autoCompoundEvents.js.map +1 -0
- package/dist/cjs/graphql/queries/cetusPools.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/cetusPools.js +39 -0
- package/dist/cjs/graphql/queries/cetusPools.js.map +1 -0
- package/dist/cjs/graphql/queries/investors.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/investors.js +39 -0
- package/dist/cjs/graphql/queries/investors.js.map +1 -0
- package/dist/cjs/graphql/queries/lockedTableData.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/lockedTableData.js +30 -0
- package/dist/cjs/graphql/queries/lockedTableData.js.map +1 -0
- package/dist/cjs/graphql/queries/lockedTableDataFragment.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/lockedTableDataFragment.js +24 -0
- package/dist/cjs/graphql/queries/lockedTableDataFragment.js.map +1 -0
- package/dist/cjs/graphql/queries/nftHolders.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/nftHolders.js +23 -0
- package/dist/cjs/graphql/queries/nftHolders.js.map +1 -0
- package/dist/cjs/graphql/queries/pools.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/pools.js +57 -0
- package/dist/cjs/graphql/queries/pools.js.map +1 -0
- package/dist/cjs/graphql/queries/receiptData.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/receiptData.js +21 -0
- package/dist/cjs/graphql/queries/receiptData.js.map +1 -0
- package/dist/cjs/graphql/queries/userVaultBalances.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/userVaultBalances.js +62 -0
- package/dist/cjs/graphql/queries/userVaultBalances.js.map +1 -0
- package/dist/cjs/graphql/queries/userVaults.d.ts.map +1 -0
- package/dist/cjs/graphql/queries/userVaults.js +62 -0
- package/dist/cjs/graphql/queries/userVaults.js.map +1 -0
- package/dist/cjs/graphql/queries.d.ts.map +1 -0
- package/dist/cjs/graphql/queries.js +86 -0
- package/dist/cjs/graphql/queries.js.map +1 -0
- package/dist/cjs/graphql/types.d.ts.map +1 -0
- package/dist/cjs/graphql/types.js +3 -0
- package/dist/cjs/graphql/types.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +70 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/sui-sdk/client.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/client.js +69 -0
- package/dist/cjs/sui-sdk/client.js.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js +201 -0
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchEvents.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchEvents.js +184 -0
- package/dist/cjs/sui-sdk/events/fetchEvents.js.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js +44 -0
- package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js +90 -0
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js.map +1 -0
- package/dist/cjs/sui-sdk/events/parseData.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/events/parseData.js +31 -0
- package/dist/cjs/sui-sdk/events/parseData.js.map +1 -0
- package/dist/cjs/sui-sdk/events/types.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/events/types.js +3 -0
- package/dist/cjs/sui-sdk/events/types.js.map +1 -0
- package/dist/cjs/sui-sdk/functions/fetchTableData.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/functions/fetchTableData.js +77 -0
- package/dist/cjs/sui-sdk/functions/fetchTableData.js.map +1 -0
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js +82 -0
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -0
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js +45 -0
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js.map +1 -0
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +246 -0
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -0
- package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/functions/getReceipts.js +375 -0
- package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -0
- package/dist/cjs/sui-sdk/transactions/constants.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/transactions/constants.js +90 -0
- package/dist/cjs/sui-sdk/transactions/constants.js.map +1 -0
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.js +88 -0
- package/dist/cjs/sui-sdk/transactions/fetchTransactions.js.map +1 -0
- package/dist/cjs/sui-sdk/transactions/types.d.ts.map +1 -0
- package/dist/cjs/sui-sdk/transactions/types.js +3 -0
- package/dist/cjs/sui-sdk/transactions/types.js.map +1 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/clmm/prices.d.ts.map +1 -0
- package/dist/cjs/utils/clmm/prices.js +317 -0
- package/dist/cjs/utils/clmm/prices.js.map +1 -0
- package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.d.ts.map +1 -0
- package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js +196 -0
- package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js.map +1 -0
- package/dist/cjs/utils/clmm/types.d.ts.map +1 -0
- package/dist/cjs/utils/clmm/types.js +3 -0
- package/dist/cjs/utils/clmm/types.js.map +1 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -0
- package/dist/cjs/utils/constants.js +104 -0
- package/dist/cjs/utils/constants.js.map +1 -0
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -0
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.js +132 -0
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.js.map +1 -0
- package/dist/cjs/utils/getReceipts.d.ts.map +1 -0
- package/dist/cjs/utils/getReceipts.js +45 -0
- package/dist/cjs/utils/getReceipts.js.map +1 -0
- package/dist/cjs/utils/hop.d.ts.map +1 -0
- package/dist/cjs/utils/hop.js +125 -0
- package/dist/cjs/utils/hop.js.map +1 -0
- package/dist/cjs/utils/prices.d.ts.map +1 -0
- package/dist/cjs/utils/prices.js +231 -0
- package/dist/cjs/utils/prices.js.map +1 -0
- package/dist/cjs/utils/simpleCache.d.ts.map +1 -0
- package/dist/cjs/utils/simpleCache.js +43 -0
- package/dist/cjs/utils/simpleCache.js.map +1 -0
- package/dist/cjs/utils/types.d.ts.map +1 -0
- package/dist/cjs/utils/types.js +3 -0
- package/dist/cjs/utils/types.js.map +1 -0
- package/dist/cjs/utils/userHoldings.d.ts.map +1 -0
- package/dist/cjs/utils/userHoldings.js +202 -0
- package/dist/cjs/utils/userHoldings.js.map +1 -0
- package/dist/cjs/vaultFunctions.d.ts.map +1 -0
- package/dist/cjs/vaultFunctions.js +32 -0
- package/dist/cjs/vaultFunctions.js.map +1 -0
- package/dist/esm/common/alphaTypes.d.ts.map +1 -0
- package/dist/esm/common/alphaTypes.js +2 -0
- package/dist/esm/common/alphaTypes.js.map +1 -0
- package/dist/esm/common/cetus_mainnet_config.d.ts.map +1 -0
- package/dist/esm/common/cetus_mainnet_config.js +47 -0
- package/dist/esm/common/cetus_mainnet_config.js.map +1 -0
- package/dist/esm/common/coins.d.ts.map +1 -0
- package/dist/esm/common/coins.js +132 -0
- package/dist/esm/common/coins.js.map +1 -0
- package/dist/esm/common/constants.d.ts.map +1 -0
- package/dist/esm/common/constants.js +462 -0
- package/dist/esm/common/constants.js.map +1 -0
- package/dist/esm/common/maps.d.ts.map +1 -0
- package/dist/esm/common/maps.js +527 -0
- package/dist/esm/common/maps.js.map +1 -0
- package/dist/esm/common/pyth.d.ts.map +1 -0
- package/dist/esm/common/pyth.js +2 -0
- package/dist/esm/common/pyth.js.map +1 -0
- package/dist/esm/common/types.d.ts.map +1 -0
- package/dist/esm/common/types.js +16 -0
- package/dist/esm/common/types.js.map +1 -0
- package/dist/esm/example.d.ts.map +1 -0
- package/dist/esm/example.js +38 -0
- package/dist/esm/example.js.map +1 -0
- package/dist/esm/getAirdropShare.d.ts.map +1 -0
- package/dist/esm/getAirdropShare.js +6 -0
- package/dist/esm/getAirdropShare.js.map +1 -0
- package/dist/esm/getAllVaults.d.ts.map +1 -0
- package/dist/esm/getAllVaults.js +27 -0
- package/dist/esm/getAllVaults.js.map +1 -0
- package/dist/esm/getAlphaUnlocks.d.ts.map +1 -0
- package/dist/esm/getAlphaUnlocks.js +17 -0
- package/dist/esm/getAlphaUnlocks.js.map +1 -0
- package/dist/esm/getAprs.d.ts.map +1 -0
- package/dist/esm/getAprs.js +50 -0
- package/dist/esm/getAprs.js.map +1 -0
- package/dist/esm/getHoldersFromTransactions.d.ts.map +1 -0
- package/dist/esm/getHoldersFromTransactions.js +82 -0
- package/dist/esm/getHoldersFromTransactions.js.map +1 -0
- package/dist/esm/getLastAutoCompoundTime.d.ts.map +1 -0
- package/dist/esm/getLastAutoCompoundTime.js +14 -0
- package/dist/esm/getLastAutoCompoundTime.js.map +1 -0
- package/dist/esm/getRebalanceHistory.d.ts.map +1 -0
- package/dist/esm/getRebalanceHistory.js +20 -0
- package/dist/esm/getRebalanceHistory.js.map +1 -0
- package/dist/esm/getVaultBalances.d.ts.map +1 -0
- package/dist/esm/getVaultBalances.js +124 -0
- package/dist/esm/getVaultBalances.js.map +1 -0
- package/dist/esm/getVaults.d.ts.map +1 -0
- package/dist/esm/getVaults.js +26 -0
- package/dist/esm/getVaults.js.map +1 -0
- package/dist/esm/graphql/client.d.ts.map +1 -0
- package/dist/esm/graphql/client.js +12 -0
- package/dist/esm/graphql/client.js.map +1 -0
- package/dist/esm/graphql/executeMutations.d.ts.map +1 -0
- package/dist/esm/graphql/executeMutations.js +25 -0
- package/dist/esm/graphql/executeMutations.js.map +1 -0
- package/dist/esm/graphql/fetchAutoCompoundingEventsGql.d.ts.map +1 -0
- package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js +116 -0
- package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js.map +1 -0
- package/dist/esm/graphql/fetchData.d.ts.map +1 -0
- package/dist/esm/graphql/fetchData.js +81 -0
- package/dist/esm/graphql/fetchData.js.map +1 -0
- package/dist/esm/graphql/fetchNftHolders.d.ts.map +1 -0
- package/dist/esm/graphql/fetchNftHolders.js +30 -0
- package/dist/esm/graphql/fetchNftHolders.js.map +1 -0
- package/dist/esm/graphql/fetchReceipts.d.ts.map +1 -0
- package/dist/esm/graphql/fetchReceipts.js +31 -0
- package/dist/esm/graphql/fetchReceipts.js.map +1 -0
- package/dist/esm/graphql/mutations.d.ts.map +1 -0
- package/dist/esm/graphql/mutations.js +30 -0
- package/dist/esm/graphql/mutations.js.map +1 -0
- package/dist/esm/graphql/parseData.d.ts.map +1 -0
- package/dist/esm/graphql/parseData.js +6 -0
- package/dist/esm/graphql/parseData.js.map +1 -0
- package/dist/esm/graphql/parseLockedTableId.d.ts.map +1 -0
- package/dist/esm/graphql/parseLockedTableId.js +12 -0
- package/dist/esm/graphql/parseLockedTableId.js.map +1 -0
- package/dist/esm/graphql/queries/autoCompoundEvents.d.ts.map +1 -0
- package/dist/esm/graphql/queries/autoCompoundEvents.js +16 -0
- package/dist/esm/graphql/queries/autoCompoundEvents.js.map +1 -0
- package/dist/esm/graphql/queries/cetusPools.d.ts.map +1 -0
- package/dist/esm/graphql/queries/cetusPools.js +36 -0
- package/dist/esm/graphql/queries/cetusPools.js.map +1 -0
- package/dist/esm/graphql/queries/investors.d.ts.map +1 -0
- package/dist/esm/graphql/queries/investors.js +36 -0
- package/dist/esm/graphql/queries/investors.js.map +1 -0
- package/dist/esm/graphql/queries/lockedTableData.d.ts.map +1 -0
- package/dist/esm/graphql/queries/lockedTableData.js +27 -0
- package/dist/esm/graphql/queries/lockedTableData.js.map +1 -0
- package/dist/esm/graphql/queries/lockedTableDataFragment.d.ts.map +1 -0
- package/dist/esm/graphql/queries/lockedTableDataFragment.js +21 -0
- package/dist/esm/graphql/queries/lockedTableDataFragment.js.map +1 -0
- package/dist/esm/graphql/queries/nftHolders.d.ts.map +1 -0
- package/dist/esm/graphql/queries/nftHolders.js +20 -0
- package/dist/esm/graphql/queries/nftHolders.js.map +1 -0
- package/dist/esm/graphql/queries/pools.d.ts.map +1 -0
- package/dist/esm/graphql/queries/pools.js +54 -0
- package/dist/esm/graphql/queries/pools.js.map +1 -0
- package/dist/esm/graphql/queries/receiptData.d.ts.map +1 -0
- package/dist/esm/graphql/queries/receiptData.js +18 -0
- package/dist/esm/graphql/queries/receiptData.js.map +1 -0
- package/dist/esm/graphql/queries/userVaultBalances.d.ts.map +1 -0
- package/dist/esm/graphql/queries/userVaultBalances.js +59 -0
- package/dist/esm/graphql/queries/userVaultBalances.js.map +1 -0
- package/dist/esm/graphql/queries/userVaults.d.ts.map +1 -0
- package/dist/esm/graphql/queries/userVaults.js +59 -0
- package/dist/esm/graphql/queries/userVaults.js.map +1 -0
- package/dist/esm/graphql/queries.d.ts.map +1 -0
- package/dist/esm/graphql/queries.js +83 -0
- package/dist/esm/graphql/queries.js.map +1 -0
- package/dist/esm/graphql/types.d.ts.map +1 -0
- package/dist/esm/graphql/types.js +2 -0
- package/dist/esm/graphql/types.js.map +1 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/{index.d.ts → esm/index.js} +23 -19
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/sui-sdk/client.d.ts.map +1 -0
- package/dist/esm/sui-sdk/client.js +63 -0
- package/dist/esm/sui-sdk/client.js.map +1 -0
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -0
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js +196 -0
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -0
- package/dist/esm/sui-sdk/events/fetchEvents.d.ts.map +1 -0
- package/dist/esm/sui-sdk/events/fetchEvents.js +181 -0
- package/dist/esm/sui-sdk/events/fetchEvents.js.map +1 -0
- package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +1 -0
- package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js +41 -0
- package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js.map +1 -0
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -0
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js +85 -0
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js.map +1 -0
- package/dist/esm/sui-sdk/events/parseData.d.ts.map +1 -0
- package/dist/esm/sui-sdk/events/parseData.js +27 -0
- package/dist/esm/sui-sdk/events/parseData.js.map +1 -0
- package/dist/esm/sui-sdk/events/types.d.ts.map +1 -0
- package/dist/esm/sui-sdk/events/types.js +2 -0
- package/dist/esm/sui-sdk/events/types.js.map +1 -0
- package/dist/esm/sui-sdk/functions/fetchTableData.d.ts.map +1 -0
- package/dist/esm/sui-sdk/functions/fetchTableData.js +73 -0
- package/dist/esm/sui-sdk/functions/fetchTableData.js.map +1 -0
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -0
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js +79 -0
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -0
- package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -0
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js +42 -0
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js.map +1 -0
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -0
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +238 -0
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -0
- package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -0
- package/dist/esm/sui-sdk/functions/getReceipts.js +364 -0
- package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -0
- package/dist/esm/sui-sdk/transactions/constants.d.ts.map +1 -0
- package/dist/esm/sui-sdk/transactions/constants.js +87 -0
- package/dist/esm/sui-sdk/transactions/constants.js.map +1 -0
- package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -0
- package/dist/esm/sui-sdk/transactions/fetchTransactions.js +85 -0
- package/dist/esm/sui-sdk/transactions/fetchTransactions.js.map +1 -0
- package/dist/esm/sui-sdk/transactions/types.d.ts.map +1 -0
- package/dist/esm/sui-sdk/transactions/types.js +2 -0
- package/dist/esm/sui-sdk/transactions/types.js.map +1 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/clmm/prices.d.ts.map +1 -0
- package/dist/esm/utils/clmm/prices.js +309 -0
- package/dist/esm/utils/clmm/prices.js.map +1 -0
- package/dist/esm/utils/clmm/tokenAmountFromLiquidity.d.ts.map +1 -0
- package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js +188 -0
- package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js.map +1 -0
- package/dist/esm/utils/clmm/types.d.ts.map +1 -0
- package/dist/esm/utils/clmm/types.js +2 -0
- package/dist/esm/utils/clmm/types.js.map +1 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/dist/esm/utils/constants.js +101 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -0
- package/dist/esm/utils/getHoldersFromTransactionsUtils.js +127 -0
- package/dist/esm/utils/getHoldersFromTransactionsUtils.js.map +1 -0
- package/dist/esm/utils/getReceipts.d.ts.map +1 -0
- package/dist/esm/utils/getReceipts.js +42 -0
- package/dist/esm/utils/getReceipts.js.map +1 -0
- package/dist/esm/utils/hop.d.ts.map +1 -0
- package/dist/esm/utils/hop.js +118 -0
- package/dist/esm/utils/hop.js.map +1 -0
- package/dist/esm/utils/prices.d.ts.map +1 -0
- package/dist/esm/utils/prices.js +226 -0
- package/dist/esm/utils/prices.js.map +1 -0
- package/dist/esm/utils/simpleCache.d.ts.map +1 -0
- package/dist/esm/utils/simpleCache.js +40 -0
- package/dist/esm/utils/simpleCache.js.map +1 -0
- package/dist/esm/utils/types.d.ts.map +1 -0
- package/dist/esm/utils/types.js +2 -0
- package/dist/esm/utils/types.js.map +1 -0
- package/dist/esm/utils/userHoldings.d.ts.map +1 -0
- package/dist/esm/utils/userHoldings.js +195 -0
- package/dist/esm/utils/userHoldings.js.map +1 -0
- package/dist/esm/vaultFunctions.d.ts.map +1 -0
- package/dist/esm/vaultFunctions.js +27 -0
- package/dist/esm/vaultFunctions.js.map +1 -0
- package/package.json +29 -13
- package/dist/common/alphaTypes.d.ts +0 -109
- package/dist/common/cetus_mainnet_config.d.ts +0 -2
- package/dist/common/coins.d.ts +0 -4
- package/dist/common/constants.d.ts +0 -401
- package/dist/common/maps.d.ts +0 -56
- package/dist/common/pyth.d.ts +0 -6
- package/dist/common/types.d.ts +0 -459
- package/dist/example.d.ts +0 -2
- package/dist/getAirdropShare.d.ts +0 -1
- package/dist/getAllVaults.d.ts +0 -3
- package/dist/getAlphaUnlocks.d.ts +0 -13
- package/dist/getAprs.d.ts +0 -5
- package/dist/getHoldersFromTransactions.d.ts +0 -8
- package/dist/getLastAutoCompoundTime.d.ts +0 -2
- package/dist/getRebalanceHistory.d.ts +0 -3
- package/dist/getVaultBalances.d.ts +0 -8
- package/dist/getVaults.d.ts +0 -4
- package/dist/graphql/client.d.ts +0 -3
- package/dist/graphql/executeMutations.d.ts +0 -3
- package/dist/graphql/fetchAutoCompoundingEventsGql.d.ts +0 -26
- package/dist/graphql/fetchData.d.ts +0 -10
- package/dist/graphql/fetchNftHolders.d.ts +0 -2
- package/dist/graphql/fetchReceipts.d.ts +0 -2
- package/dist/graphql/mutations.d.ts +0 -3
- package/dist/graphql/parseData.d.ts +0 -1
- package/dist/graphql/parseLockedTableId.d.ts +0 -6
- package/dist/graphql/queries.d.ts +0 -14
- package/dist/graphql/types.d.ts +0 -69
- package/dist/index.js +0 -3
- package/dist/index.js.LICENSE.txt +0 -48
- package/dist/index.js.map +0 -1
- package/dist/sui-sdk/client.d.ts +0 -30
- package/dist/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +0 -5
- package/dist/sui-sdk/events/fetchEvents.d.ts +0 -2
- package/dist/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +0 -2
- package/dist/sui-sdk/events/fetchRebalanceEvents.d.ts +0 -4
- package/dist/sui-sdk/events/parseData.d.ts +0 -3
- package/dist/sui-sdk/events/types.d.ts +0 -93
- package/dist/sui-sdk/functions/fetchTableData.d.ts +0 -49
- package/dist/sui-sdk/functions/fetchUserVaultBalances.d.ts +0 -2
- package/dist/sui-sdk/functions/fetchUserVaults.d.ts +0 -2
- package/dist/sui-sdk/functions/getPortfolioAmounts.d.ts +0 -32
- package/dist/sui-sdk/functions/getReceipts.d.ts +0 -10
- package/dist/sui-sdk/transactions/constants.d.ts +0 -3
- package/dist/sui-sdk/transactions/fetchTransactions.d.ts +0 -3
- package/dist/sui-sdk/transactions/types.d.ts +0 -7
- package/dist/types.d.ts +0 -212
- package/dist/utils/clmm/prices.d.ts +0 -19
- package/dist/utils/clmm/tokenAmountFromLiquidity.d.ts +0 -10
- package/dist/utils/clmm/types.d.ts +0 -24
- package/dist/utils/constants.d.ts +0 -2
- package/dist/utils/getHoldersFromTransactionsUtils.d.ts +0 -5
- package/dist/utils/getReceipts.d.ts +0 -3
- package/dist/utils/hop.d.ts +0 -15
- package/dist/utils/prices.d.ts +0 -6
- package/dist/utils/simpleCache.d.ts +0 -9
- package/dist/utils/types.d.ts +0 -4
- package/dist/utils/userHoldings.d.ts +0 -5
- package/dist/vaultFunctions.d.ts +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n CoinName,\n DoubleAssetPoolNames,\n PoolName,\n SingleAssetPoolNames,\n AlphaFiVaultBalance,\n} from \"./common/types.js\";\n\nexport type GetUserTokensFromTransactionsParams = {\n poolNames?: string[];\n startTime?: number;\n endTime?: number;\n owners?: string[];\n};\n\nexport type GetUserTokensInUsdFromTransactionsParams = {\n poolNames?: string[];\n startTime?: number;\n endTime?: number;\n owners?: string[];\n userTokensHoldings?: [string, string, string][];\n};\n\nexport type AlphaReceiptFields = {\n id: { id: string };\n image_url: string;\n last_acc_reward_per_xtoken: {\n type: string;\n fields: {\n contents: [\n {\n type: string;\n fields: {\n key: {\n type: string;\n fields: {\n name: string;\n };\n };\n value: string;\n };\n },\n ];\n };\n };\n locked_balance: {\n type: string;\n fields: {\n head: string;\n id: {\n id: string;\n };\n size: string;\n tail: string;\n };\n };\n name: string;\n owner: string;\n pending_rewards: {\n type: string;\n fields: {\n contents: [\n {\n type: string;\n fields: {\n key: {\n type: string;\n fields: {\n name: string;\n };\n };\n value: string;\n };\n },\n ];\n };\n };\n pool_id: string;\n unlocked_xtokens: string;\n xTokenBalance: string;\n};\n\nexport type OtherReceiptFields = {\n id: { id: string };\n image_url: string;\n last_acc_reward_per_xtoken: {\n fields: {\n contents: [\n {\n fields: {\n key: {\n fields: {\n name: string;\n };\n type: string;\n };\n value: string;\n };\n type: string;\n },\n ];\n };\n type: string;\n };\n name: string;\n owner: string;\n pending_rewards: {\n fields: {\n contents: [\n {\n fields: {\n key: {\n fields: {\n name: string;\n };\n type: string;\n };\n value: string;\n };\n type: string;\n },\n ];\n };\n type: string;\n };\n pool_id: string;\n xTokenBalance: string;\n};\n\nexport type GetHoldersParams = {\n poolNames?: string[];\n startTime?: number;\n endTime?: number;\n};\n\nexport type GetTokenHoldingsParams = {\n poolNames?: PoolName[];\n startTime?: number;\n endTime?: number;\n};\n\nexport type LiquidityToUsdParams = {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n tokenPriceMap: Map<CoinName, string>;\n};\n\nexport type LiquidityToTokensParams = {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n};\n\nexport type UserUsdHoldings = {\n user: string;\n poolName: PoolName;\n usdHoldings: string;\n};\n\nexport type UserPoolLiquidity = {\n user: string;\n poolName: string;\n liquidity: string;\n};\n\nexport type UserPoolTokenHoldings =\n | SingleAssetTokenHoldings\n | DoubleAssetTokenHoldings;\n\nexport type SingleAssetTokenHoldings = {\n user: string;\n poolName: SingleAssetPoolNames;\n tokens: string;\n};\n\nexport type DoubleAssetTokenHoldings = {\n user: string;\n poolName: DoubleAssetPoolNames;\n tokenAmountA: string;\n tokenAmountB: string;\n};\n\nexport type MultiGetVaultBalancesParams = {\n poolNames?: PoolName[];\n startTime?: number;\n endTime?: number;\n};\nexport type SingleGetVaultBalancesParams = {\n address?: string;\n poolName?: PoolName;\n};\nexport type GetVaultBalanceParams =\n | SingleGetVaultBalancesParams\n | MultiGetVaultBalancesParams;\n\nexport type HoldingsObj = {\n owner: string;\n poolName: PoolName;\n holding: string;\n};\n\nexport type VaultBalance =\n | AlphaFiVaultBalance\n | undefined\n | AlphaFiMultiVaultBalance[];\n\nexport type AlphaFiMultiVaultBalance =\n | SingleAssetMultiVaultBalance\n | DoubleAssetMultiVaultBalance;\n\nexport type SingleAssetMultiVaultBalance = {\n owner: string;\n poolName: PoolName;\n tokens: string;\n tokensInUsd: string;\n};\nexport type DoubleAssetMultiVaultBalance = {\n owner: string;\n poolName: PoolName;\n tokenA: string;\n tokenB: string;\n tokensInUsd: string;\n};\n\nexport type GetVaultBalanceForActiveUsersParams = {\n poolNames?: PoolName[];\n startTime?: number;\n endTime?: number;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,IAAI,EAGJ,oBAAoB,EAKrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAiGjE,wBAAsB,aAAa,CACjC,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyC7B;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgBhE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgBhE;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAe;gBAEnB,UAAU,EAAE,UAAU;IAK5B,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE;IAoChD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkClE,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0C/D,0BAA0B,CAC9B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,WAAW,CAAC;CA6ExB"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CetusGateway = void 0;
|
|
4
|
+
exports.getAlphaPrice = getAlphaPrice;
|
|
5
|
+
exports.getUSDYPrice = getUSDYPrice;
|
|
6
|
+
exports.getBUCKPrice = getBUCKPrice;
|
|
7
|
+
exports.getPriceFromCetus = getPriceFromCetus;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const cetus_sui_clmm_sdk_1 = require("@cetusprotocol/cetus-sui-clmm-sdk");
|
|
10
|
+
const bn_js_1 = tslib_1.__importDefault(require("bn.js"));
|
|
11
|
+
const coins_js_1 = require("../../common/coins.js");
|
|
12
|
+
const cetus_mainnet_config_js_1 = require("../../common/cetus_mainnet_config.js");
|
|
13
|
+
const prices_js_1 = require("../prices.js");
|
|
14
|
+
const simpleCache_js_1 = require("../simpleCache.js");
|
|
15
|
+
const poolData = {
|
|
16
|
+
"SUI/USDC": {
|
|
17
|
+
pair: "SUI/USDC",
|
|
18
|
+
id: "0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630",
|
|
19
|
+
a2b: false,
|
|
20
|
+
},
|
|
21
|
+
"USDC/SUI": {
|
|
22
|
+
pair: "USDC/SUI",
|
|
23
|
+
id: "0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630",
|
|
24
|
+
a2b: true,
|
|
25
|
+
},
|
|
26
|
+
"SUI/USDT": {
|
|
27
|
+
pair: "SUI/USDT",
|
|
28
|
+
id: "0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3",
|
|
29
|
+
a2b: false,
|
|
30
|
+
},
|
|
31
|
+
"USDT/SUI": {
|
|
32
|
+
pair: "USDT/SUI",
|
|
33
|
+
id: "0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3",
|
|
34
|
+
a2b: true,
|
|
35
|
+
},
|
|
36
|
+
"USDC/USDT": {
|
|
37
|
+
pair: "USDC/USDT",
|
|
38
|
+
id: "0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20",
|
|
39
|
+
a2b: false,
|
|
40
|
+
},
|
|
41
|
+
"USDT/USDC": {
|
|
42
|
+
pair: "USDT/USDC",
|
|
43
|
+
id: "0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20",
|
|
44
|
+
a2b: true,
|
|
45
|
+
},
|
|
46
|
+
"SUI/VSUI": {
|
|
47
|
+
pair: "SUI/VSUI",
|
|
48
|
+
id: "0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535",
|
|
49
|
+
a2b: false,
|
|
50
|
+
},
|
|
51
|
+
"VSUI/SUI": {
|
|
52
|
+
pair: "VSUI/SUI",
|
|
53
|
+
id: "0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535",
|
|
54
|
+
a2b: true,
|
|
55
|
+
},
|
|
56
|
+
"SUI/NAVX": {
|
|
57
|
+
pair: "SUI/NAVX",
|
|
58
|
+
id: "0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703",
|
|
59
|
+
a2b: false,
|
|
60
|
+
},
|
|
61
|
+
"NAVX/SUI": {
|
|
62
|
+
pair: "NAVX/SUI",
|
|
63
|
+
id: "0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703",
|
|
64
|
+
a2b: true,
|
|
65
|
+
},
|
|
66
|
+
"ALPHA/SUI": {
|
|
67
|
+
pair: "ALPHA/SUI",
|
|
68
|
+
id: "0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720",
|
|
69
|
+
a2b: true,
|
|
70
|
+
},
|
|
71
|
+
"SUI/ALPHA": {
|
|
72
|
+
pair: "ALPHA/SUI",
|
|
73
|
+
id: "0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720",
|
|
74
|
+
a2b: false,
|
|
75
|
+
},
|
|
76
|
+
"USDY/USDC": {
|
|
77
|
+
pair: "USDY/USDC",
|
|
78
|
+
id: "0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d",
|
|
79
|
+
a2b: true,
|
|
80
|
+
},
|
|
81
|
+
"USDC/USDY": {
|
|
82
|
+
pair: "USDY/USDC",
|
|
83
|
+
id: "0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d",
|
|
84
|
+
a2b: false,
|
|
85
|
+
},
|
|
86
|
+
"BUCK/USDC": {
|
|
87
|
+
pair: "BUCK/USDC",
|
|
88
|
+
id: "0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5",
|
|
89
|
+
a2b: true,
|
|
90
|
+
},
|
|
91
|
+
"USDC/BUCK": {
|
|
92
|
+
pair: "USDC/BUCK",
|
|
93
|
+
id: "0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5",
|
|
94
|
+
a2b: false,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
const alphaPricePromiseCache = new simpleCache_js_1.SimpleCache(60000);
|
|
98
|
+
const alphaPriceCache = new simpleCache_js_1.SimpleCache(60000);
|
|
99
|
+
async function getAlphaPrice(ignoreCache = false) {
|
|
100
|
+
const cacheKey = `getAlphaPrice`;
|
|
101
|
+
if (ignoreCache) {
|
|
102
|
+
alphaPriceCache.delete(cacheKey);
|
|
103
|
+
alphaPricePromiseCache.delete(cacheKey);
|
|
104
|
+
}
|
|
105
|
+
const cachedResponse = alphaPriceCache.get(cacheKey);
|
|
106
|
+
if (cachedResponse) {
|
|
107
|
+
return cachedResponse;
|
|
108
|
+
}
|
|
109
|
+
let alphaPrice = 0;
|
|
110
|
+
let cachedPromise = alphaPricePromiseCache.get(cacheKey);
|
|
111
|
+
if (!cachedPromise) {
|
|
112
|
+
cachedPromise = (async () => {
|
|
113
|
+
const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
|
|
114
|
+
const swapOption = {
|
|
115
|
+
pair: { coinA: coins_js_1.coins.ALPHA, coinB: coins_js_1.coins.SUI },
|
|
116
|
+
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
117
|
+
slippage: 1,
|
|
118
|
+
inAmount: new bn_js_1.default(1000000000),
|
|
119
|
+
};
|
|
120
|
+
const res = await cetusGateway.getPrice(swapOption);
|
|
121
|
+
const latestSuiPrice = await (0, prices_js_1.getLatestPrice)("SUI/USD");
|
|
122
|
+
if (latestSuiPrice) {
|
|
123
|
+
alphaPrice =
|
|
124
|
+
res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;
|
|
125
|
+
alphaPriceCache.set(cacheKey, alphaPrice);
|
|
126
|
+
alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache
|
|
127
|
+
}
|
|
128
|
+
return alphaPrice;
|
|
129
|
+
})().catch((error) => {
|
|
130
|
+
alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache
|
|
131
|
+
throw error;
|
|
132
|
+
});
|
|
133
|
+
alphaPricePromiseCache.set(cacheKey, cachedPromise);
|
|
134
|
+
}
|
|
135
|
+
return cachedPromise;
|
|
136
|
+
}
|
|
137
|
+
async function getUSDYPrice() {
|
|
138
|
+
const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
|
|
139
|
+
const swapOption = {
|
|
140
|
+
pair: { coinA: coins_js_1.coins.USDY, coinB: coins_js_1.coins.USDC },
|
|
141
|
+
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
142
|
+
slippage: 1,
|
|
143
|
+
inAmount: new bn_js_1.default(1000000),
|
|
144
|
+
};
|
|
145
|
+
const res = await cetusGateway.getPrice(swapOption);
|
|
146
|
+
const latestUSDCPrice = await (0, prices_js_1.getLatestPrice)("USDC/USD");
|
|
147
|
+
if (latestUSDCPrice) {
|
|
148
|
+
return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async function getBUCKPrice() {
|
|
155
|
+
const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
|
|
156
|
+
const swapOption = {
|
|
157
|
+
pair: { coinA: coins_js_1.coins.BUCK, coinB: coins_js_1.coins.USDC },
|
|
158
|
+
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
159
|
+
slippage: 1,
|
|
160
|
+
inAmount: new bn_js_1.default(1000000000),
|
|
161
|
+
};
|
|
162
|
+
const res = await cetusGateway.getPrice(swapOption);
|
|
163
|
+
const latestUSDCPrice = await (0, prices_js_1.getLatestPrice)("USDC/USD");
|
|
164
|
+
if (latestUSDCPrice) {
|
|
165
|
+
return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async function getPriceFromCetus(coinType) {
|
|
172
|
+
return coinType;
|
|
173
|
+
}
|
|
174
|
+
class CetusGateway {
|
|
175
|
+
constructor(sdkOptions) {
|
|
176
|
+
this.cetusSDK = new cetus_sui_clmm_sdk_1.CetusClmmSDK(sdkOptions);
|
|
177
|
+
this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;
|
|
178
|
+
}
|
|
179
|
+
async getPools(pairs) {
|
|
180
|
+
const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);
|
|
181
|
+
const matchedPools = [];
|
|
182
|
+
pairs.forEach((pair) => {
|
|
183
|
+
const filteredPools = allPools.filter((pool) => {
|
|
184
|
+
if (pair.coinA && pair.coinB) {
|
|
185
|
+
return ((pool.coinTypeA === pair.coinA.type &&
|
|
186
|
+
pool.coinTypeB === pair.coinB.type) ||
|
|
187
|
+
(pool.coinTypeA === pair.coinB.type &&
|
|
188
|
+
pool.coinTypeB === pair.coinA.type));
|
|
189
|
+
}
|
|
190
|
+
else if (pair.coinA && !pair.coinB) {
|
|
191
|
+
return (pool.coinTypeA === pair.coinA.type ||
|
|
192
|
+
pool.coinTypeB === pair.coinA.type);
|
|
193
|
+
}
|
|
194
|
+
else if (!pair.coinA && pair.coinB) {
|
|
195
|
+
return (pool.coinTypeB === pair.coinB.type ||
|
|
196
|
+
pool.coinTypeB === pair.coinB.type);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
matchedPools.push(...filteredPools);
|
|
203
|
+
});
|
|
204
|
+
console.log(matchedPools);
|
|
205
|
+
console.log(`Matched pools for specified pairs: ${matchedPools.length}`);
|
|
206
|
+
console.log(`Total pools: ${allPools.length}`);
|
|
207
|
+
return matchedPools;
|
|
208
|
+
}
|
|
209
|
+
async getPrice(options) {
|
|
210
|
+
const { pair, inAmount, outAmount } = options;
|
|
211
|
+
const poolDatum = poolData[pair.coinA.name + "/" + pair.coinB.name];
|
|
212
|
+
let amount = new bn_js_1.default(0);
|
|
213
|
+
let byAmountIn = true;
|
|
214
|
+
if (inAmount) {
|
|
215
|
+
byAmountIn = true;
|
|
216
|
+
amount = inAmount;
|
|
217
|
+
}
|
|
218
|
+
else if (outAmount) {
|
|
219
|
+
byAmountIn = false;
|
|
220
|
+
amount = outAmount;
|
|
221
|
+
}
|
|
222
|
+
const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);
|
|
223
|
+
const swapTicks = await this.cetusSDK.Pool.fetchTicks({
|
|
224
|
+
pool_id: pool.poolAddress,
|
|
225
|
+
coinTypeA: pool.coinTypeA,
|
|
226
|
+
coinTypeB: pool.coinTypeB,
|
|
227
|
+
});
|
|
228
|
+
const res = this.cetusSDK.Swap.calculateRates({
|
|
229
|
+
decimalsA: pair.coinA.expo,
|
|
230
|
+
decimalsB: pair.coinB.expo,
|
|
231
|
+
a2b: poolDatum.a2b,
|
|
232
|
+
byAmountIn,
|
|
233
|
+
amount,
|
|
234
|
+
swapTicks,
|
|
235
|
+
currentPool: pool,
|
|
236
|
+
});
|
|
237
|
+
return res;
|
|
238
|
+
}
|
|
239
|
+
async getTransaction(options) {
|
|
240
|
+
const res = await this.getPrice(options);
|
|
241
|
+
const { pair, senderAddress, slippage, inAmount, outAmount } = options;
|
|
242
|
+
const poolDatum = poolData[pair.coinA.name + "/" + pair.coinB.name];
|
|
243
|
+
const poolID = poolDatum.id;
|
|
244
|
+
const pool = await this.cetusSDK.Pool.getPool(poolID);
|
|
245
|
+
let byAmountIn = true;
|
|
246
|
+
if (inAmount) {
|
|
247
|
+
byAmountIn = true;
|
|
248
|
+
}
|
|
249
|
+
else if (outAmount) {
|
|
250
|
+
byAmountIn = false;
|
|
251
|
+
}
|
|
252
|
+
const slippagePercentage = new cetus_sui_clmm_sdk_1.Percentage(new bn_js_1.default(Math.floor(slippage * 100).toString()), new bn_js_1.default(100));
|
|
253
|
+
const toAmount = byAmountIn
|
|
254
|
+
? res.estimatedAmountOut
|
|
255
|
+
: res.estimatedAmountIn;
|
|
256
|
+
const amountLimit = (0, cetus_sui_clmm_sdk_1.adjustForSlippage)(toAmount, slippagePercentage, !byAmountIn);
|
|
257
|
+
// TransactionBlock
|
|
258
|
+
this.cetusSDK.senderAddress = senderAddress;
|
|
259
|
+
const txb = this.cetusSDK.Swap.createSwapTransactionPayload({
|
|
260
|
+
pool_id: pool.poolAddress,
|
|
261
|
+
coinTypeA: pool.coinTypeA,
|
|
262
|
+
coinTypeB: pool.coinTypeB,
|
|
263
|
+
a2b: poolDatum.a2b,
|
|
264
|
+
by_amount_in: byAmountIn,
|
|
265
|
+
amount: res.amount.toString(),
|
|
266
|
+
amount_limit: amountLimit.toString(),
|
|
267
|
+
});
|
|
268
|
+
return txb;
|
|
269
|
+
}
|
|
270
|
+
async createPoolTransactionBlock(options) {
|
|
271
|
+
console.log((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coins[options.coinNameA].expo, coins_js_1.coins[options.coinNameB].expo);
|
|
272
|
+
const initializeSqrtPrice = cetus_sui_clmm_sdk_1.TickMath.priceToSqrtPriceX64((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coins[options.coinNameA].expo, coins_js_1.coins[options.coinNameB].expo).toString();
|
|
273
|
+
const current_tick_index = cetus_sui_clmm_sdk_1.TickMath.sqrtPriceX64ToTickIndex(new bn_js_1.default(Math.floor(parseFloat(initializeSqrtPrice)).toString()));
|
|
274
|
+
// build tick range
|
|
275
|
+
const lowerTick = cetus_sui_clmm_sdk_1.TickMath.getPrevInitializableTickIndex(new bn_js_1.default(Math.floor(current_tick_index).toString()).toNumber(), new bn_js_1.default(options.tickSpacing.toString()).toNumber());
|
|
276
|
+
const upperTick = cetus_sui_clmm_sdk_1.TickMath.getNextInitializableTickIndex(new bn_js_1.default(Math.floor(current_tick_index).toString()).toNumber(), new bn_js_1.default(options.tickSpacing.toString()).toNumber());
|
|
277
|
+
// slippage value 0.05 means 5%
|
|
278
|
+
const slippage = 0.01;
|
|
279
|
+
// Estimate liquidity and token amount from one amounts
|
|
280
|
+
const liquidityInput = cetus_sui_clmm_sdk_1.ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(lowerTick, upperTick, new bn_js_1.default(options.amount.toString()), options.isAmountA, true, slippage, new bn_js_1.default(initializeSqrtPrice.toString()));
|
|
281
|
+
// Estimate token a and token b amount
|
|
282
|
+
const amount_a = options.isAmountA
|
|
283
|
+
? options.amount
|
|
284
|
+
: liquidityInput.tokenMaxA.toNumber();
|
|
285
|
+
const amount_b = options.isAmountA
|
|
286
|
+
? liquidityInput.tokenMaxB.toNumber()
|
|
287
|
+
: options.amount;
|
|
288
|
+
console.log({
|
|
289
|
+
coinTypeA: coins_js_1.coins[options.coinNameA].type,
|
|
290
|
+
coinTypeB: coins_js_1.coins[options.coinNameB].type,
|
|
291
|
+
tick_spacing: options.tickSpacing,
|
|
292
|
+
initialize_sqrt_price: `${initializeSqrtPrice}`,
|
|
293
|
+
uri: options.imageUrl,
|
|
294
|
+
amount_a: amount_a,
|
|
295
|
+
amount_b: amount_b,
|
|
296
|
+
fix_amount_a: options.isAmountA,
|
|
297
|
+
tick_lower: lowerTick,
|
|
298
|
+
tick_upper: upperTick,
|
|
299
|
+
});
|
|
300
|
+
// build creatPoolPayload Payload
|
|
301
|
+
const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({
|
|
302
|
+
coinTypeA: coins_js_1.coins[options.coinNameA].type,
|
|
303
|
+
coinTypeB: coins_js_1.coins[options.coinNameB].type,
|
|
304
|
+
tick_spacing: options.tickSpacing,
|
|
305
|
+
initialize_sqrt_price: `${initializeSqrtPrice}`,
|
|
306
|
+
uri: options.imageUrl,
|
|
307
|
+
amount_a: amount_a,
|
|
308
|
+
amount_b: amount_b,
|
|
309
|
+
fix_amount_a: options.isAmountA,
|
|
310
|
+
tick_lower: lowerTick,
|
|
311
|
+
tick_upper: upperTick,
|
|
312
|
+
});
|
|
313
|
+
return txb;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
exports.CetusGateway = CetusGateway;
|
|
317
|
+
//# sourceMappingURL=prices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SdkOptions,\n Pool,\n Percentage,\n adjustForSlippage,\n CalculateRatesResult,\n ClmmPoolUtil,\n TickMath,\n d,\n CetusClmmSDK,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { Coin } from \"../../common/types.js\";\nimport { coins } from \"../../common/coins.js\";\nimport { CetusSwapOptions, CreatePoolOptions } from \"./types.js\";\nimport { cetusMainnetSDKOptions } from \"../../common/cetus_mainnet_config.js\";\nimport { getLatestPrice } from \"../prices.js\";\nimport { SimpleCache } from \"../simpleCache.js\";\n\ninterface PoolData {\n pair: string;\n id: string;\n a2b: boolean;\n}\n\nconst poolData: { [key: string]: PoolData } = {\n \"SUI/USDC\": {\n pair: \"SUI/USDC\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: false,\n },\n \"USDC/SUI\": {\n pair: \"USDC/SUI\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: true,\n },\n \"SUI/USDT\": {\n pair: \"SUI/USDT\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: false,\n },\n \"USDT/SUI\": {\n pair: \"USDT/SUI\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: true,\n },\n \"USDC/USDT\": {\n pair: \"USDC/USDT\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: false,\n },\n \"USDT/USDC\": {\n pair: \"USDT/USDC\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: true,\n },\n \"SUI/VSUI\": {\n pair: \"SUI/VSUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: false,\n },\n \"VSUI/SUI\": {\n pair: \"VSUI/SUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: true,\n },\n \"SUI/NAVX\": {\n pair: \"SUI/NAVX\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: false,\n },\n \"NAVX/SUI\": {\n pair: \"NAVX/SUI\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: true,\n },\n \"ALPHA/SUI\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: true,\n },\n \"SUI/ALPHA\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: false,\n },\n \"USDY/USDC\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: true,\n },\n \"USDC/USDY\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: false,\n },\n \"BUCK/USDC\": {\n pair: \"BUCK/USDC\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: true,\n },\n \"USDC/BUCK\": {\n pair: \"USDC/BUCK\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: false,\n },\n};\n\nconst alphaPricePromiseCache = new SimpleCache<Promise<number>>(60000);\nconst alphaPriceCache = new SimpleCache<number>(60000);\n\nexport async function getAlphaPrice(\n ignoreCache: boolean = false,\n): Promise<number | undefined> {\n const cacheKey = `getAlphaPrice`;\n if (ignoreCache) {\n alphaPriceCache.delete(cacheKey);\n alphaPricePromiseCache.delete(cacheKey);\n }\n const cachedResponse = alphaPriceCache.get(cacheKey);\n\n if (cachedResponse) {\n return cachedResponse;\n }\n let alphaPrice = 0;\n let cachedPromise = alphaPricePromiseCache.get(cacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<number> => {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.ALPHA, coinB: coins.SUI },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const latestSuiPrice = await getLatestPrice(\"SUI/USD\");\n if (latestSuiPrice) {\n alphaPrice =\n res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;\n alphaPriceCache.set(cacheKey, alphaPrice);\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n }\n return alphaPrice;\n })().catch((error) => {\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n throw error;\n });\n\n alphaPricePromiseCache.set(cacheKey, cachedPromise);\n }\n\n return cachedPromise;\n}\n\nexport async function getUSDYPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.USDY, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const latestUSDCPrice = await getLatestPrice(\"USDC/USD\");\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getBUCKPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.BUCK, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const latestUSDCPrice = await getLatestPrice(\"USDC/USD\");\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getPriceFromCetus(coinType: string): Promise<string> {\n return coinType;\n}\n\nexport class CetusGateway {\n private cetusSDK: CetusClmmSDK;\n\n constructor(sdkOptions: SdkOptions) {\n this.cetusSDK = new CetusClmmSDK(sdkOptions);\n this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;\n }\n\n async getPools(pairs: { coinA?: Coin; coinB?: Coin }[]) {\n const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);\n const matchedPools: Pool[] = [];\n\n pairs.forEach((pair) => {\n const filteredPools: Pool[] = allPools.filter((pool: Pool) => {\n if (pair.coinA && pair.coinB) {\n return (\n (pool.coinTypeA === pair.coinA.type &&\n pool.coinTypeB === pair.coinB.type) ||\n (pool.coinTypeA === pair.coinB.type &&\n pool.coinTypeB === pair.coinA.type)\n );\n } else if (pair.coinA && !pair.coinB) {\n return (\n pool.coinTypeA === pair.coinA.type ||\n pool.coinTypeB === pair.coinA.type\n );\n } else if (!pair.coinA && pair.coinB) {\n return (\n pool.coinTypeB === pair.coinB.type ||\n pool.coinTypeB === pair.coinB.type\n );\n } else {\n return undefined;\n }\n });\n matchedPools.push(...filteredPools);\n });\n\n console.log(matchedPools);\n console.log(`Matched pools for specified pairs: ${matchedPools.length}`);\n console.log(`Total pools: ${allPools.length}`);\n return matchedPools;\n }\n\n async getPrice(options: CetusSwapOptions): Promise<CalculateRatesResult> {\n const { pair, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n let amount: BN = new BN(0);\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n amount = inAmount;\n } else if (outAmount) {\n byAmountIn = false;\n amount = outAmount;\n }\n\n const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);\n\n const swapTicks = await this.cetusSDK.Pool.fetchTicks({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n });\n\n const res = this.cetusSDK.Swap.calculateRates({\n decimalsA: pair.coinA.expo,\n decimalsB: pair.coinB.expo,\n a2b: poolDatum.a2b,\n byAmountIn,\n amount,\n swapTicks,\n currentPool: pool,\n });\n\n return res;\n }\n\n async getTransaction(options: CetusSwapOptions): Promise<Transaction> {\n const res = await this.getPrice(options);\n\n const { pair, senderAddress, slippage, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n const poolID = poolDatum.id;\n const pool = await this.cetusSDK.Pool.getPool(poolID);\n\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n } else if (outAmount) {\n byAmountIn = false;\n }\n\n const slippagePercentage = new Percentage(\n new BN(Math.floor(slippage * 100).toString()),\n new BN(100),\n );\n const toAmount = byAmountIn\n ? res.estimatedAmountOut\n : res.estimatedAmountIn;\n const amountLimit = adjustForSlippage(\n toAmount,\n slippagePercentage,\n !byAmountIn,\n );\n // TransactionBlock\n this.cetusSDK.senderAddress = senderAddress;\n const txb = this.cetusSDK.Swap.createSwapTransactionPayload({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n a2b: poolDatum.a2b,\n by_amount_in: byAmountIn,\n amount: res.amount.toString(),\n amount_limit: amountLimit.toString(),\n });\n\n return txb;\n }\n\n async createPoolTransactionBlock(\n options: CreatePoolOptions,\n ): Promise<Transaction> {\n console.log(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n );\n\n const initializeSqrtPrice = TickMath.priceToSqrtPriceX64(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n ).toString();\n\n const current_tick_index = TickMath.sqrtPriceX64ToTickIndex(\n new BN(Math.floor(parseFloat(initializeSqrtPrice)).toString()),\n );\n\n // build tick range\n const lowerTick = TickMath.getPrevInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n const upperTick = TickMath.getNextInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n\n // slippage value 0.05 means 5%\n const slippage = 0.01;\n // Estimate liquidity and token amount from one amounts\n const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(\n lowerTick,\n upperTick,\n new BN(options.amount.toString()),\n options.isAmountA,\n true,\n slippage,\n new BN(initializeSqrtPrice.toString()),\n );\n\n // Estimate token a and token b amount\n const amount_a = options.isAmountA\n ? options.amount\n : liquidityInput.tokenMaxA.toNumber();\n const amount_b = options.isAmountA\n ? liquidityInput.tokenMaxB.toNumber()\n : options.amount;\n\n console.log({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n // build creatPoolPayload Payload\n const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n return txb;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenAmountFromLiquidity.d.ts","sourceRoot":"","sources":["../../../../src/utils/clmm/tokenAmountFromLiquidity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvB,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAIzE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAyIpE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,aAsH7D;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,aAKxD;AAKD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,OAAO,GACf;IAAE,YAAY,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,SAAS,CAAA;CAAE,CA0CtD"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.signedShiftRight = signedShiftRight;
|
|
4
|
+
exports.tickIndexToSqrtPricePositive = tickIndexToSqrtPricePositive;
|
|
5
|
+
exports.tickIndexToSqrtPriceNegative = tickIndexToSqrtPriceNegative;
|
|
6
|
+
exports.tickIndexToSqrtPriceX64 = tickIndexToSqrtPriceX64;
|
|
7
|
+
exports.getTokenAmountsFromLiquidity = getTokenAmountsFromLiquidity;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
/* eslint-disable no-bitwise */
|
|
10
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
11
|
+
const bn_js_1 = tslib_1.__importDefault(require("bn.js"));
|
|
12
|
+
const decimal_js_1 = require("decimal.js");
|
|
13
|
+
function signedShiftRight(n0, shiftBy, bitWidth) {
|
|
14
|
+
const twoN0 = n0.toTwos(bitWidth).shrn(shiftBy);
|
|
15
|
+
twoN0.imaskn(bitWidth - shiftBy + 1);
|
|
16
|
+
return twoN0.fromTwos(bitWidth - shiftBy);
|
|
17
|
+
}
|
|
18
|
+
function tickIndexToSqrtPricePositive(tick) {
|
|
19
|
+
let ratio;
|
|
20
|
+
if ((tick & 1) !== 0) {
|
|
21
|
+
ratio = new bn_js_1.default("79232123823359799118286999567");
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
ratio = new bn_js_1.default("79228162514264337593543950336");
|
|
25
|
+
}
|
|
26
|
+
if ((tick & 2) !== 0) {
|
|
27
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79236085330515764027303304731")), 96, 256);
|
|
28
|
+
}
|
|
29
|
+
if ((tick & 4) !== 0) {
|
|
30
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79244008939048815603706035061")), 96, 256);
|
|
31
|
+
}
|
|
32
|
+
if ((tick & 8) !== 0) {
|
|
33
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79259858533276714757314932305")), 96, 256);
|
|
34
|
+
}
|
|
35
|
+
if ((tick & 16) !== 0) {
|
|
36
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79291567232598584799939703904")), 96, 256);
|
|
37
|
+
}
|
|
38
|
+
if ((tick & 32) !== 0) {
|
|
39
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79355022692464371645785046466")), 96, 256);
|
|
40
|
+
}
|
|
41
|
+
if ((tick & 64) !== 0) {
|
|
42
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79482085999252804386437311141")), 96, 256);
|
|
43
|
+
}
|
|
44
|
+
if ((tick & 128) !== 0) {
|
|
45
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("79736823300114093921829183326")), 96, 256);
|
|
46
|
+
}
|
|
47
|
+
if ((tick & 256) !== 0) {
|
|
48
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("80248749790819932309965073892")), 96, 256);
|
|
49
|
+
}
|
|
50
|
+
if ((tick & 512) !== 0) {
|
|
51
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("81282483887344747381513967011")), 96, 256);
|
|
52
|
+
}
|
|
53
|
+
if ((tick & 1024) !== 0) {
|
|
54
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("83390072131320151908154831281")), 96, 256);
|
|
55
|
+
}
|
|
56
|
+
if ((tick & 2048) !== 0) {
|
|
57
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("87770609709833776024991924138")), 96, 256);
|
|
58
|
+
}
|
|
59
|
+
if ((tick & 4096) !== 0) {
|
|
60
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("97234110755111693312479820773")), 96, 256);
|
|
61
|
+
}
|
|
62
|
+
if ((tick & 8192) !== 0) {
|
|
63
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("119332217159966728226237229890")), 96, 256);
|
|
64
|
+
}
|
|
65
|
+
if ((tick & 16384) !== 0) {
|
|
66
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("179736315981702064433883588727")), 96, 256);
|
|
67
|
+
}
|
|
68
|
+
if ((tick & 32768) !== 0) {
|
|
69
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("407748233172238350107850275304")), 96, 256);
|
|
70
|
+
}
|
|
71
|
+
if ((tick & 65536) !== 0) {
|
|
72
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("2098478828474011932436660412517")), 96, 256);
|
|
73
|
+
}
|
|
74
|
+
if ((tick & 131072) !== 0) {
|
|
75
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("55581415166113811149459800483533")), 96, 256);
|
|
76
|
+
}
|
|
77
|
+
if ((tick & 262144) !== 0) {
|
|
78
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("38992368544603139932233054999993551")), 96, 256);
|
|
79
|
+
}
|
|
80
|
+
return new bignumber_js_1.BigNumber(signedShiftRight(ratio, 32, 256).toString());
|
|
81
|
+
}
|
|
82
|
+
function tickIndexToSqrtPriceNegative(tickIndex) {
|
|
83
|
+
const tick = Math.abs(tickIndex);
|
|
84
|
+
let ratio;
|
|
85
|
+
if ((tick & 1) !== 0) {
|
|
86
|
+
ratio = new bn_js_1.default("18445821805675392311");
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
ratio = new bn_js_1.default("18446744073709551616");
|
|
90
|
+
}
|
|
91
|
+
if ((tick & 2) !== 0) {
|
|
92
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18444899583751176498")), 64, 256);
|
|
93
|
+
}
|
|
94
|
+
if ((tick & 4) !== 0) {
|
|
95
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18443055278223354162")), 64, 256);
|
|
96
|
+
}
|
|
97
|
+
if ((tick & 8) !== 0) {
|
|
98
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18439367220385604838")), 64, 256);
|
|
99
|
+
}
|
|
100
|
+
if ((tick & 16) !== 0) {
|
|
101
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18431993317065449817")), 64, 256);
|
|
102
|
+
}
|
|
103
|
+
if ((tick & 32) !== 0) {
|
|
104
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18417254355718160513")), 64, 256);
|
|
105
|
+
}
|
|
106
|
+
if ((tick & 64) !== 0) {
|
|
107
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18387811781193591352")), 64, 256);
|
|
108
|
+
}
|
|
109
|
+
if ((tick & 128) !== 0) {
|
|
110
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18329067761203520168")), 64, 256);
|
|
111
|
+
}
|
|
112
|
+
if ((tick & 256) !== 0) {
|
|
113
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("18212142134806087854")), 64, 256);
|
|
114
|
+
}
|
|
115
|
+
if ((tick & 512) !== 0) {
|
|
116
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("17980523815641551639")), 64, 256);
|
|
117
|
+
}
|
|
118
|
+
if ((tick & 1024) !== 0) {
|
|
119
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("17526086738831147013")), 64, 256);
|
|
120
|
+
}
|
|
121
|
+
if ((tick & 2048) !== 0) {
|
|
122
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("16651378430235024244")), 64, 256);
|
|
123
|
+
}
|
|
124
|
+
if ((tick & 4096) !== 0) {
|
|
125
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("15030750278693429944")), 64, 256);
|
|
126
|
+
}
|
|
127
|
+
if ((tick & 8192) !== 0) {
|
|
128
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("12247334978882834399")), 64, 256);
|
|
129
|
+
}
|
|
130
|
+
if ((tick & 16384) !== 0) {
|
|
131
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("8131365268884726200")), 64, 256);
|
|
132
|
+
}
|
|
133
|
+
if ((tick & 32768) !== 0) {
|
|
134
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("3584323654723342297")), 64, 256);
|
|
135
|
+
}
|
|
136
|
+
if ((tick & 65536) !== 0) {
|
|
137
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("696457651847595233")), 64, 256);
|
|
138
|
+
}
|
|
139
|
+
if ((tick & 131072) !== 0) {
|
|
140
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("26294789957452057")), 64, 256);
|
|
141
|
+
}
|
|
142
|
+
if ((tick & 262144) !== 0) {
|
|
143
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default("37481735321082")), 64, 256);
|
|
144
|
+
}
|
|
145
|
+
return new bignumber_js_1.BigNumber(ratio.toString());
|
|
146
|
+
}
|
|
147
|
+
function tickIndexToSqrtPriceX64(tickIndex) {
|
|
148
|
+
if (tickIndex > 0) {
|
|
149
|
+
return new bignumber_js_1.BigNumber(tickIndexToSqrtPricePositive(tickIndex));
|
|
150
|
+
}
|
|
151
|
+
return new bignumber_js_1.BigNumber(tickIndexToSqrtPriceNegative(tickIndex));
|
|
152
|
+
}
|
|
153
|
+
const fromX64Decimal = (num) => num.times(decimal_js_1.Decimal.pow(2, -64));
|
|
154
|
+
const toX64Decimal = (num) => num.times(decimal_js_1.Decimal.pow(2, 64));
|
|
155
|
+
function getTokenAmountsFromLiquidity(liquidity, tickCurrentIndex, tickLowerIndex, tickUpperIndex, roundUp) {
|
|
156
|
+
const currentSqrtPrice = tickIndexToSqrtPriceX64(tickCurrentIndex);
|
|
157
|
+
const lowerSqrtPrice = tickIndexToSqrtPriceX64(tickLowerIndex);
|
|
158
|
+
const upperSqrtPrice = tickIndexToSqrtPriceX64(tickUpperIndex);
|
|
159
|
+
const decLiquidity = new decimal_js_1.Decimal(liquidity.toString());
|
|
160
|
+
const currentPrice = new decimal_js_1.Decimal(currentSqrtPrice.toString());
|
|
161
|
+
const lowerPrice = new decimal_js_1.Decimal(lowerSqrtPrice.toString());
|
|
162
|
+
const upperPrice = new decimal_js_1.Decimal(upperSqrtPrice.toString());
|
|
163
|
+
let tokenA;
|
|
164
|
+
let tokenB;
|
|
165
|
+
if (currentSqrtPrice.lt(lowerSqrtPrice)) {
|
|
166
|
+
// x = L * (pb - pa) / (pa * pb)
|
|
167
|
+
tokenA = toX64Decimal(decLiquidity)
|
|
168
|
+
.times(upperPrice.sub(lowerPrice))
|
|
169
|
+
.div(lowerPrice.mul(upperPrice));
|
|
170
|
+
tokenB = new decimal_js_1.Decimal(0);
|
|
171
|
+
}
|
|
172
|
+
else if (currentSqrtPrice.lt(upperSqrtPrice)) {
|
|
173
|
+
// x = L * (pb - p) / (p * pb)
|
|
174
|
+
// y = L * (p - pa)
|
|
175
|
+
tokenA = toX64Decimal(decLiquidity)
|
|
176
|
+
.times(upperPrice.sub(currentPrice))
|
|
177
|
+
.div(currentPrice.mul(upperPrice));
|
|
178
|
+
tokenB = fromX64Decimal(decLiquidity.mul(currentPrice.sub(lowerPrice)));
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
// y = L * (pb - pa)
|
|
182
|
+
tokenA = new decimal_js_1.Decimal(0);
|
|
183
|
+
tokenB = fromX64Decimal(decLiquidity.mul(upperPrice.sub(lowerPrice)));
|
|
184
|
+
}
|
|
185
|
+
if (roundUp) {
|
|
186
|
+
return {
|
|
187
|
+
tokenAmountA: new bignumber_js_1.BigNumber(tokenA.ceil().toString()),
|
|
188
|
+
tokenAmountB: new bignumber_js_1.BigNumber(tokenB.ceil().toString()),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
tokenAmountA: new bignumber_js_1.BigNumber(tokenA.floor().toString()),
|
|
193
|
+
tokenAmountB: new bignumber_js_1.BigNumber(tokenB.floor().toString()),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=tokenAmountFromLiquidity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenAmountFromLiquidity.js","sourceRoot":"","sources":["../../../../src/utils/clmm/tokenAmountFromLiquidity.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-bitwise */\nimport { BigNumber } from \"bignumber.js\";\nimport BN from \"bn.js\";\nimport { Decimal } from \"decimal.js\";\n\nexport function signedShiftRight(n0: BN, shiftBy: number, bitWidth: number) {\n const twoN0 = n0.toTwos(bitWidth).shrn(shiftBy);\n twoN0.imaskn(bitWidth - shiftBy + 1);\n return twoN0.fromTwos(bitWidth - shiftBy);\n}\n\nexport function tickIndexToSqrtPricePositive(tick: number): BigNumber {\n let ratio: BN;\n\n if ((tick & 1) !== 0) {\n ratio = new BN(\"79232123823359799118286999567\");\n } else {\n ratio = new BN(\"79228162514264337593543950336\");\n }\n\n if ((tick & 2) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79236085330515764027303304731\")),\n 96,\n 256,\n );\n }\n if ((tick & 4) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79244008939048815603706035061\")),\n 96,\n 256,\n );\n }\n if ((tick & 8) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79259858533276714757314932305\")),\n 96,\n 256,\n );\n }\n if ((tick & 16) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79291567232598584799939703904\")),\n 96,\n 256,\n );\n }\n if ((tick & 32) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79355022692464371645785046466\")),\n 96,\n 256,\n );\n }\n if ((tick & 64) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79482085999252804386437311141\")),\n 96,\n 256,\n );\n }\n if ((tick & 128) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"79736823300114093921829183326\")),\n 96,\n 256,\n );\n }\n if ((tick & 256) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"80248749790819932309965073892\")),\n 96,\n 256,\n );\n }\n if ((tick & 512) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"81282483887344747381513967011\")),\n 96,\n 256,\n );\n }\n if ((tick & 1024) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"83390072131320151908154831281\")),\n 96,\n 256,\n );\n }\n if ((tick & 2048) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"87770609709833776024991924138\")),\n 96,\n 256,\n );\n }\n if ((tick & 4096) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"97234110755111693312479820773\")),\n 96,\n 256,\n );\n }\n if ((tick & 8192) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"119332217159966728226237229890\")),\n 96,\n 256,\n );\n }\n if ((tick & 16384) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"179736315981702064433883588727\")),\n 96,\n 256,\n );\n }\n if ((tick & 32768) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"407748233172238350107850275304\")),\n 96,\n 256,\n );\n }\n if ((tick & 65536) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"2098478828474011932436660412517\")),\n 96,\n 256,\n );\n }\n if ((tick & 131072) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"55581415166113811149459800483533\")),\n 96,\n 256,\n );\n }\n if ((tick & 262144) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"38992368544603139932233054999993551\")),\n 96,\n 256,\n );\n }\n\n return new BigNumber(signedShiftRight(ratio, 32, 256).toString());\n}\n\nexport function tickIndexToSqrtPriceNegative(tickIndex: number) {\n const tick = Math.abs(tickIndex);\n let ratio: BN;\n\n if ((tick & 1) !== 0) {\n ratio = new BN(\"18445821805675392311\");\n } else {\n ratio = new BN(\"18446744073709551616\");\n }\n\n if ((tick & 2) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18444899583751176498\")),\n 64,\n 256,\n );\n }\n if ((tick & 4) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18443055278223354162\")),\n 64,\n 256,\n );\n }\n if ((tick & 8) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18439367220385604838\")),\n 64,\n 256,\n );\n }\n if ((tick & 16) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18431993317065449817\")),\n 64,\n 256,\n );\n }\n if ((tick & 32) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18417254355718160513\")),\n 64,\n 256,\n );\n }\n if ((tick & 64) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18387811781193591352\")),\n 64,\n 256,\n );\n }\n if ((tick & 128) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18329067761203520168\")),\n 64,\n 256,\n );\n }\n if ((tick & 256) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"18212142134806087854\")),\n 64,\n 256,\n );\n }\n if ((tick & 512) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"17980523815641551639\")),\n 64,\n 256,\n );\n }\n if ((tick & 1024) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"17526086738831147013\")),\n 64,\n 256,\n );\n }\n if ((tick & 2048) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"16651378430235024244\")),\n 64,\n 256,\n );\n }\n if ((tick & 4096) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"15030750278693429944\")),\n 64,\n 256,\n );\n }\n if ((tick & 8192) !== 0) {\n ratio = signedShiftRight(\n ratio.mul(new BN(\"12247334978882834399\")),\n 64,\n 256,\n );\n }\n if ((tick & 16384) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"8131365268884726200\")), 64, 256);\n }\n if ((tick & 32768) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"3584323654723342297\")), 64, 256);\n }\n if ((tick & 65536) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"696457651847595233\")), 64, 256);\n }\n if ((tick & 131072) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"26294789957452057\")), 64, 256);\n }\n if ((tick & 262144) !== 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"37481735321082\")), 64, 256);\n }\n\n return new BigNumber(ratio.toString());\n}\n\nexport function tickIndexToSqrtPriceX64(tickIndex: number) {\n if (tickIndex > 0) {\n return new BigNumber(tickIndexToSqrtPricePositive(tickIndex));\n }\n return new BigNumber(tickIndexToSqrtPriceNegative(tickIndex));\n}\n\nconst fromX64Decimal = (num: Decimal) => num.times(Decimal.pow(2, -64));\nconst toX64Decimal = (num: Decimal) => num.times(Decimal.pow(2, 64));\n\nexport function getTokenAmountsFromLiquidity(\n liquidity: BigNumber,\n tickCurrentIndex: number,\n tickLowerIndex: number,\n tickUpperIndex: number,\n roundUp: boolean,\n): { tokenAmountA: BigNumber; tokenAmountB: BigNumber } {\n const currentSqrtPrice = tickIndexToSqrtPriceX64(tickCurrentIndex);\n const lowerSqrtPrice = tickIndexToSqrtPriceX64(tickLowerIndex);\n const upperSqrtPrice = tickIndexToSqrtPriceX64(tickUpperIndex);\n\n const decLiquidity = new Decimal(liquidity.toString());\n const currentPrice = new Decimal(currentSqrtPrice.toString());\n const lowerPrice = new Decimal(lowerSqrtPrice.toString());\n const upperPrice = new Decimal(upperSqrtPrice.toString());\n let tokenA: Decimal;\n let tokenB: Decimal;\n\n if (currentSqrtPrice.lt(lowerSqrtPrice)) {\n // x = L * (pb - pa) / (pa * pb)\n tokenA = toX64Decimal(decLiquidity)\n .times(upperPrice.sub(lowerPrice))\n .div(lowerPrice.mul(upperPrice));\n tokenB = new Decimal(0);\n } else if (currentSqrtPrice.lt(upperSqrtPrice)) {\n // x = L * (pb - p) / (p * pb)\n // y = L * (p - pa)\n tokenA = toX64Decimal(decLiquidity)\n .times(upperPrice.sub(currentPrice))\n .div(currentPrice.mul(upperPrice));\n tokenB = fromX64Decimal(decLiquidity.mul(currentPrice.sub(lowerPrice)));\n } else {\n // y = L * (pb - pa)\n tokenA = new Decimal(0);\n tokenB = fromX64Decimal(decLiquidity.mul(upperPrice.sub(lowerPrice)));\n }\n\n if (roundUp) {\n return {\n tokenAmountA: new BigNumber(tokenA.ceil().toString()),\n tokenAmountB: new BigNumber(tokenB.ceil().toString()),\n };\n }\n\n return {\n tokenAmountA: new BigNumber(tokenA.floor().toString()),\n tokenAmountB: new BigNumber(tokenB.floor().toString()),\n };\n}\n"]}
|