@ape.swap/bonds-sdk 5.1.34 → 5.1.36
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/TokenSelectorPanel/index.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/GiftBox.d.ts +4 -0
- package/dist/components/uikit-sdk/Svg/Icons/GiftBox.js +10 -0
- package/dist/components/uikit-sdk/Svg/Icons/GiftBox.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/index.js +3 -0
- package/dist/components/uikit-sdk/Svg/index.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/types.d.ts +1 -0
- package/dist/components/uikit-sdk/Svg/types.js +1 -0
- package/dist/components/uikit-sdk/Svg/types.js.map +1 -1
- package/dist/components/uikit-sdk/TooltipBubble/types.d.ts +2 -2
- package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -1
- package/dist/config/constants/queryKeys.d.ts +1 -0
- package/dist/config/constants/queryKeys.js.map +1 -1
- package/dist/state/tiers/useTierPoints.d.ts +15 -2
- package/dist/state/tiers/useTierPoints.js +30 -4
- package/dist/state/tiers/useTierPoints.js.map +1 -1
- package/dist/state/zap/useSoulZapBondQuote.js +6 -3
- package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
- package/dist/utils/formatNumber.d.ts +6 -0
- package/dist/utils/formatNumber.js +39 -3
- package/dist/utils/formatNumber.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js +3 -2
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
- package/dist/views/BuyBond/BuyComponent.js +10 -9
- package/dist/views/BuyBond/BuyComponent.js.map +1 -1
- package/dist/views/BuyBond/components/BondModalHeader.js +21 -3
- package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -1
- package/dist/views/BuyBond/components/Estimations.d.ts +1 -1
- package/dist/views/BuyBond/components/Estimations.js +15 -9
- package/dist/views/BuyBond/components/Estimations.js.map +1 -1
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +27 -7
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -1
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +4 -3
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -1
- package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js +6 -5
- package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js.map +1 -1
- package/dist/views/ProjectView/ProjectView.js +7 -9
- package/dist/views/ProjectView/ProjectView.js.map +1 -1
- package/dist/views/ProjectView/components/PriceChart/components/CandleStickChart.js +111 -0
- package/dist/views/ProjectView/components/PriceChart/components/CandleStickChart.js.map +1 -0
- package/dist/views/ProjectView/components/PriceChart/components/LineChart.js +100 -0
- package/dist/views/ProjectView/components/PriceChart/components/LineChart.js.map +1 -0
- package/dist/views/ProjectView/components/PriceChart/components/utils.js +20 -0
- package/dist/views/ProjectView/components/PriceChart/components/utils.js.map +1 -0
- package/dist/views/ProjectView/components/PriceChart/index.js +38 -0
- package/dist/views/ProjectView/components/PriceChart/index.js.map +1 -0
- package/dist/views/ProjectView/components/PriceChart/styles.js +44 -0
- package/dist/views/ProjectView/components/PriceChart/styles.js.map +1 -0
- package/dist/views/ProjectView/components/RecommendationCards/index.js +7 -2
- package/dist/views/ProjectView/components/RecommendationCards/index.js.map +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +4 -3
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
- package/dist/views/TransactionModal/TransactionModal.js +5 -4
- package/dist/views/TransactionModal/TransactionModal.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ import SlippageModal from '../../../components/SlippageModal/index.js';
|
|
|
6
6
|
import ExpandedViewButton from './ExpandedViewButton.js';
|
|
7
7
|
import track from '../../../utils/track.js';
|
|
8
8
|
import BondModalMinTierHeader from './BondModalMinTierHeader.js';
|
|
9
|
-
import { TIERS_WEIGHT } from '../../../state/tiers/useTierPoints.js';
|
|
9
|
+
import useTierPoints, { TIERS_WEIGHT, Promotions } from '../../../state/tiers/useTierPoints.js';
|
|
10
10
|
import { LaunchBondTiers, BillVersion } from '@ape.swap/apeswap-lists';
|
|
11
11
|
import { useSDKConfig } from '../../../state/useSDKConfig.js';
|
|
12
12
|
import { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers.js';
|
|
@@ -16,10 +16,13 @@ import Flex from '../../../components/uikit-sdk/Flex/index.js';
|
|
|
16
16
|
import Svg from '../../../components/uikit-sdk/Svg/index.js';
|
|
17
17
|
import ListTag from '../../../components/uikit-sdk/Tag/ListTag.js';
|
|
18
18
|
import { formatNumberSI } from '../../../utils/formatNumber.js';
|
|
19
|
+
import TooltipBubble from '../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
19
20
|
|
|
20
21
|
const BondModalHeader = ({ bondData, onDismiss, showProjectInfoButton, }) => {
|
|
21
22
|
const isMobile = useIsMobile();
|
|
22
23
|
const SDKConfig = useSDKConfig();
|
|
24
|
+
const { data: tierPointsState } = useTierPoints();
|
|
25
|
+
const { promotion } = tierPointsState || {};
|
|
23
26
|
const [onOpenSlippageModal] = useModal(jsx(SlippageModal, { chainId: bondData.chainId }));
|
|
24
27
|
const minTier = bondData.minTier !== undefined ? bondData.minTier : null;
|
|
25
28
|
const bonusWithFee = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], bondData?.trueBondPrices)?.bonusWithFee;
|
|
@@ -46,7 +49,7 @@ const BondModalHeader = ({ bondData, onDismiss, showProjectInfoButton, }) => {
|
|
|
46
49
|
height: '30px',
|
|
47
50
|
mb: ['10px', '10px', '10px', '0px'],
|
|
48
51
|
justifyContent: ['space-between', 'space-between', 'space-between', 'flex-end'],
|
|
49
|
-
}, children: [jsx(Flex, { sx: { display: ['flex', 'flex', 'flex', 'none'] }, children: jsx(BondModalMinTierHeader, { minTier: minTier }) }), jsx(Flex, { sx: { cursor: 'pointer' }, children: onDismiss ? (jsxs(Fragment, { children: [showProjectInfoButton && jsx(ExpandedViewButton, { handleNavigation: handleProjectViewNavigation }), jsx(Flex, { sx: { mx: '25px' }, onClick: onOpenSlippageModal, children: jsx(Svg, { icon: "cog", width: isMobile ? '16px' : '20px' }) }), jsx(Flex, { onClick: handleClose, children: jsx(Svg, { icon: "close", color: "text", width: isMobile ? '12px' : '18px' }) })] })) : (jsx(Flex, { sx: { py: '3px', mt: '10px' }, onClick: onOpenSlippageModal, children: jsx(Svg, { icon: "cog", width: isMobile ? '16px' : '20px' }) })) })] }), jsxs(Flex, { sx: { width: '100%' }, children: [jsxs(Flex, { className: "title-container bondicon", children: [jsx(Flex, { sx: MCTokenIconStyles[bondData.marketingCampaign] }), jsx(TokenImage, { symbol: bondData.showcaseTokenName ?? bondData.earnToken.symbol, size: 50, chain: bondData.chainId })] }), jsxs(Flex, { sx: {
|
|
52
|
+
}, children: [jsx(Flex, { sx: { display: ['flex', 'flex', 'flex', 'none'] }, children: jsx(BondModalMinTierHeader, { minTier: minTier }) }), jsx(Flex, { sx: { cursor: 'pointer' }, children: onDismiss ? (jsxs(Fragment, { children: [showProjectInfoButton && jsx(ExpandedViewButton, { handleNavigation: handleProjectViewNavigation }), jsx(Flex, { sx: { mx: '25px' }, onClick: onOpenSlippageModal, children: jsx(Svg, { icon: "cog", width: isMobile ? '16px' : '20px' }) }), jsx(Flex, { onClick: handleClose, children: jsx(Svg, { icon: "close", color: "text", width: isMobile ? '12px' : '18px' }) })] })) : (jsx(Flex, { sx: { py: '3px', mt: '10px' }, onClick: onOpenSlippageModal, children: jsx(Svg, { icon: "cog", width: isMobile ? '16px' : '20px' }) })) })] }), jsxs(Flex, { sx: { width: '100%', position: 'relative' }, children: [jsxs(Flex, { className: "title-container bondicon", children: [jsx(Flex, { sx: MCTokenIconStyles[bondData.marketingCampaign] }), jsx(TokenImage, { symbol: bondData.showcaseTokenName ?? bondData.earnToken.symbol, size: 50, chain: bondData.chainId })] }), jsxs(Flex, { sx: {
|
|
50
53
|
display: 'flex',
|
|
51
54
|
flexDirection: 'column',
|
|
52
55
|
pl: ['10px', '10px', '10px', '20px'],
|
|
@@ -73,7 +76,22 @@ const BondModalHeader = ({ bondData, onDismiss, showProjectInfoButton, }) => {
|
|
|
73
76
|
} }), jsxs(Flex, { sx: { width: '100%', zIndex: 2, alignItems: 'center' }, children: [jsx("img", { src: `https://ape.bond/images/launch/mythical.png`, alt: "minTier", style: { width: '21px', height: '21px', marginRight: '3px', zIndex: 1 } }), jsx(Flex, { sx: { fontSize: ['12px', '12px', '12px', '14px'], mr: '3px' }, children: "Up to" }), jsxs(Flex, { sx: {
|
|
74
77
|
color: bonusWithFee && bonusWithFee > 0 ? 'success' : 'error',
|
|
75
78
|
fontSize: ['12px', '12px', '12px', '14px'],
|
|
76
|
-
}, children: ["$", discountEarnTokenPrice(bondData, true)] })] })] })) : (jsxs(Flex, { sx: { fontSize: '24px', fontWeight: 700 }, children: ["$", discountEarnTokenPrice(bondData)] }))] }), jsx(Flex, { sx: { display: ['none', 'none', 'none', 'flex'], ml: '10px' }, children: jsx(BondModalMinTierHeader, { minTier: minTier }) })
|
|
79
|
+
}, children: ["$", discountEarnTokenPrice(bondData, true)] })] })] })) : (jsxs(Flex, { sx: { fontSize: '24px', fontWeight: 700 }, children: ["$", discountEarnTokenPrice(bondData)] }))] }), jsx(Flex, { sx: { display: ['none', 'none', 'none', 'flex'], ml: '10px' }, children: jsx(BondModalMinTierHeader, { minTier: minTier }) }), promotion === Promotions.WelcomeBonus && (jsx(Flex, { sx: {
|
|
80
|
+
position: 'absolute',
|
|
81
|
+
right: '0',
|
|
82
|
+
top: ['unset', 'unset', 'unset', '20px'],
|
|
83
|
+
bottom: ['3px', '3px', '3px', 'unset'],
|
|
84
|
+
}, children: jsx(TooltipBubble, { body: `I need some copy here. Once I have this I'll also align this tooltip`, width: "205px", placement: "bottomRight", transformTip: "translate(10%, 0%)", children: jsxs(Flex, { sx: {
|
|
85
|
+
border: '1px solid var(--theme-ui-colors-primaryButton)',
|
|
86
|
+
borderRadius: ['10px', '10px', '10px', '20px'],
|
|
87
|
+
p: ['4px 2px', '4px 2px', '4px 2px', '4px 10px'],
|
|
88
|
+
alignItems: 'center',
|
|
89
|
+
fontSize: '12px',
|
|
90
|
+
fontWeight: 400,
|
|
91
|
+
color: 'textDisabledButton',
|
|
92
|
+
boxShadow: '0px 0px 30px -10px rgba(222, 98, 243, 0.5)',
|
|
93
|
+
cursor: 'pointer',
|
|
94
|
+
}, children: [jsx(Flex, { sx: { mt: '-15px' }, children: jsx(Svg, { icon: "GiftBox", width: 30, color: 'textDisabledButton' }) }), jsx(Flex, { sx: { display: ['none', 'none', 'none', 'flex'] }, children: "Welcome Bonus" })] }) }) }))] })] }));
|
|
77
95
|
};
|
|
78
96
|
|
|
79
97
|
export { BondModalHeader as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BondModalHeader.js","sources":["../../../../src/views/BuyBond/components/BondModalHeader.tsx"],"sourcesContent":["import React from 'react'\nimport TokenImage from '../../../components/uikit-sdk/TokenImage'\nimport { discountEarnTokenPrice } from '../../../utils/displayHelpers'\nimport useModal from '../../../hooks/useModal'\nimport SlippageModal from '../../../components/SlippageModal'\nimport { BondsData } from '../../../types/bonds'\nimport ExpandedViewButton from './ExpandedViewButton'\nimport track from '../../../utils/track'\nimport BondModalMinTierHeader from './BondModalMinTierHeader'\nimport { TIERS_WEIGHT } from '../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers'\nimport { MCTokenIconStyles } from '../../../utils/campaignStyles'\nimport { useIsMobile } from '../../../hooks/useIsMobile'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Svg from '../../../components/uikit-sdk/Svg'\nimport ListTag from '../../../components/uikit-sdk/Tag/ListTag'\nimport { formatNumberSI } from '../../../utils/formatNumber'\n\nconst BondModalHeader = ({\n bondData,\n onDismiss,\n showProjectInfoButton,\n}: {\n bondData: BondsData\n onDismiss?: () => void\n showProjectInfoButton?: boolean\n}) => {\n const isMobile = useIsMobile()\n const SDKConfig = useSDKConfig()\n const [onOpenSlippageModal] = useModal(<SlippageModal chainId={bondData.chainId} />)\n const minTier = bondData.minTier !== undefined ? bondData.minTier : null\n const bonusWithFee = findHighestTrueBondPrice(\n TIERS_WEIGHT[LaunchBondTiers.Legend],\n bondData?.trueBondPrices,\n )?.bonusWithFee\n\n const handleClose = () => {\n if (typeof window !== 'undefined') {\n window.history.pushState({}, '', `/bonds`)\n }\n onDismiss?.()\n }\n\n const handleProjectViewNavigation = () => {\n window.location.href = `/bonds/${bondData?.contractAddress?.[bondData?.chainId]}/${bondData?.chainId}`\n track({\n event: 'projectInfoClick',\n chain: bondData.chainId,\n data: {\n cat: 'Modal',\n bond: bondData.earnToken.symbol,\n bondChain: bondData.chainId,\n },\n })\n }\n\n return (\n <Flex\n className=\"modaltable-container title-container\"\n sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'start' }}\n >\n <Flex\n sx={{\n width: '100%',\n height: '30px',\n mb: ['10px', '10px', '10px', '0px'],\n justifyContent: ['space-between', 'space-between', 'space-between', 'flex-end'],\n }}\n >\n <Flex sx={{ display: ['flex', 'flex', 'flex', 'none'] }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n <Flex sx={{ cursor: 'pointer' }}>\n {onDismiss ? (\n <>\n {showProjectInfoButton && <ExpandedViewButton handleNavigation={handleProjectViewNavigation} />}\n <Flex sx={{ mx: '25px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n <Flex onClick={handleClose}>\n <Svg icon=\"close\" color=\"text\" width={isMobile ? '12px' : '18px'} />\n </Flex>\n </>\n ) : (\n <Flex sx={{ py: '3px', mt: '10px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n )}\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%' }}>\n <Flex className=\"title-container bondicon\">\n <Flex sx={MCTokenIconStyles[bondData.marketingCampaign!]} />\n <TokenImage\n symbol={bondData.showcaseTokenName ?? bondData.earnToken.symbol}\n size={50}\n chain={bondData.chainId}\n />\n </Flex>\n <Flex\n sx={{\n display: 'flex',\n flexDirection: 'column',\n pl: ['10px', '10px', '10px', '20px'],\n fontSize: ['20px', '20px', '20px', '24px'],\n fontWeight: 700,\n }}\n >\n {bondData?.showcaseTokenName}\n <ListTag text={bondData?.tags?.[0]} />\n </Flex>\n <Flex\n className=\"title-container price-container\"\n sx={{ flexDirection: 'column', pl: ['10px', '10px', '10px', '20px'] }}\n >\n <Flex className=\"price-container price\" sx={{ fontSize: ['12px', '12px', '12px', '14px'] }}>\n ${formatNumberSI(bondData.payoutTokenPrice, bondData.earnToken.symbol.toLowerCase() === 'ireet' ? 6 : 2)}\n </Flex>\n {SDKConfig.useTiers &&\n bondData.billVersion === BillVersion.V4 &&\n (bondData?.trueBondPrices?.length ?? 0) > 1 ? (\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '12px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color: bonusWithFee && bonusWithFee > 0 ? 'success' : 'error',\n fontSize: ['12px', '12px', '12px', '14px'],\n }}\n >\n ${discountEarnTokenPrice(bondData, true)}\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <Flex sx={{ fontSize: '24px', fontWeight: 700 }}>${discountEarnTokenPrice(bondData)}</Flex>\n )}\n </Flex>\n <Flex sx={{ display: ['none', 'none', 'none', 'flex'], ml: '10px' }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default BondModalHeader\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BondModalHeader.js","sources":["../../../../src/views/BuyBond/components/BondModalHeader.tsx"],"sourcesContent":["import React from 'react'\nimport TokenImage from '../../../components/uikit-sdk/TokenImage'\nimport { discountEarnTokenPrice } from '../../../utils/displayHelpers'\nimport useModal from '../../../hooks/useModal'\nimport SlippageModal from '../../../components/SlippageModal'\nimport { BondsData } from '../../../types/bonds'\nimport ExpandedViewButton from './ExpandedViewButton'\nimport track from '../../../utils/track'\nimport BondModalMinTierHeader from './BondModalMinTierHeader'\nimport useTierPoints, { Promotions, TIERS_WEIGHT } from '../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers'\nimport { MCTokenIconStyles } from '../../../utils/campaignStyles'\nimport { useIsMobile } from '../../../hooks/useIsMobile'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Svg from '../../../components/uikit-sdk/Svg'\nimport ListTag from '../../../components/uikit-sdk/Tag/ListTag'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport TooltipBubble from '../../../components/uikit-sdk/TooltipBubble'\n\nconst BondModalHeader = ({\n bondData,\n onDismiss,\n showProjectInfoButton,\n}: {\n bondData: BondsData\n onDismiss?: () => void\n showProjectInfoButton?: boolean\n}) => {\n const isMobile = useIsMobile()\n const SDKConfig = useSDKConfig()\n const { data: tierPointsState } = useTierPoints()\n const { promotion } = tierPointsState || {}\n const [onOpenSlippageModal] = useModal(<SlippageModal chainId={bondData.chainId} />)\n const minTier = bondData.minTier !== undefined ? bondData.minTier : null\n const bonusWithFee = findHighestTrueBondPrice(\n TIERS_WEIGHT[LaunchBondTiers.Legend],\n bondData?.trueBondPrices,\n )?.bonusWithFee\n\n const handleClose = () => {\n if (typeof window !== 'undefined') {\n window.history.pushState({}, '', `/bonds`)\n }\n onDismiss?.()\n }\n\n const handleProjectViewNavigation = () => {\n window.location.href = `/bonds/${bondData?.contractAddress?.[bondData?.chainId]}/${bondData?.chainId}`\n track({\n event: 'projectInfoClick',\n chain: bondData.chainId,\n data: {\n cat: 'Modal',\n bond: bondData.earnToken.symbol,\n bondChain: bondData.chainId,\n },\n })\n }\n\n return (\n <Flex\n className=\"modaltable-container title-container\"\n sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'start' }}\n >\n <Flex\n sx={{\n width: '100%',\n height: '30px',\n mb: ['10px', '10px', '10px', '0px'],\n justifyContent: ['space-between', 'space-between', 'space-between', 'flex-end'],\n }}\n >\n <Flex sx={{ display: ['flex', 'flex', 'flex', 'none'] }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n <Flex sx={{ cursor: 'pointer' }}>\n {onDismiss ? (\n <>\n {showProjectInfoButton && <ExpandedViewButton handleNavigation={handleProjectViewNavigation} />}\n <Flex sx={{ mx: '25px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n <Flex onClick={handleClose}>\n <Svg icon=\"close\" color=\"text\" width={isMobile ? '12px' : '18px'} />\n </Flex>\n </>\n ) : (\n <Flex sx={{ py: '3px', mt: '10px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n )}\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', position: 'relative' }}>\n <Flex className=\"title-container bondicon\">\n <Flex sx={MCTokenIconStyles[bondData.marketingCampaign!]} />\n <TokenImage\n symbol={bondData.showcaseTokenName ?? bondData.earnToken.symbol}\n size={50}\n chain={bondData.chainId}\n />\n </Flex>\n <Flex\n sx={{\n display: 'flex',\n flexDirection: 'column',\n pl: ['10px', '10px', '10px', '20px'],\n fontSize: ['20px', '20px', '20px', '24px'],\n fontWeight: 700,\n }}\n >\n {bondData?.showcaseTokenName}\n <ListTag text={bondData?.tags?.[0]} />\n </Flex>\n <Flex\n className=\"title-container price-container\"\n sx={{ flexDirection: 'column', pl: ['10px', '10px', '10px', '20px'] }}\n >\n <Flex className=\"price-container price\" sx={{ fontSize: ['12px', '12px', '12px', '14px'] }}>\n ${formatNumberSI(bondData.payoutTokenPrice, bondData.earnToken.symbol.toLowerCase() === 'ireet' ? 6 : 2)}\n </Flex>\n {SDKConfig.useTiers &&\n bondData.billVersion === BillVersion.V4 &&\n (bondData?.trueBondPrices?.length ?? 0) > 1 ? (\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '12px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color: bonusWithFee && bonusWithFee > 0 ? 'success' : 'error',\n fontSize: ['12px', '12px', '12px', '14px'],\n }}\n >\n ${discountEarnTokenPrice(bondData, true)}\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <Flex sx={{ fontSize: '24px', fontWeight: 700 }}>${discountEarnTokenPrice(bondData)}</Flex>\n )}\n </Flex>\n <Flex sx={{ display: ['none', 'none', 'none', 'flex'], ml: '10px' }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n {promotion === Promotions.WelcomeBonus && (\n <Flex\n sx={{\n position: 'absolute',\n right: '0',\n top: ['unset', 'unset', 'unset', '20px'],\n bottom: ['3px', '3px', '3px', 'unset'],\n }}\n >\n <TooltipBubble\n body={`I need some copy here. Once I have this I'll also align this tooltip`}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Flex\n sx={{\n border: '1px solid var(--theme-ui-colors-primaryButton)',\n borderRadius: ['10px', '10px', '10px', '20px'],\n p: ['4px 2px', '4px 2px', '4px 2px', '4px 10px'],\n alignItems: 'center',\n fontSize: '12px',\n fontWeight: 400,\n color: 'textDisabledButton',\n boxShadow: '0px 0px 30px -10px rgba(222, 98, 243, 0.5)',\n cursor: 'pointer',\n }}\n >\n <Flex sx={{ mt: '-15px' }}>\n <Svg icon=\"GiftBox\" width={30} color={'textDisabledButton'} />\n </Flex>\n <Flex sx={{ display: ['none', 'none', 'none', 'flex'] }}>Welcome Bonus</Flex>\n </Flex>\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n </Flex>\n )\n}\n\nexport default BondModalHeader\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,eAAe,GAAG,CAAC,EACvB,QAAQ,EACR,SAAS,EACT,qBAAqB,GAKtB,KAAI;AACH,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,aAAa,EAAE;AACjD,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,IAAI,EAAE;AAC3C,IAAA,MAAM,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAACA,GAAA,CAAC,aAAa,EAAA,EAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAA,CAAI,CAAC;AACpF,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,GAAG,IAAI;AACxE,IAAA,MAAM,YAAY,GAAG,wBAAwB,CAC3C,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,EACpC,QAAQ,EAAE,cAAc,CACzB,EAAE,YAAY;IAEf,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC;QAC5C;QACA,SAAS,IAAI;AACf,IAAA,CAAC;IAED,MAAM,2BAA2B,GAAG,MAAK;QACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAA,OAAA,EAAU,QAAQ,EAAE,eAAe,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA,CAAA,EAAI,QAAQ,EAAE,OAAO,EAAE;AACtG,QAAA,KAAK,CAAC;AACJ,YAAA,KAAK,EAAE,kBAAkB;YACzB,KAAK,EAAE,QAAQ,CAAC,OAAO;AACvB,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,EAAE,OAAO;AACZ,gBAAA,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;gBAC/B,SAAS,EAAE,QAAQ,CAAC,OAAO;AAC5B,aAAA;AACF,SAAA,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,QACEC,IAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAC,sCAAsC,EAChD,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAA,QAAA,EAAA,CAE9EA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,MAAM,EAAE,MAAM;oBACd,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;oBACnC,cAAc,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,CAAC;iBAChF,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EACrDA,GAAA,CAAC,sBAAsB,EAAA,EAAC,OAAO,EAAE,OAAO,EAAA,CAAI,EAAA,CACvC,EACPA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,QAAA,EAC5B,SAAS,IACRC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACG,qBAAqB,IAAIF,GAAA,CAAC,kBAAkB,EAAA,EAAC,gBAAgB,EAAE,2BAA2B,EAAA,CAAI,EAC/FA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAA,QAAA,EACpDA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAI,EAAA,CAChD,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAE,WAAW,EAAA,QAAA,EACxBA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,EAAA,CAAI,EAAA,CAC/D,CAAA,EAAA,CACN,KAEHA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAA,QAAA,EAC/DA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,EAAA,CAAI,EAAA,CAChD,CACR,EAAA,CACI,CAAA,EAAA,CACF,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,CAC/CA,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAA,CACxCD,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,iBAAiB,CAAC,QAAQ,CAAC,iBAAkB,CAAC,EAAA,CAAI,EAC5DA,GAAA,CAAC,UAAU,IACT,MAAM,EAAE,QAAQ,CAAC,iBAAiB,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,EAC/D,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAA,CACvB,CAAA,EAAA,CACG,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,aAAa,EAAE,QAAQ;4BACvB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;4BACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,4BAAA,UAAU,EAAE,GAAG;yBAChB,EAAA,QAAA,EAAA,CAEA,QAAQ,EAAE,iBAAiB,EAC5BD,IAAC,OAAO,EAAA,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,GAAI,CAAA,EAAA,CACjC,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAC,iCAAiC,EAC3C,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAAA,CAErEA,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,uBAAuB,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAAA,CAAA,GAAA,EACtF,cAAc,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA,EAAA,CACnG,EACN,SAAS,CAAC,QAAQ;AACnB,gCAAA,QAAQ,CAAC,WAAW,KAAK,WAAW,CAAC,EAAE;AACvC,gCAAA,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,IACzCA,KAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oCAAA,CAAC,EAAE,SAAS;AACZ,oCAAA,MAAM,EAAE,mBAAmB;AAC3B,oCAAA,YAAY,EAAE,QAAQ;AACtB,oCAAA,UAAU,EAAE,aAAa;AACzB,oCAAA,QAAQ,EAAE,UAAU;AACpB,oCAAA,QAAQ,EAAE,QAAQ;AACnB,iCAAA,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4CAAA,QAAQ,EAAE,UAAU;AACpB,4CAAA,KAAK,EAAE,MAAM;AACb,4CAAA,MAAM,EAAE,MAAM;AACd,4CAAA,GAAG,EAAE,CAAC;AACN,4CAAA,IAAI,EAAE,CAAC;AACP,4CAAA,MAAM,EAAE,CAAC;AACT,4CAAA,UAAU,EAAE,SAAS;AACrB,4CAAA,OAAO,EAAE,GAAG;AACb,yCAAA,EAAA,CACD,EACFC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAC1DD,aACE,GAAG,EAAE,CAAA,2CAAA,CAA6C,EAClD,GAAG,EAAC,SAAS,EACb,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAA,CACvE,EACFA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,OAAA,EAAA,CAAc,EACjFC,KAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oDAAA,KAAK,EAAE,YAAY,IAAI,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO;oDAC7D,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3C,iDAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAEC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA,EAAA,CACnC,CAAA,EAAA,CACF,CAAA,EAAA,CACF,KAEPA,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAA,EAAA,CAAQ,CAC5F,CAAA,EAAA,CACI,EACPD,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACjEA,GAAA,CAAC,sBAAsB,EAAA,EAAC,OAAO,EAAE,OAAO,EAAA,CAAI,EAAA,CACvC,EACN,SAAS,KAAK,UAAU,CAAC,YAAY,KACpCA,IAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4BAAA,QAAQ,EAAE,UAAU;AACpB,4BAAA,KAAK,EAAE,GAAG;4BACV,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;4BACxC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;yBACvC,EAAA,QAAA,EAEDA,GAAA,CAAC,aAAa,EAAA,EACZ,IAAI,EAAE,CAAA,oEAAA,CAAsE,EAC5E,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,aAAa,EACvB,YAAY,EAAC,oBAAoB,YAEjCC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oCAAA,MAAM,EAAE,gDAAgD;oCACxD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oCAC9C,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;AAChD,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,QAAQ,EAAE,MAAM;AAChB,oCAAA,UAAU,EAAE,GAAG;AACf,oCAAA,KAAK,EAAE,oBAAoB;AAC3B,oCAAA,SAAS,EAAE,4CAA4C;AACvD,oCAAA,MAAM,EAAE,SAAS;iCAClB,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAA,QAAA,EACvBA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAA,CAAI,EAAA,CACzD,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAAA,eAAA,EAAA,CAAsB,CAAA,EAAA,CACxE,EAAA,CACO,EAAA,CACX,CACR,CAAA,EAAA,CACI,CAAA,EAAA,CACF;AAEX;;;;"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { BondsData } from '../../../types/bonds';
|
|
3
3
|
declare const Estimations: ({ depositAmount, inputValue, inputTokenPrice, bondData, youSpendString, isZap, fetchingZapQuote, zapError, }: {
|
|
4
4
|
depositAmount: string;
|
|
5
|
-
inputValue
|
|
5
|
+
inputValue?: string;
|
|
6
6
|
inputTokenPrice?: number;
|
|
7
7
|
bondData: BondsData;
|
|
8
8
|
youSpendString?: string;
|
|
@@ -17,27 +17,28 @@ import TokenImage from '../../../components/uikit-sdk/TokenImage/index.js';
|
|
|
17
17
|
import { tierOptimizerUIEnabled } from '../../../config/constants/variables.js';
|
|
18
18
|
|
|
19
19
|
const Estimations = ({ depositAmount, inputValue, inputTokenPrice, bondData, youSpendString, isZap, fetchingZapQuote, zapError, }) => {
|
|
20
|
-
const { data:
|
|
20
|
+
const { data: tierPointsState } = useTierPoints();
|
|
21
|
+
const { promotionalPoints } = tierPointsState || {};
|
|
21
22
|
const abondPrice = useAbondPrice();
|
|
22
|
-
const trueBondPrice = findHighestTrueBondPrice(
|
|
23
|
+
const trueBondPrice = findHighestTrueBondPrice(promotionalPoints, bondData?.trueBondPrices);
|
|
23
24
|
const SDKConfig = useSDKConfig();
|
|
24
|
-
const userTier = getUserTier(
|
|
25
|
+
const userTier = getUserTier(promotionalPoints);
|
|
25
26
|
const tierName = userTier ? TIERS_NAMES[userTier] : '';
|
|
26
27
|
// Estimations
|
|
27
28
|
const bonusString = getRawBonus(bondData, depositAmount, '0');
|
|
28
29
|
// const fee = getFeeAmount(bondData, depositAmount, userPoints ?? '0')
|
|
29
30
|
// const feeUSD = fee * parseFloat(bondData?.payoutTokenPrice ?? '0')
|
|
30
|
-
const estimatedOutputAmount = getPayoutAmount(bondData, depositAmount,
|
|
31
|
+
const estimatedOutputAmount = getPayoutAmount(bondData, depositAmount, promotionalPoints);
|
|
31
32
|
const estimatedOutputUSD = estimatedOutputAmount * parseFloat(bondData?.payoutTokenPrice ?? '0');
|
|
32
33
|
const noTierAmount = getRawBonus(bondData, depositAmount, '0');
|
|
33
|
-
const boostAmount = parseFloat(getRawBonus(bondData, depositAmount,
|
|
34
|
-
const optimizationData = calculateOptimizationData(inputValue,
|
|
34
|
+
const boostAmount = parseFloat(getRawBonus(bondData, depositAmount, promotionalPoints ?? '0')) - parseFloat(noTierAmount);
|
|
35
|
+
const optimizationData = calculateOptimizationData(inputValue ?? '', promotionalPoints, bondData, inputTokenPrice, abondPrice);
|
|
35
36
|
const highestProfitableTier = optimizationData?.highestProfitableTier;
|
|
36
|
-
return (jsxs(Flex, { className: "modaltable-container text-container", children: [jsxs(Flex, { className: "text-container row", children: [jsx(Flex, { className: "row-container spend", children: "You Spend:" }), jsx(Flex, { className: "row-container spend-val", children: youSpendString })] }), jsxs(Flex, { className: "text-container row", children: [jsxs(Flex, { className: "row-container premium", children: [!!userTier && !!
|
|
37
|
+
return (jsxs(Flex, { className: "modaltable-container text-container", children: [jsxs(Flex, { className: "text-container row", children: [jsx(Flex, { className: "row-container spend", children: "You Spend:" }), jsx(Flex, { className: "row-container spend-val", children: youSpendString })] }), jsxs(Flex, { className: "text-container row", children: [jsxs(Flex, { className: "row-container premium", children: [!!userTier && !!promotionalPoints && SDKConfig.useTiers && bondData.billVersion === BillVersion.V4
|
|
37
38
|
? 'Base Bonus:'
|
|
38
39
|
: 'Bonus:', jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: (bondData?.feeInPayout || 0) > 0
|
|
39
40
|
? `This is the dollar value of the bonus tokens you’ll receive at current market price, already accounting for the protocol fee (${bondData.feeInPayout}%)`
|
|
40
|
-
: 'This is the dollar value of the bonus tokens you’ll receive at current market price.' }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "row-container premium-icon", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), isZap && fetchingZapQuote ? (jsx(Dots, {})) : isZap && zapError ? ('-') : (jsxs(Flex, { className: `row-container premium-val ${getBonusColor(bonusString)}`, children: ["$ ", formatNumberSI(bonusString)] }))] }), trueBondPrice?.points !== '0' && userTier &&
|
|
41
|
+
: 'This is the dollar value of the bonus tokens you’ll receive at current market price.' }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "row-container premium-icon", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), isZap && fetchingZapQuote ? (jsx(Dots, {})) : isZap && zapError ? ('-') : (jsxs(Flex, { className: `row-container premium-val ${getBonusColor(bonusString)}`, children: ["$ ", formatNumberSI(bonusString)] }))] }), trueBondPrice?.points !== '0' && userTier && promotionalPoints && SDKConfig.useTiers && (jsxs(Flex, { sx: {
|
|
41
42
|
borderRadius: 'normal',
|
|
42
43
|
mx: '-8px',
|
|
43
44
|
px: '8px',
|
|
@@ -63,7 +64,12 @@ const Estimations = ({ depositAmount, inputValue, inputTokenPrice, bondData, you
|
|
|
63
64
|
background: '#9960C5',
|
|
64
65
|
opacity: 0.2,
|
|
65
66
|
borderRadius: 'normal',
|
|
66
|
-
} }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', height: '21px' }, children: [jsxs(Flex, { className: "row-container get", children: ["You Get (over ", getTimePeriods(bondData?.vestingTerm, true).days, " days):"] }), isZap && fetchingZapQuote ? (jsx(Dots, {})) : isZap && zapError ? ('-') : (jsxs(Flex, { className: "row-container get-val", children: [formatNumberSI(estimatedOutputAmount, 4), " ", bondData?.showcaseTokenName, " = $", ' ', formatNumberSI(estimatedOutputUSD, 2)] }))] }), (bondData.tierBoostRate || highestProfitableTier) && (jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', height: '21px' }, children: [jsxs(Flex, { className: "row-container get", children: ["Ape Points Earned:", jsx(Flex, { sx: { ml: '5px' }, children: jsx(TooltipBubble, { body: 'This purchase will earn you Ape Points. Ape Points provide a weekly yield in USDT and count toward your Ape Tier progression. Unlock higher Ape Tiers to get extra discounts on all Bonds.', width:
|
|
67
|
+
} }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', height: '21px' }, children: [jsxs(Flex, { className: "row-container get", children: ["You Get (over ", getTimePeriods(bondData?.vestingTerm, true).days, " days):"] }), isZap && fetchingZapQuote ? (jsx(Dots, {})) : isZap && zapError ? ('-') : (jsxs(Flex, { className: "row-container get-val", children: [formatNumberSI(estimatedOutputAmount, 4), " ", bondData?.showcaseTokenName, " = $", ' ', formatNumberSI(estimatedOutputUSD, 2)] }))] }), (bondData.tierBoostRate || highestProfitableTier) && (jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', height: '21px' }, children: [jsxs(Flex, { className: "row-container get", children: ["Ape Points Earned:", jsx(Flex, { sx: { ml: '5px' }, children: jsx(TooltipBubble, { body: 'This purchase will earn you Ape Points. Ape Points provide a weekly yield in USDT and count toward your Ape Tier progression. Unlock higher Ape Tiers to get extra discounts on all Bonds.', width: ['200px', '200px', '200px', '250px'], placement: "bottomLeft", transformTip: [
|
|
68
|
+
'translate(-8%, 0%)',
|
|
69
|
+
'translate(-8%, 0%)',
|
|
70
|
+
'translate(-8%, 0%)',
|
|
71
|
+
'translate(-7%, 0%)',
|
|
72
|
+
], children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), isZap && fetchingZapQuote ? (jsx(Dots, {})) : isZap && zapError ? ('-') : (jsx(Flex, { className: "row-container get-val", children: jsxs(Flex, { sx: { alignItems: 'center', gap: '5px' }, children: [highestProfitableTier || optimizationData?.tierBoostPoints ? (jsxs(Fragment, { children: [jsx(TokenImage, { symbol: 'veABOND', size: 15 }), formatNumberSI(optimizationData?.tierBoostPoints, 2, true), jsx(Flex, { children: "points" })] })) : ('-'), highestProfitableTier && tierOptimizerUIEnabled] }) }))] }))] })] }));
|
|
67
73
|
};
|
|
68
74
|
|
|
69
75
|
export { Estimations as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Estimations.js","sources":["../../../../src/views/BuyBond/components/Estimations.tsx"],"sourcesContent":["import React from 'react'\nimport { getBonusColor, getPayoutAmount, getRawBonus } from '../../../utils/displayHelpers'\nimport { TooltipText } from '../../../config/constants/tooltips'\nimport { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers'\nimport { BondsData } from '../../../types/bonds'\nimport useTierPoints, {\n getUserTier,\n NewTiers,\n TIERS_BG,\n TIERS_COLORS,\n TIERS_NAMES,\n} from '../../../state/tiers/useTierPoints'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport { BillVersion } from '@ape.swap/apeswap-lists'\nimport { getTimePeriods } from '../../../utils/getTimePeriods'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../components/uikit-sdk/Svg'\nimport LoadingDots from '../../../components/uikit-sdk/LoadingDots'\nimport { calculateOptimizationData } from '../utils'\nimport { useAbondPrice } from '../../../state/tokenPrices/useAbondPrice'\nimport TokenImage from '../../../components/uikit-sdk/TokenImage'\nimport { tierOptimizerUIEnabled } from '../../../config/constants/variables'\n\nconst Estimations = ({\n depositAmount,\n inputValue,\n inputTokenPrice,\n bondData,\n youSpendString,\n isZap,\n fetchingZapQuote,\n zapError,\n}: {\n depositAmount: string // actually deposited (after zap fees and estimations)\n inputValue: string // input amount selected on the UI\n inputTokenPrice?: number\n bondData: BondsData\n youSpendString?: string\n isZap?: boolean\n fetchingZapQuote?: boolean\n zapError?: boolean\n}) => {\n const { data: userPoints } = useTierPoints()\n const abondPrice = useAbondPrice()\n const trueBondPrice = findHighestTrueBondPrice(userPoints, bondData?.trueBondPrices)\n const SDKConfig = useSDKConfig()\n const userTier = getUserTier(userPoints)\n const tierName = userTier ? TIERS_NAMES[userTier] : ''\n\n // Estimations\n const bonusString = getRawBonus(bondData, depositAmount, '0')\n // const fee = getFeeAmount(bondData, depositAmount, userPoints ?? '0')\n // const feeUSD = fee * parseFloat(bondData?.payoutTokenPrice ?? '0')\n\n const estimatedOutputAmount = getPayoutAmount(bondData, depositAmount, userPoints)\n const estimatedOutputUSD = estimatedOutputAmount * parseFloat(bondData?.payoutTokenPrice ?? '0')\n\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const boostAmount = parseFloat(getRawBonus(bondData, depositAmount, userPoints ?? '0')) - parseFloat(noTierAmount)\n\n const optimizationData = calculateOptimizationData(inputValue, userPoints!, bondData, inputTokenPrice, abondPrice)\n const highestProfitableTier = optimizationData?.highestProfitableTier\n\n return (\n <Flex className=\"modaltable-container text-container\">\n <Flex className=\"text-container row\">\n <Flex className=\"row-container spend\">You Spend:</Flex>\n <Flex className=\"row-container spend-val\">{youSpendString}</Flex>\n </Flex>\n <Flex className=\"text-container row\">\n <Flex className=\"row-container premium\">\n {!!userTier && !!userPoints && SDKConfig.useTiers && bondData.billVersion === BillVersion.V4\n ? 'Base Bonus:'\n : 'Bonus:'}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n {(bondData?.feeInPayout || 0) > 0\n ? `This is the dollar value of the bonus tokens you’ll receive at current market price, already accounting for the protocol fee (${bondData.feeInPayout}%)`\n : 'This is the dollar value of the bonus tokens you’ll receive at current market price.'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className={`row-container premium-val ${getBonusColor(bonusString)}`}>\n $ {formatNumberSI(bonusString)}\n </Flex>\n )}\n </Flex>\n {trueBondPrice?.points !== '0' && userTier && userPoints && SDKConfig.useTiers && (\n <Flex\n sx={{\n borderRadius: 'normal',\n mx: '-8px',\n px: '8px',\n py: '2px',\n position: 'relative',\n justifyContent: 'space-between',\n }}\n >\n <Flex className=\"row-container premium\" sx={{ zIndex: 1 }}>\n <img\n src={`https://ape.bond/images/launch/${tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n Boost\n <Flex sx={{ color: 'success', mx: '3px', fontWeight: 700 }}>{`+${trueBondPrice?.boost ?? 0}%`}</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{TooltipText.Boost}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className={`row-container premium-val premium-positive`}>$ {formatNumberSI(boostAmount)}</Flex>\n )}\n </Flex>\n )}\n <Flex\n sx={{\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n mx: '-8px',\n px: '8px',\n py: '4px',\n position: 'relative',\n flexDirection: 'column',\n gap: '3px',\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 0,\n background: '#9960C5',\n opacity: 0.2,\n borderRadius: 'normal',\n }}\n />\n <Flex sx={{ width: '100%', justifyContent: 'space-between', height: '21px' }}>\n <Flex className=\"row-container get\">\n You Get (over {getTimePeriods(bondData?.vestingTerm, true).days} days):\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className=\"row-container get-val\">\n {formatNumberSI(estimatedOutputAmount, 4)} {bondData?.showcaseTokenName} = ${' '}\n {formatNumberSI(estimatedOutputUSD, 2)}\n </Flex>\n )}\n </Flex>\n {(bondData.tierBoostRate || highestProfitableTier) && (\n <Flex sx={{ width: '100%', justifyContent: 'space-between', height: '21px' }}>\n <Flex className=\"row-container get\">\n Ape Points Earned:\n <Flex sx={{ ml: '5px' }}>\n <TooltipBubble\n body={\n 'This purchase will earn you Ape Points. Ape Points provide a weekly yield in USDT and count toward your Ape Tier progression. Unlock higher Ape Tiers to get extra discounts on all Bonds.'\n }\n width=\"250px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </TooltipBubble>\n </Flex>\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className=\"row-container get-val\">\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {highestProfitableTier || optimizationData?.tierBoostPoints ? (\n <>\n <TokenImage symbol={'veABOND'} size={15} />\n {formatNumberSI(\n highestProfitableTier && tierOptimizerUIEnabled\n ? highestProfitableTier.necessaryPointsToUpgrade\n : optimizationData?.tierBoostPoints,\n 2,\n true,\n )}\n <Flex>points</Flex>\n </>\n ) : (\n '-'\n )}\n {highestProfitableTier && tierOptimizerUIEnabled && (\n <>\n +\n <Flex\n sx={{\n px: '3px',\n height: '24px',\n background: TIERS_BG[highestProfitableTier.tier as NewTiers],\n border: `2px solid ${TIERS_COLORS[highestProfitableTier.tier as NewTiers]}`,\n borderRadius: '5px',\n fontWeight: 700,\n alignItems: 'center',\n minWidth: highestProfitableTier.tier > 2 && '118px',\n }}\n >\n <img\n src={`https://ape.bond/images/launch/${highestProfitableTier?.tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n {highestProfitableTier.tierName} Tier\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n </Flex>\n )\n}\n\nexport default Estimations\n"],"names":["_jsxs","_jsx","LoadingDots","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Estimations.js","sources":["../../../../src/views/BuyBond/components/Estimations.tsx"],"sourcesContent":["import React from 'react'\nimport { getBonusColor, getPayoutAmount, getRawBonus } from '../../../utils/displayHelpers'\nimport { TooltipText } from '../../../config/constants/tooltips'\nimport { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers'\nimport { BondsData } from '../../../types/bonds'\nimport useTierPoints, {\n getUserTier,\n NewTiers,\n TIERS_BG,\n TIERS_COLORS,\n TIERS_NAMES,\n} from '../../../state/tiers/useTierPoints'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport { BillVersion } from '@ape.swap/apeswap-lists'\nimport { getTimePeriods } from '../../../utils/getTimePeriods'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../components/uikit-sdk/Svg'\nimport LoadingDots from '../../../components/uikit-sdk/LoadingDots'\nimport { calculateOptimizationData } from '../utils'\nimport { useAbondPrice } from '../../../state/tokenPrices/useAbondPrice'\nimport TokenImage from '../../../components/uikit-sdk/TokenImage'\nimport { tierOptimizerUIEnabled } from '../../../config/constants/variables'\n\nconst Estimations = ({\n depositAmount,\n inputValue,\n inputTokenPrice,\n bondData,\n youSpendString,\n isZap,\n fetchingZapQuote,\n zapError,\n}: {\n depositAmount: string // actually deposited (after zap fees and estimations)\n inputValue?: string // input amount selected on the UI\n inputTokenPrice?: number\n bondData: BondsData\n youSpendString?: string\n isZap?: boolean\n fetchingZapQuote?: boolean\n zapError?: boolean\n}) => {\n const { data: tierPointsState } = useTierPoints()\n const { promotionalPoints } = tierPointsState || {}\n const abondPrice = useAbondPrice()\n const trueBondPrice = findHighestTrueBondPrice(promotionalPoints, bondData?.trueBondPrices)\n const SDKConfig = useSDKConfig()\n const userTier = getUserTier(promotionalPoints)\n const tierName = userTier ? TIERS_NAMES[userTier] : ''\n\n // Estimations\n const bonusString = getRawBonus(bondData, depositAmount, '0')\n // const fee = getFeeAmount(bondData, depositAmount, userPoints ?? '0')\n // const feeUSD = fee * parseFloat(bondData?.payoutTokenPrice ?? '0')\n\n const estimatedOutputAmount = getPayoutAmount(bondData, depositAmount, promotionalPoints)\n const estimatedOutputUSD = estimatedOutputAmount * parseFloat(bondData?.payoutTokenPrice ?? '0')\n\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const boostAmount =\n parseFloat(getRawBonus(bondData, depositAmount, promotionalPoints ?? '0')) - parseFloat(noTierAmount)\n\n const optimizationData = calculateOptimizationData(\n inputValue ?? '',\n promotionalPoints!,\n bondData,\n inputTokenPrice,\n abondPrice,\n )\n const highestProfitableTier = optimizationData?.highestProfitableTier\n\n return (\n <Flex className=\"modaltable-container text-container\">\n <Flex className=\"text-container row\">\n <Flex className=\"row-container spend\">You Spend:</Flex>\n <Flex className=\"row-container spend-val\">{youSpendString}</Flex>\n </Flex>\n <Flex className=\"text-container row\">\n <Flex className=\"row-container premium\">\n {!!userTier && !!promotionalPoints && SDKConfig.useTiers && bondData.billVersion === BillVersion.V4\n ? 'Base Bonus:'\n : 'Bonus:'}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n {(bondData?.feeInPayout || 0) > 0\n ? `This is the dollar value of the bonus tokens you’ll receive at current market price, already accounting for the protocol fee (${bondData.feeInPayout}%)`\n : 'This is the dollar value of the bonus tokens you’ll receive at current market price.'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className={`row-container premium-val ${getBonusColor(bonusString)}`}>\n $ {formatNumberSI(bonusString)}\n </Flex>\n )}\n </Flex>\n {trueBondPrice?.points !== '0' && userTier && promotionalPoints && SDKConfig.useTiers && (\n <Flex\n sx={{\n borderRadius: 'normal',\n mx: '-8px',\n px: '8px',\n py: '2px',\n position: 'relative',\n justifyContent: 'space-between',\n }}\n >\n <Flex className=\"row-container premium\" sx={{ zIndex: 1 }}>\n <img\n src={`https://ape.bond/images/launch/${tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n Boost\n <Flex sx={{ color: 'success', mx: '3px', fontWeight: 700 }}>{`+${trueBondPrice?.boost ?? 0}%`}</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{TooltipText.Boost}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className={`row-container premium-val premium-positive`}>$ {formatNumberSI(boostAmount)}</Flex>\n )}\n </Flex>\n )}\n <Flex\n sx={{\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n mx: '-8px',\n px: '8px',\n py: '4px',\n position: 'relative',\n flexDirection: 'column',\n gap: '3px',\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 0,\n background: '#9960C5',\n opacity: 0.2,\n borderRadius: 'normal',\n }}\n />\n <Flex sx={{ width: '100%', justifyContent: 'space-between', height: '21px' }}>\n <Flex className=\"row-container get\">\n You Get (over {getTimePeriods(bondData?.vestingTerm, true).days} days):\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className=\"row-container get-val\">\n {formatNumberSI(estimatedOutputAmount, 4)} {bondData?.showcaseTokenName} = ${' '}\n {formatNumberSI(estimatedOutputUSD, 2)}\n </Flex>\n )}\n </Flex>\n {(bondData.tierBoostRate || highestProfitableTier) && (\n <Flex sx={{ width: '100%', justifyContent: 'space-between', height: '21px' }}>\n <Flex className=\"row-container get\">\n Ape Points Earned:\n <Flex sx={{ ml: '5px' }}>\n <TooltipBubble\n body={\n 'This purchase will earn you Ape Points. Ape Points provide a weekly yield in USDT and count toward your Ape Tier progression. Unlock higher Ape Tiers to get extra discounts on all Bonds.'\n }\n width={['200px', '200px', '200px', '250px']}\n placement=\"bottomLeft\"\n transformTip={[\n 'translate(-8%, 0%)',\n 'translate(-8%, 0%)',\n 'translate(-8%, 0%)',\n 'translate(-7%, 0%)',\n ]}\n >\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </TooltipBubble>\n </Flex>\n </Flex>\n {isZap && fetchingZapQuote ? (\n <LoadingDots />\n ) : isZap && zapError ? (\n '-'\n ) : (\n <Flex className=\"row-container get-val\">\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {highestProfitableTier || optimizationData?.tierBoostPoints ? (\n <>\n <TokenImage symbol={'veABOND'} size={15} />\n {formatNumberSI(\n highestProfitableTier && tierOptimizerUIEnabled\n ? highestProfitableTier.necessaryPointsToUpgrade\n : optimizationData?.tierBoostPoints,\n 2,\n true,\n )}\n <Flex>points</Flex>\n </>\n ) : (\n '-'\n )}\n {highestProfitableTier && tierOptimizerUIEnabled && (\n <>\n +\n <Flex\n sx={{\n px: '3px',\n height: '24px',\n background: TIERS_BG[highestProfitableTier.tier as NewTiers],\n border: `2px solid ${TIERS_COLORS[highestProfitableTier.tier as NewTiers]}`,\n borderRadius: '5px',\n fontWeight: 700,\n alignItems: 'center',\n minWidth: highestProfitableTier.tier > 2 && '118px',\n }}\n >\n <img\n src={`https://ape.bond/images/launch/${highestProfitableTier?.tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n {highestProfitableTier.tierName} Tier\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n </Flex>\n )\n}\n\nexport default Estimations\n"],"names":["_jsxs","_jsx","LoadingDots","_Fragment"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx, jsxs } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
4
4
|
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
@@ -12,16 +12,36 @@ import { Box } from 'theme-ui';
|
|
|
12
12
|
|
|
13
13
|
const GetUpToComponent = ({ bond, depositAmount }) => {
|
|
14
14
|
// Hooks & Data
|
|
15
|
-
const { data:
|
|
16
|
-
const
|
|
15
|
+
const { data: tierState } = useTierPoints();
|
|
16
|
+
const { promotionalPoints, usingPromotion } = tierState || {};
|
|
17
|
+
const userTier = getUserTier(promotionalPoints);
|
|
17
18
|
const bonusString = getRawBonus(bond, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical]);
|
|
18
19
|
const noTierAmount = getRawBonus(bond, depositAmount, '0');
|
|
19
20
|
const boostAmount = parseFloat(bonusString) - parseFloat(noTierAmount);
|
|
20
21
|
const trueBondPrice = findHighestTrueBondPriceUserAgnostic(bond);
|
|
21
22
|
//State
|
|
22
23
|
const [isOpen, setIsOpen] = useState(false);
|
|
23
|
-
return (
|
|
24
|
-
|
|
24
|
+
return usingPromotion ? (jsx(Flex, { sx: {
|
|
25
|
+
width: '100%',
|
|
26
|
+
mt: '10px',
|
|
27
|
+
fontSize: '12px',
|
|
28
|
+
fontWeight: 400,
|
|
29
|
+
flexDirection: 'column',
|
|
30
|
+
position: 'relative',
|
|
31
|
+
}, children: jsxs("span", { onClick: () => setIsOpen(!isOpen), sx: {
|
|
32
|
+
border: '1px solid #9960C5',
|
|
33
|
+
borderRadius: 'normal',
|
|
34
|
+
pl: '10px',
|
|
35
|
+
pr: '20px',
|
|
36
|
+
py: '4px',
|
|
37
|
+
cursor: 'pointer',
|
|
38
|
+
background: '#312341',
|
|
39
|
+
display: 'inline-flex',
|
|
40
|
+
alignItems: 'center',
|
|
41
|
+
gap: '4px',
|
|
42
|
+
width: '100%',
|
|
43
|
+
boxSizing: 'border-box',
|
|
44
|
+
}, children: [jsx("span", { sx: { mt: '-7px' }, children: jsx(Svg, { icon: "GiftBox", width: 20, color: 'textDisabledButton' }) }), `You've been awarded with a Welcome Bonus. `, jsx("span", { sx: { ml: '3px', color: 'primaryButton', ':hover': { textDecoration: 'underline' } }, children: `Learn More >` })] }) })) : (userTier !== LaunchBondTiers.Mythical && bond.billVersion === BillVersion.V4 && (jsxs(Flex, { sx: {
|
|
25
45
|
width: '100%',
|
|
26
46
|
mt: '10px',
|
|
27
47
|
fontSize: '12px',
|
|
@@ -40,7 +60,7 @@ const GetUpToComponent = ({ bond, depositAmount }) => {
|
|
|
40
60
|
cursor: 'pointer',
|
|
41
61
|
justifyContent: 'space-between',
|
|
42
62
|
background: '#312341',
|
|
43
|
-
}, children: [jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx("img", { src: `https://ape.bond/images/launch/mythical.png`, alt: "minTier", style: { width: '21px', height: '21px', marginRight: '3px', zIndex: 1 } }), jsxs(Box, { children: ["Get up to", jsx("span", { sx: { color: 'success', mx: '3px', fontWeight: 700 }, children: `+${trueBondPrice?.boost ?? 0}%` }), "Boost.",
|
|
63
|
+
}, children: [jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx("img", { src: `https://ape.bond/images/launch/mythical.png`, alt: "minTier", style: { width: '21px', height: '21px', marginRight: '3px', zIndex: 1 } }), jsxs(Box, { children: ["Get up to", jsx("span", { sx: { color: 'success', mx: '3px', fontWeight: 700 }, children: `+${trueBondPrice?.boost ?? 0}%` }), "Boost.", jsx("span", { sx: {
|
|
44
64
|
ml: '5px',
|
|
45
65
|
color: 'primaryButton',
|
|
46
66
|
fontWeight: 500,
|
|
@@ -50,7 +70,7 @@ const GetUpToComponent = ({ bond, depositAmount }) => {
|
|
|
50
70
|
}, onClick: (e) => {
|
|
51
71
|
e.stopPropagation();
|
|
52
72
|
window.open('https://www.ape.bond/true-yield?createPosition', '_blank');
|
|
53
|
-
}, children: 'By locking ABOND >' })
|
|
73
|
+
}, children: 'By locking ABOND >' })] })] }), !!depositAmount && parseFloat(depositAmount) !== 0 && (jsxs(Flex, { sx: { color: 'success', fontWeight: 700, minWidth: '65px', justifyContent: 'flex-end' }, children: ["$ ", formatUSDNumber(boostAmount.toString())] })), jsx(Flex, { sx: { position: 'absolute', right: '6px' }, children: jsx(Svg, { icon: "caret", direction: isOpen ? 'up' : 'down' }) })] }), jsx(AnimatePresence, { children: isOpen && (jsx(motion.div, { initial: { height: 0 }, animate: { height: 'fit-content' }, transition: { opacity: { duration: 0.2 } }, exit: { height: 0 }, sx: { overflow: 'hidden', width: '100%', marginTop: '5px', cursor: 'pointer' }, onClick: (e) => {
|
|
54
74
|
e.stopPropagation();
|
|
55
75
|
window.open('https://www.ape.bond/true-yield?createPosition', '_blank');
|
|
56
76
|
}, children: jsx(BonusTable, { trueBondPrices: bond?.trueBondPrices, minTier: bond.minTier, hideTitle: true }) })) })] })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetUpToComponent.js","sources":["../../../../../src/views/BuyBond/components/GetUpToComponent/GetUpToComponent.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport Flex from '../../../../components/uikit-sdk/Flex'\r\nimport Svg from '../../../../components/uikit-sdk/Svg'\r\nimport { BondsData } from '../../../../types/bonds'\r\nimport useTierPoints, { getUserTier, TIERS_WEIGHT } from '../../../../state/tiers/useTierPoints'\r\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\r\nimport { AnimatePresence, motion } from 'framer-motion'\r\nimport BonusTable from '../../../Bonds/components/BonusComponents/BonusTable'\r\nimport { formatUSDNumber, getRawBonus } from '../../../../utils/displayHelpers'\r\nimport { findHighestTrueBondPriceUserAgnostic } from '../../../../utils/bondPriceHelpers'\r\nimport { Box } from 'theme-ui'\r\n\r\ninterface GetUpToComponentProps {\r\n bond: BondsData\r\n depositAmount: string\r\n}\r\n\r\nconst GetUpToComponent: React.FC<GetUpToComponentProps> = ({ bond, depositAmount }) => {\r\n // Hooks & Data\r\n const { data: userPoints } = useTierPoints()\r\n const userTier = getUserTier(userPoints)\r\n const bonusString = getRawBonus(bond, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\r\n const noTierAmount = getRawBonus(bond, depositAmount, '0')\r\n const boostAmount = parseFloat(bonusString) - parseFloat(noTierAmount)\r\n const trueBondPrice = findHighestTrueBondPriceUserAgnostic(bond)\r\n\r\n //State\r\n const [isOpen, setIsOpen] = useState(false)\r\n return (\r\n userTier !== LaunchBondTiers.Legend &&\r\n bond.billVersion === BillVersion.V4 && (\r\n <Flex\r\n sx={{\r\n width: '100%',\r\n mt: '10px',\r\n fontSize: '12px',\r\n fontWeight: 400,\r\n flexDirection: 'column',\r\n position: 'relative',\r\n }}\r\n >\r\n <Flex\r\n onClick={() => setIsOpen(!isOpen)}\r\n sx={{\r\n border: '1px solid #9960C5',\r\n borderRadius: 'normal',\r\n position: 'relative',\r\n overflow: 'hidden',\r\n pl: '10px',\r\n pr: '20px',\r\n py: '2px',\r\n alignItems: 'center',\r\n cursor: 'pointer',\r\n justifyContent: 'space-between',\r\n background: '#312341',\r\n }}\r\n >\r\n <Flex sx={{ alignItems: 'center' }}>\r\n <img\r\n src={`https://ape.bond/images/launch/mythical.png`}\r\n alt=\"minTier\"\r\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\r\n />\r\n <Box>\r\n Get up to\r\n <span sx={{ color: 'success', mx: '3px', fontWeight: 700 }}>{`+${trueBondPrice?.boost ?? 0}%`}</span>\r\n Boost.\r\n {userTier !== LaunchBondTiers.Mythical && (\r\n <span\r\n sx={{\r\n ml: '5px',\r\n color: 'primaryButton',\r\n fontWeight: 500,\r\n cursor: 'pointer',\r\n ':hover': { textDecoration: 'underline' },\r\n display: ['none', 'none', 'none', 'inline'],\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n window.open('https://www.ape.bond/true-yield?createPosition', '_blank')\r\n }}\r\n >\r\n {'By locking ABOND >'}\r\n </span>\r\n )}\r\n </Box>\r\n </Flex>\r\n {!!depositAmount && parseFloat(depositAmount) !== 0 && (\r\n <Flex sx={{ color: 'success', fontWeight: 700, minWidth: '65px', justifyContent: 'flex-end' }}>\r\n $ {formatUSDNumber(boostAmount.toString())}\r\n </Flex>\r\n )}\r\n <Flex sx={{ position: 'absolute', right: '6px' }}>\r\n <Svg icon=\"caret\" direction={isOpen ? 'up' : 'down'} />\r\n </Flex>\r\n </Flex>\r\n <AnimatePresence>\r\n {isOpen && (\r\n <motion.div\r\n initial={{ height: 0 }}\r\n animate={{ height: 'fit-content' }}\r\n transition={{ opacity: { duration: 0.2 } }}\r\n exit={{ height: 0 }}\r\n sx={{ overflow: 'hidden', width: '100%', marginTop: '5px', cursor: 'pointer' }}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n window.open('https://www.ape.bond/true-yield?createPosition', '_blank')\r\n }}\r\n >\r\n <BonusTable trueBondPrices={bond?.trueBondPrices} minTier={bond.minTier} hideTitle />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </Flex>\r\n )\r\n )\r\n}\r\n\r\nexport default GetUpToComponent\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GetUpToComponent.js","sources":["../../../../../src/views/BuyBond/components/GetUpToComponent/GetUpToComponent.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { BondsData } from '../../../../types/bonds'\nimport useTierPoints, { getUserTier, TIERS_WEIGHT } from '../../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport BonusTable from '../../../Bonds/components/BonusComponents/BonusTable'\nimport { formatUSDNumber, getRawBonus } from '../../../../utils/displayHelpers'\nimport { findHighestTrueBondPriceUserAgnostic } from '../../../../utils/bondPriceHelpers'\nimport { Box } from 'theme-ui'\n\ninterface GetUpToComponentProps {\n bond: BondsData\n depositAmount: string\n}\n\nconst GetUpToComponent: React.FC<GetUpToComponentProps> = ({ bond, depositAmount }) => {\n // Hooks & Data\n const { data: tierState } = useTierPoints()\n const { promotionalPoints, usingPromotion } = tierState || {}\n const userTier = getUserTier(promotionalPoints)\n const bonusString = getRawBonus(bond, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bond, depositAmount, '0')\n const boostAmount = parseFloat(bonusString) - parseFloat(noTierAmount)\n const trueBondPrice = findHighestTrueBondPriceUserAgnostic(bond)\n\n //State\n const [isOpen, setIsOpen] = useState(false)\n return usingPromotion ? (\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n fontSize: '12px',\n fontWeight: 400,\n flexDirection: 'column',\n position: 'relative',\n }}\n >\n <span\n onClick={() => setIsOpen(!isOpen)}\n sx={{\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n pl: '10px',\n pr: '20px',\n py: '4px',\n cursor: 'pointer',\n background: '#312341',\n display: 'inline-flex',\n alignItems: 'center',\n gap: '4px',\n width: '100%',\n boxSizing: 'border-box',\n }}\n >\n <span sx={{ mt: '-7px' }}>\n <Svg icon=\"GiftBox\" width={20} color={'textDisabledButton'} />\n </span>\n {`You've been awarded with a Welcome Bonus. `}\n <span\n sx={{ ml: '3px', color: 'primaryButton', ':hover': { textDecoration: 'underline' } }}\n >{`Learn More >`}</span>\n </span>\n </Flex>\n ) : (\n userTier !== LaunchBondTiers.Mythical && bond.billVersion === BillVersion.V4 && (\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n fontSize: '12px',\n fontWeight: 400,\n flexDirection: 'column',\n position: 'relative',\n }}\n >\n <Flex\n onClick={() => setIsOpen(!isOpen)}\n sx={{\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n position: 'relative',\n overflow: 'hidden',\n pl: '10px',\n pr: '20px',\n py: '2px',\n alignItems: 'center',\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: '#312341',\n }}\n >\n <Flex sx={{ alignItems: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Box>\n Get up to\n <span sx={{ color: 'success', mx: '3px', fontWeight: 700 }}>{`+${trueBondPrice?.boost ?? 0}%`}</span>\n Boost.\n <span\n sx={{\n ml: '5px',\n color: 'primaryButton',\n fontWeight: 500,\n cursor: 'pointer',\n ':hover': { textDecoration: 'underline' },\n display: ['none', 'none', 'none', 'inline'],\n }}\n onClick={(e) => {\n e.stopPropagation()\n window.open('https://www.ape.bond/true-yield?createPosition', '_blank')\n }}\n >\n {'By locking ABOND >'}\n </span>\n </Box>\n </Flex>\n {!!depositAmount && parseFloat(depositAmount) !== 0 && (\n <Flex sx={{ color: 'success', fontWeight: 700, minWidth: '65px', justifyContent: 'flex-end' }}>\n $ {formatUSDNumber(boostAmount.toString())}\n </Flex>\n )}\n <Flex sx={{ position: 'absolute', right: '6px' }}>\n <Svg icon=\"caret\" direction={isOpen ? 'up' : 'down'} />\n </Flex>\n </Flex>\n <AnimatePresence>\n {isOpen && (\n <motion.div\n initial={{ height: 0 }}\n animate={{ height: 'fit-content' }}\n transition={{ opacity: { duration: 0.2 } }}\n exit={{ height: 0 }}\n sx={{ overflow: 'hidden', width: '100%', marginTop: '5px', cursor: 'pointer' }}\n onClick={(e) => {\n e.stopPropagation()\n window.open('https://www.ape.bond/true-yield?createPosition', '_blank')\n }}\n >\n <BonusTable trueBondPrices={bond?.trueBondPrices} minTier={bond.minTier} hideTitle />\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n )\n}\n\nexport default GetUpToComponent\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -12,8 +12,9 @@ import useTierPoints from '../../../../state/tiers/useTierPoints.js';
|
|
|
12
12
|
import { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers.js';
|
|
13
13
|
|
|
14
14
|
const NewRateModal = ({ bond, zapTrueBondPrice, depositAmount, youSpendString, fetchingZapQuote, zapError, onDismiss, }) => {
|
|
15
|
-
const { data:
|
|
16
|
-
const
|
|
15
|
+
const { data: tierState } = useTierPoints();
|
|
16
|
+
const { promotionalPoints } = tierState || {};
|
|
17
|
+
const trueBondPrice = findHighestTrueBondPrice(promotionalPoints, bond?.trueBondPrices);
|
|
17
18
|
const tokenSymbol = bond?.earnToken?.symbol;
|
|
18
19
|
const oldBonus = trueBondPrice?.bonusWithFee ?? 0;
|
|
19
20
|
const fee = bond?.feeInPayout ?? 0;
|
|
@@ -28,7 +29,7 @@ const NewRateModal = ({ bond, zapTrueBondPrice, depositAmount, youSpendString, f
|
|
|
28
29
|
borderRadius: '8px',
|
|
29
30
|
width: '100%',
|
|
30
31
|
alignItems: 'center',
|
|
31
|
-
}, children: [jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx(TokenImage, { size: 30, symbol: tokenSymbol }), jsxs(Flex, { sx: { flexDirection: 'column', ml: '10px' }, children: [jsx(Text, { sx: { fontSize: '12px', fontWeight: '300', lineHeight: '14px' }, children: "Old Bonus:" }), jsxs(Text, { sx: { fontSize: '12px', fontWeight: 400 }, children: [oldBonus?.toFixed(2), "% ", tokenSymbol] })] })] }), jsx(Flex, { sx: { width: '15px', height: '15px', ml: '20px', mr: '10px', alignItems: 'center' }, children: jsx(Svg, { icon: "arrow", direction: "right" }) }), jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx(TokenImage, { size: 30, symbol: tokenSymbol }), jsxs(Flex, { sx: { flexDirection: 'column', ml: '10px' }, children: [jsx(Text, { sx: { fontSize: '12px', fontWeight: '300', lineHeight: '14px' }, children: "New Bonus:" }), jsxs(Text, { sx: { fontSize: '12px', fontWeight: 400 }, children: [zapBonusWithFee.toFixed(2), "% ", tokenSymbol] })] })] })] }), jsx(Estimations, { depositAmount: depositAmount, bondData: { ...bond, trueBillPrice: zapTrueBondPrice }, youSpendString: youSpendString, fetchingZapQuote: fetchingZapQuote, zapError: zapError, isZap: true }), jsx(Flex, { sx: {
|
|
32
|
+
}, children: [jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx(TokenImage, { size: 30, symbol: tokenSymbol }), jsxs(Flex, { sx: { flexDirection: 'column', ml: '10px' }, children: [jsx(Text, { sx: { fontSize: '12px', fontWeight: '300', lineHeight: '14px' }, children: "Old Bonus:" }), jsxs(Text, { sx: { fontSize: '12px', fontWeight: 400 }, children: [oldBonus?.toFixed(2), "% ", tokenSymbol] })] })] }), jsx(Flex, { sx: { width: '15px', height: '15px', ml: '20px', mr: '10px', alignItems: 'center' }, children: jsx(Svg, { icon: "arrow", direction: "right" }) }), jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx(TokenImage, { size: 30, symbol: tokenSymbol }), jsxs(Flex, { sx: { flexDirection: 'column', ml: '10px' }, children: [jsx(Text, { sx: { fontSize: '12px', fontWeight: '300', lineHeight: '14px' }, children: "New Bonus:" }), jsxs(Text, { sx: { fontSize: '12px', fontWeight: 400 }, children: [zapBonusWithFee.toFixed(2), "% ", tokenSymbol] })] })] })] }), jsx(Estimations, { depositAmount: depositAmount, inputValue: depositAmount, inputTokenPrice: 1, bondData: { ...bond, trueBillPrice: zapTrueBondPrice }, youSpendString: youSpendString, fetchingZapQuote: fetchingZapQuote, zapError: zapError, isZap: true }), jsx(Flex, { sx: {
|
|
32
33
|
width: '100%',
|
|
33
34
|
fontSize: '14px',
|
|
34
35
|
fontWeight: 500,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewRateModal.js","sources":["../../../../../src/views/BuyBond/components/NewRateModal/NewRateModal.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { BondsData } from '../../../../types/bonds'\nimport Estimations from '../Estimations'\nimport BigNumber from 'bignumber.js'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport useTierPoints from '../../../../state/tiers/useTierPoints'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\n\nconst NewRateModal = ({\n bond,\n zapTrueBondPrice,\n depositAmount,\n youSpendString,\n fetchingZapQuote,\n zapError,\n onDismiss,\n}: {\n bond?: BondsData\n zapTrueBondPrice?: string\n depositAmount: string\n youSpendString?: string\n fetchingZapQuote?: boolean\n zapError?: boolean\n onDismiss?: () => void\n}) => {\n const { data:
|
|
1
|
+
{"version":3,"file":"NewRateModal.js","sources":["../../../../../src/views/BuyBond/components/NewRateModal/NewRateModal.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { BondsData } from '../../../../types/bonds'\nimport Estimations from '../Estimations'\nimport BigNumber from 'bignumber.js'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport useTierPoints from '../../../../state/tiers/useTierPoints'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\n\nconst NewRateModal = ({\n bond,\n zapTrueBondPrice,\n depositAmount,\n youSpendString,\n fetchingZapQuote,\n zapError,\n onDismiss,\n}: {\n bond?: BondsData\n zapTrueBondPrice?: string\n depositAmount: string\n youSpendString?: string\n fetchingZapQuote?: boolean\n zapError?: boolean\n onDismiss?: () => void\n}) => {\n const { data: tierState } = useTierPoints()\n const { promotionalPoints } = tierState || {}\n const trueBondPrice = findHighestTrueBondPrice(promotionalPoints, bond?.trueBondPrices)\n\n const tokenSymbol = bond?.earnToken?.symbol\n const oldBonus = trueBondPrice?.bonusWithFee ?? 0\n const fee = bond?.feeInPayout ?? 0\n const earnTokenPrice = parseFloat(bond?.payoutTokenPrice ?? '0')\n const lpPrice = parseFloat(bond?.principalTokenPrice ?? '0')\n const trueBillPriceMinusFee = new BigNumber(zapTrueBondPrice ?? '0').times((100 + fee) / 100)\n const priceUSDMinusFee = getBalanceNumber(trueBillPriceMinusFee) * lpPrice\n const discountWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100\n const zapBonusWithFee = discountWithoutFee > 0 ? (discountWithoutFee / (100 - discountWithoutFee)) * 100 : 0\n\n return (\n <Modal title=\"Bonus update\" sx={{ width: '380px' }}>\n <Flex sx={{ width: '100%', alignItems: 'center', flexDirection: 'column', mt: '10px' }}>\n <Flex sx={{ display: 'block', fontSize: '14px', fontWeight: 500, color: 'textDisabledButton' }}>\n The bonus for the bond you are purchasing has been adjusted by{' '}\n <Text sx={{ color: 'error' }}>{(zapBonusWithFee - oldBonus).toFixed(2)}%</Text>.\n </Flex>\n <Flex\n sx={{\n p: '8px 4px 4px 4px',\n borderRadius: '8px',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage size={30} symbol={tokenSymbol} />\n <Flex sx={{ flexDirection: 'column', ml: '10px' }}>\n <Text sx={{ fontSize: '12px', fontWeight: '300', lineHeight: '14px' }}>Old Bonus:</Text>\n <Text sx={{ fontSize: '12px', fontWeight: 400 }}>\n {oldBonus?.toFixed(2)}% {tokenSymbol}\n </Text>\n </Flex>\n </Flex>\n <Flex sx={{ width: '15px', height: '15px', ml: '20px', mr: '10px', alignItems: 'center' }}>\n <Svg icon=\"arrow\" direction=\"right\" />\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage size={30} symbol={tokenSymbol} />\n <Flex sx={{ flexDirection: 'column', ml: '10px' }}>\n <Text sx={{ fontSize: '12px', fontWeight: '300', lineHeight: '14px' }}>New Bonus:</Text>\n <Text sx={{ fontSize: '12px', fontWeight: 400 }}>\n {zapBonusWithFee.toFixed(2)}% {tokenSymbol}\n </Text>\n </Flex>\n </Flex>\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n inputValue={depositAmount} // placeholder value\n inputTokenPrice={1} // placeholder value\n bondData={{ ...bond, trueBillPrice: zapTrueBondPrice } as BondsData}\n youSpendString={youSpendString}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n isZap\n />\n <Flex\n sx={{\n width: '100%',\n fontSize: '14px',\n fontWeight: 500,\n color: 'textDisabledButton',\n justifyContent: 'flex-start',\n mb: '10px',\n }}\n >\n Would you like to confirm the new rate?\n </Flex>\n <Button fullWidth onClick={onDismiss} disabled={fetchingZapQuote} load={fetchingZapQuote}>\n {fetchingZapQuote ? 'Loading' : 'Confirm'}\n </Button>\n </Flex>\n </Modal>\n )\n}\n\nexport default NewRateModal\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -31,17 +31,18 @@ const getNextTierInfo = (userPoints) => {
|
|
|
31
31
|
const PointsLeftForNextTier = ({ bond, inputAmount, setInputValue, inputTokenDecimals, inputTokenPrice, }) => {
|
|
32
32
|
const [isOpen, setIsOpen] = useState(false);
|
|
33
33
|
// Hooks & Data
|
|
34
|
-
const { data:
|
|
34
|
+
const { data: tierState } = useTierPoints();
|
|
35
|
+
const { promotionalPoints } = tierState || {};
|
|
35
36
|
const abondPrice = useAbondPrice();
|
|
36
|
-
const userTier = getUserTier(
|
|
37
|
-
const nextTierInfo = getNextTierInfo(
|
|
37
|
+
const userTier = getUserTier(promotionalPoints);
|
|
38
|
+
const nextTierInfo = getNextTierInfo(promotionalPoints || '0');
|
|
38
39
|
const inputAmountUSD = parseFloat(inputAmount) * (inputTokenPrice ?? 0);
|
|
39
40
|
const necessaryUSDAmount = (nextTierInfo?.pointsNeeded / 4) * abondPrice;
|
|
40
41
|
const fee = ((bond.tierBoostRate ?? 0) + 100) / 100 - 1;
|
|
41
42
|
const feeToBeCollected = inputAmountUSD * fee;
|
|
42
43
|
const feeInAbond = feeToBeCollected / abondPrice;
|
|
43
44
|
const pointsToBeEarned = feeInAbond * 4;
|
|
44
|
-
const optimizationData = calculateOptimizationData(inputAmount,
|
|
45
|
+
const optimizationData = calculateOptimizationData(inputAmount, promotionalPoints, bond, inputTokenPrice, abondPrice);
|
|
45
46
|
const nextTierData = optimizationData?.data?.[0];
|
|
46
47
|
const highestProfitableTier = optimizationData?.highestProfitableTier;
|
|
47
48
|
const handleSetNextTierAmount = (amount) => {
|
|
@@ -135,7 +136,7 @@ const PointsLeftForNextTier = ({ bond, inputAmount, setInputValue, inputTokenDec
|
|
|
135
136
|
'& > :nth-of-type(odd)': {
|
|
136
137
|
background: 'white4',
|
|
137
138
|
},
|
|
138
|
-
}, children: [jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '3px' }, children: [jsx(Flex, { children: "User Points" }), jsx(Flex, { children: formatNumberSI(getBalanceNumber(
|
|
139
|
+
}, children: [jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '3px' }, children: [jsx(Flex, { children: "User Points" }), jsx(Flex, { children: formatNumberSI(getBalanceNumber(promotionalPoints)) })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '3px' }, children: [jsxs(Flex, { children: ["Points needed for ", TIERS_NAMES[nextTierInfo?.nextTier]] }), jsx(Flex, { children: formatNumberSI(nextTierInfo?.pointsNeeded) })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '3px' }, children: [jsx(Flex, { children: "usd Abond necessary for next tier" }), jsxs(Flex, { children: ["$", formatNumberSI(necessaryUSDAmount)] })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '3px' }, children: [jsx(Flex, { children: "Fee percentage" }), jsxs(Flex, { children: [bond.tierBoostRate, "% ($", formatNumberSI(feeToBeCollected), ")"] })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '3px' }, children: [jsx(Flex, { children: "Points To Be Earned through tierBoostRate" }), jsx(Flex, { children: formatNumberSI(pointsToBeEarned, 0) })] })] })] })));
|
|
139
140
|
};
|
|
140
141
|
|
|
141
142
|
export { PointsLeftForNextTier as default };
|