@ape.swap/bonds-sdk 6.2.1 → 6.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/MenuSelect/MenuSelect.d.ts +1 -1
- package/dist/components/MenuSelect/MenuSelect.js.map +1 -1
- package/dist/components/ProgressBar/ProgressBarWrapper.d.ts +1 -1
- package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -1
- package/dist/components/TokenInfoAndName/index.d.ts +0 -1
- package/dist/components/TokenInfoAndName/index.js +1 -1
- package/dist/components/TokenInfoAndName/index.js.map +1 -1
- package/dist/components/TokenSelectorModal/TokenRow.js +2 -2
- package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -1
- package/dist/components/TokenSelectorPanel/index.js +3 -3
- package/dist/components/TokenSelectorPanel/index.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/uikit-sdk/Button/Button.js +0 -36
- package/dist/components/uikit-sdk/Button/Button.js.map +1 -1
- package/dist/components/uikit-sdk/Button/types.d.ts +6 -10
- package/dist/components/uikit-sdk/Button/types.js +0 -5
- package/dist/components/uikit-sdk/Button/types.js.map +1 -1
- package/dist/components/uikit-sdk/Checkbox/types.d.ts +2 -1
- package/dist/components/uikit-sdk/Checkbox/types.js.map +1 -1
- package/dist/components/uikit-sdk/Skeleton/styles.d.ts +0 -12
- package/dist/components/uikit-sdk/Skeleton/styles.js +1 -1
- package/dist/components/uikit-sdk/Skeleton/styles.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.d.ts +2 -2
- package/dist/components/uikit-sdk/Svg/styles.d.ts +0 -2
- package/dist/components/uikit-sdk/Svg/styles.js.map +1 -1
- package/dist/components/uikit-sdk/Text/types.d.ts +1 -1
- package/dist/components/uikit-sdk/Text/types.js +1 -1
- package/dist/components/uikit-sdk/Text/types.js.map +1 -1
- package/dist/components/uikit-sdk/TooltipBubble/types.d.ts +2 -1
- package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -1
- package/dist/config/constants/aptosZapTokens.d.ts +0 -9
- package/dist/config/constants/aptosZapTokens.js +1 -2
- package/dist/config/constants/aptosZapTokens.js.map +1 -1
- package/dist/config/constants/networks.d.ts +0 -2
- package/dist/config/constants/networks.js +1 -1
- package/dist/config/constants/networks.js.map +1 -1
- package/dist/config/constants/tokens.d.ts +1 -2
- package/dist/constants/aptosConstants.d.ts +0 -6
- package/dist/constants/aptosConstants.js +15 -1
- package/dist/constants/aptosConstants.js.map +1 -1
- package/dist/constants/solanaConstants.d.ts +0 -6
- package/dist/constants/solanaConstants.js +0 -21
- package/dist/constants/solanaConstants.js.map +1 -1
- package/dist/constants/suiConstants.d.ts +0 -5
- package/dist/constants/suiConstants.js +11 -0
- package/dist/constants/suiConstants.js.map +1 -1
- package/dist/hooks/useSortedZapList.d.ts +1 -1
- package/dist/hooks/useSortedZapList.js +1 -2
- package/dist/hooks/useSortedZapList.js.map +1 -1
- package/dist/hooks/useTokenFromZapList.js +0 -1
- package/dist/hooks/useTokenFromZapList.js.map +1 -1
- package/dist/providers/index.d.ts +11 -0
- package/dist/providers/index.js +0 -6
- package/dist/providers/index.js.map +1 -1
- package/dist/state/allowance/useAllowance.js +2 -3
- package/dist/state/allowance/useAllowance.js.map +1 -1
- package/dist/state/balance/useCurrencyBalance.js +2 -3
- package/dist/state/balance/useCurrencyBalance.js.map +1 -1
- package/dist/state/balance/useCurrencyBalanceAptos.js +5 -5
- package/dist/state/balance/useCurrencyBalanceAptos.js.map +1 -1
- package/dist/state/balance/useCurrencyBalanceSolana.d.ts +0 -2
- package/dist/state/balance/useCurrencyBalanceSolana.js +3 -6
- package/dist/state/balance/useCurrencyBalanceSolana.js.map +1 -1
- package/dist/state/balance/useCurrencyBalanceSui.js +2 -2
- package/dist/state/balance/useCurrencyBalanceSui.js.map +1 -1
- package/dist/state/balance/useUserTokensBalance.js +3 -5
- package/dist/state/balance/useUserTokensBalance.js.map +1 -1
- package/dist/state/bondApiStats/useGetBondApiStats.d.ts +0 -1
- package/dist/state/bondApiStats/useGetBondApiStats.js +1 -1
- package/dist/state/bondApiStats/useGetBondApiStats.js.map +1 -1
- package/dist/state/bonds/fetchBondsData/cleanBillsData.js +16 -13
- package/dist/state/bonds/fetchBondsData/cleanBillsData.js.map +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.d.ts +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js +4 -6
- package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js.map +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.d.ts +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.js +4 -3
- package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.js.map +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.d.ts +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.js +2 -3
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.js.map +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.d.ts +1 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js +5 -7
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js.map +1 -1
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.d.ts +1 -2
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js +2 -5
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js.map +1 -1
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSOL.js +2 -5
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSOL.js.map +1 -1
- package/dist/state/bonds/useBondsList.d.ts +1 -2
- package/dist/state/bonds/useBondsList.js +1 -1
- package/dist/state/bonds/useBondsList.js.map +1 -1
- package/dist/state/bonds/useBondsListPreTGE.d.ts +1 -2
- package/dist/state/bonds/useBondsListPreTGE.js +1 -1
- package/dist/state/bonds/useBondsListPreTGE.js.map +1 -1
- package/dist/state/bonds/useTierProofSignature.d.ts +0 -1
- package/dist/state/bonds/useTierProofSignature.js +1 -1
- package/dist/state/bonds/useTierProofSignature.js.map +1 -1
- package/dist/state/bonds/useUserBondsPreTGE.d.ts +3 -4
- package/dist/state/bonds/useUserBondsPreTGE.js +4 -7
- package/dist/state/bonds/useUserBondsPreTGE.js.map +1 -1
- package/dist/state/historicalPrice/useHistoricalPrice.d.ts +1 -2
- package/dist/state/historicalPrice/useHistoricalPrice.js +1 -1
- package/dist/state/historicalPrice/useHistoricalPrice.js.map +1 -1
- package/dist/state/hotBonds/useHotBonds.d.ts +0 -2
- package/dist/state/hotBonds/useHotBonds.js +1 -1
- package/dist/state/hotBonds/useHotBonds.js.map +1 -1
- package/dist/state/price/useCurrencyPrice.js +1 -2
- package/dist/state/price/useCurrencyPrice.js.map +1 -1
- package/dist/state/recommendations/useGetBondRecommendations.d.ts +0 -1
- package/dist/state/recommendations/useGetBondRecommendations.js +1 -1
- package/dist/state/recommendations/useGetBondRecommendations.js.map +1 -1
- package/dist/state/tiers/useTierPoints.d.ts +0 -6
- package/dist/state/tiers/useTierPoints.js +16 -17
- package/dist/state/tiers/useTierPoints.js.map +1 -1
- package/dist/state/zap/useAptosZapQuote.d.ts +1 -16
- package/dist/state/zap/useAptosZapQuote.js +4 -4
- package/dist/state/zap/useAptosZapQuote.js.map +1 -1
- package/dist/state/zap/useJupiterSolanaQuote.js +4 -11
- package/dist/state/zap/useJupiterSolanaQuote.js.map +1 -1
- package/dist/state/zap/useSoulZapBondQuote.js +12 -21
- package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
- package/dist/state/zap/useSuiZapQuote.d.ts +1 -1
- package/dist/state/zap/useSuiZapQuote.js +9 -14
- package/dist/state/zap/useSuiZapQuote.js.map +1 -1
- package/dist/theme/base.d.ts +1 -4
- package/dist/theme/base.js +1 -1
- package/dist/theme/base.js.map +1 -1
- package/dist/theme/components.d.ts +0 -20
- package/dist/theme/components.js +1 -1
- package/dist/theme/components.js.map +1 -1
- package/dist/types/aptosBonds.d.ts +0 -60
- package/dist/types/bondIssuanceCodec.d.ts +0 -1
- package/dist/types/bondIssuanceCodec.js.map +1 -1
- package/dist/types/bondTermCodec.d.ts +0 -1
- package/dist/types/bondTermCodec.js.map +1 -1
- package/dist/types/solanaBonds.d.ts +4 -3
- package/dist/utils/aptosHelpers.d.ts +1 -14
- package/dist/utils/aptosHelpers.js +30 -2
- package/dist/utils/aptosHelpers.js.map +1 -1
- package/dist/utils/bondPriceHelpers.d.ts +1 -1
- package/dist/utils/bondPriceHelpers.js +5 -11
- package/dist/utils/bondPriceHelpers.js.map +1 -1
- package/dist/utils/calculateSolanaTrueBillPrice.d.ts +0 -4
- package/dist/utils/calculateSolanaTrueBillPrice.js +33 -32
- package/dist/utils/calculateSolanaTrueBillPrice.js.map +1 -1
- package/dist/utils/convertToBigish.d.ts +0 -1
- package/dist/utils/convertToBigish.js +3 -18
- package/dist/utils/convertToBigish.js.map +1 -1
- package/dist/utils/displayHelpers.d.ts +3 -9
- package/dist/utils/displayHelpers.js +63 -47
- package/dist/utils/displayHelpers.js.map +1 -1
- package/dist/utils/fixedPoint.d.ts +28 -0
- package/dist/utils/fixedPoint.js +239 -0
- package/dist/utils/fixedPoint.js.map +1 -0
- package/dist/utils/formatNumber.d.ts +0 -7
- package/dist/utils/formatNumber.js +6 -12
- package/dist/utils/formatNumber.js.map +1 -1
- package/dist/utils/getBalanceNumber.d.ts +1 -2
- package/dist/utils/getBalanceNumber.js +5 -3
- package/dist/utils/getBalanceNumber.js.map +1 -1
- package/dist/utils/getNativeTicker.js +0 -1
- package/dist/utils/getNativeTicker.js.map +1 -1
- package/dist/utils/suiHelpers.d.ts +0 -2
- package/dist/utils/suiHelpers.js +13 -15
- package/dist/utils/suiHelpers.js.map +1 -1
- package/dist/views/Bonds/Bonds.d.ts +0 -4
- package/dist/views/Bonds/Bonds.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.d.ts +1 -1
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.js +2 -3
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +1 -2
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js +1 -2
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
- package/dist/views/Bonds/components/BuyAgainRow/index.js +2 -4
- package/dist/views/Bonds/components/BuyAgainRow/index.js.map +1 -1
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.d.ts +1 -1
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -1
- package/dist/views/Bonds/utils.d.ts +0 -2
- package/dist/views/Bonds/utils.js +2 -3
- package/dist/views/Bonds/utils.js.map +1 -1
- package/dist/views/BuyBond/BuyBondModal.d.ts +1 -1
- package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
- package/dist/views/BuyBond/BuyComponent.js +16 -17
- package/dist/views/BuyBond/BuyComponent.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentAptos.d.ts +1 -1
- package/dist/views/BuyBond/BuyComponentAptos.js +20 -33
- package/dist/views/BuyBond/BuyComponentAptos.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentPreTGE.js +6 -8
- package/dist/views/BuyBond/BuyComponentPreTGE.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSolana.d.ts +1 -1
- package/dist/views/BuyBond/BuyComponentSolana.js +20 -27
- package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSui.d.ts +1 -1
- package/dist/views/BuyBond/BuyComponentSui.js +15 -28
- package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +2 -2
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -1
- package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js +6 -9
- package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.d.ts +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.d.ts +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.d.ts +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js.map +1 -1
- package/dist/views/ProjectView/components/BondStats/index.js +2 -4
- package/dist/views/ProjectView/components/BondStats/index.js.map +1 -1
- package/dist/views/ProjectView/components/BondStats/types.d.ts +2 -1
- package/dist/views/ProjectView/components/BondStats/types.js.map +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.d.ts +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js +4 -5
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js.map +1 -1
- package/dist/views/YourBondsModal/components/LinkShare/htmlToJpeg.d.ts +8 -0
- package/dist/views/YourBondsModal/components/LinkShare/htmlToJpeg.js +43 -0
- package/dist/views/YourBondsModal/components/LinkShare/htmlToJpeg.js.map +1 -0
- package/dist/views/YourBondsModal/components/LinkShare/templateImageShare.d.ts +8 -1
- package/dist/views/YourBondsModal/components/LinkShare/templateImageShare.js +172 -15
- package/dist/views/YourBondsModal/components/LinkShare/templateImageShare.js.map +1 -1
- package/dist/views/YourBondsModal/components/LinkShare/utils.js +19 -10
- package/dist/views/YourBondsModal/components/LinkShare/utils.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js +1 -2
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
- package/package.json +6 -8
- package/dist/components/AccordionText/index.d.ts +0 -6
- package/dist/components/RestrictedRegionModal/index.d.ts +0 -5
- package/dist/components/TabNavigation/index.d.ts +0 -8
- package/dist/components/uikit-sdk/Input/NumericInput.d.ts +0 -9
- package/dist/components/uikit-sdk/Modal/ModalFooter.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Audit.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Fire.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/FullLogo.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Instagram.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Language.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Medium.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Pool.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Reddit.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Telegram.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Website.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/BSC.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/CELO.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/CRONOS.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/FANTOM.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/OKX.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.d.ts +0 -4
- package/dist/config/constants/tokens.js +0 -36
- package/dist/config/constants/tokens.js.map +0 -1
- package/dist/contexts/RefreshContext.d.ts +0 -10
- package/dist/hooks/useRefresh.d.ts +0 -6
- package/dist/hooks/useTimer.d.ts +0 -2
- package/dist/state/bondApiStats/useUserApiStats.d.ts +0 -22
- package/dist/state/bonds/aptosBondsConfig.d.ts +0 -4
- package/dist/state/bonds/fetchUsersBonds/getBillNftData.d.ts +0 -9
- package/dist/state/geoFencing/useGeoFencing.d.ts +0 -5
- package/dist/state/zap/useSoulZapTokenQuote.d.ts +0 -3
- package/dist/state/zap/useTierOptimizationPreview.d.ts +0 -27
- package/dist/views/ZapModal/index.d.ts +0 -13
- package/dist/views/ZapModal/styles.d.ts +0 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import BigNumber from 'bignumber.js';
|
|
3
2
|
import { dexFactories, Wrappers, BillVersion, zapInputTokens, WNATIVE } from '@ape.swap/apeswap-lists';
|
|
4
3
|
import { getChainParam, getLpType } from './getChainParam.js';
|
|
5
4
|
import axios from 'axios';
|
|
@@ -8,9 +7,9 @@ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
|
8
7
|
import useCurrencyPrice from '../price/useCurrencyPrice.js';
|
|
9
8
|
import { useSlippage } from '../slippage/useSlippage.js';
|
|
10
9
|
import useDebounce from '../../hooks/useDebounce.js';
|
|
11
|
-
import '../../config/constants/tokens.js';
|
|
12
10
|
import { zapSupported, SOUL_ZAP_API } from '../../config/constants/variables.js';
|
|
13
11
|
import { useSDKConfig } from '../useSDKConfig.js';
|
|
12
|
+
import { parseUnits, formatUnits } from '../../utils/fixedPoint.js';
|
|
14
13
|
|
|
15
14
|
const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProofSig) => {
|
|
16
15
|
const isZapSupported = zapSupported.includes(bond?.chainId);
|
|
@@ -32,11 +31,7 @@ const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProof
|
|
|
32
31
|
const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex;
|
|
33
32
|
const vault = principalToken?.address?.[chainId];
|
|
34
33
|
const router = dexFactories[chainId]?.[liquidityDex]?.router;
|
|
35
|
-
|
|
36
|
-
const validated18DecimalAmount = new BigNumber(debouncedInput ?? '0').toFixed(18, 5);
|
|
37
|
-
const bigishInputAmount = new BigNumber(validated18DecimalAmount ?? '0')
|
|
38
|
-
.times(new BigNumber(10).pow(inputCurrencyDecimals ?? 18))
|
|
39
|
-
.toString();
|
|
34
|
+
const bigishInputAmount = parseUnits(debouncedInput ?? '0', inputCurrencyDecimals ?? 18).toString();
|
|
40
35
|
const zapInputData = useMemo(() => {
|
|
41
36
|
if (inputCurrencyString &&
|
|
42
37
|
inputCurrencyDecimals &&
|
|
@@ -172,34 +167,30 @@ const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProof
|
|
|
172
167
|
const toToken1Estimate = response?.lpQuote?.token1?.fromAmountEstimate;
|
|
173
168
|
const toToken1 = zapInputTokens[chainId]?.find((token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase());
|
|
174
169
|
const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId);
|
|
175
|
-
let toToken0USD =
|
|
176
|
-
?.div(new BigNumber(10).pow(toToken0?.decimals[chainId] ?? 18)) // this is amount of swap output
|
|
177
|
-
?.times(new BigNumber(toToken0Price?.price ?? 0)); // convert it to usd price
|
|
170
|
+
let toToken0USD = Number(formatUnits(toToken0Estimate ?? '0', toToken0?.decimals[chainId] ?? 18)) * (toToken0Price?.price ?? 0); // this is amount of swap output, converted to usd price
|
|
178
171
|
if (response?.lpQuote?.token0?.fromAmountUSD) {
|
|
179
|
-
toToken0USD =
|
|
172
|
+
toToken0USD = Number(response?.lpQuote?.token0?.fromAmountUSD);
|
|
180
173
|
}
|
|
181
|
-
let toToken1USD =
|
|
182
|
-
?.div(new BigNumber(10).pow(toToken1?.decimals[chainId] ?? 18)) // this is amount of swap output
|
|
183
|
-
?.times(new BigNumber(toToken1Price?.price ?? 0)); // convert it to usd price
|
|
174
|
+
let toToken1USD = Number(formatUnits(toToken1Estimate ?? '0', toToken1?.decimals[chainId] ?? 18)) * (toToken1Price?.price ?? 0); // this is amount of swap output, converted to usd price
|
|
184
175
|
if (response?.lpQuote?.token1?.fromAmountUSD) {
|
|
185
|
-
toToken1USD =
|
|
176
|
+
toToken1USD = Number(response?.lpQuote?.token1?.fromAmountUSD);
|
|
186
177
|
}
|
|
187
|
-
const youSpendUSD = toToken0USD
|
|
188
|
-
const estimatedDepositAmount = youSpendUSD
|
|
178
|
+
const youSpendUSD = toToken0USD + toToken1USD; // youSpendUSD
|
|
179
|
+
const estimatedDepositAmount = youSpendUSD / Number(bond?.principalTokenPrice ?? '0');
|
|
189
180
|
const isWrap = inputCurrency === 'NATIVE' &&
|
|
190
181
|
bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase();
|
|
191
182
|
const isPrincipalToken = inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId];
|
|
192
183
|
const estimatedDepositAmountToReturn = isWrap || isPrincipalToken
|
|
193
|
-
?
|
|
184
|
+
? (Number(typedValue || '0') * ((100 - bond?.tierBoostRate) / 100)).toString()
|
|
194
185
|
: estimatedDepositAmount.toString();
|
|
195
186
|
const trueBondPrice = response?.protocolQuote?.trueBondPrice;
|
|
196
187
|
// DEBUG: log tierOptimization when present
|
|
197
188
|
if (response?.protocolQuote?.tierOptimization) {
|
|
198
189
|
const tier = response.protocolQuote.tierOptimization;
|
|
199
190
|
const decimals = principalToken?.decimals?.[chainId] ?? 18;
|
|
200
|
-
const cost =
|
|
201
|
-
const input =
|
|
202
|
-
const profit =
|
|
191
|
+
const cost = Number(formatUnits(tier.tierCost, decimals));
|
|
192
|
+
const input = Number(formatUnits(tier.bondInput, decimals));
|
|
193
|
+
const profit = Number(formatUnits(tier.profit, decimals));
|
|
203
194
|
console.log('[ZAP] tierOptimization:', {
|
|
204
195
|
tier: `${tier.previousTier} → ${tier.newTier}`,
|
|
205
196
|
cost: cost.toFixed(6),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSoulZapBondQuote.js","sources":["../../../src/state/zap/useSoulZapBondQuote.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { BillVersion, ChainId, dexFactories, LiquidityDex, Token, Wrappers } from '@ape.swap/apeswap-lists'\nimport { getChainParam, getLpType } from './getChainParam'\nimport axios from 'axios'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { BondsData } from '../../types/bonds'\nimport { useSlippage } from '../slippage/useSlippage'\nimport useDebounce from '../../hooks/useDebounce'\nimport { WNATIVE, zapInputTokens } from '../../config/constants/tokens'\nimport { SOUL_ZAP_API, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { useSDKConfig } from '../useSDKConfig'\n\nconst useSoulZapBondQuote = (\n typedValue: string,\n inputCurrency: 'NATIVE' | Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n tierProofSig?: string,\n): [loading: boolean, response: any, depositAmount: string, error: boolean, trueBondPrice: string | undefined] => {\n const isZapSupported = zapSupported.includes(bond?.chainId as ZapSupportedChainId)\n const debouncedInput = useDebounce(typedValue, 500)\n const isDebouncing = typedValue !== debouncedInput\n const { evmSlippage: slippage } = useSlippage()\n const SDKConfig = useSDKConfig()\n\n const principalToken = bond?.lpToken as Token\n const bondContractAddress = bond?.contractAddress[bond?.chainId as ChainId]\n const chainId = bond?.chainId as ChainId\n const inputCurrencyString =\n inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId]\n const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals![chainId]\n const principalContractAddress = principalToken?.address[chainId]\n const chainName = getChainParam(chainId)\n\n const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking'\n const liquidityDex: LiquidityDex | undefined =\n principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId]\n const protocol = dexFactories[chainId]?.[liquidityDex!]?.protocol\n const lpType = isReserveBond ? 'single' : getLpType(protocol)\n const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex\n const vault = principalToken?.address?.[chainId]\n const router = dexFactories[chainId]?.[liquidityDex!]?.router\n\n // Validates that the user did not pass an amount with 19 decimals or more\n const validated18DecimalAmount = new BigNumber(debouncedInput ?? '0').toFixed(18, 5)\n const bigishInputAmount = new BigNumber(validated18DecimalAmount ?? '0')\n .times(new BigNumber(10).pow(inputCurrencyDecimals ?? 18))\n .toString()\n\n const zapInputData = useMemo(() => {\n if (\n inputCurrencyString &&\n inputCurrencyDecimals &&\n bigishInputAmount !== 'NaN' &&\n bigishInputAmount !== '0' &&\n principalContractAddress &&\n chainName &&\n bondContractAddress &&\n isZapSupported\n ) {\n if (principalToken.liquidityWrapper && principalToken.liquidityWrapper === Wrappers.Steer) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'steer',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n lpAddress: vault,\n periphery: '0xCEBF1A54A9Ce703FC80967760b5A6cbDb4111099',\n slippage,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n }\n // a.k.a if it is principal token\n if (inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'none',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType:\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n ? 'none'\n : lpType,\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n underlyingDex: ichiUnderlyingDex,\n vault: isReserveBond ? undefined : vault,\n slippage: slippage,\n lpAddress: lpType === 'solidly' || lpType === 'univ2' || lpType === 'curve' ? vault : undefined,\n router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,\n toToken: isReserveBond ? vault : undefined,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else {\n return null\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [\n bigishInputAmount,\n principalContractAddress,\n chainName,\n account,\n ichiUnderlyingDex,\n vault,\n lpType,\n router,\n slippage,\n ])\n\n const queryKey = useMemo(() => {\n if (!zapInputData) return null\n return [\n 'zapBondDetails',\n zapInputData.chain,\n zapInputData.user,\n zapInputData.lpData.lpType,\n zapInputData.lpData.fromToken,\n zapInputData.lpData.fromAmount,\n zapInputData.lpData.underlyingDex ?? '',\n zapInputData.lpData.vault,\n zapInputData.lpData.slippage,\n zapInputData.lpData.lpAddress,\n zapInputData.lpData.router ?? '',\n ]\n }, [zapInputData])\n\n const fetchZapDetails = async () => {\n const response = await axios.post(SOUL_ZAP_API, zapInputData)\n return response.data?.result?.data\n }\n\n const {\n data: response,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],\n queryFn: fetchZapDetails,\n refetchInterval: 60000, // i.e. 60 sec\n staleTime: 60000,\n enabled: !!queryKey,\n retry: 1,\n })\n const zapError = !!error\n\n const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : []\n\n // toToken0 data\n const toToken0Estimate: string | undefined = response?.lpQuote?.token0?.fromAmountEstimate\n const toToken0 = [...tokenList, principalToken]?.find(\n (token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase(),\n )\n const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId)\n\n // toToken1 data\n const toToken1Estimate: string | undefined = response?.lpQuote?.token1?.fromAmountEstimate\n const toToken1 = zapInputTokens[chainId]?.find(\n (token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase(),\n )\n const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId)\n\n let toToken0USD = new BigNumber(toToken0Estimate ?? '0')\n ?.div(new BigNumber(10).pow(toToken0?.decimals![chainId] ?? 18)) // this is amount of swap output\n ?.times(new BigNumber(toToken0Price?.price ?? 0)) // convert it to usd price\n\n if (response?.lpQuote?.token0?.fromAmountUSD) {\n toToken0USD = new BigNumber(response?.lpQuote?.token0?.fromAmountUSD)\n }\n\n let toToken1USD = new BigNumber(toToken1Estimate ?? '0')\n ?.div(new BigNumber(10).pow(toToken1?.decimals![chainId] ?? 18)) // this is amount of swap output\n ?.times(new BigNumber(toToken1Price?.price ?? 0)) // convert it to usd price\n\n if (response?.lpQuote?.token1?.fromAmountUSD) {\n toToken1USD = new BigNumber(response?.lpQuote?.token1?.fromAmountUSD)\n }\n\n const youSpendUSD = toToken0USD.plus(toToken1USD) // youSpendUSD\n const estimatedDepositAmount = youSpendUSD.div(bond?.principalTokenPrice ?? '0')\n\n const isWrap =\n inputCurrency === 'NATIVE' &&\n bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const isPrincipalToken =\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n\n const estimatedDepositAmountToReturn =\n isWrap || isPrincipalToken\n ? new BigNumber(typedValue || '0').times((100 - bond?.tierBoostRate!) / 100).toString()\n : estimatedDepositAmount.toString()\n\n const trueBondPrice: string | undefined = response?.protocolQuote?.trueBondPrice\n\n // DEBUG: log tierOptimization when present\n if (response?.protocolQuote?.tierOptimization) {\n const tier = response.protocolQuote.tierOptimization\n const decimals = principalToken?.decimals?.[chainId] ?? 18\n const cost = new BigNumber(tier.tierCost).div(new BigNumber(10).pow(decimals))\n const input = new BigNumber(tier.bondInput).div(new BigNumber(10).pow(decimals))\n const profit = new BigNumber(tier.profit).div(new BigNumber(10).pow(decimals))\n console.log('[ZAP] tierOptimization:', {\n tier: `${tier.previousTier} → ${tier.newTier}`,\n cost: cost.toFixed(6),\n bondInput: input.toFixed(6),\n profit: profit.toFixed(6),\n })\n }\n\n const zapLoading = isDebouncing || isLoading || isFetching\n if (zapLoading) return [true, undefined, '', false, undefined]\n\n return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice]\n}\n\nexport default useSoulZapBondQuote\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSoulZapBondQuote.js","sources":["../../../src/state/zap/useSoulZapBondQuote.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { BillVersion, ChainId, dexFactories, LiquidityDex, Token, Wrappers } from '@ape.swap/apeswap-lists'\nimport { getChainParam, getLpType } from './getChainParam'\nimport axios from 'axios'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { BondsData } from '../../types/bonds'\nimport { useSlippage } from '../slippage/useSlippage'\nimport useDebounce from '../../hooks/useDebounce'\nimport { WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport { SOUL_ZAP_API, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { useSDKConfig } from '../useSDKConfig'\nimport { formatUnits, parseUnits } from '../../utils/fixedPoint'\n\nconst useSoulZapBondQuote = (\n typedValue: string,\n inputCurrency: 'NATIVE' | Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n tierProofSig?: string,\n): [loading: boolean, response: any, depositAmount: string, error: boolean, trueBondPrice: string | undefined] => {\n const isZapSupported = zapSupported.includes(bond?.chainId as ZapSupportedChainId)\n const debouncedInput = useDebounce(typedValue, 500)\n const isDebouncing = typedValue !== debouncedInput\n const { evmSlippage: slippage } = useSlippage()\n const SDKConfig = useSDKConfig()\n\n const principalToken = bond?.lpToken as Token\n const bondContractAddress = bond?.contractAddress[bond?.chainId as ChainId]\n const chainId = bond?.chainId as ChainId\n const inputCurrencyString =\n inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId]\n const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals![chainId]\n const principalContractAddress = principalToken?.address[chainId]\n const chainName = getChainParam(chainId)\n\n const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking'\n const liquidityDex: LiquidityDex | undefined =\n principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId]\n const protocol = dexFactories[chainId]?.[liquidityDex!]?.protocol\n const lpType = isReserveBond ? 'single' : getLpType(protocol)\n const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex\n const vault = principalToken?.address?.[chainId]\n const router = dexFactories[chainId]?.[liquidityDex!]?.router\n\n const bigishInputAmount = parseUnits(debouncedInput ?? '0', inputCurrencyDecimals ?? 18).toString()\n\n const zapInputData = useMemo(() => {\n if (\n inputCurrencyString &&\n inputCurrencyDecimals &&\n bigishInputAmount !== 'NaN' &&\n bigishInputAmount !== '0' &&\n principalContractAddress &&\n chainName &&\n bondContractAddress &&\n isZapSupported\n ) {\n if (principalToken.liquidityWrapper && principalToken.liquidityWrapper === Wrappers.Steer) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'steer',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n lpAddress: vault,\n periphery: '0xCEBF1A54A9Ce703FC80967760b5A6cbDb4111099',\n slippage,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n }\n // a.k.a if it is principal token\n if (inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'none',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType:\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n ? 'none'\n : lpType,\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n underlyingDex: ichiUnderlyingDex,\n vault: isReserveBond ? undefined : vault,\n slippage: slippage,\n lpAddress: lpType === 'solidly' || lpType === 'univ2' || lpType === 'curve' ? vault : undefined,\n router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,\n toToken: isReserveBond ? vault : undefined,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else {\n return null\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [\n bigishInputAmount,\n principalContractAddress,\n chainName,\n account,\n ichiUnderlyingDex,\n vault,\n lpType,\n router,\n slippage,\n ])\n\n const queryKey = useMemo(() => {\n if (!zapInputData) return null\n return [\n 'zapBondDetails',\n zapInputData.chain,\n zapInputData.user,\n zapInputData.lpData.lpType,\n zapInputData.lpData.fromToken,\n zapInputData.lpData.fromAmount,\n zapInputData.lpData.underlyingDex ?? '',\n zapInputData.lpData.vault,\n zapInputData.lpData.slippage,\n zapInputData.lpData.lpAddress,\n zapInputData.lpData.router ?? '',\n ]\n }, [zapInputData])\n\n const fetchZapDetails = async () => {\n const response = await axios.post(SOUL_ZAP_API, zapInputData)\n return response.data?.result?.data\n }\n\n const {\n data: response,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],\n queryFn: fetchZapDetails,\n refetchInterval: 60000, // i.e. 60 sec\n staleTime: 60000,\n enabled: !!queryKey,\n retry: 1,\n })\n const zapError = !!error\n\n const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : []\n\n // toToken0 data\n const toToken0Estimate: string | undefined = response?.lpQuote?.token0?.fromAmountEstimate\n const toToken0 = [...tokenList, principalToken]?.find(\n (token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase(),\n )\n const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId)\n\n // toToken1 data\n const toToken1Estimate: string | undefined = response?.lpQuote?.token1?.fromAmountEstimate\n const toToken1 = zapInputTokens[chainId]?.find(\n (token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase(),\n )\n const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId)\n\n let toToken0USD = Number(formatUnits(toToken0Estimate ?? '0', toToken0?.decimals![chainId] ?? 18)) * (toToken0Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token0?.fromAmountUSD) {\n toToken0USD = Number(response?.lpQuote?.token0?.fromAmountUSD)\n }\n\n let toToken1USD = Number(formatUnits(toToken1Estimate ?? '0', toToken1?.decimals![chainId] ?? 18)) * (toToken1Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token1?.fromAmountUSD) {\n toToken1USD = Number(response?.lpQuote?.token1?.fromAmountUSD)\n }\n\n const youSpendUSD = toToken0USD + toToken1USD // youSpendUSD\n const estimatedDepositAmount = youSpendUSD / Number(bond?.principalTokenPrice ?? '0')\n\n const isWrap =\n inputCurrency === 'NATIVE' &&\n bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const isPrincipalToken =\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n\n const estimatedDepositAmountToReturn =\n isWrap || isPrincipalToken\n ? (Number(typedValue || '0') * ((100 - bond?.tierBoostRate!) / 100)).toString()\n : estimatedDepositAmount.toString()\n\n const trueBondPrice: string | undefined = response?.protocolQuote?.trueBondPrice\n\n // DEBUG: log tierOptimization when present\n if (response?.protocolQuote?.tierOptimization) {\n const tier = response.protocolQuote.tierOptimization\n const decimals = principalToken?.decimals?.[chainId] ?? 18\n const cost = Number(formatUnits(tier.tierCost, decimals))\n const input = Number(formatUnits(tier.bondInput, decimals))\n const profit = Number(formatUnits(tier.profit, decimals))\n console.log('[ZAP] tierOptimization:', {\n tier: `${tier.previousTier} → ${tier.newTier}`,\n cost: cost.toFixed(6),\n bondInput: input.toFixed(6),\n profit: profit.toFixed(6),\n })\n }\n\n const zapLoading = isDebouncing || isLoading || isFetching\n if (zapLoading) return [true, undefined, '', false, undefined]\n\n return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice]\n}\n\nexport default useSoulZapBondQuote\n"],"names":[],"mappings":";;;;;;;;;;;;;AAeA,MAAM,mBAAmB,GAAG,CAC1B,UAAkB,EAClB,aAA2C,EAC3C,IAA2B,EAC3B,OAAgB,EAChB,YAAqB,KAC0F;IAC/G,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAA8B,CAAC;IAClF,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC;AACnD,IAAA,MAAM,YAAY,GAAG,UAAU,KAAK,cAAc;IAClD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE;AAC/C,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAEhC,IAAA,MAAM,cAAc,GAAG,IAAI,EAAE,OAAgB;IAC7C,MAAM,mBAAmB,GAAG,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAkB,CAAC;AAC3E,IAAA,MAAM,OAAO,GAAG,IAAI,EAAE,OAAkB;AACxC,IAAA,MAAM,mBAAmB,GACvB,aAAa,KAAK,QAAQ,GAAG,4CAA4C,GAAG,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC;AAC7G,IAAA,MAAM,qBAAqB,GAAG,aAAa,KAAK,QAAQ,GAAG,EAAE,GAAG,aAAa,EAAE,QAAS,CAAC,OAAO,CAAC;IACjG,MAAM,wBAAwB,GAAG,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC;AACjE,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC;AAExC,IAAA,MAAM,aAAa,GAAG,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS;AAClF,IAAA,MAAM,YAAY,GAChB,cAAc,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,cAAc,EAAE,YAAY,GAAG,OAAO,CAAC;AACvF,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAa,CAAC,EAAE,QAAQ;AACjE,IAAA,MAAM,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC7D,IAAA,MAAM,iBAAiB,GAAG,cAAc,EAAE,iBAAiB;IAC3D,MAAM,KAAK,GAAG,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC;AAChD,IAAA,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAa,CAAC,EAAE,MAAM;AAE7D,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,cAAc,IAAI,GAAG,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;AAEnG,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAK;AAChC,QAAA,IACE,mBAAmB;YACnB,qBAAqB;AACrB,YAAA,iBAAiB,KAAK,KAAK;AAC3B,YAAA,iBAAiB,KAAK,GAAG;YACzB,wBAAwB;YACxB,SAAS;YACT,mBAAmB;AACnB,YAAA,cAAc,EACd;AACA,YAAA,IAAI,cAAc,CAAC,gBAAgB,IAAI,cAAc,CAAC,gBAAgB,KAAK,QAAQ,CAAC,KAAK,EAAE;gBACzF,OAAO;AACL,oBAAA,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,OAAO,IAAI,4CAA4C;oBAClE,IAAI,EAAE,OAAO,IAAI,4CAA4C;AAC7D,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,OAAO;AACf,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,UAAU,EAAE,iBAAiB;AAC7B,wBAAA,SAAS,EAAE,KAAK;AAChB,wBAAA,SAAS,EAAE,4CAA4C;wBACvD,QAAQ;AACT,qBAAA;AACD,oBAAA,YAAY,EAAE;AACZ,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,IAAI,EAAE,mBAAmB;wBACzB,SAAS,EAAE,OAAO,IAAI,4CAA4C;AAClE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,EAAE,IAAI,YAAY,GAAG,YAAY,GAAG,SAAS;wBAClG,mBAAmB,EAAE,SAAS,CAAC,QAAQ;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,qBAAA;iBACF;YACH;;AAEA,YAAA,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACrG,OAAO;AACL,oBAAA,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,OAAO,IAAI,4CAA4C;oBAClE,IAAI,EAAE,OAAO,IAAI,4CAA4C;AAC7D,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,UAAU,EAAE,iBAAiB;AAC9B,qBAAA;AACD,oBAAA,YAAY,EAAE;AACZ,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,IAAI,EAAE,mBAAmB;wBACzB,SAAS,EAAE,OAAO,IAAI,4CAA4C;AAClE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,EAAE,IAAI,YAAY,GAAG,YAAY,GAAG,SAAS;wBAClG,mBAAmB,EAAE,SAAS,CAAC,QAAQ;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,qBAAA;iBACF;YACH;;gBACE,OAAO;AACL,oBAAA,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,OAAO,IAAI,4CAA4C;oBAClE,IAAI,EAAE,OAAO,IAAI,4CAA4C;AAC7D,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EACJ,aAAa,KAAK,QAAQ,IAAI,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,OAAO;AAC9F,8BAAE;AACF,8BAAE,MAAM;AACZ,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,UAAU,EAAE,iBAAiB;AAC7B,wBAAA,aAAa,EAAE,iBAAiB;wBAChC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,KAAK;AACxC,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,GAAG,KAAK,GAAG,SAAS;AAC/F,wBAAA,MAAM,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS;wBACvE,OAAO,EAAE,aAAa,GAAG,KAAK,GAAG,SAAS;AAC3C,qBAAA;AACD,oBAAA,YAAY,EAAE;AACZ,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,IAAI,EAAE,mBAAmB;wBACzB,SAAS,EAAE,OAAO,IAAI,4CAA4C;AAClE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,EAAE,IAAI,YAAY,GAAG,YAAY,GAAG,SAAS;wBAClG,mBAAmB,EAAE,SAAS,CAAC,QAAQ;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,qBAAA;iBACF;QACL;aAAO;AACL,YAAA,OAAO,IAAI;QACb;;AAEF,IAAA,CAAC,EAAE;QACD,iBAAiB;QACjB,wBAAwB;QACxB,SAAS;QACT,OAAO;QACP,iBAAiB;QACjB,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAK;AAC5B,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI;QAC9B,OAAO;YACL,gBAAgB;AAChB,YAAA,YAAY,CAAC,KAAK;AAClB,YAAA,YAAY,CAAC,IAAI;YACjB,YAAY,CAAC,MAAM,CAAC,MAAM;YAC1B,YAAY,CAAC,MAAM,CAAC,SAAS;YAC7B,YAAY,CAAC,MAAM,CAAC,UAAU;AAC9B,YAAA,YAAY,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE;YACvC,YAAY,CAAC,MAAM,CAAC,KAAK;YACzB,YAAY,CAAC,MAAM,CAAC,QAAQ;YAC5B,YAAY,CAAC,MAAM,CAAC,SAAS;AAC7B,YAAA,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;SACjC;AACH,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAElB,IAAA,MAAM,eAAe,GAAG,YAAW;QACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;AAC7D,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI;AACpC,IAAA,CAAC;AAED,IAAA,MAAM,EACJ,IAAI,EAAE,QAAQ,EACd,SAAS,EACT,UAAU,EACV,KAAK,GACN,GAAG,QAAQ,CAAC;AACX,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC;AAChD,QAAA,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE,KAAK;AACtB,QAAA,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,CAAC,CAAC,QAAQ;AACnB,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACF,IAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AAExB,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE;;IAGxE,MAAM,gBAAgB,GAAuB,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB;AAC1F,IAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CACnD,CAAC,KAAK,KAAK,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAC1G;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,CAAC;;IAGjE,MAAM,gBAAgB,GAAuB,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB;AAC1F,IAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,CAC5C,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CACvG;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,CAAC;AAEjE,IAAA,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,aAAa,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;IAEhI,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;QAC5C,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;IAChE;AAEA,IAAA,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,aAAa,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;IAEhI,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;QAC5C,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;IAChE;AAEA,IAAA,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,CAAA;AAC7C,IAAA,MAAM,sBAAsB,GAAG,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,mBAAmB,IAAI,GAAG,CAAC;AAErF,IAAA,MAAM,MAAM,GACV,aAAa,KAAK,QAAQ;QAC1B,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE;AAE1G,IAAA,MAAM,gBAAgB,GACpB,aAAa,KAAK,QAAQ,IAAI,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAEnG,IAAA,MAAM,8BAA8B,GAClC,MAAM,IAAI;UACN,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE,aAAc,IAAI,GAAG,CAAC,EAAE,QAAQ;AAC7E,UAAE,sBAAsB,CAAC,QAAQ,EAAE;AAEvC,IAAA,MAAM,aAAa,GAAuB,QAAQ,EAAE,aAAa,EAAE,aAAa;;AAGhF,IAAA,IAAI,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE;AAC7C,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB;QACpD,MAAM,QAAQ,GAAG,cAAc,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE;AAC1D,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACzD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC3D,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACzD,QAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACrC,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAA,GAAA,EAAM,IAAI,CAAC,OAAO,CAAA,CAAE;AAC9C,YAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrB,YAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3B,YAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1B,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,UAAU,GAAG,YAAY,IAAI,SAAS,IAAI,UAAU;AAC1D,IAAA,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC;IAE9D,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,8BAA8B,EAAE,QAAQ,EAAE,aAAa,CAAC;AACxF;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import BigNumber from 'bignumber.js';
|
|
3
2
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
4
3
|
import { useQuery } from '@tanstack/react-query';
|
|
5
4
|
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
6
5
|
import useDebounce from '../../hooks/useDebounce.js';
|
|
7
6
|
import axios from 'axios';
|
|
8
7
|
import '../../constants/suiConstants.js';
|
|
8
|
+
import { parseUnits, formatUnits, toFixedString } from '../../utils/fixedPoint.js';
|
|
9
9
|
|
|
10
10
|
// =============================================================================
|
|
11
11
|
// useSuiZapQuote — Aftermath Finance DEX aggregator quote for Sui zap
|
|
@@ -32,10 +32,9 @@ const useSuiZapQuote = (typedValue, inputToken, bond, account, slippage = 0.5) =
|
|
|
32
32
|
// Aftermath uses atomic units — convert from human-readable
|
|
33
33
|
const inputDecimals = inputToken?.decimals?.[ChainId.SUI] ?? 9;
|
|
34
34
|
const inputAmountAtomic = useMemo(() => {
|
|
35
|
-
|
|
36
|
-
if (val.isNaN() || val.lte(0))
|
|
35
|
+
if (!debouncedInput || Number(debouncedInput) <= 0)
|
|
37
36
|
return '0';
|
|
38
|
-
return
|
|
37
|
+
return parseUnits(debouncedInput, inputDecimals, 'floor').toString();
|
|
39
38
|
}, [debouncedInput, inputDecimals]);
|
|
40
39
|
const principalDecimals = bond?.lpToken?.decimals?.[ChainId.SUI] ?? 6;
|
|
41
40
|
const queryParams = useMemo(() => {
|
|
@@ -76,17 +75,13 @@ const useSuiZapQuote = (typedValue, inputToken, bond, account, slippage = 0.5) =
|
|
|
76
75
|
const activeQuote = quoteData ?? null;
|
|
77
76
|
const zapError = !!error;
|
|
78
77
|
// Convert amounts to human-readable
|
|
79
|
-
const
|
|
80
|
-
?
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
: '0';
|
|
78
|
+
const outputAmountDecimal = activeQuote?.coinOut?.amount
|
|
79
|
+
? formatUnits(parseAftermathAmount(activeQuote.coinOut.amount), principalDecimals)
|
|
80
|
+
: undefined;
|
|
81
|
+
const estimatedDepositAmount = outputAmountDecimal ? toFixedString(outputAmountDecimal, principalDecimals) : '0';
|
|
84
82
|
// Apply slippage for minimum deposit amount
|
|
85
|
-
const minimumDepositAmount =
|
|
86
|
-
?
|
|
87
|
-
.div(new BigNumber(10).pow(principalDecimals))
|
|
88
|
-
.times(1 - slippage / 100)
|
|
89
|
-
.toFixed(principalDecimals)
|
|
83
|
+
const minimumDepositAmount = outputAmountDecimal
|
|
84
|
+
? toFixedString(Number(outputAmountDecimal) * (1 - slippage / 100), principalDecimals)
|
|
90
85
|
: '0';
|
|
91
86
|
const zapLoading = isLoading || isFetching ;
|
|
92
87
|
return [zapLoading, activeQuote, estimatedDepositAmount, zapError, minimumDepositAmount];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSuiZapQuote.js","sources":["../../../src/state/zap/useSuiZapQuote.ts"],"sourcesContent":["// =============================================================================\n// useSuiZapQuote — Aftermath Finance DEX aggregator quote for Sui zap\n// =============================================================================\n//\n// Mainnet: fetches a swap quote from Aftermath Finance (Sui DEX aggregator)\n// when the user selects an input token different from the bond's principal token.\n//\n// Testnet: no DEX aggregator supports Sui testnet or our custom test tokens.\n// Returns a mock quote calculated from fallback prices so the full zap UI and\n// two-TX flow (mint → deposit) can be tested end-to-end.\n//\n// Aftermath API: POST https://aftermath.finance/api/router/trade-route\n\nimport { useMemo } from 'react'\nimport
|
|
1
|
+
{"version":3,"file":"useSuiZapQuote.js","sources":["../../../src/state/zap/useSuiZapQuote.ts"],"sourcesContent":["// =============================================================================\n// useSuiZapQuote — Aftermath Finance DEX aggregator quote for Sui zap\n// =============================================================================\n//\n// Mainnet: fetches a swap quote from Aftermath Finance (Sui DEX aggregator)\n// when the user selects an input token different from the bond's principal token.\n//\n// Testnet: no DEX aggregator supports Sui testnet or our custom test tokens.\n// Returns a mock quote calculated from fallback prices so the full zap UI and\n// two-TX flow (mint → deposit) can be tested end-to-end.\n//\n// Aftermath API: POST https://aftermath.finance/api/router/trade-route\n\nimport { useMemo } from 'react'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BondsData } from '../../types/bonds'\nimport useDebounce from '../../hooks/useDebounce'\nimport axios from 'axios'\nimport { IS_SUI_MAINNET } from '../../constants/suiConstants'\nimport { formatUnits, parseUnits, toFixedString } from '../../utils/fixedPoint'\n\nconst AFTERMATH_API_URL = 'https://aftermath.finance/api/router/trade-route'\nconst AFTERMATH_TX_API_URL = 'https://aftermath.finance/api/router/transactions/trade'\n\ninterface AftermathCoinInfo {\n type: string\n amount: string // atomic units with BigInt \"n\" suffix, e.g. \"963906n\"\n tradeFee: string\n}\n\ninterface AftermathTradeRoute {\n routes: Array<{\n paths: Array<Record<string, unknown>>\n portion: string\n coinIn: AftermathCoinInfo\n coinOut: AftermathCoinInfo\n spotPrice: number\n }>\n coinIn: AftermathCoinInfo\n coinOut: AftermathCoinInfo\n spotPrice: number\n netTradeFeePercentage: number\n}\n\n/** Parse Aftermath amount strings — they may have a trailing \"n\" (BigInt notation) */\nconst parseAftermathAmount = (amount: string): string => {\n return amount.replace(/n$/, '')\n}\n\nconst useSuiZapQuote = (\n typedValue: string,\n inputToken: Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n slippage = 0.5,\n): [\n loading: boolean,\n response: AftermathTradeRoute | null,\n depositAmount: string,\n error: boolean,\n minimumDepositAmount: string,\n] => {\n const debouncedInput = useDebounce(typedValue, 400)\n\n const principalTokenAddress = bond?.lpToken?.address?.[ChainId.SUI]\n const inputTokenAddress = inputToken?.address?.[ChainId.SUI]\n\n // Aftermath uses atomic units — convert from human-readable\n const inputDecimals = inputToken?.decimals?.[ChainId.SUI] ?? 9\n const inputAmountAtomic = useMemo(() => {\n if (!debouncedInput || Number(debouncedInput) <= 0) return '0'\n return parseUnits(debouncedInput, inputDecimals, 'floor').toString()\n }, [debouncedInput, inputDecimals])\n\n const principalDecimals = bond?.lpToken?.decimals?.[ChainId.SUI] ?? 6\n\n const queryParams = useMemo(() => {\n if (\n !inputTokenAddress ||\n !principalTokenAddress ||\n inputAmountAtomic === '0' ||\n !account ||\n inputTokenAddress.toLowerCase() === principalTokenAddress.toLowerCase()\n ) {\n return null\n }\n\n return {\n coinInType: inputTokenAddress,\n coinOutType: principalTokenAddress,\n coinInAmount: inputAmountAtomic,\n }\n }, [inputTokenAddress, principalTokenAddress, inputAmountAtomic, account])\n\n // -------------------------------------------------------------------------\n // Mainnet: fetch real quote from Aftermath\n // -------------------------------------------------------------------------\n const fetchAftermathQuote = async (): Promise<AftermathTradeRoute | null> => {\n if (!queryParams) return null\n\n const response = await axios.post<AftermathTradeRoute>(AFTERMATH_API_URL, queryParams)\n const data = response.data\n if (!data?.coinOut?.amount) return null\n return data\n }\n\n const {\n data: quoteData,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, 'aftermath-sui', queryParams],\n queryFn: fetchAftermathQuote,\n refetchInterval: 60000,\n enabled: IS_SUI_MAINNET && !!queryParams,\n retry: 1,\n staleTime: 30000,\n })\n\n // Use testnet mock on testnet, real quote on mainnet\n const activeQuote = quoteData ?? null\n const zapError = !!error\n\n // Convert amounts to human-readable\n const outputAmountDecimal = activeQuote?.coinOut?.amount\n ? formatUnits(parseAftermathAmount(activeQuote.coinOut.amount), principalDecimals)\n : undefined\n\n const estimatedDepositAmount = outputAmountDecimal ? toFixedString(outputAmountDecimal, principalDecimals) : '0'\n\n // Apply slippage for minimum deposit amount\n const minimumDepositAmount = outputAmountDecimal\n ? toFixedString(Number(outputAmountDecimal) * (1 - slippage / 100), principalDecimals)\n : '0'\n\n const zapLoading = IS_SUI_MAINNET ? isLoading || isFetching : false\n\n return [zapLoading, activeQuote, estimatedDepositAmount, zapError, minimumDepositAmount]\n}\n\nexport { AFTERMATH_TX_API_URL }\n\nexport default useSuiZapQuote\n"],"names":[],"mappings":"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"}
|
package/dist/theme/base.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type MediaQueries = {
|
|
2
2
|
xs: string;
|
|
3
3
|
sm: string;
|
|
4
4
|
md: string;
|
|
@@ -8,9 +8,6 @@ export type MediaQueries = {
|
|
|
8
8
|
xxxl: string;
|
|
9
9
|
nav: string;
|
|
10
10
|
};
|
|
11
|
-
export declare const breakpointMap: {
|
|
12
|
-
[key: string]: number;
|
|
13
|
-
};
|
|
14
11
|
declare const baseTheme: {
|
|
15
12
|
breakpoints: string[];
|
|
16
13
|
space: number[];
|
package/dist/theme/base.js
CHANGED
package/dist/theme/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["type MediaQueries = {\n xs: string\n sm: string\n md: string\n lg: string\n xl: string\n xxl: string\n xxxl: string\n nav: string\n}\n\nconst breakpointMap: { [key: string]: number } = {\n xs: 370,\n sm: 576,\n md: 852,\n lg: 968,\n xl: 1080,\n xxl: 1200,\n xxxl: 1550,\n}\n\nconst mediaQueries: MediaQueries = {\n xs: `@media screen and (min-width: ${breakpointMap.xs}px)`,\n sm: `@media screen and (min-width: ${breakpointMap.sm}px)`,\n md: `@media screen and (min-width: ${breakpointMap.md}px)`,\n lg: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n xl: `@media screen and (min-width: ${breakpointMap.xl}px)`,\n xxl: `@media screen and (min-width: ${breakpointMap.xxl}px)`,\n xxxl: `@media screen and (min-width: ${breakpointMap.xxxl}px)`,\n nav: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n}\n\nconst baseTheme = {\n breakpoints: [\n `${breakpointMap.xs}px`,\n `${breakpointMap.sm}px`,\n `${breakpointMap.md}px`,\n `${breakpointMap.lg}px`,\n `${breakpointMap.xl}px`,\n `${breakpointMap.xxl}px`,\n `${breakpointMap.xxxl}px`,\n ],\n space: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n fontSizes: [12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n borderWidths: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n mediaQueries,\n fontWeights: {\n light: 400,\n normal: 600,\n bold: 700,\n },\n fonts: {\n body: 'Poppins, sans-serif',\n poppins: 'Poppins',\n },\n radii: {\n small: '6px',\n default: '16px',\n normal: '10px',\n card: '32px',\n circle: '50%',\n },\n zIndices: { dropdown: 10, modal: 102 },\n styles: {\n root: {\n fontFamily: 'body',\n webkitFontSmoothing: 'antialiasing',\n fontWeight: 600,\n color: 'text',\n bg: 'white1',\n textDecoration: 'none',\n },\n a: {\n color: 'text',\n textDecoration: 'none',\n ':hover': {\n color: 'secondary',\n textDecoration: 'underline',\n },\n },\n nav: {\n textDecoration: 'none',\n breakpoints: [`@media screen and (min-width: ${breakpointMap.lg}px)`],\n a: {\n textDecoration: 'none',\n },\n },\n progress: {\n primary: 'primary',\n color: 'green',\n background: '#DAA628',\n height: '20px',\n },\n hr: {\n background: 'dividerColor',\n height: '1px',\n border: 'none',\n },\n h1: {\n variant: 'text.heading',\n fontSize: '30px',\n lineHeight: '45px',\n },\n h2: {\n variant: 'text.heading',\n fontSize: '25px',\n lineHeight: '37px',\n },\n h3: {\n variant: 'text.heading',\n fontSize: '22px',\n lineHeight: '33px',\n },\n h4: {\n variant: 'text.heading',\n fontSize: '20px',\n lineHeight: '30px',\n },\n h5: {\n variant: 'text.heading',\n fontSize: '16px',\n lineHeight: '24px',\n },\n banner: {\n variant: 'text.heading',\n fontWeight: '800',\n fontSize: '60px',\n lineHeight: '66px',\n },\n input: {\n fontFamily: 'base',\n fontWeight: 'base',\n },\n },\n}\n\nexport default baseTheme\n"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
export declare const textUnderlineHover: {
|
|
2
|
-
'::after': {
|
|
3
|
-
content: string;
|
|
4
|
-
position: string;
|
|
5
|
-
background: string;
|
|
6
|
-
left: string;
|
|
7
|
-
bottom: string;
|
|
8
|
-
height: string;
|
|
9
|
-
width: string;
|
|
10
|
-
borderRadius: string;
|
|
11
|
-
transform: string;
|
|
12
|
-
transformOrigin: string;
|
|
13
|
-
transition: string;
|
|
14
|
-
backfaceVisibility: string;
|
|
15
|
-
};
|
|
16
|
-
':hover::after': {
|
|
17
|
-
transform: string;
|
|
18
|
-
transformOrigin: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
1
|
declare const components: {
|
|
22
2
|
text: {
|
|
23
3
|
heading: {
|
package/dist/theme/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":["../../src/theme/components.ts"],"sourcesContent":["export const textUnderlineHover = {\n '::after': {\n content: \"''\",\n position: 'absolute',\n background: 'text',\n left: '0px',\n bottom: '0px',\n height: '1.5px',\n width: '100%',\n borderRadius: 'normal',\n transform: 'scaleX(0)',\n transformOrigin: 'bottom right',\n transition: 'transform 0.25s ease-out',\n backfaceVisibility: 'hidden',\n },\n ':hover::after': {\n transform: 'scaleX(1)',\n transformOrigin: 'bottom left',\n },\n}\n\nconst buttonBaseStyles = {\n padding: '10px 20px 10px 19px',\n fontSize: '16px',\n fontFamily: 'body',\n cursor: 'pointer',\n fontWeight: 700,\n display: 'flex',\n alignItems: 'center',\n '&&': {\n borderRadius: 'normal',\n },\n}\n\nconst components = {\n text: {\n heading: {\n fontFamily: 'body',\n fontWeight: 'bold',\n },\n lg: { fontSize: 6, lineHeight: '33px' },\n md: { fontSize: 3, lineHeight: '24px' },\n sm: { fontSize: 1, lineHeight: '18px' },\n },\n input: {\n fontFamily: 'body',\n fontWeight: 700,\n sm: {\n background: 'white3',\n borderRadius: 'normal',\n height: '32px',\n width: '200px',\n },\n md: {\n background: 'white3',\n borderRadius: 'normal',\n height: '36px',\n width: '200px',\n },\n lg: {\n background: 'white3',\n borderRadius: 'normal',\n height: '48px',\n width: '200px',\n },\n },\n textarea: {\n padding: '10px 13px 10px 10px',\n borderRadius: 'normal',\n border: 'none',\n fontWeight: 'normal',\n background: 'lvl1',\n resize: 'none',\n color: 'textareaColor',\n '&:focus': {\n outline: 'none !important',\n },\n },\n checkbox: {\n background: 'white2',\n borderRadius: 'normal',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'white3',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + svg': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-primaryButton)',\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n '& + svg': {\n display: 'block',\n },\n },\n '&:focus:not(:checked)': {\n outline: 'none',\n boxShadow: 'none',\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n },\n radio: {\n background: 'lvl1',\n borderRadius: '50px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'lvl2',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + span': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n backgroundColor: 'radioChecked',\n borderRadius: '50px',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-yellow)',\n borderColor: 'var(--theme-ui-colors-yellow)',\n '& + span': {\n display: 'block',\n },\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-yellow), 0px 0px 0px 4px rgb(255, 179, 0, .2)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n label: {\n inline: {\n display: 'inline-flex',\n alignItems: 'center',\n columnGap: 2,\n },\n },\n borders: {\n primaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n primaryBtnDisable: '3px solid transparent',\n secondaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n secondaryButtonDisable: '3px solid #FDFBF5',\n mode: {\n dark: {\n secondaryButtonDisable: '3px solid #F9F4E7',\n },\n },\n },\n buttons: {\n primary: {\n ...buttonBaseStyles,\n background: 'primaryButton',\n border: 'primaryButton',\n color: 'primaryBright',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'textDisabledButton',\n border: 'primaryBtnDisable',\n opacity: 0.9,\n },\n '&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n background: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n secondary: {\n ...buttonBaseStyles,\n background: 'transparent',\n border: 'secondaryButton',\n color: 'var(--theme-ui-colors-primaryButton)',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n border: 'primaryBtnDisable',\n },\n '&&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n tertiary: {\n ...buttonBaseStyles,\n background: 'white3',\n border: 'none',\n color: 'text',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'white4',\n },\n '&:disabled': {},\n },\n },\n text: {\n ...buttonBaseStyles,\n background: 'transparent',\n color: 'text',\n\n '&:hover': {\n '&:not([disabled])': {\n color: 'var(--theme-ui-colors-yellow)',\n },\n '&:disabled': {},\n },\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n },\n success: {\n ...buttonBaseStyles,\n background: 'success',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredSuccess',\n },\n '&:disabled': {},\n },\n },\n danger: {\n ...buttonBaseStyles,\n background: 'error',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredDanger',\n },\n '&:disabled': {},\n },\n },\n circular: {\n width: '40px',\n height: '40px',\n background: 'white3',\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n cursor: 'pointer',\n padding: '1px',\n transition: 'all .3s linear',\n\n '&:hover': {\n filter: 'brightness(85%)',\n },\n\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n },\n cards: {\n primary: {\n background: 'navbar',\n borderRadius: 'normal',\n },\n },\n flex: {\n dexContainer: {\n width: '100%',\n maxWidth: '420px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n flexDirection: 'column',\n },\n v3SubDexContainer: {\n width: '100%',\n maxWidth: '600px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n margin: '0px 10px',\n flexDirection: 'column',\n },\n navContainer: {\n height: '35px',\n padding: '0px 15px',\n background: 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n cursor: 'pointer',\n transition: 'all .3s linear',\n '&:hover': {\n filter: 'brightness(95%)',\n },\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n link: {\n ...textUnderlineHover,\n cursor: 'pointer',\n textDecoration: 'none',\n display: 'inline-block',\n },\n tag: {\n padding: '5px',\n borderRadius: 'normal',\n alignItems: 'center',\n justifyContent: 'center',\n },\n },\n switch: {\n backgroundColor: 'white4',\n 'input:checked ~ &': {\n backgroundColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n}\n\nexport default components\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.js","sources":["../../src/theme/components.ts"],"sourcesContent":["const textUnderlineHover = {\n '::after': {\n content: \"''\",\n position: 'absolute',\n background: 'text',\n left: '0px',\n bottom: '0px',\n height: '1.5px',\n width: '100%',\n borderRadius: 'normal',\n transform: 'scaleX(0)',\n transformOrigin: 'bottom right',\n transition: 'transform 0.25s ease-out',\n backfaceVisibility: 'hidden',\n },\n ':hover::after': {\n transform: 'scaleX(1)',\n transformOrigin: 'bottom left',\n },\n}\n\nconst buttonBaseStyles = {\n padding: '10px 20px 10px 19px',\n fontSize: '16px',\n fontFamily: 'body',\n cursor: 'pointer',\n fontWeight: 700,\n display: 'flex',\n alignItems: 'center',\n '&&': {\n borderRadius: 'normal',\n },\n}\n\nconst components = {\n text: {\n heading: {\n fontFamily: 'body',\n fontWeight: 'bold',\n },\n lg: { fontSize: 6, lineHeight: '33px' },\n md: { fontSize: 3, lineHeight: '24px' },\n sm: { fontSize: 1, lineHeight: '18px' },\n },\n input: {\n fontFamily: 'body',\n fontWeight: 700,\n sm: {\n background: 'white3',\n borderRadius: 'normal',\n height: '32px',\n width: '200px',\n },\n md: {\n background: 'white3',\n borderRadius: 'normal',\n height: '36px',\n width: '200px',\n },\n lg: {\n background: 'white3',\n borderRadius: 'normal',\n height: '48px',\n width: '200px',\n },\n },\n textarea: {\n padding: '10px 13px 10px 10px',\n borderRadius: 'normal',\n border: 'none',\n fontWeight: 'normal',\n background: 'lvl1',\n resize: 'none',\n color: 'textareaColor',\n '&:focus': {\n outline: 'none !important',\n },\n },\n checkbox: {\n background: 'white2',\n borderRadius: 'normal',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'white3',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + svg': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-primaryButton)',\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n '& + svg': {\n display: 'block',\n },\n },\n '&:focus:not(:checked)': {\n outline: 'none',\n boxShadow: 'none',\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n },\n radio: {\n background: 'lvl1',\n borderRadius: '50px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'lvl2',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + span': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n backgroundColor: 'radioChecked',\n borderRadius: '50px',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-yellow)',\n borderColor: 'var(--theme-ui-colors-yellow)',\n '& + span': {\n display: 'block',\n },\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-yellow), 0px 0px 0px 4px rgb(255, 179, 0, .2)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n label: {\n inline: {\n display: 'inline-flex',\n alignItems: 'center',\n columnGap: 2,\n },\n },\n borders: {\n primaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n primaryBtnDisable: '3px solid transparent',\n secondaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n secondaryButtonDisable: '3px solid #FDFBF5',\n mode: {\n dark: {\n secondaryButtonDisable: '3px solid #F9F4E7',\n },\n },\n },\n buttons: {\n primary: {\n ...buttonBaseStyles,\n background: 'primaryButton',\n border: 'primaryButton',\n color: 'primaryBright',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'textDisabledButton',\n border: 'primaryBtnDisable',\n opacity: 0.9,\n },\n '&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n background: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n secondary: {\n ...buttonBaseStyles,\n background: 'transparent',\n border: 'secondaryButton',\n color: 'var(--theme-ui-colors-primaryButton)',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n border: 'primaryBtnDisable',\n },\n '&&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n tertiary: {\n ...buttonBaseStyles,\n background: 'white3',\n border: 'none',\n color: 'text',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'white4',\n },\n '&:disabled': {},\n },\n },\n text: {\n ...buttonBaseStyles,\n background: 'transparent',\n color: 'text',\n\n '&:hover': {\n '&:not([disabled])': {\n color: 'var(--theme-ui-colors-yellow)',\n },\n '&:disabled': {},\n },\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n },\n success: {\n ...buttonBaseStyles,\n background: 'success',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredSuccess',\n },\n '&:disabled': {},\n },\n },\n danger: {\n ...buttonBaseStyles,\n background: 'error',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredDanger',\n },\n '&:disabled': {},\n },\n },\n circular: {\n width: '40px',\n height: '40px',\n background: 'white3',\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n cursor: 'pointer',\n padding: '1px',\n transition: 'all .3s linear',\n\n '&:hover': {\n filter: 'brightness(85%)',\n },\n\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n },\n cards: {\n primary: {\n background: 'navbar',\n borderRadius: 'normal',\n },\n },\n flex: {\n dexContainer: {\n width: '100%',\n maxWidth: '420px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n flexDirection: 'column',\n },\n v3SubDexContainer: {\n width: '100%',\n maxWidth: '600px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n margin: '0px 10px',\n flexDirection: 'column',\n },\n navContainer: {\n height: '35px',\n padding: '0px 15px',\n background: 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n cursor: 'pointer',\n transition: 'all .3s linear',\n '&:hover': {\n filter: 'brightness(95%)',\n },\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n link: {\n ...textUnderlineHover,\n cursor: 'pointer',\n textDecoration: 'none',\n display: 'inline-block',\n },\n tag: {\n padding: '5px',\n borderRadius: 'normal',\n alignItems: 'center',\n justifyContent: 'center',\n },\n },\n switch: {\n backgroundColor: 'white4',\n 'input:checked ~ &': {\n backgroundColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n}\n\nexport default components\n"],"names":[],"mappings":"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"}
|
|
@@ -3,88 +3,28 @@
|
|
|
3
3
|
* `control_variable` is the BCV scaled by `bond::PERCENTAGE_BASE` (1e6).
|
|
4
4
|
* `vesting_term` and timestamps are in seconds.
|
|
5
5
|
*/
|
|
6
|
-
export interface AptosBondTerms {
|
|
7
|
-
control_variable: string;
|
|
8
|
-
vesting_term: string;
|
|
9
|
-
minimum_price: string;
|
|
10
|
-
max_payout: string;
|
|
11
|
-
max_debt: string;
|
|
12
|
-
max_total_payout: string;
|
|
13
|
-
initial_debt: string;
|
|
14
|
-
}
|
|
15
6
|
/**
|
|
16
7
|
* AptosBondMarket — subset of `apebond::bond::BondMarket` that we actually
|
|
17
8
|
* read from the SDK. `extend_ref`, `operators`, `redeemer_approved` and the
|
|
18
9
|
* full `bills` map are intentionally omitted to keep the TS shape lean.
|
|
19
10
|
*/
|
|
20
|
-
export interface AptosBondMarket {
|
|
21
|
-
payout_token: {
|
|
22
|
-
inner: string;
|
|
23
|
-
};
|
|
24
|
-
principal_token: {
|
|
25
|
-
inner: string;
|
|
26
|
-
};
|
|
27
|
-
treasury: {
|
|
28
|
-
inner: string;
|
|
29
|
-
};
|
|
30
|
-
fee_in_principal_recipient: string;
|
|
31
|
-
fee_in_payout_recipient: string;
|
|
32
|
-
terms: AptosBondTerms;
|
|
33
|
-
fee_in_principal: string;
|
|
34
|
-
fee_in_payout: string;
|
|
35
|
-
total_principal_billed: string;
|
|
36
|
-
total_payout_given: string;
|
|
37
|
-
payout_token_initial_supply: string;
|
|
38
|
-
total_debt: string;
|
|
39
|
-
last_decay: string;
|
|
40
|
-
last_bcv_update_timestamp: string;
|
|
41
|
-
min_bcv_update_interval: string;
|
|
42
|
-
paused: boolean;
|
|
43
|
-
emergency_paused: boolean;
|
|
44
|
-
name: string;
|
|
45
|
-
}
|
|
46
11
|
/**
|
|
47
12
|
* Derived pricing view — the values that the `bond_pricing` view function
|
|
48
13
|
* returns in a single shot. Kept as a separate interface because some
|
|
49
14
|
* consumers only care about pricing and we do not want to force them to read
|
|
50
15
|
* the whole market resource.
|
|
51
16
|
*/
|
|
52
|
-
export interface AptosBondPricing {
|
|
53
|
-
bond_price: string;
|
|
54
|
-
true_bond_price: string;
|
|
55
|
-
debt_ratio: string;
|
|
56
|
-
debt_decay: string;
|
|
57
|
-
current_debt: string;
|
|
58
|
-
}
|
|
59
17
|
/**
|
|
60
18
|
* Bill — mirror of `apebond::bond::Bill`. One per user position.
|
|
61
19
|
*/
|
|
62
|
-
export interface AptosBill {
|
|
63
|
-
payout: string;
|
|
64
|
-
payout_claimed: string;
|
|
65
|
-
vesting_term: string;
|
|
66
|
-
vesting_start_timestamp: string;
|
|
67
|
-
last_claim_timestamp: string;
|
|
68
|
-
true_price_paid: string;
|
|
69
|
-
}
|
|
70
20
|
/**
|
|
71
21
|
* Arguments forwarded to `apebond::bond::deposit`. Numeric values are always
|
|
72
22
|
* stringified BigInts to keep compatibility with the Aptos TS SDK which
|
|
73
23
|
* serialises BCS arguments from strings.
|
|
74
24
|
*/
|
|
75
|
-
export interface AptosDepositPayload {
|
|
76
|
-
market: string;
|
|
77
|
-
amount: string;
|
|
78
|
-
max_price: string;
|
|
79
|
-
depositor: string;
|
|
80
|
-
}
|
|
81
25
|
/**
|
|
82
26
|
* Arguments forwarded to `apebond::bond::claim(market, bill_id: u64)`.
|
|
83
27
|
*/
|
|
84
|
-
export interface AptosClaimPayload {
|
|
85
|
-
market: string;
|
|
86
|
-
bill_id: string;
|
|
87
|
-
}
|
|
88
28
|
/**
|
|
89
29
|
* Tuple shape returned by `apebond::bond::market_info(market)` — 27 elements.
|
|
90
30
|
*
|
|
@@ -20,4 +20,3 @@ export interface BondIssuanceAccount {
|
|
|
20
20
|
}
|
|
21
21
|
export declare const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount>;
|
|
22
22
|
export declare function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean;
|
|
23
|
-
export declare function getBondStatusString(status: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bondIssuanceCodec.js","sources":["../../src/types/bondIssuanceCodec.ts"],"sourcesContent":["import { Address, getAddressDecoder } from '@solana/addresses'\nimport {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU32Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_ISSUANCE_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondIssuance account interface based on IDL\nexport interface BondIssuanceAccount {\n anchorDiscriminator: ReadonlyUint8Array\n issuanceCounter: number\n bondCounter: number\n payoutMint: Address\n principalMint: Address\n principalMintDecimals: number\n payoutMintDecimals: number\n treasuryAta: Address\n status: number // 0 = Paused, 1 = Active, 2 = Closed\n feeInPrincipal: bigint\n feePrincipalRecipient: Address\n feeInPayout: bigint\n feePayoutRecipient: Address\n partnerPrincipalRecipient: Address\n collection: Address\n bump: number\n}\n\n// BondIssuance discriminator from IDL\n\n// Create the BondIssuance account decoder using Solana Kit's codec utilities\nexport const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['issuanceCounter', getU32Decoder()],\n ['bondCounter', getU32Decoder()],\n ['payoutMint', getAddressDecoder()],\n ['principalMint', getAddressDecoder()],\n ['principalMintDecimals', getU8Decoder()],\n ['payoutMintDecimals', getU8Decoder()],\n ['treasuryAta', getAddressDecoder()],\n ['status', getU8Decoder()],\n ['feeInPrincipal', getU64Decoder()],\n ['feePrincipalRecipient', getAddressDecoder()],\n ['feeInPayout', getU64Decoder()],\n ['feePayoutRecipient', getAddressDecoder()],\n ['partnerPrincipalRecipient', getAddressDecoder()],\n ['collection', getAddressDecoder()],\n ['bump', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_ISSUANCE_DISCRIMINATOR[index])\n}\n
|
|
1
|
+
{"version":3,"file":"bondIssuanceCodec.js","sources":["../../src/types/bondIssuanceCodec.ts"],"sourcesContent":["import { Address, getAddressDecoder } from '@solana/addresses'\nimport {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU32Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_ISSUANCE_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondIssuance account interface based on IDL\nexport interface BondIssuanceAccount {\n anchorDiscriminator: ReadonlyUint8Array\n issuanceCounter: number\n bondCounter: number\n payoutMint: Address\n principalMint: Address\n principalMintDecimals: number\n payoutMintDecimals: number\n treasuryAta: Address\n status: number // 0 = Paused, 1 = Active, 2 = Closed\n feeInPrincipal: bigint\n feePrincipalRecipient: Address\n feeInPayout: bigint\n feePayoutRecipient: Address\n partnerPrincipalRecipient: Address\n collection: Address\n bump: number\n}\n\n// BondIssuance discriminator from IDL\n\n// Create the BondIssuance account decoder using Solana Kit's codec utilities\nexport const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['issuanceCounter', getU32Decoder()],\n ['bondCounter', getU32Decoder()],\n ['payoutMint', getAddressDecoder()],\n ['principalMint', getAddressDecoder()],\n ['principalMintDecimals', getU8Decoder()],\n ['payoutMintDecimals', getU8Decoder()],\n ['treasuryAta', getAddressDecoder()],\n ['status', getU8Decoder()],\n ['feeInPrincipal', getU64Decoder()],\n ['feePrincipalRecipient', getAddressDecoder()],\n ['feeInPayout', getU64Decoder()],\n ['feePayoutRecipient', getAddressDecoder()],\n ['partnerPrincipalRecipient', getAddressDecoder()],\n ['collection', getAddressDecoder()],\n ['bump', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_ISSUANCE_DISCRIMINATOR[index])\n}\n"],"names":[],"mappings":";;;;AAiCA;AAEA;AACO,MAAM,mBAAmB,GAA0C,gBAAgB,CAAC;IACzF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;AACtC,IAAA,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC;AACzC,IAAA,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACtC,IAAA,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;AACpC,IAAA,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;AAC1B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;AAC9C,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AAC3C,IAAA,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,CAAC;AAClD,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;AACzB,CAAA;AAED;AACM,SAAU,+BAA+B,CAAC,IAAwB,EAAA;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,2BAA2B,CAAC,KAAK,CAAC,CAAC;AACtG;;;;"}
|
|
@@ -13,4 +13,3 @@ export interface BondTermAccount {
|
|
|
13
13
|
}
|
|
14
14
|
export declare const bondTermDecoder: FixedSizeDecoder<BondTermAccount>;
|
|
15
15
|
export declare function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean;
|
|
16
|
-
export declare function getVestingStrategyString(strategy: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bondTermCodec.js","sources":["../../src/types/bondTermCodec.ts"],"sourcesContent":["import {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_TERM_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondTerm account interface based on IDL\nexport interface BondTermAccount {\n anchorDiscriminator: ReadonlyUint8Array\n controlVariable: bigint\n vestingEnd: bigint\n minimumDebt: bigint\n maxPayout: bigint\n maxDebt: bigint\n maxTotalPayout: bigint\n initialDebt: bigint\n payoutTokenInitialSupply: bigint\n vestingStrategy: number\n}\n\n// Create the BondTerm account decoder\nexport const bondTermDecoder: FixedSizeDecoder<BondTermAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['controlVariable', getU64Decoder()],\n ['vestingEnd', getU64Decoder()],\n ['minimumDebt', getU64Decoder()],\n ['maxPayout', getU64Decoder()],\n ['maxDebt', getU64Decoder()],\n ['maxTotalPayout', getU64Decoder()],\n ['initialDebt', getU64Decoder()],\n ['payoutTokenInitialSupply', getU64Decoder()],\n ['vestingStrategy', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_TERM_DISCRIMINATOR[index])\n}\n
|
|
1
|
+
{"version":3,"file":"bondTermCodec.js","sources":["../../src/types/bondTermCodec.ts"],"sourcesContent":["import {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_TERM_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondTerm account interface based on IDL\nexport interface BondTermAccount {\n anchorDiscriminator: ReadonlyUint8Array\n controlVariable: bigint\n vestingEnd: bigint\n minimumDebt: bigint\n maxPayout: bigint\n maxDebt: bigint\n maxTotalPayout: bigint\n initialDebt: bigint\n payoutTokenInitialSupply: bigint\n vestingStrategy: number\n}\n\n// Create the BondTerm account decoder\nexport const bondTermDecoder: FixedSizeDecoder<BondTermAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['controlVariable', getU64Decoder()],\n ['vestingEnd', getU64Decoder()],\n ['minimumDebt', getU64Decoder()],\n ['maxPayout', getU64Decoder()],\n ['maxDebt', getU64Decoder()],\n ['maxTotalPayout', getU64Decoder()],\n ['initialDebt', getU64Decoder()],\n ['payoutTokenInitialSupply', getU64Decoder()],\n ['vestingStrategy', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_TERM_DISCRIMINATOR[index])\n}\n"],"names":[],"mappings":";;;AAyBA;AACO,MAAM,eAAe,GAAsC,gBAAgB,CAAC;IACjF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;AAC/B,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;AAC9B,IAAA,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;AAC5B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,0BAA0B,EAAE,aAAa,EAAE,CAAC;AAC7C,IAAA,CAAC,iBAAiB,EAAE,YAAY,EAAE,CAAC;AACpC,CAAA;AAED;AACM,SAAU,2BAA2B,CAAC,IAAwB,EAAA;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAClG;;;;"}
|