@ape.swap/bonds-sdk 5.1.10 → 5.1.11-test.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.d.ts +3 -2
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +2 -2
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -1
- package/dist/views/Bonds/components/HotBondCards/HotBondCard.js +21 -14
- package/dist/views/Bonds/components/HotBondCards/HotBondCard.js.map +1 -1
- package/dist/views/Bonds/components/HotBondCards/styles.d.ts +35 -2
- package/dist/views/Bonds/components/HotBondCards/styles.js +3 -12
- package/dist/views/Bonds/components/HotBondCards/styles.js.map +1 -1
- package/dist/views/Bonds/utils.js +1 -14
- package/dist/views/Bonds/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TrueBondPrices } from '../../../../types/bonds';
|
|
3
3
|
import { LaunchBondTiers } from '@ape.swap/apeswap-lists';
|
|
4
|
-
declare const BonusComponent: ({ trueBondPrices, minTier, bonus, airdropTooltip, tooltipPosition, }: {
|
|
4
|
+
declare const BonusComponent: ({ trueBondPrices, minTier, bonus, airdropTooltip, tooltipPosition, hideTooltip, }: {
|
|
5
5
|
trueBondPrices?: TrueBondPrices[];
|
|
6
6
|
minTier?: LaunchBondTiers;
|
|
7
7
|
bonus?: string;
|
|
8
8
|
airdropTooltip?: string;
|
|
9
|
-
tooltipPosition
|
|
9
|
+
tooltipPosition?: "bottomRight" | "bottomLeft";
|
|
10
|
+
hideTooltip?: boolean;
|
|
10
11
|
}) => React.JSX.Element;
|
|
11
12
|
export default BonusComponent;
|
|
@@ -9,14 +9,14 @@ import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
|
9
9
|
import TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
10
10
|
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
11
11
|
|
|
12
|
-
const BonusComponent = ({ trueBondPrices, minTier, bonus, airdropTooltip, tooltipPosition, }) => {
|
|
12
|
+
const BonusComponent = ({ trueBondPrices, minTier, bonus, airdropTooltip, tooltipPosition, hideTooltip, }) => {
|
|
13
13
|
const SDKConfig = useSDKConfig();
|
|
14
14
|
const isMobile = useIsMobile();
|
|
15
15
|
const highestPointsElement = trueBondPrices?.reduce((max, current) => {
|
|
16
16
|
return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max;
|
|
17
17
|
}, trueBondPrices[0]);
|
|
18
18
|
const baseTrueBondPrice = findHighestTrueBondPrice('0', trueBondPrices);
|
|
19
|
-
return (jsx(Flex, { children: trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (jsx(Flex, { sx: { alignItems: 'center', minWidth: '20px' }, children: highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (jsx(TooltipBubble, { width: "280px", placement: tooltipPosition, transformTip: tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)', body: jsx(BonusTable, { trueBondPrices: trueBondPrices, minTier: minTier }), children: jsxs(Flex, { sx: {
|
|
19
|
+
return (jsx(Flex, { children: trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (jsx(Flex, { sx: { alignItems: 'center', minWidth: '20px' }, children: highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (jsx(TooltipBubble, { width: "280px", placement: tooltipPosition, transformTip: tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)', body: jsx(BonusTable, { trueBondPrices: trueBondPrices, minTier: minTier }), sx: { display: hideTooltip ? 'none' : 'block' }, children: jsxs(Flex, { sx: {
|
|
20
20
|
p: '3px 6px',
|
|
21
21
|
border: '1px solid #9960C5',
|
|
22
22
|
borderRadius: 'normal',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BonusComponent.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusComponent.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport { BigNumber } from 'bignumber.js'\nimport BonusTable from './BonusTable'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { getDiscountColor } from '../../utils'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\nconst BonusComponent = ({\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n tooltipPosition,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n tooltipPosition: 'bottomRight' | 'bottomLeft'\n}) => {\n const SDKConfig = useSDKConfig()\n const isMobile = useIsMobile()\n const highestPointsElement = trueBondPrices?.reduce((max, current) => {\n return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max\n }, trueBondPrices[0])\n\n const baseTrueBondPrice = findHighestTrueBondPrice('0', trueBondPrices)\n\n return (\n <Flex>\n {trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (\n <Flex sx={{ alignItems: 'center', minWidth: '20px' }}>\n {highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (\n <TooltipBubble\n width=\"280px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} />}\n >\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 cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\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', justifyContent: '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', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0\n ? 'success'\n : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n {highestPointsElement?.bonusWithFee?.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : baseTrueBondPrice ? (\n <Flex\n sx={{ alignItems: 'center', minWidth: '20px' }}\n className={`${getDiscountColor(+baseTrueBondPrice?.bonusWithFee)}`}\n >\n {baseTrueBondPrice?.bonusWithFee > 0 ? (\n `${baseTrueBondPrice?.bonusWithFee?.toFixed(2)}%`\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : (\n <Flex sx={{ color: bonus && 'success', alignItems: 'center', minWidth: '20px' }}>\n {bonus || '-'}\n {airdropTooltip && (\n <TooltipBubble\n body={<>{airdropTooltip}</>}\n width=\"230px\"\n placement={isMobile ? 'bottomRight' : 'bottomLeft'}\n transformTip={isMobile ? 'translate(9%, 6%)' : 'translate(-3%, 6%)'}\n >\n <Flex sx={{ width: '20px', height: '20px', alignItems: 'center', ml: '5px' }}>\n <img\n src=\"https://res.cloudinary.com/dswmrqgwy/image/upload/v1750345773/airdrop_qvh4ow.png\"\n alt=\"airdrop-img\"\n style={{ width: '20px', height: '20px' }}\n />\n </Flex>\n </TooltipBubble>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default BonusComponent\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BonusComponent.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusComponent.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport { BigNumber } from 'bignumber.js'\nimport BonusTable from './BonusTable'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { getDiscountColor } from '../../utils'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\nconst BonusComponent = ({\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n tooltipPosition,\n hideTooltip,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n tooltipPosition?: 'bottomRight' | 'bottomLeft'\n hideTooltip?: boolean\n}) => {\n const SDKConfig = useSDKConfig()\n const isMobile = useIsMobile()\n const highestPointsElement = trueBondPrices?.reduce((max, current) => {\n return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max\n }, trueBondPrices[0])\n\n const baseTrueBondPrice = findHighestTrueBondPrice('0', trueBondPrices)\n\n return (\n <Flex>\n {trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (\n <Flex sx={{ alignItems: 'center', minWidth: '20px' }}>\n {highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (\n <TooltipBubble\n width=\"280px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} />}\n sx={{ display: hideTooltip ? 'none' : 'block' }}\n >\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 cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\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', justifyContent: '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', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0\n ? 'success'\n : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n {highestPointsElement?.bonusWithFee?.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : baseTrueBondPrice ? (\n <Flex\n sx={{ alignItems: 'center', minWidth: '20px' }}\n className={`${getDiscountColor(+baseTrueBondPrice?.bonusWithFee)}`}\n >\n {baseTrueBondPrice?.bonusWithFee > 0 ? (\n `${baseTrueBondPrice?.bonusWithFee?.toFixed(2)}%`\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : (\n <Flex sx={{ color: bonus && 'success', alignItems: 'center', minWidth: '20px' }}>\n {bonus || '-'}\n {airdropTooltip && (\n <TooltipBubble\n body={<>{airdropTooltip}</>}\n width=\"230px\"\n placement={isMobile ? 'bottomRight' : 'bottomLeft'}\n transformTip={isMobile ? 'translate(9%, 6%)' : 'translate(-3%, 6%)'}\n >\n <Flex sx={{ width: '20px', height: '20px', alignItems: 'center', ml: '5px' }}>\n <img\n src=\"https://res.cloudinary.com/dswmrqgwy/image/upload/v1750345773/airdrop_qvh4ow.png\"\n alt=\"airdrop-img\"\n style={{ width: '20px', height: '20px' }}\n />\n </Flex>\n </TooltipBubble>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default BonusComponent\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;AAaA,MAAM,cAAc,GAAG,CAAC,EACtB,cAAc,EACd,OAAO,EACP,KAAK,EACL,cAAc,EACd,eAAe,EACf,WAAW,GAQZ,KAAI;AACH,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;IAC9B,MAAM,oBAAoB,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;QACnE,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG;AAC/F,IAAA,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAErB,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,GAAG,EAAE,cAAc,CAAC;IAEvE,QACEA,IAAC,IAAI,EAAA,EAAA,QAAA,EACF,cAAc,IAAI,cAAc,EAAE,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,IACjEA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EACjD,oBAAoB,EAAE,YAAY,IAAI,oBAAoB,EAAE,YAAY,GAAG,CAAC,IAC3EA,GAAA,CAAC,aAAa,EAAA,EACZ,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,eAAe,EAC1B,YAAY,EAAE,eAAe,KAAK,YAAY,GAAG,mBAAmB,GAAG,mBAAmB,EAC1F,IAAI,EAAEA,GAAA,CAAC,UAAU,EAAA,EAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAA,CAAI,EACtE,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,EAAE,YAE/CC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,wBAAA,CAAC,EAAE,SAAS;AACZ,wBAAA,MAAM,EAAE,mBAAmB;AAC3B,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,UAAU,EAAE,aAAa;AACzB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5C,qBAAA,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gCAAA,QAAQ,EAAE,UAAU;AACpB,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,GAAG,EAAE,CAAC;AACN,gCAAA,IAAI,EAAE,CAAC;AACP,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,UAAU,EAAE,SAAS;AACrB,gCAAA,OAAO,EAAE,GAAG;AACb,6BAAA,EAAA,CACD,EACFC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACpFD,aACE,GAAG,EAAE,6CAA6C,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,IAAC,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;wCACF,KAAK,EACH,oBAAoB,EAAE,YAAY,IAAI,oBAAoB,EAAE,YAAY,GAAG;AACzE,8CAAE;AACF,8CAAE,OAAO;wCACb,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3C,qCAAA,EAAA,QAAA,EAAA,CAEA,oBAAoB,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,EAAA,GAAA,CAAA,EAAA,CAC1C,IACF,CAAA,EAAA,CACF,EAAA,CACO,KAEhBD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAA,QAAA,EACzCA,GAAA,CAAC,aAAa,EAAA,EACZ,IAAI,EAAE,8EAA8E,EACpF,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,aAAa,EACvB,YAAY,EAAC,oBAAoB,EAAA,QAAA,EAEjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,SAAS,EAAA,CAAG,EAAA,CACnC,GACX,CACR,EAAA,CACI,IACL,iBAAiB,IACnBA,GAAA,CAAC,IAAI,IACH,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAC9C,SAAS,EAAE,CAAA,EAAG,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA,CAAE,YAEjE,iBAAiB,EAAE,YAAY,GAAG,CAAC,IAClC,CAAA,EAAG,iBAAiB,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAEjDA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YACzCA,GAAA,CAAC,aAAa,EAAA,EACZ,IAAI,EAAE,8EAA8E,EACpF,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,aAAa,EACvB,YAAY,EAAC,oBAAoB,YAEjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,SAAS,EAAA,CAAG,EAAA,CACnC,EAAA,CACX,CACR,GACI,KAEPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAC5E,KAAK,IAAI,GAAG,EACZ,cAAc,KACbD,IAAC,aAAa,EAAA,EACZ,IAAI,EAAEA,0BAAG,cAAc,EAAA,CAAI,EAC3B,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,QAAQ,GAAG,aAAa,GAAG,YAAY,EAClD,YAAY,EAAE,QAAQ,GAAG,mBAAmB,GAAG,oBAAoB,EAAA,QAAA,EAEnEA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAC1EA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAC,kFAAkF,EACtF,GAAG,EAAC,aAAa,EACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,CACxC,EAAA,CACG,GACO,CACjB,CAAA,EAAA,CACI,CACR,EAAA,CACI;AAEX;;;;"}
|
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { styles } from './styles.js';
|
|
3
|
-
import TokenInfoAndName from '../../../../components/TokenInfoAndName/index.js';
|
|
4
|
-
import BondInfoTooltip from '../../../../components/Tooltip/Tooltip.js';
|
|
5
|
-
import { getDiscountColor, calculateARR } from '../../utils.js';
|
|
6
|
-
import { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers.js';
|
|
7
3
|
import useModal from '../../../../hooks/useModal.js';
|
|
8
4
|
import BuyBondModal from '../../../BuyBond/BuyBondModal.js';
|
|
9
5
|
import track from '../../../../utils/track.js';
|
|
10
|
-
import { TIERS_WEIGHT } from '../../../../state/tiers/useTierPoints.js';
|
|
11
|
-
import { LaunchBondTiers } from '@ape.swap/apeswap-lists';
|
|
12
|
-
import { useSDKConfig } from '../../../../state/useSDKConfig.js';
|
|
13
|
-
import { getTimePeriods } from '../../../../utils/getTimePeriods.js';
|
|
14
6
|
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
15
|
-
import TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
16
7
|
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
8
|
+
import TokenImage from '../../../../components/uikit-sdk/TokenImage/index.js';
|
|
9
|
+
import { NETWORK_ICONS } from '../../../../config/constants/chains.js';
|
|
10
|
+
import BonusComponent from '../BonusComponents/BonusComponent.js';
|
|
11
|
+
import { getTimePeriods } from '../../../../utils/getTimePeriods.js';
|
|
17
12
|
|
|
18
13
|
const HotBondCard = ({ bond }) => {
|
|
19
|
-
const bonus = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], bond?.trueBondPrices)?.bonusWithFee;
|
|
20
|
-
const SDKConfig = useSDKConfig();
|
|
21
14
|
// Modal
|
|
22
15
|
const [openBuyModal] = useModal(jsx(BuyBondModal, { bondAddress: bond?.contractAddress?.[bond?.chainId], bondChain: bond.chainId }), true, true, `buyBondModal-${bond?.contractAddress?.[bond?.chainId]}-${bond.chainId}`);
|
|
23
16
|
const handleOpenModal = () => {
|
|
@@ -31,9 +24,23 @@ const HotBondCard = ({ bond }) => {
|
|
|
31
24
|
},
|
|
32
25
|
});
|
|
33
26
|
};
|
|
34
|
-
return (jsx(Flex, { sx:
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
return (jsx(Flex, { sx: {
|
|
28
|
+
background: 'white2',
|
|
29
|
+
width: '100%',
|
|
30
|
+
borderRadius: 'normal',
|
|
31
|
+
mt: '10px',
|
|
32
|
+
'&:hover': {
|
|
33
|
+
background: 'white3',
|
|
34
|
+
},
|
|
35
|
+
}, children: jsx(Flex, { sx: styles.desktopCard, className: "hot-bond-card", onClick: handleOpenModal, children: jsxs(Flex, { sx: {
|
|
36
|
+
width: '100%',
|
|
37
|
+
position: 'relative',
|
|
38
|
+
gap: '10px',
|
|
39
|
+
}, children: [jsx(Flex, { sx: { position: 'absolute', top: 0, left: 0, borderRadius: '10px 0px 10px 0px', overflow: 'hidden' }, children: jsx(Svg, { width: 20, height: 20, icon: NETWORK_ICONS[bond.chainId] }) }), jsx(Flex, { sx: {
|
|
40
|
+
alignItems: 'center',
|
|
41
|
+
justifyContent: 'center',
|
|
42
|
+
width: '100px',
|
|
43
|
+
}, children: jsx(TokenImage, { symbol: bond.earnToken.symbol, size: 80 }) }), jsxs(Flex, { sx: { flexDirection: 'column', justifyContent: 'center', gap: '10px' }, children: [jsxs(Flex, { sx: { fontWeight: 700, fontSize: ['14px'] }, children: ["$", bond.earnToken.symbol] }), jsxs(Flex, { sx: { gap: ['20px', '20px', '20px', '20px', '10px', '30px'] }, children: [jsxs(Flex, { sx: { flexDirection: 'column', alignItems: 'center' }, children: [jsxs(Flex, { sx: { fontWeight: 700, fontSize: ['16px'], height: '30px', alignItems: 'center' }, children: [getTimePeriods(bond?.vestingTerm, true)?.days, " D"] }), jsx(Flex, { sx: { fontWeight: 400, fontSize: ['11px'], color: 'textDisabledButton', mt: '5px' }, children: "Terms" })] }), jsxs(Flex, { sx: { flexDirection: 'column', alignItems: 'center' }, children: [jsx(Flex, { sx: { fontWeight: 700, fontSize: ['16px'] }, children: jsx(BonusComponent, { trueBondPrices: bond.trueBondPrices, hideTooltip: true }) }), jsx(Flex, { sx: { fontWeight: 400, fontSize: ['11px'], color: 'textDisabledButton', mt: '5px' }, children: "Bonus" })] })] })] })] }) }) }));
|
|
37
44
|
};
|
|
38
45
|
|
|
39
46
|
export { HotBondCard as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HotBondCard.js","sources":["../../../../../src/views/Bonds/components/HotBondCards/HotBondCard.tsx"],"sourcesContent":["import React from 'react'\nimport { styles } from './styles'\nimport { BondsData } from '../../../../types/bonds'\nimport
|
|
1
|
+
{"version":3,"file":"HotBondCard.js","sources":["../../../../../src/views/Bonds/components/HotBondCards/HotBondCard.tsx"],"sourcesContent":["import React from 'react'\nimport { styles } from './styles'\nimport { BondsData } from '../../../../types/bonds'\nimport useModal from '../../../../hooks/useModal'\nimport BuyBondModal from '../../../BuyBond/BuyBondModal'\nimport track from '../../../../utils/track'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { NETWORK_ICONS } from '../../../../config/constants/chains'\nimport BonusComponent from '../BonusComponents/BonusComponent'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\n\nconst HotBondCard = ({ bond }: { bond: BondsData }) => {\n // Modal\n const [openBuyModal] = useModal(\n <BuyBondModal bondAddress={bond?.contractAddress?.[bond?.chainId]} bondChain={bond.chainId} />,\n true,\n true,\n `buyBondModal-${bond?.contractAddress?.[bond?.chainId]}-${bond.chainId}`,\n )\n\n const handleOpenModal = () => {\n openBuyModal()\n track({\n event: 'hotClick',\n chain: bond.chainId,\n data: {\n cat: 'hotClick',\n bond: bond.earnToken.symbol,\n },\n })\n }\n\n return (\n <Flex\n sx={{\n background: 'white2',\n width: '100%',\n borderRadius: 'normal',\n mt: '10px',\n '&:hover': {\n background: 'white3',\n },\n }}\n >\n <Flex sx={styles.desktopCard} className=\"hot-bond-card\" onClick={handleOpenModal}>\n <Flex\n sx={{\n width: '100%',\n position: 'relative',\n gap: '10px',\n }}\n >\n <Flex sx={{ position: 'absolute', top: 0, left: 0, borderRadius: '10px 0px 10px 0px', overflow: 'hidden' }}>\n <Svg width={20} height={20} icon={NETWORK_ICONS[bond.chainId]} />\n </Flex>\n <Flex\n sx={{\n alignItems: 'center',\n justifyContent: 'center',\n width: '100px',\n }}\n >\n <TokenImage symbol={bond.earnToken.symbol} size={80} />\n </Flex>\n <Flex sx={{ flexDirection: 'column', justifyContent: 'center', gap: '10px' }}>\n <Flex sx={{ fontWeight: 700, fontSize: ['14px'] }}>${bond.earnToken.symbol}</Flex>\n <Flex sx={{ gap: ['20px', '20px', '20px', '20px', '10px', '30px'] }}>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center' }}>\n <Flex sx={{ fontWeight: 700, fontSize: ['16px'], height: '30px', alignItems: 'center' }}>\n {getTimePeriods(bond?.vestingTerm, true)?.days} D\n </Flex>\n <Flex sx={{ fontWeight: 400, fontSize: ['11px'], color: 'textDisabledButton', mt: '5px' }}>Terms</Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center' }}>\n <Flex sx={{ fontWeight: 700, fontSize: ['16px'] }}>\n <BonusComponent trueBondPrices={bond.trueBondPrices} hideTooltip />\n </Flex>\n <Flex sx={{ fontWeight: 400, fontSize: ['11px'], color: 'textDisabledButton', mt: '5px' }}>Bonus</Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default HotBondCard\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;AAaA,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAuB,KAAI;;IAEpD,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAC7BA,GAAA,CAAC,YAAY,EAAA,EAAC,WAAW,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAA,CAAI,EAC9F,IAAI,EACJ,IAAI,EACJ,CAAA,aAAA,EAAgB,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,CAAE,CACzE;IAED,MAAM,eAAe,GAAG,MAAK;AAC3B,QAAA,YAAY,EAAE;AACd,QAAA,KAAK,CAAC;AACJ,YAAA,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,IAAI,CAAC,OAAO;AACnB,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,EAAE,UAAU;AACf,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;AAC5B,aAAA;AACF,SAAA,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,YAAY,EAAE,QAAQ;AACtB,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,QAAQ;AACrB,aAAA;SACF,EAAA,QAAA,EAEDA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,eAAe,YAC9EC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,GAAG,EAAE,MAAM;iBACZ,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YACxGA,GAAA,CAAC,GAAG,EAAA,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA,CAAI,EAAA,CAC5D,EACPA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,cAAc,EAAE,QAAQ;AACxB,4BAAA,KAAK,EAAE,OAAO;yBACf,EAAA,QAAA,EAEDA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAClD,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAC1EA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAQ,EAClFA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAAA,CACjEA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACzDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACpF,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,EAAA,IAAA,CAAA,EAAA,CACzC,EACPD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,OAAA,EAAA,CAAc,CAAA,EAAA,CAClG,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACzDD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAA,QAAA,EAC/CA,GAAA,CAAC,cAAc,EAAA,EAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,EAAA,IAAA,EAAA,CAAG,EAAA,CAC9D,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,OAAA,EAAA,CAAc,CAAA,EAAA,CAClG,CAAA,EAAA,CACF,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EAAA,CACF,EAAA,CACF;AAEX;;;;"}
|
|
@@ -1,2 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export declare const styles: {
|
|
2
|
+
mainComponent: {
|
|
3
|
+
width: string;
|
|
4
|
+
flexDirection: string;
|
|
5
|
+
overflow: string[];
|
|
6
|
+
pt: string;
|
|
7
|
+
pb: string[];
|
|
8
|
+
};
|
|
9
|
+
hotBondTitle: {
|
|
10
|
+
pt: string;
|
|
11
|
+
color: string;
|
|
12
|
+
fontSize: string;
|
|
13
|
+
fontWeight: number;
|
|
14
|
+
cursor: string;
|
|
15
|
+
textTransform: string;
|
|
16
|
+
};
|
|
17
|
+
desktopCards: {
|
|
18
|
+
width: string;
|
|
19
|
+
gap: string;
|
|
20
|
+
justifyContent: string;
|
|
21
|
+
flexDirection: string[];
|
|
22
|
+
display: string;
|
|
23
|
+
'@media screen and (min-width: 1000px)': {
|
|
24
|
+
display: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
desktopCard: {
|
|
28
|
+
backgroundImage: string;
|
|
29
|
+
backgroundSize: string;
|
|
30
|
+
width: string;
|
|
31
|
+
borderRadius: string;
|
|
32
|
+
cursor: string;
|
|
33
|
+
height: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -16,6 +16,7 @@ const styles = {
|
|
|
16
16
|
},
|
|
17
17
|
desktopCards: {
|
|
18
18
|
width: '100%',
|
|
19
|
+
gap: '15px',
|
|
19
20
|
justifyContent: 'space-between',
|
|
20
21
|
flexDirection: ['column', 'column', 'column', 'row'],
|
|
21
22
|
display: 'none',
|
|
@@ -24,22 +25,12 @@ const styles = {
|
|
|
24
25
|
},
|
|
25
26
|
},
|
|
26
27
|
desktopCard: {
|
|
28
|
+
backgroundImage: 'url(https://staging.ape.bond/images/mc/fireBG.png)',
|
|
29
|
+
backgroundSize: 'cover',
|
|
27
30
|
width: '100%',
|
|
28
|
-
background: 'white3',
|
|
29
31
|
borderRadius: 'normal',
|
|
30
32
|
cursor: 'pointer',
|
|
31
33
|
height: '125px',
|
|
32
|
-
mt: ['15px', '15px', '15px', '5px'],
|
|
33
|
-
mr: '15px',
|
|
34
|
-
'&:hover': {
|
|
35
|
-
background: 'white4',
|
|
36
|
-
},
|
|
37
|
-
':last-of-type': {
|
|
38
|
-
mr: '0px',
|
|
39
|
-
},
|
|
40
|
-
':first-of-type': {
|
|
41
|
-
mt: '5px',
|
|
42
|
-
},
|
|
43
34
|
},
|
|
44
35
|
};
|
|
45
36
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../../src/views/Bonds/components/HotBondCards/styles.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../../src/views/Bonds/components/HotBondCards/styles.ts"],"sourcesContent":["export const styles = {\n mainComponent: {\n width: '100%',\n flexDirection: 'column',\n overflow: ['hidden', 'hidden', 'hidden', 'visible'],\n pt: '10px',\n pb: ['10px', '10px', '10px', '20px'],\n },\n hotBondTitle: {\n pt: '15px',\n color: 'textDisabledButton',\n fontSize: '13px',\n fontWeight: 500,\n cursor: 'pointer',\n textTransform: 'uppercase',\n },\n desktopCards: {\n width: '100%',\n gap: '15px',\n justifyContent: 'space-between',\n flexDirection: ['column', 'column', 'column', 'row'],\n display: 'none',\n '@media screen and (min-width: 1000px)': {\n display: 'flex',\n },\n },\n desktopCard: {\n backgroundImage: 'url(https://staging.ape.bond/images/mc/fireBG.png)',\n backgroundSize: 'cover',\n width: '100%',\n borderRadius: 'normal',\n cursor: 'pointer',\n height: '125px',\n },\n}\n"],"names":[],"mappings":"AAAO,MAAM,MAAM,GAAG;AACpB,IAAA,aAAa,EAAE;AACb,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,aAAa,EAAE,QAAQ;QACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;AACnD,QAAA,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AACrC,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,UAAU,EAAE,GAAG;AACf,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,aAAa,EAAE,WAAW;AAC3B,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,cAAc,EAAE,eAAe;QAC/B,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;AACpD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,uCAAuC,EAAE;AACvC,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACF,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,eAAe,EAAE,oDAAoD;AACrE,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,OAAO;AAChB,KAAA;;;;;"}
|
|
@@ -75,19 +75,6 @@ const getDiscountColor = (discount) => {
|
|
|
75
75
|
return '';
|
|
76
76
|
return discount < 0 ? 'discount-negative' : 'discount-positive';
|
|
77
77
|
};
|
|
78
|
-
const calculateARR = (bond, useTiers) => {
|
|
79
|
-
if (!('trueBondPrices' in bond))
|
|
80
|
-
return '-';
|
|
81
|
-
const bonus = findHighestTrueBondPrice(useTiers ? TIERS_WEIGHT[LaunchBondTiers.Legend] : '0', bond?.trueBondPrices)?.bonusWithFee;
|
|
82
|
-
const vestingTerm = 'vestingTerm' in bond ? bond?.vestingTerm : undefined;
|
|
83
|
-
if (!bonus)
|
|
84
|
-
return '-';
|
|
85
|
-
const discount = bonus ?? 0;
|
|
86
|
-
if (discount < 0)
|
|
87
|
-
return '-';
|
|
88
|
-
const vestingDays = getTimePeriods(vestingTerm, true).days;
|
|
89
|
-
return `${((discount * 365) / vestingDays).toFixed(2)}%`;
|
|
90
|
-
};
|
|
91
78
|
const isBondSupported = (SDKVersion, bondVersion) => {
|
|
92
79
|
// Split the versions into major, minor, and patch parts
|
|
93
80
|
const [major1, minor1, patch1] = SDKVersion.split('.').map(Number) ?? [];
|
|
@@ -109,5 +96,5 @@ const isBondSupported = (SDKVersion, bondVersion) => {
|
|
|
109
96
|
return false;
|
|
110
97
|
};
|
|
111
98
|
|
|
112
|
-
export {
|
|
99
|
+
export { getDiscountColor, isBondSoldOut, isBondSupported, sortBonds };
|
|
113
100
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/views/Bonds/utils.ts"],"sourcesContent":["import { BondsData } from '../../types/bonds'\nimport BigNumber from 'bignumber.js'\nimport { SortOptions } from './Bonds'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { BillsConfig, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport { remainingPercentage } from '../../utils/displayHelpers'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\n\nexport const isBondSoldOut = (bill: BondsData, showLowValueBonds?: boolean): boolean => {\n if (bill.soldOut) return true\n if (bill.hide) return true\n if (bill.billType === 'fcfs') {\n const now = new Date().getTime()\n const saleFinishTime = (bill?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bill.finalized\n if (saleHasFinished) return true\n return false\n }\n const { tokensRemaining, payoutTokenPrice } = bill\n if (!tokensRemaining) return false\n if (showLowValueBonds) return false\n const thresholdToHide = new BigNumber(100).div(payoutTokenPrice ?? 0)\n\n if ((findHighestTrueBondPrice('0', bill?.trueBondPrices)?.bonusWithFee ?? 0) > 50) {\n if (bill.earnToken.symbol === 'sGOO') return false\n //if bonus is higher than 50% for regular bonds, hide them\n return true\n }\n if (new BigNumber(tokensRemaining)?.lte(thresholdToHide)) {\n // If there's less than 100 usd bond will be hidden\n return true\n } else return false\n}\n\nexport const sortBonds = (sortConfig?: SortOptions, bonds?: BondsData[]) => {\n const bondsToSort = bonds ?? []\n\n if (!sortConfig) {\n return bondsToSort\n }\n\n return [...bondsToSort].sort((a, b) => {\n let aValue: number\n let bValue: number\n\n if (sortConfig?.key === 'arr') {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n } else if (sortConfig.key === 'tokensRemaining') {\n aValue = remainingPercentage(a)\n bValue = remainingPercentage(b)\n } else if (sortConfig.key === 'terms') {\n aValue = getTimePeriods(a.vestingTerm, true).days\n bValue = getTimePeriods(b.vestingTerm, true).days\n } else {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n}\n\nexport const getDiscountColor = (discount?: number): string => {\n if (!discount) return ''\n return discount < 0 ? 'discount-negative' : 'discount-positive'\n}\nexport const calculateARR = (bond: BondsData | BillsConfig, useTiers: boolean): string => {\n if (!('trueBondPrices' in bond)) return '-'\n const bonus = findHighestTrueBondPrice(\n useTiers ? TIERS_WEIGHT[LaunchBondTiers.Legend] : '0',\n bond?.trueBondPrices,\n )?.bonusWithFee\n const vestingTerm = 'vestingTerm' in bond ? bond?.vestingTerm : undefined\n if (!bonus) return '-'\n const discount = bonus ?? 0\n if (discount < 0) return '-'\n const vestingDays = getTimePeriods(vestingTerm, true).days\n return `${((discount * 365) / vestingDays).toFixed(2)}%`\n}\n\nexport const isBondSupported = (SDKVersion: string, bondVersion: string) => {\n // Split the versions into major, minor, and patch parts\n const [major1, minor1, patch1] = SDKVersion.split('.').map(Number) ?? []\n const [major2, minor2, patch2] = bondVersion?.split('.').map(Number) ?? []\n\n // Compare major versions\n if (major1 > major2) return true\n if (major1 < major2) return false\n\n // Compare minor versions\n if (minor1 > minor2) return true\n if (minor1 < minor2) return false\n\n // Compare patch versions\n if (patch1 >= patch2) return true\n\n // If none of the above conditions are met, version1 is less\n return false\n}\n\n\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/views/Bonds/utils.ts"],"sourcesContent":["import { BondsData } from '../../types/bonds'\nimport BigNumber from 'bignumber.js'\nimport { SortOptions } from './Bonds'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { BillsConfig, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport { remainingPercentage } from '../../utils/displayHelpers'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\n\nexport const isBondSoldOut = (bill: BondsData, showLowValueBonds?: boolean): boolean => {\n if (bill.soldOut) return true\n if (bill.hide) return true\n if (bill.billType === 'fcfs') {\n const now = new Date().getTime()\n const saleFinishTime = (bill?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bill.finalized\n if (saleHasFinished) return true\n return false\n }\n const { tokensRemaining, payoutTokenPrice } = bill\n if (!tokensRemaining) return false\n if (showLowValueBonds) return false\n const thresholdToHide = new BigNumber(100).div(payoutTokenPrice ?? 0)\n\n if ((findHighestTrueBondPrice('0', bill?.trueBondPrices)?.bonusWithFee ?? 0) > 50) {\n if (bill.earnToken.symbol === 'sGOO') return false\n //if bonus is higher than 50% for regular bonds, hide them\n return true\n }\n if (new BigNumber(tokensRemaining)?.lte(thresholdToHide)) {\n // If there's less than 100 usd bond will be hidden\n return true\n } else return false\n}\n\nexport const sortBonds = (sortConfig?: SortOptions, bonds?: BondsData[]) => {\n const bondsToSort = bonds ?? []\n\n if (!sortConfig) {\n return bondsToSort\n }\n\n return [...bondsToSort].sort((a, b) => {\n let aValue: number\n let bValue: number\n\n if (sortConfig?.key === 'arr') {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n } else if (sortConfig.key === 'tokensRemaining') {\n aValue = remainingPercentage(a)\n bValue = remainingPercentage(b)\n } else if (sortConfig.key === 'terms') {\n aValue = getTimePeriods(a.vestingTerm, true).days\n bValue = getTimePeriods(b.vestingTerm, true).days\n } else {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n}\n\nexport const getDiscountColor = (discount?: number): string => {\n if (!discount) return ''\n return discount < 0 ? 'discount-negative' : 'discount-positive'\n}\nexport const calculateARR = (bond: BondsData | BillsConfig, useTiers: boolean): string => {\n if (!('trueBondPrices' in bond)) return '-'\n const bonus = findHighestTrueBondPrice(\n useTiers ? TIERS_WEIGHT[LaunchBondTiers.Legend] : '0',\n bond?.trueBondPrices,\n )?.bonusWithFee\n const vestingTerm = 'vestingTerm' in bond ? bond?.vestingTerm : undefined\n if (!bonus) return '-'\n const discount = bonus ?? 0\n if (discount < 0) return '-'\n const vestingDays = getTimePeriods(vestingTerm, true).days\n return `${((discount * 365) / vestingDays).toFixed(2)}%`\n}\n\nexport const isBondSupported = (SDKVersion: string, bondVersion: string) => {\n // Split the versions into major, minor, and patch parts\n const [major1, minor1, patch1] = SDKVersion.split('.').map(Number) ?? []\n const [major2, minor2, patch2] = bondVersion?.split('.').map(Number) ?? []\n\n // Compare major versions\n if (major1 > major2) return true\n if (major1 < major2) return false\n\n // Compare minor versions\n if (minor1 > minor2) return true\n if (minor1 < minor2) return false\n\n // Compare patch versions\n if (patch1 >= patch2) return true\n\n // If none of the above conditions are met, version1 is less\n return false\n}\n\n\n"],"names":[],"mappings":"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"}
|