@ape.swap/bonds-sdk 5.1.34 → 5.1.37

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.
Files changed (70) hide show
  1. package/dist/components/TokenSelectorPanel/index.js.map +1 -1
  2. package/dist/components/uikit-sdk/Svg/Icons/GiftBox.d.ts +4 -0
  3. package/dist/components/uikit-sdk/Svg/Icons/GiftBox.js +10 -0
  4. package/dist/components/uikit-sdk/Svg/Icons/GiftBox.js.map +1 -0
  5. package/dist/components/uikit-sdk/Svg/index.js +3 -0
  6. package/dist/components/uikit-sdk/Svg/index.js.map +1 -1
  7. package/dist/components/uikit-sdk/Svg/types.d.ts +1 -0
  8. package/dist/components/uikit-sdk/Svg/types.js +1 -0
  9. package/dist/components/uikit-sdk/Svg/types.js.map +1 -1
  10. package/dist/components/uikit-sdk/TooltipBubble/types.d.ts +2 -2
  11. package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -1
  12. package/dist/config/constants/queryKeys.d.ts +1 -0
  13. package/dist/config/constants/queryKeys.js.map +1 -1
  14. package/dist/state/tiers/useTierPoints.d.ts +15 -2
  15. package/dist/state/tiers/useTierPoints.js +31 -4
  16. package/dist/state/tiers/useTierPoints.js.map +1 -1
  17. package/dist/state/zap/useSoulZapBondQuote.js +6 -3
  18. package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
  19. package/dist/utils/formatNumber.d.ts +6 -0
  20. package/dist/utils/formatNumber.js +39 -3
  21. package/dist/utils/formatNumber.js.map +1 -1
  22. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js +1 -2
  23. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
  24. package/dist/views/Bonds/components/BonusComponents/BonusTable.js +3 -2
  25. package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
  26. package/dist/views/Bonds/components/ChainBanner/ChainBanner.js +22 -36
  27. package/dist/views/Bonds/components/ChainBanner/ChainBanner.js.map +1 -1
  28. package/dist/views/BuyBond/BuyComponent.js +10 -9
  29. package/dist/views/BuyBond/BuyComponent.js.map +1 -1
  30. package/dist/views/BuyBond/components/BondModalHeader.js +21 -3
  31. package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -1
  32. package/dist/views/BuyBond/components/Estimations.d.ts +1 -1
  33. package/dist/views/BuyBond/components/Estimations.js +15 -9
  34. package/dist/views/BuyBond/components/Estimations.js.map +1 -1
  35. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +27 -7
  36. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -1
  37. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +4 -3
  38. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -1
  39. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js +6 -5
  40. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js.map +1 -1
  41. package/dist/views/ProjectView/ProjectView.js +7 -9
  42. package/dist/views/ProjectView/ProjectView.js.map +1 -1
  43. package/dist/views/ProjectView/components/PriceChart/components/CandleStickChart.js +111 -0
  44. package/dist/views/ProjectView/components/PriceChart/components/CandleStickChart.js.map +1 -0
  45. package/dist/views/ProjectView/components/PriceChart/components/LineChart.js +100 -0
  46. package/dist/views/ProjectView/components/PriceChart/components/LineChart.js.map +1 -0
  47. package/dist/views/ProjectView/components/PriceChart/components/utils.js +20 -0
  48. package/dist/views/ProjectView/components/PriceChart/components/utils.js.map +1 -0
  49. package/dist/views/ProjectView/components/PriceChart/index.js +38 -0
  50. package/dist/views/ProjectView/components/PriceChart/index.js.map +1 -0
  51. package/dist/views/ProjectView/components/PriceChart/styles.js +44 -0
  52. package/dist/views/ProjectView/components/PriceChart/styles.js.map +1 -0
  53. package/dist/views/ProjectView/components/RecommendationCards/index.js +7 -2
  54. package/dist/views/ProjectView/components/RecommendationCards/index.js.map +1 -1
  55. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +4 -3
  56. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
  57. package/dist/views/TransactionModal/TransactionModal.js +5 -4
  58. package/dist/views/TransactionModal/TransactionModal.js.map +1 -1
  59. package/package.json +2 -3
  60. package/dist/components/TabNavigation/index.js +0 -33
  61. package/dist/components/TabNavigation/index.js.map +0 -1
  62. package/dist/views/RakuraiComponent/RakuraiComponent.d.ts +0 -3
  63. package/dist/views/RakuraiComponent/RakuraiComponent.js +0 -229
  64. package/dist/views/RakuraiComponent/RakuraiComponent.js.map +0 -1
  65. package/dist/views/RakuraiComponent/useRakuraiStats.d.ts +0 -7
  66. package/dist/views/RakuraiComponent/useRakuraiStats.js +0 -42
  67. package/dist/views/RakuraiComponent/useRakuraiStats.js.map +0 -1
  68. package/dist/views/RakuraiComponent/useSolanaStakeBalances.d.ts +0 -8
  69. package/dist/views/RakuraiComponent/useSolanaStakeBalances.js +0 -47
  70. package/dist/views/RakuraiComponent/useSolanaStakeBalances.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { jsxs, jsx } from 'theme-ui/jsx-runtime';
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: userPoints } = useTierPoints();
16
- const userTier = getUserTier(userPoints);
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 (userTier !== LaunchBondTiers.Legend &&
24
- bond.billVersion === BillVersion.V4 && (jsxs(Flex, { sx: {
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.", userTier !== LaunchBondTiers.Mythical && (jsx("span", { sx: {
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 >' }))] })] }), !!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) => {
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: userPoints } = useTierPoints();
16
- const trueBondPrice = findHighestTrueBondPrice(userPoints, bond?.trueBondPrices);
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: userPoints } = useTierPoints()\n const trueBondPrice = findHighestTrueBondPrice(userPoints, 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 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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"}
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: userPoints } = useTierPoints();
34
+ const { data: tierState } = useTierPoints();
35
+ const { promotionalPoints } = tierState || {};
35
36
  const abondPrice = useAbondPrice();
36
- const userTier = getUserTier(userPoints);
37
- const nextTierInfo = getNextTierInfo(userPoints || '0');
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, userPoints, bond, inputTokenPrice, abondPrice);
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(userPoints)) })] }), 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
+ }, 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 };
@@ -1 +1 @@
1
- {"version":3,"file":"PointsLeftForNextTier.js","sources":["../../../../../src/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport { BondsData } from '../../../../types/bonds'\nimport useTierPoints, {\n getUserTier,\n TIERS_COLORS,\n TIERS_NAMES,\n TIERS_WEIGHT,\n} from '../../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { useAbondPrice } from '../../../../state/tokenPrices/useAbondPrice'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { calculateOptimizationData } from '../../utils'\n\nconst getNextTierInfo = (userPoints: string) => {\n const tiers = [\n { tier: LaunchBondTiers.Silver, threshold: TIERS_WEIGHT[LaunchBondTiers.Silver] },\n { tier: LaunchBondTiers.Gold, threshold: TIERS_WEIGHT[LaunchBondTiers.Gold] },\n { tier: LaunchBondTiers.Diamond, threshold: TIERS_WEIGHT[LaunchBondTiers.Diamond] },\n { tier: LaunchBondTiers.Legend, threshold: TIERS_WEIGHT[LaunchBondTiers.Legend] },\n { tier: LaunchBondTiers.Mythical, threshold: TIERS_WEIGHT[LaunchBondTiers.Mythical] },\n ]\n\n const userPointsBN = getBalanceNumber(userPoints)\n\n for (const { tier, threshold } of tiers) {\n const thresholdNumber = getBalanceNumber(threshold)\n if (userPointsBN < thresholdNumber) {\n const pointsNeeded = thresholdNumber - userPointsBN\n return { nextTier: tier, pointsNeeded }\n }\n }\n\n return null // User is at max tier (Mythical)\n}\n\ninterface GetUpToComponentProps {\n bond: BondsData\n inputAmount: string\n setInputValue: (value: string) => void\n inputTokenDecimals: number\n inputTokenPrice?: number\n}\n\nconst PointsLeftForNextTier: React.FC<GetUpToComponentProps> = ({\n bond,\n inputAmount,\n setInputValue,\n inputTokenDecimals,\n inputTokenPrice,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n // Hooks & Data\n const { data: userPoints } = useTierPoints()\n const abondPrice = useAbondPrice()\n const userTier = getUserTier(userPoints)\n const nextTierInfo = getNextTierInfo(userPoints || '0')\n const inputAmountUSD = parseFloat(inputAmount) * (inputTokenPrice ?? 0)\n const necessaryUSDAmount = (nextTierInfo?.pointsNeeded! / 4) * abondPrice!\n const fee = ((bond.tierBoostRate ?? 0) + 100) / 100 - 1\n const feeToBeCollected = inputAmountUSD * fee\n const feeInAbond = feeToBeCollected / abondPrice!\n const pointsToBeEarned = feeInAbond * 4\n\n const optimizationData = calculateOptimizationData(inputAmount, userPoints!, bond, inputTokenPrice, abondPrice)\n const nextTierData = optimizationData?.data?.[0]\n const highestProfitableTier = optimizationData?.highestProfitableTier\n\n const handleSetNextTierAmount = (amount: number) => {\n const inputValueInSelectedToken = amount / (inputTokenPrice ?? 0)\n setInputValue(inputValueInSelectedToken.toFixed(inputTokenDecimals))\n }\n\n return (\n userTier !== LaunchBondTiers.Legend &&\n 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 cursor: 'pointer',\n }}\n onClick={() => setIsOpen(!isOpen)}\n >\n {highestProfitableTier ? (\n <Flex\n sx={{\n border: '1px solid rgba(22, 101, 52, 0.53)',\n borderRadius: 'normal',\n position: 'relative',\n overflow: 'hidden',\n pl: '10px',\n pr: ['10px', '10px', '10px', '20px'],\n py: '6px',\n background: 'linear-gradient(90deg, #0A2A1A 0%, #1A2A28 100%) !important',\n color: 'rgba(134, 237, 171, 0.70)',\n minHeight: '27px',\n alignItems: 'center',\n gap: '5px',\n flexWrap: 'wrap',\n }}\n >\n <span sx={{ flex: 1 }}>\n <span sx={{ display: 'inline-flex', verticalAlign: 'sub', mr: '4px' }}>\n <Svg icon=\"Discount\" width={14} color={'#4AD980'} />\n </span>\n <span sx={{ fontWeight: 700 }}>Congratulations!</span> With your purchase you will accumulate points to\n upgrade to {/*@ts-ignore*/}\n <span sx={{ fontWeight: 700, color: TIERS_COLORS[highestProfitableTier?.tier] }}>\n {highestProfitableTier.tierName}\n </span>{' '}\n <span sx={{ fontWeight: 700 }}>Tier!</span>\n </span>\n <Svg icon={'caret'} direction={isOpen ? 'up' : 'down'} width={10} />\n </Flex>\n ) : (\n (userTier ?? 0) < LaunchBondTiers.Mythical &&\n nextTierData && (\n <Flex\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 background: '#312341',\n justifyContent: 'space-between',\n }}\n >\n <Flex sx={{ alignItems: 'center', justifyContent: 'space-between', width: '100%' }}>\n <Flex sx={{ alignItems: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/${nextTierData?.tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n Doing a ${formatNumberSI(nextTierData?.minBreakevenWithFeeUSD!)} bond purchase will grant you a\n {/*@ts-ignore*/}\n <span sx={{ color: TIERS_COLORS[nextTierData?.tier], px: '3px', fontWeight: 600 }}>\n {nextTierData?.tierName}\n </span>\n Tier.\n </Flex>\n <span\n sx={{\n mx: '5px',\n color: 'primaryButton',\n fontWeight: 500,\n cursor: 'pointer',\n ':hover': { textDecoration: 'underline' },\n }}\n onClick={(e) => {\n e.stopPropagation()\n handleSetNextTierAmount(nextTierData.minBreakevenWithFeeUSD * 1.01)\n }}\n >\n {'Upgrade now >'}\n </span>\n </Flex>\n <Svg icon={'caret'} direction={isOpen ? 'up' : 'down'} width={10} />\n </Flex>\n )\n )}\n <AnimatePresence>\n {isOpen && optimizationData && (\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 >\n {optimizationData?.data?.slice(1, optimizationData?.data.length)?.map((data) => {\n return (\n <Flex\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 mt: '3px',\n alignItems: 'center',\n background: '#312341',\n justifyContent: 'space-between',\n }}\n onClick={() => handleSetNextTierAmount(data.minBreakevenWithFeeUSD * 1.01)}\n key={data.tierName}\n >\n <span sx={{ flex: 1 }}>\n <span sx={{ display: 'inline-flex', verticalAlign: 'bottom' }}>\n <img\n src={`https://ape.bond/images/launch/${data?.tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n </span>\n Doing a ${formatNumberSI(data?.minBreakevenWithFeeUSD!)} bond purchase will grant you a\n {/*@ts-ignore*/}\n <span sx={{ color: TIERS_COLORS[data?.tier], px: '3px', fontWeight: 600 }}>{data?.tierName}</span>\n Tier.\n <span\n sx={{\n ml: '5px',\n mr: '15px',\n color: 'primaryButton',\n fontWeight: 500,\n cursor: 'pointer',\n ':hover': { textDecoration: 'underline' },\n display: ['inline', 'inline', 'inline', 'none'],\n }}\n onClick={() => handleSetNextTierAmount(data.minBreakevenWithFeeUSD * 1.01)}\n >\n {`Upgrade now >`}\n </span>\n </span>\n <span\n sx={{\n ml: '5px',\n mr: '15px',\n color: 'primaryButton',\n fontWeight: 500,\n cursor: 'pointer',\n ':hover': { textDecoration: 'underline' },\n display: ['none', 'none', 'none', 'flex'],\n }}\n onClick={() => handleSetNextTierAmount(data.minBreakevenWithFeeUSD * 1.01)}\n >\n {`Upgrade now >`}\n </span>\n </Flex>\n )\n })}\n </motion.div>\n )}\n </AnimatePresence>\n <Flex sx={{ mt: '15px' }}>Debbuging table</Flex>\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n fontSize: '12px',\n fontWeight: 400,\n flexDirection: 'column',\n position: 'relative',\n '& > :nth-of-type(even)': {\n background: 'white3',\n },\n '& > :nth-of-type(odd)': {\n background: 'white4',\n },\n }}\n >\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>User Points</Flex>\n <Flex>{formatNumberSI(getBalanceNumber(userPoints!))}</Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n {/*@ts-ignore*/}\n <Flex>Points needed for {TIERS_NAMES[nextTierInfo?.nextTier]}</Flex>\n <Flex>{formatNumberSI(nextTierInfo?.pointsNeeded)}</Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>usd Abond necessary for next tier</Flex>\n <Flex>${formatNumberSI(necessaryUSDAmount)}</Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>Fee percentage</Flex>\n <Flex>\n {bond.tierBoostRate}% (${formatNumberSI(feeToBeCollected)})\n </Flex>\n </Flex>\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Input Amount USD</Flex>*/}\n {/* <Flex>${formatNumberSI(inputAmountUSD)}</Flex>*/}\n {/*</Flex>*/}\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>USD Fee to be collected</Flex>*/}\n {/* <Flex>${formatNumberSI(feeToBeCollected)}</Flex>*/}\n {/*</Flex>*/}\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Fee in ABOND</Flex>*/}\n {/* <Flex>{formatNumberSI(feeInAbond)} ABOND</Flex>*/}\n {/*</Flex>*/}\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>Points To Be Earned through tierBoostRate</Flex>\n <Flex>{formatNumberSI(pointsToBeEarned, 0)}</Flex>\n </Flex>\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Enough points to upgrade?</Flex>*/}\n {/* <Flex>{arePointsEnough ? 'Yes 🔥' : 'No :('}</Flex>*/}\n {/*</Flex>*/}\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Fee in ABOND</Flex>*/}\n {/* <Flex>{formatNumberSI(feeInAbond)} ABOND</Flex>*/}\n {/*</Flex>*/}\n </Flex>\n </Flex>\n )\n )\n}\n\nexport default PointsLeftForNextTier\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"PointsLeftForNextTier.js","sources":["../../../../../src/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport { BondsData } from '../../../../types/bonds'\nimport useTierPoints, {\n getUserTier,\n TIERS_COLORS,\n TIERS_NAMES,\n TIERS_WEIGHT,\n} from '../../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { useAbondPrice } from '../../../../state/tokenPrices/useAbondPrice'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { calculateOptimizationData } from '../../utils'\n\nconst getNextTierInfo = (userPoints: string) => {\n const tiers = [\n { tier: LaunchBondTiers.Silver, threshold: TIERS_WEIGHT[LaunchBondTiers.Silver] },\n { tier: LaunchBondTiers.Gold, threshold: TIERS_WEIGHT[LaunchBondTiers.Gold] },\n { tier: LaunchBondTiers.Diamond, threshold: TIERS_WEIGHT[LaunchBondTiers.Diamond] },\n { tier: LaunchBondTiers.Legend, threshold: TIERS_WEIGHT[LaunchBondTiers.Legend] },\n { tier: LaunchBondTiers.Mythical, threshold: TIERS_WEIGHT[LaunchBondTiers.Mythical] },\n ]\n\n const userPointsBN = getBalanceNumber(userPoints)\n\n for (const { tier, threshold } of tiers) {\n const thresholdNumber = getBalanceNumber(threshold)\n if (userPointsBN < thresholdNumber) {\n const pointsNeeded = thresholdNumber - userPointsBN\n return { nextTier: tier, pointsNeeded }\n }\n }\n\n return null // User is at max tier (Mythical)\n}\n\ninterface GetUpToComponentProps {\n bond: BondsData\n inputAmount: string\n setInputValue: (value: string) => void\n inputTokenDecimals: number\n inputTokenPrice?: number\n}\n\nconst PointsLeftForNextTier: React.FC<GetUpToComponentProps> = ({\n bond,\n inputAmount,\n setInputValue,\n inputTokenDecimals,\n inputTokenPrice,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n // Hooks & Data\n const { data: tierState } = useTierPoints()\n const { promotionalPoints } = tierState || {}\n const abondPrice = useAbondPrice()\n const userTier = getUserTier(promotionalPoints)\n const nextTierInfo = getNextTierInfo(promotionalPoints || '0')\n const inputAmountUSD = parseFloat(inputAmount) * (inputTokenPrice ?? 0)\n const necessaryUSDAmount = (nextTierInfo?.pointsNeeded! / 4) * abondPrice!\n const fee = ((bond.tierBoostRate ?? 0) + 100) / 100 - 1\n const feeToBeCollected = inputAmountUSD * fee\n const feeInAbond = feeToBeCollected / abondPrice!\n const pointsToBeEarned = feeInAbond * 4\n\n const optimizationData = calculateOptimizationData(inputAmount, promotionalPoints!, bond, inputTokenPrice, abondPrice)\n const nextTierData = optimizationData?.data?.[0]\n const highestProfitableTier = optimizationData?.highestProfitableTier\n\n const handleSetNextTierAmount = (amount: number) => {\n const inputValueInSelectedToken = amount / (inputTokenPrice ?? 0)\n setInputValue(inputValueInSelectedToken.toFixed(inputTokenDecimals))\n }\n\n return (\n userTier !== LaunchBondTiers.Legend &&\n 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 cursor: 'pointer',\n }}\n onClick={() => setIsOpen(!isOpen)}\n >\n {highestProfitableTier ? (\n <Flex\n sx={{\n border: '1px solid rgba(22, 101, 52, 0.53)',\n borderRadius: 'normal',\n position: 'relative',\n overflow: 'hidden',\n pl: '10px',\n pr: ['10px', '10px', '10px', '20px'],\n py: '6px',\n background: 'linear-gradient(90deg, #0A2A1A 0%, #1A2A28 100%) !important',\n color: 'rgba(134, 237, 171, 0.70)',\n minHeight: '27px',\n alignItems: 'center',\n gap: '5px',\n flexWrap: 'wrap',\n }}\n >\n <span sx={{ flex: 1 }}>\n <span sx={{ display: 'inline-flex', verticalAlign: 'sub', mr: '4px' }}>\n <Svg icon=\"Discount\" width={14} color={'#4AD980'} />\n </span>\n <span sx={{ fontWeight: 700 }}>Congratulations!</span> With your purchase you will accumulate points to\n upgrade to {/*@ts-ignore*/}\n <span sx={{ fontWeight: 700, color: TIERS_COLORS[highestProfitableTier?.tier] }}>\n {highestProfitableTier.tierName}\n </span>{' '}\n <span sx={{ fontWeight: 700 }}>Tier!</span>\n </span>\n <Svg icon={'caret'} direction={isOpen ? 'up' : 'down'} width={10} />\n </Flex>\n ) : (\n (userTier ?? 0) < LaunchBondTiers.Mythical &&\n nextTierData && (\n <Flex\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 background: '#312341',\n justifyContent: 'space-between',\n }}\n >\n <Flex sx={{ alignItems: 'center', justifyContent: 'space-between', width: '100%' }}>\n <Flex sx={{ alignItems: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/${nextTierData?.tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n Doing a ${formatNumberSI(nextTierData?.minBreakevenWithFeeUSD!)} bond purchase will grant you a\n {/*@ts-ignore*/}\n <span sx={{ color: TIERS_COLORS[nextTierData?.tier], px: '3px', fontWeight: 600 }}>\n {nextTierData?.tierName}\n </span>\n Tier.\n </Flex>\n <span\n sx={{\n mx: '5px',\n color: 'primaryButton',\n fontWeight: 500,\n cursor: 'pointer',\n ':hover': { textDecoration: 'underline' },\n }}\n onClick={(e) => {\n e.stopPropagation()\n handleSetNextTierAmount(nextTierData.minBreakevenWithFeeUSD * 1.01)\n }}\n >\n {'Upgrade now >'}\n </span>\n </Flex>\n <Svg icon={'caret'} direction={isOpen ? 'up' : 'down'} width={10} />\n </Flex>\n )\n )}\n <AnimatePresence>\n {isOpen && optimizationData && (\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 >\n {optimizationData?.data?.slice(1, optimizationData?.data.length)?.map((data) => {\n return (\n <Flex\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 mt: '3px',\n alignItems: 'center',\n background: '#312341',\n justifyContent: 'space-between',\n }}\n onClick={() => handleSetNextTierAmount(data.minBreakevenWithFeeUSD * 1.01)}\n key={data.tierName}\n >\n <span sx={{ flex: 1 }}>\n <span sx={{ display: 'inline-flex', verticalAlign: 'bottom' }}>\n <img\n src={`https://ape.bond/images/launch/${data?.tierName?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n </span>\n Doing a ${formatNumberSI(data?.minBreakevenWithFeeUSD!)} bond purchase will grant you a\n {/*@ts-ignore*/}\n <span sx={{ color: TIERS_COLORS[data?.tier], px: '3px', fontWeight: 600 }}>{data?.tierName}</span>\n Tier.\n <span\n sx={{\n ml: '5px',\n mr: '15px',\n color: 'primaryButton',\n fontWeight: 500,\n cursor: 'pointer',\n ':hover': { textDecoration: 'underline' },\n display: ['inline', 'inline', 'inline', 'none'],\n }}\n onClick={() => handleSetNextTierAmount(data.minBreakevenWithFeeUSD * 1.01)}\n >\n {`Upgrade now >`}\n </span>\n </span>\n <span\n sx={{\n ml: '5px',\n mr: '15px',\n color: 'primaryButton',\n fontWeight: 500,\n cursor: 'pointer',\n ':hover': { textDecoration: 'underline' },\n display: ['none', 'none', 'none', 'flex'],\n }}\n onClick={() => handleSetNextTierAmount(data.minBreakevenWithFeeUSD * 1.01)}\n >\n {`Upgrade now >`}\n </span>\n </Flex>\n )\n })}\n </motion.div>\n )}\n </AnimatePresence>\n <Flex sx={{ mt: '15px' }}>Debbuging table</Flex>\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n fontSize: '12px',\n fontWeight: 400,\n flexDirection: 'column',\n position: 'relative',\n '& > :nth-of-type(even)': {\n background: 'white3',\n },\n '& > :nth-of-type(odd)': {\n background: 'white4',\n },\n }}\n >\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>User Points</Flex>\n <Flex>{formatNumberSI(getBalanceNumber(promotionalPoints!))}</Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n {/*@ts-ignore*/}\n <Flex>Points needed for {TIERS_NAMES[nextTierInfo?.nextTier]}</Flex>\n <Flex>{formatNumberSI(nextTierInfo?.pointsNeeded)}</Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>usd Abond necessary for next tier</Flex>\n <Flex>${formatNumberSI(necessaryUSDAmount)}</Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>Fee percentage</Flex>\n <Flex>\n {bond.tierBoostRate}% (${formatNumberSI(feeToBeCollected)})\n </Flex>\n </Flex>\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Input Amount USD</Flex>*/}\n {/* <Flex>${formatNumberSI(inputAmountUSD)}</Flex>*/}\n {/*</Flex>*/}\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>USD Fee to be collected</Flex>*/}\n {/* <Flex>${formatNumberSI(feeToBeCollected)}</Flex>*/}\n {/*</Flex>*/}\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Fee in ABOND</Flex>*/}\n {/* <Flex>{formatNumberSI(feeInAbond)} ABOND</Flex>*/}\n {/*</Flex>*/}\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>\n <Flex>Points To Be Earned through tierBoostRate</Flex>\n <Flex>{formatNumberSI(pointsToBeEarned, 0)}</Flex>\n </Flex>\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Enough points to upgrade?</Flex>*/}\n {/* <Flex>{arePointsEnough ? 'Yes 🔥' : 'No :('}</Flex>*/}\n {/*</Flex>*/}\n {/*<Flex sx={{ width: '100%', justifyContent: 'space-between', p: '3px' }}>*/}\n {/* <Flex>Fee in ABOND</Flex>*/}\n {/* <Flex>{formatNumberSI(feeInAbond)} ABOND</Flex>*/}\n {/*</Flex>*/}\n </Flex>\n </Flex>\n )\n )\n}\n\nexport default PointsLeftForNextTier\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -9,6 +9,7 @@ import BondCards from '../BuyBond/components/BondCards/BondCards.js';
9
9
  import ProjectInfo from './components/ProjectInfo/index.js';
10
10
  import BondStats from './components/BondStats/index.js';
11
11
  import BondLeaderboard from './components/BondLeaderboard/index.js';
12
+ import PriceChart from './components/PriceChart/index.js';
12
13
  import BuyComponent from '../BuyBond/BuyComponent.js';
13
14
  import useTokenPrices from '../../state/tokenPrices/useTokenPrices.js';
14
15
  import useHistoricalPrice from '../../state/historicalPrice/useHistoricalPrice.js';
@@ -39,15 +40,12 @@ const ProjectView = ({ bondAddress, bondChain }) => {
39
40
  '&& > div > div': {
40
41
  background: 'white2',
41
42
  },
42
- }, children: jsx(BondCards, { bondData: bondData }) })), bondData ? (jsx(Fragment, { children: jsxs(Flex, { sx: { width: '100%', flexDirection: 'column', mt: '10px' }, children: [jsx(Flex, { sx: { width: '100%', flexDirection: ['column', 'column', 'column', 'row'], alignItems: 'stretch' }, children: jsx(Flex, { sx: {
43
- background: 'white2',
44
- borderRadius: 'normal',
45
- // TODO: uncomment this
46
- width: ['100%', '100%', '100%', '50%'],
47
- // width: '100%',
48
- //
49
- mt: '5px',
50
- }, children: jsx(BuyComponent, { bondAddress: bondData?.contractAddress?.[bondData.chainId], bondChain: bondData.chainId, isProjectView: true }) }) }), jsx(Flex, { sx: { width: '100%', mt: '10px' }, children: jsx(ProjectInfo, { selectedBond2: bondData }) }), jsx(Flex, { sx: { width: '100%', mt: '10px' }, children: jsx(BondStats, { selectedBond: bondData }) }), jsx(Flex, { sx: { width: '100%', mt: '10px', mb: '50px' }, children: jsx(BondLeaderboard, { selectedBond: bondData }) })] }) })) : (jsx(Flex, { sx: { width: '100%', justifyContent: 'center', fontSize: '12px', fontWeight: 500 }, children: "Loading..." }))] }));
43
+ }, children: jsx(BondCards, { bondData: bondData }) })), bondData ? (jsx(Fragment, { children: jsxs(Flex, { sx: { width: '100%', flexDirection: 'column', mt: '10px' }, children: [jsxs(Flex, { sx: { width: '100%', flexDirection: ['column', 'column', 'column', 'row'], alignItems: 'stretch' }, children: [jsx(Flex, { sx: {
44
+ background: 'white2',
45
+ borderRadius: 'normal',
46
+ width: ['100%', '100%', '100%', '50%'],
47
+ mt: '5px',
48
+ }, children: jsx(BuyComponent, { bondAddress: bondData?.contractAddress?.[bondData.chainId], bondChain: bondData.chainId, isProjectView: true }) }), jsx(PriceChart, { selectedBond: bondData, historicalPrices: historicalPrices })] }), jsx(Flex, { sx: { width: '100%', mt: '10px' }, children: jsx(ProjectInfo, { selectedBond2: bondData }) }), jsx(Flex, { sx: { width: '100%', mt: '10px' }, children: jsx(BondStats, { selectedBond: bondData }) }), jsx(Flex, { sx: { width: '100%', mt: '10px', mb: '50px' }, children: jsx(BondLeaderboard, { selectedBond: bondData }) })] }) })) : (jsx(Flex, { sx: { width: '100%', justifyContent: 'center', fontSize: '12px', fontWeight: 500 }, children: "Loading..." }))] }));
51
49
  };
52
50
 
53
51
  export { ProjectView as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectView.js","sources":["../../../src/views/ProjectView/ProjectView.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport { styles } from './styles'\nimport RecommendationCards from './components/RecommendationCards'\nimport NavPanel from './components/NavPanel'\nimport BondCards from '../BuyBond/components/BondCards/BondCards'\nimport ProjectInfo from './components/ProjectInfo'\nimport BondStats from './components/BondStats'\nimport BondLeaderboard from './components/BondLeaderboard'\nimport PriceChart from './components/PriceChart'\nimport BuyBond from '../BuyBond/BuyComponent'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport useHistoricalPrice from '../../state/historicalPrice/useHistoricalPrice'\n\nexport interface HistoricalPrices {\n timestamp: string\n open: number\n close: number\n}\n\nexport interface ProjectViewProps {\n bondAddress: string\n bondChain: string\n}\n\nconst ProjectView: React.FC<ProjectViewProps> = ({ bondAddress, bondChain }) => {\n // Hooks\n const { data: bonds, refetch } = useBondsData()\n const { data: tokenPrices } = useTokenPrices()\n const bondData = bonds?.find(\n (bond) =>\n bond?.contractAddress?.[bond.chainId]?.toLowerCase() === (bondAddress as string)?.toLowerCase() &&\n (bondChain as string) === bond.chainId.toString(),\n )\n\n const { data: historicalPrices } = useHistoricalPrice(bondData?.cgId)\n\n useEffect(() => {\n if ((bonds?.length ?? 0) > 0 && !bondData) {\n window.location.href = '/bonds'\n }\n })\n\n useEffect(() => {\n if (Object.keys(tokenPrices ?? {})?.length > 0 && bonds?.length === 0) {\n console.log('Found prices and no bonds, realtimeapi failed. Refetching bonds')\n refetch()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [Object.keys(tokenPrices ?? {})?.length, bonds?.length, refetch])\n\n return (\n <Flex sx={styles.mainViewContainer}>\n <RecommendationCards />\n <NavPanel contractAddress={bondData?.contractAddress?.[bondData.chainId]} />\n {bondData && (\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n display: ['none', 'none', 'none', 'block'],\n '&& > div > div': {\n background: 'white2',\n },\n }}\n >\n <BondCards bondData={bondData} />\n </Flex>\n )}\n {bondData ? (\n <>\n <Flex sx={{ width: '100%', flexDirection: 'column', mt: '10px' }}>\n <Flex sx={{ width: '100%', flexDirection: ['column', 'column', 'column', 'row'], alignItems: 'stretch' }}>\n <Flex\n sx={{\n background: 'white2',\n borderRadius: 'normal',\n // TODO: uncomment this\n width: ['100%', '100%', '100%', '50%'],\n // width: '100%',\n //\n mt: '5px',\n }}\n >\n <BuyBond\n bondAddress={bondData?.contractAddress?.[bondData.chainId]}\n bondChain={bondData.chainId}\n isProjectView\n />\n </Flex>\n {/*TODO: uncomment this*/}\n {/*<PriceChart selectedBond={bondData} historicalPrices={historicalPrices} />*/}\n </Flex>\n <Flex sx={{ width: '100%', mt: '10px' }}>\n <ProjectInfo selectedBond2={bondData} />\n </Flex>\n <Flex sx={{ width: '100%', mt: '10px' }}>\n <BondStats selectedBond={bondData} />\n </Flex>\n <Flex sx={{ width: '100%', mt: '10px', mb: '50px' }}>\n <BondLeaderboard selectedBond={bondData} />\n </Flex>\n </Flex>\n </>\n ) : (\n <Flex sx={{ width: '100%', justifyContent: 'center', fontSize: '12px', fontWeight: 500 }}>Loading...</Flex>\n )}\n </Flex>\n )\n}\n\nexport default ProjectView\n"],"names":["_jsxs","_jsx","_Fragment","BuyBond"],"mappings":"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"}
1
+ {"version":3,"file":"ProjectView.js","sources":["../../../src/views/ProjectView/ProjectView.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport { styles } from './styles'\nimport RecommendationCards from './components/RecommendationCards'\nimport NavPanel from './components/NavPanel'\nimport BondCards from '../BuyBond/components/BondCards/BondCards'\nimport ProjectInfo from './components/ProjectInfo'\nimport BondStats from './components/BondStats'\nimport BondLeaderboard from './components/BondLeaderboard'\nimport PriceChart from './components/PriceChart'\nimport BuyBond from '../BuyBond/BuyComponent'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport useHistoricalPrice from '../../state/historicalPrice/useHistoricalPrice'\n\nexport interface HistoricalPrices {\n timestamp: string\n open: number\n close: number\n}\n\nexport interface ProjectViewProps {\n bondAddress: string\n bondChain: string\n}\n\nconst ProjectView: React.FC<ProjectViewProps> = ({ bondAddress, bondChain }) => {\n // Hooks\n const { data: bonds, refetch } = useBondsData()\n const { data: tokenPrices } = useTokenPrices()\n const bondData = bonds?.find(\n (bond) =>\n bond?.contractAddress?.[bond.chainId]?.toLowerCase() === (bondAddress as string)?.toLowerCase() &&\n (bondChain as string) === bond.chainId.toString(),\n )\n\n const { data: historicalPrices } = useHistoricalPrice(bondData?.cgId)\n\n useEffect(() => {\n if ((bonds?.length ?? 0) > 0 && !bondData) {\n window.location.href = '/bonds'\n }\n })\n\n useEffect(() => {\n if (Object.keys(tokenPrices ?? {})?.length > 0 && bonds?.length === 0) {\n console.log('Found prices and no bonds, realtimeapi failed. Refetching bonds')\n refetch()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [Object.keys(tokenPrices ?? {})?.length, bonds?.length, refetch])\n\n return (\n <Flex sx={styles.mainViewContainer}>\n <RecommendationCards />\n <NavPanel contractAddress={bondData?.contractAddress?.[bondData.chainId]} />\n {bondData && (\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n display: ['none', 'none', 'none', 'block'],\n '&& > div > div': {\n background: 'white2',\n },\n }}\n >\n <BondCards bondData={bondData} />\n </Flex>\n )}\n {bondData ? (\n <>\n <Flex sx={{ width: '100%', flexDirection: 'column', mt: '10px' }}>\n <Flex sx={{ width: '100%', flexDirection: ['column', 'column', 'column', 'row'], alignItems: 'stretch' }}>\n <Flex\n sx={{\n background: 'white2',\n borderRadius: 'normal',\n width: ['100%', '100%', '100%', '50%'],\n mt: '5px',\n }}\n >\n <BuyBond\n bondAddress={bondData?.contractAddress?.[bondData.chainId]}\n bondChain={bondData.chainId}\n isProjectView\n />\n </Flex>\n <PriceChart selectedBond={bondData} historicalPrices={historicalPrices} />\n </Flex>\n <Flex sx={{ width: '100%', mt: '10px' }}>\n <ProjectInfo selectedBond2={bondData} />\n </Flex>\n <Flex sx={{ width: '100%', mt: '10px' }}>\n <BondStats selectedBond={bondData} />\n </Flex>\n <Flex sx={{ width: '100%', mt: '10px', mb: '50px' }}>\n <BondLeaderboard selectedBond={bondData} />\n </Flex>\n </Flex>\n </>\n ) : (\n <Flex sx={{ width: '100%', justifyContent: 'center', fontSize: '12px', fontWeight: 500 }}>Loading...</Flex>\n )}\n </Flex>\n )\n}\n\nexport default ProjectView\n"],"names":["_jsxs","_jsx","_Fragment","BuyBond"],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import { jsx } from 'theme-ui/jsx-runtime';
2
+ import { useState, useRef, useEffect } from 'react';
3
+ import { createChart, CrosshairMode, ColorType, LineStyle } from 'lightweight-charts';
4
+ import { determineValues } from './utils.js';
5
+ import { getFirstNonZeroDigits } from '../../../../../utils/roundNumber.js';
6
+
7
+ const CandleStickChart = ({ historicalPrices, hasDiscount, bondPrice, tokenPrice, }) => {
8
+ // reference for DOM element to create with chart
9
+ const data = historicalPrices;
10
+ const chartContainerId = 'candleStickChartContainer';
11
+ const formattedData = data?.map((entry) => {
12
+ return {
13
+ time: parseFloat(entry.timestamp),
14
+ open: entry.open,
15
+ low: entry.open,
16
+ close: entry.close,
17
+ high: entry.close,
18
+ };
19
+ });
20
+ // pointer to the chart object
21
+ const [chartCreated, setChartCreated] = useState();
22
+ const chartInitiatedRef = useRef(false);
23
+ const discount = 1 - parseFloat(bondPrice ?? '0') / parseFloat(tokenPrice ?? '0');
24
+ const discountToUse = discount > 0 ? discount : 0;
25
+ const bottomScaleMargin = discountToUse + 0.1;
26
+ useEffect(() => {
27
+ const chartContainer = document.getElementById(chartContainerId);
28
+ if (chartContainer && !chartCreated && !chartInitiatedRef.current) {
29
+ console.log('creating chart');
30
+ const chart = createChart(chartContainer, {
31
+ width: 0,
32
+ height: 0,
33
+ layout: {
34
+ background: {
35
+ type: ColorType.Solid,
36
+ color: 'transparent',
37
+ },
38
+ textColor: '#73728E',
39
+ },
40
+ grid: {
41
+ vertLines: {
42
+ color: '#73728E',
43
+ },
44
+ horzLines: {
45
+ color: '#73728E',
46
+ },
47
+ },
48
+ crosshair: {
49
+ mode: CrosshairMode.Magnet,
50
+ },
51
+ rightPriceScale: {
52
+ borderColor: '#73728E',
53
+ visible: true,
54
+ scaleMargins: {
55
+ top: 0.12,
56
+ bottom: bottomScaleMargin,
57
+ },
58
+ },
59
+ timeScale: {
60
+ borderColor: '#73728E',
61
+ },
62
+ localization: {
63
+ priceFormatter: (val) => `$${getFirstNonZeroDigits(parseFloat(val), 3)}`,
64
+ },
65
+ });
66
+ const [precision, minMove] = determineValues(parseFloat(bondPrice));
67
+ const candleSeries = chart.addCandlestickSeries({
68
+ upColor: '#38A611',
69
+ downColor: '#DF4141',
70
+ borderDownColor: '#DF4141',
71
+ borderUpColor: '#38A611',
72
+ wickDownColor: '#DF4141',
73
+ wickUpColor: '#38A611',
74
+ priceLineWidth: 2,
75
+ priceLineStyle: LineStyle.Dashed,
76
+ priceLineVisible: true,
77
+ priceFormat: {
78
+ precision,
79
+ minMove,
80
+ formatter: (val) => getFirstNonZeroDigits(parseFloat(val), 3),
81
+ },
82
+ });
83
+ const open = formattedData?.[formattedData?.length - 1]?.close ?? 0;
84
+ formattedData?.push({
85
+ time: new Date().getTime() / 1000,
86
+ open: open,
87
+ low: open,
88
+ close: parseFloat(tokenPrice),
89
+ high: parseFloat(tokenPrice),
90
+ });
91
+ //@ts-ignore
92
+ candleSeries.setData(formattedData);
93
+ candleSeries.createPriceLine({
94
+ price: parseFloat(bondPrice),
95
+ color: hasDiscount ? '#38A611' : '#DF4141',
96
+ lineWidth: 2,
97
+ lineStyle: LineStyle.Dashed,
98
+ axisLabelVisible: true,
99
+ title: `Bond Price`,
100
+ });
101
+ chart.timeScale().fitContent();
102
+ //@ts-ignore
103
+ setChartCreated(chart);
104
+ chartInitiatedRef.current = true;
105
+ }
106
+ }, [bondPrice, bottomScaleMargin, chartCreated, formattedData, hasDiscount, tokenPrice]);
107
+ return jsx("div", { id: chartContainerId, style: { width: '100%', height: '100%' } });
108
+ };
109
+
110
+ export { CandleStickChart as default };
111
+ //# sourceMappingURL=CandleStickChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CandleStickChart.js","sources":["../../../../../../src/views/ProjectView/components/PriceChart/components/CandleStickChart.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react'\nimport { ColorType, createChart, CrosshairMode, LineStyle } from 'lightweight-charts'\nimport { determineValues } from './utils'\nimport { HistoricalPrices } from '../../../ProjectView'\nimport { getFirstNonZeroDigits } from '../../../../../utils/roundNumber'\n\nconst CandleStickChart = ({\n historicalPrices,\n hasDiscount,\n bondPrice,\n tokenPrice,\n}: {\n historicalPrices?: HistoricalPrices[] | null\n hasDiscount: boolean\n bondPrice: string\n tokenPrice: string\n}) => {\n // reference for DOM element to create with chart\n const data = historicalPrices\n const chartContainerId = 'candleStickChartContainer'\n\n const formattedData = data?.map((entry) => {\n return {\n time: parseFloat(entry.timestamp),\n open: entry.open,\n low: entry.open,\n close: entry.close,\n high: entry.close,\n }\n })\n\n // pointer to the chart object\n const [chartCreated, setChartCreated] = useState()\n const chartInitiatedRef = useRef(false)\n\n const discount = 1 - parseFloat(bondPrice ?? '0') / parseFloat(tokenPrice ?? '0')\n const discountToUse = discount > 0 ? discount : 0\n const bottomScaleMargin = discountToUse + 0.1\n\n useEffect(() => {\n const chartContainer = document.getElementById(chartContainerId)\n if (chartContainer && !chartCreated && !chartInitiatedRef.current) {\n console.log('creating chart')\n const chart = createChart(chartContainer, {\n width: 0,\n height: 0,\n layout: {\n background: {\n type: ColorType.Solid,\n color: 'transparent',\n },\n textColor: '#73728E',\n },\n grid: {\n vertLines: {\n color: '#73728E',\n },\n horzLines: {\n color: '#73728E',\n },\n },\n crosshair: {\n mode: CrosshairMode.Magnet,\n },\n rightPriceScale: {\n borderColor: '#73728E',\n visible: true,\n scaleMargins: {\n top: 0.12,\n bottom: bottomScaleMargin,\n },\n },\n timeScale: {\n borderColor: '#73728E',\n },\n localization: {\n priceFormatter: (val: string) => `$${getFirstNonZeroDigits(parseFloat(val), 3)}`,\n },\n })\n const [precision, minMove] = determineValues(parseFloat(bondPrice))\n\n const candleSeries = chart.addCandlestickSeries({\n upColor: '#38A611',\n downColor: '#DF4141',\n borderDownColor: '#DF4141',\n borderUpColor: '#38A611',\n wickDownColor: '#DF4141',\n wickUpColor: '#38A611',\n priceLineWidth: 2,\n priceLineStyle: LineStyle.Dashed,\n priceLineVisible: true,\n priceFormat: {\n precision,\n minMove,\n formatter: (val: string) => getFirstNonZeroDigits(parseFloat(val), 3),\n },\n })\n const open = formattedData?.[formattedData?.length - 1]?.close ?? 0\n formattedData?.push({\n time: new Date().getTime() / 1000,\n open: open,\n low: open,\n close: parseFloat(tokenPrice),\n high: parseFloat(tokenPrice),\n })\n //@ts-ignore\n candleSeries.setData(formattedData)\n candleSeries.createPriceLine({\n price: parseFloat(bondPrice),\n color: hasDiscount ? '#38A611' : '#DF4141',\n lineWidth: 2,\n lineStyle: LineStyle.Dashed,\n axisLabelVisible: true,\n title: `Bond Price`,\n })\n\n chart.timeScale().fitContent()\n //@ts-ignore\n setChartCreated(chart)\n chartInitiatedRef.current = true\n }\n }, [bondPrice, bottomScaleMargin, chartCreated, formattedData, hasDiscount, tokenPrice])\n\n return <div id={chartContainerId} style={{ width: '100%', height: '100%' }}></div>\n}\n\nexport default CandleStickChart\n"],"names":["_jsx"],"mappings":"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"}